Blame view

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