Blame view

IntegrationGuide.md 4.64 KB
5777c2e13   赵康   refactor the name...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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
118
  ##InlandSDK integration guide   
  ###本sdk包含登录和支付功能,支付包含微信支付,支付宝支付和银联支付,因此接入前请申请好各支付渠道的参数  
  1.获取gump分配的appid和appkey  
  2.导入InlandSDK库工程,并将自己的android工程设置引用此库工程  
  3.配置AndroidManifest.xml,分为3部分  
  1)确保有以下permission:  
  
  	<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" />
  
  2)需要在application内增加如下内容,**微信回调activity必须是 "项目包名.wxapi.WXPayEntryActivity",不可更改,且此activity需继承com.gump.inland.gamesdk.WXPayEntryBaseActivity**:  
  
  	    <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>
          <!-- wx callback 需要根据规则配置,此处请勿直接拷贝-->
          <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"
              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);