Blame view

IntegrationGuide.md 4.82 KB
2dc11c561   赵康   add readme
1
2
  ## InlandSDK integration guide   
  ### 本sdk包含登录和支付功能,支付包含微信支付,支付宝支付和银联支付,因此接入前请申请好各支付渠道的参数  
5777c2e13   赵康   refactor the name...
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
  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.代码接入:  
bb06908ca   赵康   modify doc for ad...
56
57
58
  1)sdk初始化,以下方法二选一
  	
  	//若游戏不区分渠道使用此方法
5777c2e13   赵康   refactor the name...
59
  	InlandSDK.initializeSDK(gumpAPPId, GumpAPPKey);
bb06908ca   赵康   modify doc for ad...
60
61
  	//若游戏区分渠道使用此方法,传入渠道参数
  	InlandSDK.initializeSDK(gumpAppId,GumpAPPKey,channel);
5777c2e13   赵康   refactor the name...
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
119
120
121
  
  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);