Commit e606e8a279a57f3a113024db220b263acc681096
1 parent
270adbff9b
Exists in
master
refresh guide doc
Showing 1 changed file with 1 additions and 1 deletions Inline Diff
guide.md
1 | ##InlandSDK integration guide | 1 | ##InlandSDK integration guide |
2 | ###本sdk包含登录和支付功能,支付包含微信支付,支付宝支付和银联支付,因此接入前请申请好各支付渠道的参数 | 2 | ###本sdk包含登录和支付功能,支付包含微信支付,支付宝支付和银联支付,因此接入前请申请好各支付渠道的参数 |
3 | 1.获取gump分配的appid和appkey | 3 | 1.获取gump分配的appid和appkey |
4 | 2.导入InlandSDK库工程,并将自己的android工程设置引用此库工程 | 4 | 2.导入InlandSDK库工程,并将自己的android工程设置引用此库工程 |
5 | 3.配置AndroidManifest.xml,分为3部分 | 5 | 3.配置AndroidManifest.xml,分为3部分 |
6 | 1)确保有以下permission: | 6 | 1)确保有以下permission: |
7 | 7 | ||
8 | <uses-permission android:name="android.permission.INTERNET" /> | 8 | <uses-permission android:name="android.permission.INTERNET" /> |
9 | <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> | 9 | <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> |
10 | <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> | 10 | <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> |
11 | <uses-permission android:name="android.permission.BLUETOOTH" /> | 11 | <uses-permission android:name="android.permission.BLUETOOTH" /> |
12 | <uses-permission android:name="android.permission.GET_ACCOUNTS" /> | 12 | <uses-permission android:name="android.permission.GET_ACCOUNTS" /> |
13 | <uses-permission android:name="android.permission.READ_PHONE_STATE" /> | 13 | <uses-permission android:name="android.permission.READ_PHONE_STATE" /> |
14 | <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> | 14 | <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> |
15 | <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> | 15 | <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> |
16 | <uses-permission android:name="android.permission.WRITE_SETTINGS" /> | 16 | <uses-permission android:name="android.permission.WRITE_SETTINGS" /> |
17 | <!-- 以下是银联支付专用 --> | 17 | <!-- 以下是银联支付专用 --> |
18 | <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> | 18 | <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> |
19 | 19 | ||
20 | 2)需要在application内增加如下内容,**微信回调activity必须是 "项目包名.wxapi.WXPayEntryActivity",不可更改,且此activity需继承com.gump.inland.gamesdk.WXPayEntryBaseActivity**: | 20 | 2)需要在application内增加如下内容,**微信回调activity必须是 "项目包名.wxapi.WXPayEntryActivity",不可更改,且此activity需继承com.gump.inland.gamesdk.WXPayEntryBaseActivity**: |
21 | 21 | ||
22 | <activity | 22 | <activity |
23 | android:name="com.gump.inland.gamesdk.PassportBaseActivity" | 23 | android:name="com.gump.inland.gamesdk.PassportBaseActivity" |
24 | android:theme="@style/Theme.TransparentWin" > | 24 | android:theme="@style/Theme.TransparentWin" > |
25 | </activity> | 25 | </activity> |
26 | <activity | 26 | <activity |
27 | android:name="com.gump.inland.gamesdk.PaymentActivity" | 27 | android:name="com.gump.inland.gamesdk.PaymentActivity" |
28 | android:theme="@android:style/Theme.Light.NoTitleBar" > | 28 | android:theme="@android:style/Theme.Light.NoTitleBar" > |
29 | </activity> | 29 | </activity> |
30 | <!-- wx callback 需要根据规则配置,此处请勿直接拷贝--> | 30 | <!-- wx callback 需要根据规则配置,此处请勿直接拷贝--> |
31 | <activity | 31 | <activity |
32 | android:name="yourPackageName.wxapi.WXPayEntryActivity" | 32 | android:name="yourPackageName.wxapi.WXPayEntryActivity" |
33 | android:exported="true" > | 33 | android:exported="true" > |
34 | </activity> | 34 | </activity> |
35 | <!-- unionPay --> | 35 | <!-- unionPay --> |
36 | <activity | 36 | <activity |
37 | android:name="com.unionpay.uppay.PayActivity" | 37 | android:name="com.unionpay.uppay.PayActivity" |
38 | android:configChanges="orientation|keyboardHidden" | 38 | android:configChanges="orientation|keyboardHidden" |
39 | android:excludeFromRecents="true" | 39 | android:excludeFromRecents="true" |
40 | android:label="@string/app_name" | 40 | android:label="@string/app_name" |
41 | android:screenOrientation="portrait" | 41 | android:screenOrientation="portrait" |
42 | android:windowSoftInputMode="adjustResize" /> | 42 | android:windowSoftInputMode="adjustResize" /> |
43 | 43 | ||
44 | 3)为入口activity增加以下Intent-filter,**data scheme配置为微信appid**: | 44 | 3)为入口activity增加以下Intent-filter,**data scheme配置为微信appid**: |
45 | 45 | ||
46 | <intent-filter> | 46 | <intent-filter> |
47 | <action android:name="android.intent.action.VIEW" /> | 47 | <action android:name="android.intent.action.VIEW" /> |
48 | 48 | ||
49 | <category android:name="android.intent.category.DEFAULT" /> | 49 | <category android:name="android.intent.category.DEFAULT" /> |
50 | <!-- 此处为微信的appid--> | 50 | <!-- 此处为微信的appid--> |
51 | <data android:scheme="wxdb562d299ac311e0" /> | 51 | <data android:scheme="wxdb562d299ac311e0" /> |
52 | </intent-filter> | 52 | </intent-filter> |
53 | 53 | ||
54 | 4.将InlandSDK工程assets目录下的文件拷贝到游戏项目的assets目录下,此处为银联支付使用 | 54 | 4.将InlandSDK工程assets目录下的文件拷贝到游戏项目的assets目录下,此处为银联支付使用 |
55 | 5.代码接入: | 55 | 5.代码接入: |
56 | 1)sdk初始化 | 56 | 1)sdk初始化 |
57 | 57 | ||
58 | InlandSDK.initializeSDK(gumpAPPId, GumpAPPKey); | 58 | InlandSDK.initializeSDK(gumpAPPId, GumpAPPKey); |
59 | 59 | ||
60 | 2)注册登录状态回调: | 60 | 2)注册登录状态回调: |
61 | 61 | ||
62 | Passport.getInstance().registerCallback(new InlandSDKCallback<GumpUser>() { | 62 | Passport.getInstance().registerCallback(new InlandSDKCallback<GumpUser>() { |
63 | 63 | ||
64 | @Override | 64 | @Override |
65 | public void onSuccess(GumpUser result) { | 65 | public void onSuccess(GumpUser result) { |
66 | Logger.d(TAG, "gumpUser:" + result.toString()); | 66 | Logger.d(TAG, "gumpUser:" + result.toString()); |
67 | btnLogin.setVisibility(View.GONE); | 67 | btnLogin.setVisibility(View.GONE); |
68 | tvUserInfo.setText(formatUserInfo(result)); | 68 | tvUserInfo.setText(formatUserInfo(result)); |
69 | btnPay.setVisibility(View.VISIBLE); | 69 | btnPay.setVisibility(View.VISIBLE); |
70 | } | 70 | } |
71 | 71 | ||
72 | @Override | 72 | @Override |
73 | public void onError(InlandSDKException error) { | 73 | public void onError(InlandSDKException error) { |
74 | Logger.d(TAG, "login error:" + error.getMessage()); | 74 | Logger.d(TAG, "login error:" + error.getMessage()); |
75 | } | 75 | } |
76 | 76 | ||
77 | @Override | 77 | @Override |
78 | public void onCancel() { | 78 | public void onCancel() { |
79 | Logger.d(TAG, "login be canceled"); | 79 | Logger.d(TAG, "login be canceled"); |
80 | } | 80 | } |
81 | }); | 81 | }); |
82 | 82 | ||
83 | 3)执行登录操作 | 83 | 3)执行登录操作 |
84 | 84 | ||
85 | Passport.getInstance().login(MainActivity.this); | 85 | Passport.getInstance().login(MainActivity.this); |
86 | 86 | ||
87 | 4)支付操作 | 87 | 4)支付操作 |
88 | 88 | ||
89 | PayRequest payRequest = new PayRequest(); | 89 | PayRequest payRequest = new PayRequest(); |
90 | payRequest.setPrice(1); | 90 | payRequest.setPrice(1); |
91 | payRequest.setProduct("玄冥剑"); | 91 | payRequest.setProduct("玄冥剑"); |
92 | payRequest.setExtOrder("p100201508311730"); | 92 | payRequest.setExtOrder("p100201508311730"); |
93 | payRequest.setGumpUid(Passport.getInstance().getGumpUser().getUid()); | 93 | payRequest.setGumpUid(Passport.getInstance().getGumpUser().getUid()); |
94 | InlandSDK.purchase(MainActivity.this, payRequest, new PurchaseCallback() { | 94 | InlandSDK.purchase(MainActivity.this, payRequest, new PurchaseCallback() { |
95 | 95 | ||
96 | @Override | 96 | @Override |
97 | public void onPurchaseError(Exception e) { | 97 | public void onPurchaseError(Exception e) { |
98 | Logger.w(TAG, "purchase error:" + e.getMessage()); | 98 | Logger.w(TAG, "purchase error:" + e.getMessage()); |
99 | tvPurchaseResult.setText("purchase occured an error:" + e.getMessage()); | 99 | tvPurchaseResult.setText("purchase occured an error:" + e.getMessage()); |
100 | } | 100 | } |
101 | 101 | ||
102 | @Override | 102 | @Override |
103 | public void onPurchaseSuccess(String gumpTransId, String extOrder) { | 103 | public void onPurchaseSuccess(String gumpTransId, String extOrder) { |
104 | Logger.d(TAG, "purchase success:" + gumpTransId + ",extorder:" + extOrder); | 104 | Logger.d(TAG, "purchase success:" + gumpTransId + ",extorder:" + extOrder); |
105 | tvPurchaseResult.setText("purchase " + gumpTransId + " success,extorder:" + extOrder); | 105 | tvPurchaseResult.setText("purchase " + gumpTransId + " success,extorder:" + extOrder); |
106 | } | 106 | } |
107 | 107 | ||
108 | @Override | 108 | @Override |
109 | public void onPurchaseCanceled() { | 109 | public void onPurchaseCanceled() { |
110 | Logger.d(TAG, "purchase be canceled"); | 110 | Logger.d(TAG, "purchase be canceled"); |
111 | tvPurchaseResult.setText("purchase be canceled"); | 111 | tvPurchaseResult.setText("purchase be canceled"); |
112 | } | 112 | } |
113 | }); | 113 | }); |
114 | 114 | ||
115 | 5)配置onActivityResult拦截处理,请在activity的onActivityResult方法内增加InlandSDK的处理方法onActivityResult,当此方法返回true时,说明结果已处理,否则说明未对结果进行处理 | 115 | 5)配置onActivityResult拦截处理,请在activity的onActivityResult方法内增加InlandSDK的处理方法onActivityResult,当此方法返回true时,说明结果已处理,否则说明未对结果进行处理 |
116 | 116 | ||
117 | if (!InlandSDK.onActivityResult(requestCode, resultCode, data)) | 117 | if (!InlandSDK.onActivityResult(requestCode, resultCode, data)) |
118 | super.onActivityResult(requestCode, resultCode, data); | 118 | super.onActivityResult(requestCode, resultCode, data); |