Commit 270adbff9ba02786ea0850010fbba352b4a9e5e6

Authored by 赵康
1 parent d79bd9986c
Exists in master

complete guide

Showing 1 changed file with 83 additions and 6 deletions Inline Diff

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