Commit 6a217e5ca6da7e048994314a3e4518619ca0b213

Authored by 赵康
1 parent c4a5d1b800
Exists in master

version4.5.0

Showing 5 changed files with 270 additions and 263 deletions Side-by-side Diff

GameSDKDemo/build.gradle
... ... @@ -34,7 +34,7 @@ repositories {
34 34 }
35 35  
36 36 android {
37   - compileSdkVersion 22
  37 + compileSdkVersion 26
38 38 buildToolsVersion "27.0.3"
39 39  
40 40 signingConfigs {
... ... @@ -48,7 +48,7 @@ android {
48 48  
49 49 defaultConfig {
50 50 minSdkVersion 14
51   - targetSdkVersion 22
  51 + targetSdkVersion 26
52 52 versionCode 5
53 53 versionName "1.3"
54 54 testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
... ... @@ -73,11 +73,11 @@ android {
73 73 dependencies {
74 74 implementation fileTree(include: ['*.jar'], dir: 'libs')
75 75 testImplementation 'junit:junit:4.12'
76   - implementation 'com.android.support:appcompat-v7:22.2.0'
  76 + implementation 'com.android.support:appcompat-v7:26.1.0'
77 77 //微信
78 78 implementation 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:5.1.4'
79 79 //VK
80   -// implementation 'com.gumptech:VKsdk:1.5.4'
  80 + implementation 'com.gumptech:VKsdk:1.5.4'
81 81 // implementation project(':GameSDK')
82   - implementation 'com.gumptech.sdk:GameSDK:4.4.0'
  82 + implementation 'com.gumptech.sdk:GameSDK:4.5.0'
83 83 }
GameSDKDemo/src/main/AndroidManifest.xml
... ... @@ -4,7 +4,7 @@
4 4  
5 5 <uses-sdk
6 6 android:minSdkVersion="9"
7   - android:targetSdkVersion="20"/>
  7 + android:targetSdkVersion="23"/>
8 8  
9 9 <uses-permission android:name="android.permission.INTERNET"/>
10 10 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
... ... @@ -24,8 +24,7 @@
24 24 android:name="com.gumptech.sdk.demo.MainActivity"
25 25 android:configChanges="orientation|screenSize|keyboardHidden|keyboard|screenLayout"
26 26 android:label="@string/app_name"
27   - android:screenOrientation="landscape"
28   - >
  27 + android:screenOrientation="portrait">
29 28 <intent-filter>
30 29 <action android:name="android.intent.action.MAIN"/>
31 30  
... ... @@ -42,8 +41,8 @@
42 41 <activity
43 42 android:name="com.gumptech.sdk.PaymentActivity"
44 43 android:configChanges="orientation|screenSize|keyboardHidden|keyboard|screenLayout"
45   - android:launchMode="singleTask"
46   - android:theme="@android:style/Theme.Translucent.NoTitleBar">
  44 + android:theme="@android:style/Theme.Light.NoTitleBar"
  45 + android:launchMode="singleTask">
47 46 <intent-filter>
48 47 <category android:name="android.intent.category.DEFAULT"/>
49 48  
GameSDKDemo/src/main/java/com/gumptech/sdk/demo/MainActivity.java
... ... @@ -57,10 +57,10 @@ public class MainActivity extends Activity implements PurchaseCallback {
57 57 @Override
58 58 public void onClick(View v) {
59 59 Bundle payInfo = new Bundle();
60   - payInfo.putString("product", "test2");
  60 + payInfo.putString("product", "wa2");
61 61 payInfo.putFloat("amount", 0.1f);
62 62 payInfo.putString("extraInfo", "This is demo!");
63   - payInfo.putString("serverId", "100");
  63 + payInfo.putString("serverId", "s1");
64 64 payInfo.putString("roleId", "100123");
65 65 payInfo.putString("sessionKey", gumpUser.getSessionKey().getToken());
66 66 GumpSDK.pay(MainActivity.this, payInfo, MainActivity.this);
... ... @@ -78,6 +78,8 @@ public class MainActivity extends Activity implements PurchaseCallback {
78 78 GumpSDK.iap(MainActivity.this, payInfo, MainActivity.this);
79 79 }
80 80 });
  81 +
  82 + GumpSDK.getSettings().setDebug(false);
81 83 /**
82 84 * 设置否是打印debug日志
83 85 */
... ... @@ -95,7 +97,7 @@ public class MainActivity extends Activity implements PurchaseCallback {
95 97 * 设置启用Wechat登录
96 98 *
97 99 */
98   - GumpSDK.getSettings().requestThirdSupport(SDKSettings.THIRD_SUPPORT_WECHAT);
  100 +// GumpSDK.getSettings().requestThirdSupport(SDKSettings.THIRD_SUPPORT_WECHAT);
99 101  
100 102 /**
101 103 * 设置启用google登录
... ... @@ -123,8 +125,6 @@ public class MainActivity extends Activity implements PurchaseCallback {
123 125 GumpSDK.setUserStateListener(new LoginStateListener() {
124 126 @Override
125 127 public void onLoginSuccess(GumpUser user) {
126   -// ClipboardManager cm = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
127   -// cm.setText(user.getSessionKey());
128 128 gumpUser = user;
129 129 String userType = null;
130 130 switch (user.getAccountType()) {
... ... @@ -174,6 +174,11 @@ public class MainActivity extends Activity implements PurchaseCallback {
174 174 btnLoginOrLogout.setTag(0);
175 175 userInfo.setText("User is logout");
176 176 }
  177 +
  178 + @Override
  179 + public void onPermissionDenied() {
  180 +
  181 + }
177 182 });
178 183 /**
179 184 * 初始化sdk
IntegrationGuide.md
... ... @@ -1,248 +0,0 @@
1   -# Gump SDK 4 for Android接入文档
2   -
3   -V4.4.0
4   -2018年5月08日
5   -
6   -## 版本概述
7   -
8   -此版本为使用AndroidStudio开发的版本,一改eclipse的工程依赖方式,使用aar的方式提供sdk接入包,除功能外,相对上一版本没有继承关系,请按此文档描述接入.
9   -
10   -此SDK适用android4.0以上系统.
11   -
12   -## 第一章 接入指南
13   -### 1.依赖导入
14   -将aar添加到libs目录下,然后配置gradle
15   -以下为必须项
16   -
17   - repositories{
18   - maven{
19   - url "http://117.50.8.198:8081/nexus/content/repositories/sdk"
20   - }
21   - }
22   - dependencies {
23   - implementation 'com.gumptech.sdk:GameSDK:4.4.0'
24   - }
25   -
26   -
27   -可选接入vk登录时,需要导入vkLibrary工程,并配置模块依赖,如下
28   -
29   - implementation 'com.gumptech:VKsdk:1.5.4'
30   -
31   -选择接入微信登录时,需要增加微信依赖,如下:
32   -
33   - implementation 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:5.1.4'
34   -
35   -### 2.修改AndroidManifest.xml文件
36   -首先添加必要的权限,如下所示:
37   -
38   - <uses-permission android:name="android.permission.INTERNET" />
39   - <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
40   - <uses-permission android:name="android.permission.GET_ACCOUNTS"/>
41   - <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
42   - <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
43   - <!-- VERY IMPORTANT! Don't forget this permission, or in-app billing won't work. -->
44   - <uses-permission android:name="com.android.vending.BILLING" />
45   -
46   -其次注册相应的Activity,具体如下:
47   -
48   - <activity
49   - android:name="com.gumptech.sdk.ContainerActivity"
50   - android:configChanges="orientation|screenSize|keyboardHidden|keyboard|screenLayout"
51   - android:windowSoftInputMode="stateAlwaysHidden|adjustPan"
52   - android:launchMode="singleTask"
53   - android:theme="@style/Theme.TransparentWin" >
54   - </activity>
55   - <activity
56   - android:name="com.gumptech.sdk.PaymentActivity"
57   - android:configChanges="orientation|screenSize|keyboardHidden|keyboard|screenLayout"
58   - android:launchMode="singleTask"
59   - android:theme="@android:style/Theme.Translucent.NoTitleBar" >
60   - <intent-filter>
61   - <category android:name="android.intent.category.DEFAULT" />
62   - <action android:name="android.intent.action.VIEW" />
63   - <category android:name="android.intent.category.BROWSABLE" />
64   - <data
65   - android:host="com.gump.sdk"
66   - android:scheme="gump+游戏的appId" />
67   - </intent-filter>
68   - </activity>
69   - <activity
70   - android:name="com.gumptech.sdk.ExchangeWindow"
71   - android:configChanges="orientation|screenSize|keyboardHidden|keyboard|screenLayout"
72   - android:theme="@style/Theme.WinForExchange" >
73   - </activity>
74   -
75   - <service android:name="com.gumptech.sdk.PushService" />
76   -
77   - <!-- vk登录使用,若不接入vk,不需配置 -->
78   - <activity android:name="com.vk.sdk.VKOpenAuthActivity" />
79   - <activity
80   - android:name="com.vk.sdk.VKServiceActivity"
81   - android:label="ServiceActivity"
82   - android:theme="@style/VK.Transparent" />
83   - <!--wechat接入使用,不接入不需要配置-->
84   - <activity
85   - android:name=".wxapi.WXEntryActivity"
86   - android:exported="true"></activity>
87   -
88   -### 3.向Gump平台索要游戏ID(AppID),完成代码接入
89   -正式开始接入逻辑代码前,先介绍下一些附加设置,以方便代码接入
90   -
91   -*是否打印debug日志
92   -
93   - GumpSDK.getSettings().enableDebugLogging(true);
94   -
95   -*横竖屏控制,默认为横屏,参数为false即为竖屏
96   -
97   - GumpSDK.getSettings().setScreenLandscape(true);
98   -
99   -*设置需要启用的第三方登录,参数可选类型见第二章:[第三方登录平台](http://repository.gumptech.com:81/document/gamesdk4-android/blob/master/IntegrationGuide.md#1-third_plat) 字段说明
100   -
101   - GumpSDK.getSettings().requestThirdSupport(SDKSettings.THIRD_SUPPORT_*);
102   -
103   -*若要使用V4版支付请设置
104   -
105   - GumpSDK.getSettings().setPaymentVersion(PaymentVersion.V4);
106   -
107   -#### 1.调用GumpSDK前需要执行初始化。
108   -
109   -若不需要分渠道
110   -
111   - GumpSDK.init(Context,Appid, Appkey,InitializeCallback);
112   -如果需要定义渠道,必须使用如下方法
113   -
114   - GumpSDK.init(Context,Appid, Appkey,ChannelId,InitializeCallback);
115   -
116   -InitializeCallback为初始化回调接口,此接口只有一个回调方法initComplete(int result) result标识是否初始化成功,当result等于GumpSDK.CODE.OK时为成功,其他为失败
117   -
118   -#### 2.调用GumpSDK的开始方法,将执行登录流程,需要一个Activity实例作参数
119   -
120   - GumpSDK.start(Activity);
121   -在此之前,开发者需要注册用户状态监听以接受用户的登录/登出通知,通常如下:
122   -
123   - GumpSDK.setUserStateListener(new LoginStateListener() {
124   - @Override
125   - public void onLoginSuccess(GumpUser gumpUser) {
126   - //登录成功,用户信息包含在GumpUser对象里
127   - }
128   -
129   - @Override
130   - public void onLoginFailed(int code, String msg) {
131   - //登录出错,根据错误码和信息判断错误类型
132   - Toast.makeText(MainActivity.this, "Login failed:code="+code+",message="+msg, Toast.LENGTH_SHORT).show();
133   - }
134   -
135   - @Override
136   - public void onLoginCanceled() {
137   - //用户取消登录
138   - Toast.makeText(MainActivity.this, "operate be canceled", Toast.LENGTH_SHORT).show();
139   - }
140   -
141   - @Override
142   - public void onLogout() {
143   - //用户登出
144   -
145   - }
146   - });
147   -
148   -如上成功登录后收到的GumpUser对象包含以下信息
149   -
150   - gumpUser.getUid();//获取用户的userid,此Id标识唯一用户!
151   - gumpUser.getAccountType();//用户类型,此类型数据可从GumpPreference常量获取
152   - gumpUser.getSessionKey();//登录的sessionKey对象,获取sessionKey字符串请使用此对象的getToken()方法
153   -
154   -***注意:若需要使用微信登录,需要在packageName.wxapi下增加一个名为WXEntryActivity并继承com.gumptech.sdk.WXCallbackActivity的Activity,并参考AndroidManifest.xml设置的说明,做相应的配置,packageName为应用的包名,此Activity不须任何实现。***
155   -
156   -***以GumpSDKDemo为例,包名为com.gumptech.sdk.demo,则WXEntryActivity的完整包路径为:com.gumptech.sdk.demo.wxapi.WXEntryActivity***
157   -
158   -#### 3.支付功能
159   -1)使用gump通行证登录,其中除nick外所有参数为必传参数
160   -
161   - Bundle payInfo = new Bundle();
162   - payInfo.putString("nick", "thi");
163   - payInfo.putString("product", "元宝");
164   - payInfo.putFloat("amount", 40.0f);
165   - payInfo.putString("extraInfo", "This is demo!");
166   - payInfo.putString("serverId", "B4003");
167   - payInfo.putString("roleId", "10010");
168   - payInfo.putString("sessionKey","sessionkey");
169   - GumpSDK.pay(MainActivity.this, payInfo,PurchaseCallback);
170   -调用pay方法时,必须穿入一个bundle对象,包含如上字段,除nick外所有字段必须全部包含,其中sessionKey为登录时返回的sessionKey
171   -
172   -
173   -2)IAP支付
174   -
175   - Bundle payInfo = new Bundle();
176   - payInfo.putString("product", "gp_skuId");
177   - payInfo.putFloat("amount", 0.1f);
178   - payInfo.putString("extraInfo", "This is demo!");
179   - payInfo.putString("serverId", "100");
180   - payInfo.putString("roleId","100123");
181   - GumpSDK.iap(MainActivity.this, payInfo, PurchaseCallback);
182   -
183   -3)PurchaseCallback为支付状态回调接口,此接口含有3个方法
184   -
185   - @Override
186   - public void onPurchaseCompleted(PurchaseResult result) {
187   - Log.i(TAG,"purchase completed");
188   - }
189   -
190   - @Override
191   - public void onPurchaseError(int code, String msg) {
192   - Log.i(TAG,"purchase error");
193   - }
194   -
195   - @Override
196   - public void onPurchaseCanceled() {
197   - Log.i(TAG,"purchase canceled");
198   - }
199   -
200   -#### 4.注销登录
201   -
202   - GumpSDK.logout(Activity);
203   -当此方法调用后,用户退出登录,并会通过LoginStateListener接口通知调用程序!为了便于用户切换登录账户,请在游戏内提供用户注销的触发按钮
204   -#### 5.运营开关接口,若需要接入,会有我方运营人员提出需求,否则不需要接入(若对此接口不知所云,即可认为不需要接入,请自行忽略)
205   -
206   - GumpSDK.checkRisk(this, new ResultCallback() {
207   - @Override
208   - public void onResult(boolean result) {
209   - Log.i(TAG,result?"There is some risks":"Nothing is risk");
210   - }
211   - });
212   -
213   -## 第二章 常量字段与代码
214   -### 1.第三方登录平台(third_plat)
215   - | 常量字段 | 说明 |
216   - |--------------------------------|--------------|
217   - |SDKSettings.THIRD_SUPPORT_FB |Facebook登录 |
218   - |SDKSettings.THIRD_SUPPORT_GOOGLE|Google登录 |
219   - |SDKSettings.THIRD_SUPPORT_LINE |Line登录 |
220   - |SDKSettings.THIRD_SUPPORT_VK |VK登录 |
221   - |SDKSettings.THIRD_SUPPORT_WECHAT|微信登录 |
222   -### 2.登录账户类型
223   - | 常量字段 | 说明 |
224   - |-------------------------------------|-------------|
225   - |GumpPreference.ACCOUNT_TYPE_FB |Facebook用户 |
226   - |GumpPreference.ACCOUNT_TYPE_REG |Gump注册用户 |
227   - |GumpPreference.ACCOUNT_TYPE_QUICK_REG|快速注册用户 |
228   - |GumpPreference.ACCOUNT_TYPE_GOOGLE |Google用户 |
229   - |GumpPreference.ACCOUNT_TYPE_LINE |Line用户 |
230   - |GumpPreference.ACCOUNT_TYPE_VK |VK用户 |
231   - |GumpPreference.ACCOUNT_TYPE_WECHAT |微信用户 |
232   -
233   -## 第三章 常见问题
234   -### 问题1: 如何避免混淆对SDK的影响?
235   -解答:有些开发者对接入了SDK的程序进行混淆时,有可能会覆盖某些java
236   -类,导致SDK无法正常工作,解决方法如下:
237   -Ø 请开发者在混淆配置文件proguard.cfg或proguard-project.txt的最后加上
238   -
239   - -keepattributes *Annotation*,InnerClasses,SourceFile,LineNumberTable
240   - -keep public class * extends android.app.Service
241   - -keep public class com.google.vending.licensing.ILicensingService
242   - -keep public class com.android.vending.licensing.ILicensingService
243   - -keep class com.gumptech.sdk.view.* {*;}
244   - -keep class com.gumptech.sdk.web.* {*;}
245   - -keep class com.gumptech.sdk.bridge.impl.*{*;}
246   -
247   -
248   -使得混淆的时候不会影响SDK的命名空间。
249 0 \ No newline at end of file
... ... @@ -0,0 +1,251 @@
  1 +# Gump SDK 4 for Android接入文档
  2 +
  3 +V4.5.0
  4 +2018年6月13日
  5 +
  6 +## 版本概述
  7 +
  8 +此版本为使用AndroidStudio开发的版本,一改eclipse的工程依赖方式,使用aar的方式提供sdk接入包,除功能外,相对上一版本没有继承关系,请按此文档描述接入.
  9 +
  10 +此SDK适用android4.0以上系统.
  11 +
  12 +## 第一章 接入指南
  13 +### 1.依赖导入
  14 +配置gradle,以下为必须项
  15 +
  16 + repositories{
  17 + maven{
  18 + url "http://117.50.8.198:8081/nexus/content/repositories/sdk"
  19 + }
  20 + }
  21 + dependencies {
  22 + implementation 'com.gumptech.sdk:GameSDK:4.4.0'
  23 + }
  24 +
  25 +
  26 +可选接入vk登录时,需要导入vkLibrary工程,并配置模块依赖,如下
  27 +
  28 + implementation 'com.gumptech:VKsdk:1.5.4'
  29 +
  30 +选择接入微信登录时,需要增加微信依赖,如下:
  31 +
  32 + implementation 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:5.1.4'
  33 +
  34 +### 2.修改AndroidManifest.xml文件
  35 +首先添加必要的权限,如下所示:
  36 +
  37 + <uses-permission android:name="android.permission.INTERNET" />
  38 + <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
  39 + <uses-permission android:name="android.permission.GET_ACCOUNTS"/>
  40 + <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
  41 + <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
  42 + <!-- VERY IMPORTANT! Don't forget this permission, or in-app billing won't work. -->
  43 + <uses-permission android:name="com.android.vending.BILLING" />
  44 +
  45 +其次注册相应的Activity,具体如下:
  46 +
  47 + <activity
  48 + android:name="com.gumptech.sdk.ContainerActivity"
  49 + android:configChanges="orientation|screenSize|keyboardHidden|keyboard|screenLayout"
  50 + android:windowSoftInputMode="stateAlwaysHidden|adjustPan"
  51 + android:launchMode="singleTask"
  52 + android:theme="@style/Theme.TransparentWin" >
  53 + </activity>
  54 + <activity
  55 + android:name="com.gumptech.sdk.PaymentActivity"
  56 + android:configChanges="orientation|screenSize|keyboardHidden|keyboard|screenLayout"
  57 + android:launchMode="singleTask"
  58 + android:theme="@android:style/Theme.Translucent.NoTitleBar" >
  59 + <intent-filter>
  60 + <category android:name="android.intent.category.DEFAULT" />
  61 + <action android:name="android.intent.action.VIEW" />
  62 + <category android:name="android.intent.category.BROWSABLE" />
  63 + <data
  64 + android:host="com.gump.sdk"
  65 + android:scheme="gump+游戏的appId" />
  66 + </intent-filter>
  67 + </activity>
  68 + <activity
  69 + android:name="com.gumptech.sdk.ExchangeWindow"
  70 + android:configChanges="orientation|screenSize|keyboardHidden|keyboard|screenLayout"
  71 + android:theme="@style/Theme.WinForExchange" >
  72 + </activity>
  73 +
  74 + <service android:name="com.gumptech.sdk.PushService" />
  75 +
  76 + <!-- vk登录使用,若不接入vk,不需配置 -->
  77 + <activity android:name="com.vk.sdk.VKOpenAuthActivity" />
  78 + <activity
  79 + android:name="com.vk.sdk.VKServiceActivity"
  80 + android:label="ServiceActivity"
  81 + android:theme="@style/VK.Transparent" />
  82 + <!--wechat接入使用,不接入不需要配置-->
  83 + <activity
  84 + android:name=".wxapi.WXEntryActivity"
  85 + android:exported="true"></activity>
  86 +
  87 +### 3.向Gump平台索要游戏ID(AppID),完成代码接入
  88 +正式开始接入逻辑代码前,先介绍下一些附加设置,以方便代码接入
  89 +
  90 +*是否打印debug日志
  91 +
  92 + GumpSDK.getSettings().enableDebugLogging(true);
  93 +
  94 +*横竖屏控制,默认为横屏,参数为false即为竖屏
  95 +
  96 + GumpSDK.getSettings().setScreenLandscape(true);
  97 +
  98 +*设置需要启用的第三方登录,参数可选类型见第二章:[第三方登录平台](http://repository.gumptech.com:81/document/gamesdk4-android/blob/master/IntegrationGuide.md#1-third_plat) 字段说明
  99 +
  100 + GumpSDK.getSettings().requestThirdSupport(SDKSettings.THIRD_SUPPORT_*);
  101 +
  102 +*若要使用V4版支付请设置
  103 +
  104 + GumpSDK.getSettings().setPaymentVersion(PaymentVersion.V4);
  105 +
  106 +#### 1.调用GumpSDK前需要执行初始化。
  107 +
  108 +若不需要分渠道
  109 +
  110 + GumpSDK.init(Context,Appid, Appkey,InitializeCallback);
  111 +如果需要定义渠道,必须使用如下方法
  112 +
  113 + GumpSDK.init(Context,Appid, Appkey,ChannelId,InitializeCallback);
  114 +
  115 +InitializeCallback为初始化回调接口,此接口只有一个回调方法initComplete(int result) result标识是否初始化成功,当result等于GumpSDK.CODE.OK时为成功,其他为失败
  116 +
  117 +#### 2.调用GumpSDK的开始方法,将执行登录流程,需要一个Activity实例作参数
  118 +
  119 + GumpSDK.start(Activity);
  120 +在此之前,开发者需要注册用户状态监听以接受用户的登录/登出通知,通常如下:
  121 +
  122 + GumpSDK.setUserStateListener(new LoginStateListener() {
  123 + @Override
  124 + public void onLoginSuccess(GumpUser gumpUser) {
  125 + //登录成功,用户信息包含在GumpUser对象里
  126 + }
  127 +
  128 + @Override
  129 + public void onLoginFailed(int code, String msg) {
  130 + //登录出错,根据错误码和信息判断错误类型
  131 + Toast.makeText(MainActivity.this, "Login failed:code="+code+",message="+msg, Toast.LENGTH_SHORT).show();
  132 + }
  133 +
  134 + @Override
  135 + public void onLoginCanceled() {
  136 + //用户取消登录
  137 + Toast.makeText(MainActivity.this, "operate be canceled", Toast.LENGTH_SHORT).show();
  138 + }
  139 +
  140 + @Override
  141 + public void onLogout() {
  142 + //用户登出
  143 +
  144 + }
  145 + @Override
  146 + public void onPermissionDenied() {
  147 + //用户拒绝授予权限
  148 + }
  149 + });
  150 +
  151 +如上成功登录后收到的GumpUser对象包含以下信息
  152 +
  153 + gumpUser.getUid();//获取用户的userid,此Id标识唯一用户!
  154 + gumpUser.getAccountType();//用户类型,此类型数据可从GumpPreference常量获取
  155 + gumpUser.getSessionKey();//登录的sessionKey对象,获取sessionKey字符串请使用此对象的getToken()方法
  156 +
  157 +***注意:若需要使用微信登录,需要在packageName.wxapi下增加一个名为WXEntryActivity并继承com.gumptech.sdk.WXCallbackActivity的Activity,并参考AndroidManifest.xml设置的说明,做相应的配置,packageName为应用的包名,此Activity不须任何实现。***
  158 +
  159 +***以GumpSDKDemo为例,包名为com.gumptech.sdk.demo,则WXEntryActivity的完整包路径为:com.gumptech.sdk.demo.wxapi.WXEntryActivity***
  160 +
  161 +#### 3.支付功能
  162 +1)使用gump通行证登录,其中除nick外所有参数为必传参数
  163 +
  164 + Bundle payInfo = new Bundle();
  165 + payInfo.putString("nick", "thi");
  166 + payInfo.putString("product", "元宝");
  167 + payInfo.putFloat("amount", 40.0f);
  168 + payInfo.putString("extraInfo", "This is demo!");
  169 + payInfo.putString("serverId", "B4003");
  170 + payInfo.putString("roleId", "10010");
  171 + payInfo.putString("sessionKey","sessionkey");
  172 + GumpSDK.pay(MainActivity.this, payInfo,PurchaseCallback);
  173 +调用pay方法时,必须穿入一个bundle对象,包含如上字段,除nick外所有字段必须全部包含,其中sessionKey为登录时返回的sessionKey
  174 +
  175 +
  176 +2)IAP支付
  177 +
  178 + Bundle payInfo = new Bundle();
  179 + payInfo.putString("product", "gp_skuId");
  180 + payInfo.putFloat("amount", 0.1f);
  181 + payInfo.putString("extraInfo", "This is demo!");
  182 + payInfo.putString("serverId", "100");
  183 + payInfo.putString("roleId","100123");
  184 + GumpSDK.iap(MainActivity.this, payInfo, PurchaseCallback);
  185 +
  186 +3)PurchaseCallback为支付状态回调接口,此接口含有3个方法
  187 +
  188 + @Override
  189 + public void onPurchaseCompleted(PurchaseResult result) {
  190 + Log.i(TAG,"purchase completed");
  191 + }
  192 +
  193 + @Override
  194 + public void onPurchaseError(int code, String msg) {
  195 + Log.i(TAG,"purchase error");
  196 + }
  197 +
  198 + @Override
  199 + public void onPurchaseCanceled() {
  200 + Log.i(TAG,"purchase canceled");
  201 + }
  202 +
  203 +#### 4.注销登录
  204 +
  205 + GumpSDK.logout(Activity);
  206 +当此方法调用后,用户退出登录,并会通过LoginStateListener接口通知调用程序!为了便于用户切换登录账户,请在游戏内提供用户注销的触发按钮
  207 +#### 5.运营开关接口,若需要接入,会有我方运营人员提出需求,否则不需要接入(若对此接口不知所云,即可认为不需要接入,请自行忽略)
  208 +
  209 + GumpSDK.checkRisk(this, new ResultCallback() {
  210 + @Override
  211 + public void onResult(boolean result) {
  212 + Log.i(TAG,result?"There is some risks":"Nothing is risk");
  213 + }
  214 + });
  215 +
  216 +## 第二章 常量字段与代码
  217 +### 1.第三方登录平台(third_plat)
  218 + | 常量字段 | 说明 |
  219 + |--------------------------------|--------------|
  220 + |SDKSettings.THIRD_SUPPORT_FB |Facebook登录 |
  221 + |SDKSettings.THIRD_SUPPORT_GOOGLE|Google登录 |
  222 + |SDKSettings.THIRD_SUPPORT_LINE |Line登录 |
  223 + |SDKSettings.THIRD_SUPPORT_VK |VK登录 |
  224 + |SDKSettings.THIRD_SUPPORT_WECHAT|微信登录 |
  225 +### 2.登录账户类型
  226 + | 常量字段 | 说明 |
  227 + |-------------------------------------|-------------|
  228 + |GumpPreference.ACCOUNT_TYPE_FB |Facebook用户 |
  229 + |GumpPreference.ACCOUNT_TYPE_REG |Gump注册用户 |
  230 + |GumpPreference.ACCOUNT_TYPE_QUICK_REG|快速注册用户 |
  231 + |GumpPreference.ACCOUNT_TYPE_GOOGLE |Google用户 |
  232 + |GumpPreference.ACCOUNT_TYPE_LINE |Line用户 |
  233 + |GumpPreference.ACCOUNT_TYPE_VK |VK用户 |
  234 + |GumpPreference.ACCOUNT_TYPE_WECHAT |微信用户 |
  235 +
  236 +## 第三章 常见问题
  237 +### 问题1: 如何避免混淆对SDK的影响?
  238 +解答:有些开发者对接入了SDK的程序进行混淆时,有可能会覆盖某些java
  239 +类,导致SDK无法正常工作,解决方法如下:
  240 +Ø 请开发者在混淆配置文件proguard.cfg或proguard-project.txt的最后加上
  241 +
  242 + -keepattributes *Annotation*,InnerClasses,SourceFile,LineNumberTable
  243 + -keep public class * extends android.app.Service
  244 + -keep public class com.google.vending.licensing.ILicensingService
  245 + -keep public class com.android.vending.licensing.ILicensingService
  246 + -keep class com.gumptech.sdk.view.* {*;}
  247 + -keep class com.gumptech.sdk.web.* {*;}
  248 + -keep class com.gumptech.sdk.bridge.impl.*{*;}
  249 +
  250 +
  251 +使得混淆的时候不会影响SDK的命名空间。
0 252 \ No newline at end of file