Commit 2a5af05fae54d083d56df35b01f8a491a4cb95f9

Authored by 赵康
1 parent 1b1227b3bf
Exists in master

release 1.0.3

修改横竖屏切换崩溃或重复加载问题
增加支付宝页面支付配置,支持无支付宝客户端时使用页面支付
增加微信支付的条件判断,无微信不显示微信支付
增加activity configChanges配置,过滤屏幕改变引起的重加载
修改cn域名

Showing 7 changed files with 55 additions and 28 deletions Inline Diff

InlandSDKDemo/AndroidManifest.xml
1 <?xml version="1.0" encoding="utf-8"?> 1 <?xml version="1.0" encoding="utf-8"?>
2 <manifest xmlns:android="http://schemas.android.com/apk/res/android" 2 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
3 package="com.ninjaonline" 3 package="com.ninjaonline"
4 android:versionCode="1" 4 android:versionCode="1"
5 android:versionName="1.0" > 5 android:versionName="1.0" >
6 6
7 <uses-sdk 7 <uses-sdk
8 android:minSdkVersion="10" 8 android:minSdkVersion="10"
9 android:targetSdkVersion="21" /> 9 android:targetSdkVersion="21" />
10 10
11 <uses-permission android:name="android.permission.INTERNET" /> 11 <uses-permission android:name="android.permission.INTERNET" />
12 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 12 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
13 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 13 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
14 <uses-permission android:name="android.permission.BLUETOOTH" /> 14 <uses-permission android:name="android.permission.BLUETOOTH" />
15 <uses-permission android:name="android.permission.GET_ACCOUNTS" /> 15 <uses-permission android:name="android.permission.GET_ACCOUNTS" />
16 <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 16 <uses-permission android:name="android.permission.READ_PHONE_STATE" />
17 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 17 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
18 <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> 18 <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
19 <uses-permission android:name="android.permission.WRITE_SETTINGS" /> 19 <uses-permission android:name="android.permission.WRITE_SETTINGS" />
20 <!-- 以下是银联支付专用 --> 20 <!-- 以下是银联支付专用 -->
21 <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> 21 <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
22 22
23 23
24 <application 24 <application
25 android:allowBackup="true" 25 android:allowBackup="true"
26 android:icon="@drawable/ic_launcher" 26 android:icon="@drawable/ic_launcher"
27 android:label="@string/app_name" > 27 android:label="@string/app_name" >
28 <activity 28 <activity
29 android:name="com.gump.inland.sdk.demo.MainActivity" 29 android:name="com.gump.inland.sdk.demo.MainActivity"
30 android:screenOrientation="landscape"
31 android:configChanges="orientation|screenSize|keyboardHidden|keyboard|screenLayout"
30 android:label="@string/app_name" > 32 android:label="@string/app_name" >
31 <intent-filter> 33 <intent-filter>
32 <action android:name="android.intent.action.MAIN" /> 34 <action android:name="android.intent.action.MAIN" />
33
34 <category android:name="android.intent.category.LAUNCHER" /> 35 <category android:name="android.intent.category.LAUNCHER" />
35 </intent-filter> 36 </intent-filter>
36 <intent-filter> 37 <intent-filter>
37 <action android:name="android.intent.action.VIEW" /> 38 <action android:name="android.intent.action.VIEW" />
38 39
39 <category android:name="android.intent.category.DEFAULT" /> 40 <category android:name="android.intent.category.DEFAULT" />
40 41
41 <data android:scheme="wxdb562d299ac311e0" /> 42 <data android:scheme="wxdb562d299ac311e0" />
42 </intent-filter> 43 </intent-filter>
43 </activity> 44 </activity>
44 <activity 45 <activity
45 android:name="com.gump.inland.gamesdk.PassportBaseActivity" 46 android:name="com.gump.inland.gamesdk.PassportBaseActivity"
47 android:configChanges="orientation|screenSize|keyboardHidden|keyboard|screenLayout"
46 android:theme="@style/Theme.TransparentWin" > 48 android:theme="@style/Theme.TransparentWin" >
47 </activity> 49 </activity>
48 <!-- wx callback --> 50 <!-- wx callback -->
49 <activity 51 <activity
50 android:name="com.ninjaonline.wxapi.WXPayEntryActivity" 52 android:name="com.ninjaonline.wxapi.WXPayEntryActivity"
51 android:exported="true" > 53 android:exported="true" >
52 </activity> 54 </activity>
53 <!-- unionPay --> 55 <!-- unionPay -->
54 <activity 56 <activity
55 android:name="com.unionpay.uppay.PayActivity" 57 android:name="com.unionpay.uppay.PayActivity"
56 android:configChanges="orientation|keyboardHidden" 58 android:configChanges="orientation|keyboardHidden"
57 android:excludeFromRecents="true" 59 android:excludeFromRecents="true"
58 android:label="@string/app_name" 60 android:label="@string/app_name"
59 android:screenOrientation="portrait" 61 android:screenOrientation="portrait"
60 android:windowSoftInputMode="adjustResize" /> 62 android:windowSoftInputMode="adjustResize" />
63 <!-- alipay sdk begin -->
64 <activity
65 android:name="com.alipay.sdk.app.H5PayActivity"
66 android:configChanges="orientation|keyboardHidden|navigation"
67 android:exported="false"
68 android:screenOrientation="behind"
69 android:windowSoftInputMode="adjustResize|stateHidden" >
70 </activity>
71
72 <!-- alipay sdk end -->
61 </application> 73 </application>
62 74
InlandSDKDemo/src/com/gump/inland/sdk/demo/MainActivity.java
1 package com.gump.inland.sdk.demo; 1 package com.gump.inland.sdk.demo;
2 2
3 import android.app.Activity; 3 import android.app.Activity;
4 import android.content.Intent; 4 import android.content.Intent;
5 import android.os.Bundle; 5 import android.os.Bundle;
6 import android.util.Log; 6 import android.util.Log;
7 import android.view.View; 7 import android.view.View;
8 import android.widget.Button; 8 import android.widget.Button;
9 import android.widget.TextView; 9 import android.widget.TextView;
10 10
11 import com.gump.inland.gamesdk.InlandSDK; 11 import com.gump.inland.gamesdk.InlandSDK;
12 import com.gump.inland.gamesdk.InlandSDKCallback; 12 import com.gump.inland.gamesdk.InlandSDKCallback;
13 import com.gump.inland.gamesdk.InlandSDKException; 13 import com.gump.inland.gamesdk.InlandSDKException;
14 import com.gump.inland.gamesdk.bean.GumpUser; 14 import com.gump.inland.gamesdk.bean.GumpUser;
15 import com.gump.inland.gamesdk.bean.PayRequest; 15 import com.gump.inland.gamesdk.bean.PayRequest;
16 import com.gump.inland.gamesdk.callback.PurchaseCallback; 16 import com.gump.inland.gamesdk.callback.PurchaseCallback;
17 import com.gump.inland.gamesdk.passport.Passport; 17 import com.gump.inland.gamesdk.passport.Passport;
18 import com.ninjaonline.R; 18 import com.ninjaonline.R;
19 19
20 public class MainActivity extends Activity { 20 public class MainActivity extends Activity {
21 21
22 private static final String TAG = "MainActivity"; 22 private static final String TAG = "MainActivity";
23 private TextView tvSDKInfo; 23 private TextView tvSDKInfo;
24 private TextView tvUserInfo; 24 private TextView tvUserInfo;
25 private TextView tvPurchaseResult; 25 private TextView tvPurchaseResult;
26 private Button btnLogin; 26 private Button btnLogin;
27 private Button btnPay; 27 private Button btnPay;
28 28
29 @Override 29 @Override
30 protected void onCreate(Bundle savedInstanceState) { 30 protected void onCreate(Bundle savedInstanceState) {
31 super.onCreate(savedInstanceState); 31 super.onCreate(savedInstanceState);
32 setContentView(R.layout.activity_main); 32 setContentView(R.layout.activity_main);
33 tvSDKInfo = (TextView) findViewById(R.id.sdk_info); 33 tvSDKInfo = (TextView) findViewById(R.id.sdk_info);
34 tvUserInfo = (TextView) findViewById(R.id.user_info); 34 tvUserInfo = (TextView) findViewById(R.id.user_info);
35 tvPurchaseResult = (TextView) findViewById(R.id.purchase_result); 35 tvPurchaseResult = (TextView) findViewById(R.id.purchase_result);
36 btnLogin = (Button) findViewById(R.id.login); 36 btnLogin = (Button) findViewById(R.id.login);
37 btnPay = (Button) findViewById(R.id.purchase); 37 btnPay = (Button) findViewById(R.id.purchase);
38 38
39 Log.d(TAG, "MainActivity onCreate"); 39 Log.d(TAG, "MainActivity onCreate");
40 InlandSDK.setIsDebugEnable(false); 40 InlandSDK.setIsDebugEnable(false);
41 InlandSDK.setScreenLandscape(false); 41 InlandSDK.setScreenLandscape(true);
42 InlandSDK.initializeSDK("10000", "dkfjgljdlgjldjgl","1001"); 42 InlandSDK.initializeSDK("10000", "dkfjgljdlgjldjgl");
43 Passport.getInstance().registerCallback(new InlandSDKCallback<GumpUser>() { 43 Passport.getInstance().registerCallback(new InlandSDKCallback<GumpUser>() {
44 44
45 @Override 45 @Override
46 public void onSuccess(GumpUser result) { 46 public void onSuccess(GumpUser result) {
47 Log.d(TAG, "gumpUser:" + result.toString()); 47 Log.d(TAG, "gumpUser:" + result.toString());
48 btnLogin.setVisibility(View.GONE); 48 btnLogin.setVisibility(View.GONE);
49 tvUserInfo.setText(formatUserInfo(result)); 49 tvUserInfo.setText(formatUserInfo(result));
50 btnPay.setVisibility(View.VISIBLE); 50 btnPay.setVisibility(View.VISIBLE);
51 } 51 }
52 52
53 @Override 53 @Override
54 public void onError(InlandSDKException error) { 54 public void onError(InlandSDKException error) {
55 Log.d(TAG, "login error:" + error.getMessage()); 55 Log.d(TAG, "login error:" + error.getMessage());
56 } 56 }
57 57
58 @Override 58 @Override
59 public void onCancel() { 59 public void onCancel() {
60 Log.d(TAG, "login be canceled"); 60 Log.d(TAG, "login be canceled");
61 } 61 }
62 }); 62 });
63 63
64 tvSDKInfo.setText(getSDKInfo()); 64 tvSDKInfo.setText(getSDKInfo());
65 btnLogin.setOnClickListener(new View.OnClickListener() { 65 btnLogin.setOnClickListener(new View.OnClickListener() {
66 66
67 @Override 67 @Override
68 public void onClick(View v) { 68 public void onClick(View v) {
69 Passport.getInstance().login(MainActivity.this); 69 Passport.getInstance().login(MainActivity.this);
70 } 70 }
71 }); 71 });
72 btnPay.setOnClickListener(new View.OnClickListener() { 72 btnPay.setOnClickListener(new View.OnClickListener() {
73 73
74 @Override 74 @Override
75 public void onClick(View v) { 75 public void onClick(View v) {
76 PayRequest payRequest = new PayRequest(); 76 PayRequest payRequest = new PayRequest();
77 payRequest.setPrice(1); 77 payRequest.setPrice(1);
78 payRequest.setProduct("玄冥剑"); 78 payRequest.setProduct("玄冥剑");
79 payRequest.setExtOrder("p100201508311731"); 79 payRequest.setExtOrder("p100201508311731");
80 payRequest.setGumpUid(Passport.getInstance().getGumpUser().getUid()); 80 payRequest.setGumpUid(Passport.getInstance().getGumpUser().getUid());
81 InlandSDK.purchase(MainActivity.this, payRequest, new PurchaseCallback() { 81 InlandSDK.purchase(MainActivity.this, payRequest, new PurchaseCallback() {
82 82
83 @Override 83 @Override
84 public void onPurchaseError(Exception e) { 84 public void onPurchaseError(Exception e) {
85 Log.w(TAG, "purchase error:" + e.getMessage()); 85 Log.w(TAG, "purchase error:" + e.getMessage());
86 tvPurchaseResult.setText("purchase occured an error:" + e.getMessage()); 86 tvPurchaseResult.setText("purchase occured an error:" + e.getMessage());
87 } 87 }
88 88
89 @Override 89 @Override
90 public void onPurchaseSuccess(String gumpTransId, String extOrder) { 90 public void onPurchaseSuccess(String gumpTransId, String extOrder) {
91 Log.d(TAG, "purchase success:" + gumpTransId + ",extorder:" + extOrder); 91 Log.d(TAG, "purchase success:" + gumpTransId + ",extorder:" + extOrder);
92 tvPurchaseResult.setText("purchase " + gumpTransId + " success,extorder:" + extOrder); 92 tvPurchaseResult.setText("purchase " + gumpTransId + " success,extorder:" + extOrder);
93 } 93 }
94 94
95 @Override 95 @Override
96 public void onPurchaseCanceled() { 96 public void onPurchaseCanceled() {
97 Log.d(TAG, "purchase be canceled"); 97 Log.d(TAG, "purchase be canceled");
98 tvPurchaseResult.setText("purchase be canceled"); 98 tvPurchaseResult.setText("purchase be canceled");
99 } 99 }
100 }); 100 });
101 } 101 }
102 }); 102 });
103 } 103 }
104 104
105 @Override 105 @Override
106 protected void onActivityResult(int requestCode, int resultCode, Intent data) { 106 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
107 if (!InlandSDK.onActivityResult(requestCode, resultCode, data)) 107 if (!InlandSDK.onActivityResult(requestCode, resultCode, data))
108 super.onActivityResult(requestCode, resultCode, data); 108 super.onActivityResult(requestCode, resultCode, data);
109 } 109 }
110 110
111 private String getSDKInfo() { 111 private String getSDKInfo() {
112 StringBuilder str = new StringBuilder(); 112 StringBuilder str = new StringBuilder();
113 str.append("SDK version:"); 113 str.append("SDK version:");
114 str.append(InlandSDK.getVersion()); 114 str.append(InlandSDK.getVersion());
115 str.append("\nappId:"); 115 str.append("\nappId:");
116 str.append(InlandSDK.getAppId()); 116 str.append(InlandSDK.getAppId());
117 str.append("\nappKey:"); 117 str.append("\nappKey:");
118 str.append(InlandSDK.getAppKey()); 118 str.append(InlandSDK.getAppKey());
119 return str.toString(); 119 return str.toString();
120 } 120 }
121 121
122 private String formatUserInfo(GumpUser user) { 122 private String formatUserInfo(GumpUser user) {
123 StringBuilder str = new StringBuilder(); 123 StringBuilder str = new StringBuilder();
124 str.append("Logined User information:\n"); 124 str.append("Logined User information:\n");
125 str.append("userId:" + user.getUid()); 125 str.append("userId:" + user.getUid());
126 str.append("\nacccountType:" + user.getAccountType()); 126 str.append("\nacccountType:" + user.getAccountType());
127 str.append("\nsessionKey:" + user.getSessionKey()); 127 str.append("\nsessionKey:" + user.getSessionKey());
128 return str.toString(); 128 return str.toString();
129 } 129 }
130 } 130 }
131 131
InlandSDKRelease/libs/InlandSDK_v1.0.1_proguard.jar
No preview for this file type
InlandSDKRelease/libs/InlandSDK_v1.0.3_proguard.jar
No preview for this file type
InlandSDKRelease/res/layout/fragment_sign_choice.xml
1 <?xml version="1.0" encoding="utf-8"?> 1 <?xml version="1.0" encoding="utf-8"?>
2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 android:layout_width="match_parent" 3 android:layout_width="match_parent"
4 android:layout_height="wrap_content" 4 android:layout_height="wrap_content"
5 android:gravity="center" 5 android:gravity="center"
6 android:orientation="vertical" > 6 android:orientation="vertical" >
7 7
8 <LinearLayout 8 <LinearLayout
9 android:layout_width="match_parent" 9 android:layout_width="match_parent"
10 android:layout_height="wrap_content" 10 android:layout_height="wrap_content"
11 android:background="@color/white_translucent" 11 android:background="@color/white_translucent"
12 android:orientation="vertical" > 12 android:orientation="vertical" >
13 13
14 <LinearLayout 14 <LinearLayout
15 android:layout_width="match_parent" 15 android:layout_width="match_parent"
16 android:layout_height="31dp" 16 android:layout_height="31dp"
17 android:layout_marginLeft="35dp" 17 android:layout_marginLeft="35dp"
18 android:layout_marginRight="35dp" 18 android:layout_marginRight="35dp"
19 android:layout_marginTop="13dp" 19 android:layout_marginTop="13dp"
20 android:background="@color/white" > 20 android:background="@color/white" >
21 21
22 <ImageView 22 <ImageView
23 android:layout_width="wrap_content" 23 android:layout_width="wrap_content"
24 android:layout_height="wrap_content" 24 android:layout_height="wrap_content"
25 android:layout_gravity="center_vertical" 25 android:layout_gravity="center_vertical"
26 android:layout_marginLeft="9.5dp" 26 android:layout_marginLeft="9.5dp"
27 android:layout_marginRight="9.5dp" 27 android:layout_marginRight="9.5dp"
28 android:src="@drawable/ic_user" /> 28 android:src="@drawable/ic_user" />
29 29
30 <View 30 <View
31 android:layout_width="1dp" 31 android:layout_width="1dp"
32 android:layout_height="20dp" 32 android:layout_height="20dp"
33 android:layout_gravity="center_vertical" 33 android:layout_gravity="center_vertical"
34 android:background="@color/light_gray" /> 34 android:background="@color/light_gray" />
35 35
36 <EditText 36 <EditText
37 android:id="@+id/username" 37 android:id="@+id/username"
38 android:layout_width="match_parent" 38 android:layout_width="match_parent"
39 android:layout_height="match_parent" 39 android:layout_height="match_parent"
40 android:background="@color/transparent" 40 android:background="@color/transparent"
41 android:hint="@string/user_name_hint" 41 android:hint="@string/user_name_hint"
42 android:paddingLeft="6dp" /> 42 android:paddingLeft="6dp" />
43 </LinearLayout> 43 </LinearLayout>
44 44
45 <LinearLayout 45 <LinearLayout
46 android:layout_width="match_parent" 46 android:layout_width="match_parent"
47 android:layout_height="31dp" 47 android:layout_height="31dp"
48 android:layout_marginLeft="35dp" 48 android:layout_marginLeft="35dp"
49 android:layout_marginRight="35dp" 49 android:layout_marginRight="35dp"
50 android:layout_marginTop="16dp" 50 android:layout_marginTop="16dp"
51 android:background="@color/white" 51 android:background="@color/white"
52 android:orientation="horizontal" > 52 android:orientation="horizontal" >
53 53
54 <ImageView 54 <ImageView
55 android:layout_width="wrap_content" 55 android:layout_width="wrap_content"
56 android:layout_height="wrap_content" 56 android:layout_height="wrap_content"
57 android:layout_gravity="center_vertical" 57 android:layout_gravity="center_vertical"
58 android:layout_marginLeft="12.5dp" 58 android:layout_marginLeft="12.5dp"
59 android:layout_marginRight="12.5dp" 59 android:layout_marginRight="12.5dp"
60 android:src="@drawable/ic_pwd" /> 60 android:src="@drawable/ic_pwd" />
61 61
62 <View 62 <View
63 android:layout_width="1dp" 63 android:layout_width="1dp"
64 android:layout_height="20dp" 64 android:layout_height="20dp"
65 android:layout_gravity="center_vertical" 65 android:layout_gravity="center_vertical"
66 android:background="@color/light_gray" /> 66 android:background="@color/light_gray" />
67 67
68 <EditText 68 <EditText
69 android:id="@+id/pwd" 69 android:id="@+id/pwd"
70 android:layout_width="match_parent" 70 android:layout_width="match_parent"
71 android:layout_height="match_parent" 71 android:layout_height="match_parent"
72 android:background="@color/white" 72 android:background="@color/white"
73 android:hint="@string/password_hint" 73 android:hint="@string/password_hint"
74 android:inputType="textPassword" 74 android:inputType="textPassword"
75 android:paddingLeft="6dp" /> 75 android:paddingLeft="6dp" />
76 </LinearLayout> 76 </LinearLayout>
77 77
78 <LinearLayout 78 <LinearLayout
79 android:layout_width="fill_parent" 79 android:layout_width="fill_parent"
80 android:layout_height="wrap_content" 80 android:layout_height="wrap_content"
81 android:layout_marginLeft="35dp" 81 android:layout_marginLeft="35dp"
82 android:layout_marginRight="35dp" 82 android:layout_marginRight="35dp"
83 android:layout_marginTop="16dp" 83 android:layout_marginTop="16dp"
84 android:orientation="horizontal" > 84 android:orientation="horizontal" >
85 85
86 <Button 86 <Button
87 android:id="@+id/gump_reg" 87 android:id="@+id/gump_reg"
88 android:layout_width="fill_parent" 88 android:layout_width="fill_parent"
89 android:layout_height="wrap_content" 89 android:layout_height="wrap_content"
90 android:layout_marginRight="10dp" 90 android:layout_marginRight="10dp"
91 android:layout_weight="1" 91 android:layout_weight="1"
92 android:background="@drawable/btn_green_bg" 92 android:background="@drawable/btn_green_bg"
93 android:text="@string/signup" 93 android:text="@string/signup"
94 android:textColor="@color/white" /> 94 android:textColor="@color/white" />
95 95
96 <Button 96 <Button
97 android:id="@+id/gump_login" 97 android:id="@+id/gump_login"
98 android:layout_width="fill_parent" 98 android:layout_width="fill_parent"
99 android:layout_height="wrap_content" 99 android:layout_height="wrap_content"
100 android:layout_marginLeft="11dp" 100 android:layout_marginLeft="11dp"
101 android:layout_weight="1" 101 android:layout_weight="1"
102 android:background="@drawable/btn_orange_bg" 102 android:background="@drawable/btn_orange_bg"
103 android:gravity="center" 103 android:gravity="center"
104 android:text="@string/login" 104 android:text="@string/login"
105 android:textColor="@android:color/white" 105 android:textColor="@android:color/white"
106 android:textSize="15sp" 106 android:textSize="15sp"
107 android:textStyle="bold" /> 107 android:textStyle="bold" />
108 </LinearLayout> 108 </LinearLayout>
109 109
110 <Button 110 <Button
111 android:id="@+id/play" 111 android:id="@+id/play"
112 android:layout_width="fill_parent" 112 android:layout_width="fill_parent"
113 android:layout_height="wrap_content" 113 android:layout_height="wrap_content"
114 android:layout_marginBottom="16dp" 114 android:layout_marginBottom="0dp"
115 android:layout_marginLeft="35dp" 115 android:layout_marginLeft="35dp"
116 android:layout_marginRight="35dp" 116 android:layout_marginRight="35dp"
117 android:layout_marginTop="16dp" 117 android:layout_marginTop="16dp"
118 android:background="@drawable/btn_orange_bg" 118 android:background="@drawable/btn_orange_bg"
119 android:padding="5dp" 119 android:padding="5dp"
120 android:text="@string/quick_play" 120 android:text="@string/quick_play"
121 android:textColor="@android:color/white" 121 android:textColor="@android:color/white"
122 android:textSize="16sp" 122 android:textSize="16sp"
123 android:textStyle="bold" /> 123 android:textStyle="bold" />
124 124
125 <ImageView 125 <ImageView
126 android:layout_width="fill_parent" 126 android:layout_width="fill_parent"
127 android:layout_height="wrap_content" 127 android:layout_height="wrap_content"
128 android:layout_marginLeft="35dp" 128 android:layout_marginLeft="35dp"
129 android:layout_marginRight="35dp" 129 android:layout_marginRight="35dp"
130 android:visibility="gone"
130 android:background="@drawable/horizontal_line" /> 131 android:background="@drawable/horizontal_line" />
131 </LinearLayout> 132 </LinearLayout>
132 133
133 <LinearLayout 134 <LinearLayout
134 android:layout_width="match_parent" 135 android:layout_width="match_parent"
135 android:layout_height="wrap_content" 136 android:layout_height="wrap_content"
136 android:background="@drawable/bottom_light_bg" 137 android:background="@drawable/bottom_light_bg"
137 android:gravity="center_horizontal" > 138 android:gravity="center_horizontal" >
138 139
139 </LinearLayout> 140 </LinearLayout>
140 141
141 </LinearLayout> 142 </LinearLayout>
InlandSDKRelease/res/values/strings.xml
1 <resources> 1 <resources>
2 2
3 <string name="user_name_hint">Email</string> 3 <string name="user_name_hint">邮箱</string>
4 <string name="password_hint">Password</string> 4 <string name="password_hint">密码</string>
5 <string name="switch_user">Change account</string> 5 <string name="switch_user">切换用户</string>
6 <string name="loging">Signing...</string> 6 <string name="loging">加载中……</string>
7 <string name="loading">loading</string> 7 <string name="loading">加载中……</string>
8 8
9 <string name="signup">Signup</string> 9 <string name="signup">注册</string>
10 <string name="login">Login</string> 10 <string name="login">登录</string>
11 <string name="quick_play">Play</string> 11 <string name="quick_play">一键登录</string>
12 <!-- toast --> 12 <!-- toast -->
13 <string name="illegal_uname_tip">Invalid Email</string> 13 <string name="illegal_uname_tip">请输入正确的邮箱</string>
14 <string name="illegal_pwd_tip">Invalid Password (6–20 characters).</string> 14 <string name="illegal_pwd_tip">密码格式不正确 (请输入6–20字符)</string>
15 <string name="illegal_user_exist">Email has already used</string> 15 <string name="illegal_user_exist">邮箱已注册</string>
16 <string name="illegal_pwd_invalid">Password is incorrect. Please try again.</string> 16 <string name="illegal_pwd_invalid">密码不正确,请重试</string>
17 <string name="illegal_user_not_exist">Invalid Email</string> 17 <string name="illegal_user_not_exist">邮箱未注册</string>
18 <string name="invalid_email">Invalid Email</string> 18 <string name="invalid_email">请输入正确的邮箱</string>
19 <string name="login_fail">Login failed</string> 19 <string name="login_fail">登录失败</string>
20 <string name="signup_fail">Signup failed</string> 20 <string name="signup_fail">注册失败</string>
21 <string name="signup_success">Sign Up Successfully</string> 21 <string name="signup_success">注册成功</string>
22 <string name="gen_quick_acc_err">Login failed, please try again</string> 22 <string name="gen_quick_acc_err">登录失败,请重试</string>
23 <string name="quick_login_err">Login failed, please try again</string> 23 <string name="quick_login_err">登录失败,请重试</string>
24 <string name="net_error">Internet unavailable, please check</string> 24 <string name="net_error">网络无法连接,请查看网络设置</string>
25 25
26 <string-array name="payment_channel"> 26 <string-array name="payment_channel">
27 <item>微信支付</item> 27 <item>微信支付</item>
28 <item>支付宝</item> 28 <item>支付宝</item>
29 <item>银联支付</item> 29 <item>银联支付</item>
30 </string-array> 30 </string-array>
31 </resources> 31 <string-array name="payment_channel_without_wx">
32 <item>支付宝</item>
33 <item>银联支付</item>
34 </string-array>
35 </resources>
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,分为3部分 5 3.配置AndroidManifest.xml,分为3部分
6 1)确保有以下permission: 6 1)确保有以下permission:
7 7
8 <uses-permission android:name="android.permission.INTERNET" /> 8 <uses-permission android:name="android.permission.INTERNET" />
9 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 9 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
10 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 10 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
11 <uses-permission android:name="android.permission.BLUETOOTH" /> 11 <uses-permission android:name="android.permission.BLUETOOTH" />
12 <uses-permission android:name="android.permission.GET_ACCOUNTS" /> 12 <uses-permission android:name="android.permission.GET_ACCOUNTS" />
13 <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 13 <uses-permission android:name="android.permission.READ_PHONE_STATE" />
14 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 14 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
15 <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> 15 <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
16 <uses-permission android:name="android.permission.WRITE_SETTINGS" /> 16 <uses-permission android:name="android.permission.WRITE_SETTINGS" />
17 <!-- 以下是银联支付专用 --> 17 <!-- 以下是银联支付专用 -->
18 <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> 18 <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
19 19
20 2)需要在application内增加如下内容,**微信回调activity必须是 "项目包名.wxapi.WXPayEntryActivity",不可更改,且此activity需继承com.gump.inland.gamesdk.WXPayEntryBaseActivity**: 20 2)需要在application内增加如下内容,**微信回调activity必须是 "项目包名.wxapi.WXPayEntryActivity",不可更改,且此activity需继承com.gump.inland.gamesdk.WXPayEntryBaseActivity**:
21 21
22 <activity 22 <activity
23 android:name="com.gump.inland.gamesdk.PassportBaseActivity" 23 android:name="com.gump.inland.gamesdk.PassportBaseActivity"
24 android:configChanges="orientation|screenSize|keyboardHidden|keyboard|screenLayout"
24 android:theme="@style/Theme.TransparentWin" > 25 android:theme="@style/Theme.TransparentWin" >
25 </activity> 26 </activity>
26 <activity 27 <activity
27 android:name="com.gump.inland.gamesdk.PaymentActivity" 28 android:name="com.gump.inland.gamesdk.PaymentActivity"
28 android:theme="@android:style/Theme.Light.NoTitleBar" > 29 android:theme="@android:style/Theme.Light.NoTitleBar" >
29 </activity> 30 </activity>
30 <!-- wx callback 需要根据规则配置,此处请勿直接拷贝--> 31 <!-- wx callback 需要根据规则配置,此处请勿直接拷贝-->
31 <activity 32 <activity
32 android:name="yourPackageName.wxapi.WXPayEntryActivity" 33 android:name="yourPackageName.wxapi.WXPayEntryActivity"
33 android:exported="true" > 34 android:exported="true" >
34 </activity> 35 </activity>
35 <!-- unionPay --> 36 <!-- unionPay -->
36 <activity 37 <activity
37 android:name="com.unionpay.uppay.PayActivity" 38 android:name="com.unionpay.uppay.PayActivity"
38 android:configChanges="orientation|keyboardHidden" 39 android:configChanges="orientation|keyboardHidden"
39 android:excludeFromRecents="true" 40 android:excludeFromRecents="true"
40 android:label="@string/app_name" 41 android:label="@string/app_name"
41 android:screenOrientation="portrait" 42 android:screenOrientation="portrait"
42 android:windowSoftInputMode="adjustResize" /> 43 android:windowSoftInputMode="adjustResize" />
44 <!-- alipay sdk begin -->
45 <activity
46 android:name="com.alipay.sdk.app.H5PayActivity"
47 android:configChanges="orientation|keyboardHidden|navigation"
48 android:exported="false"
49 android:screenOrientation="behind"
50 android:windowSoftInputMode="adjustResize|stateHidden" >
51 </activity>
52 <!-- alipay sdk end -->
43 53
44 3)为入口activity增加以下Intent-filter,**data scheme配置为微信appid**: 54 3)入口activity增加**android:configChanges="orientation|screenSize|keyboardHidden|keyboard|screenLayout"**属性,并增加以下Intent-filter,**data scheme配置为微信appid**:
45 55
46 <intent-filter> 56 <intent-filter>
47 <action android:name="android.intent.action.VIEW" /> 57 <action android:name="android.intent.action.VIEW" />
48 58
49 <category android:name="android.intent.category.DEFAULT" /> 59 <category android:name="android.intent.category.DEFAULT" />
50 <!-- 此处为微信的appid--> 60 <!-- 此处为微信的appid-->
51 <data android:scheme="wxdb562d299ac311e0" /> 61 <data android:scheme="wxdb562d299ac311e0" />
52 </intent-filter> 62 </intent-filter>
53 63
54 4.将InlandSDK工程assets目录下的文件拷贝到游戏项目的assets目录下,此处为银联支付使用 64 4.将InlandSDKRelease工程assets目录下的文件拷贝到游戏项目的assets目录下,此处为银联支付使用
55 5.代码接入: 65 5.代码接入:
56 1)sdk初始化,以下方法二选一 66 1)sdk初始化,以下方法二选一
57 67
58 //若游戏不区分渠道使用此方法 68 //若游戏不区分渠道使用此方法
59 InlandSDK.initializeSDK(gumpAPPId, GumpAPPKey); 69 InlandSDK.initializeSDK(gumpAPPId, GumpAPPKey);
60 //若游戏区分渠道使用此方法,传入渠道参数 70 //若游戏区分渠道使用此方法,传入渠道参数
61 InlandSDK.initializeSDK(gumpAppId,GumpAPPKey,channel); 71 InlandSDK.initializeSDK(gumpAppId,GumpAPPKey,channel);
62 72
63 2)注册登录状态回调: 73 2)注册登录状态回调:
64 74
65 Passport.getInstance().registerCallback(new InlandSDKCallback<GumpUser>() { 75 Passport.getInstance().registerCallback(new InlandSDKCallback<GumpUser>() {
66 76
67 @Override 77 @Override
68 public void onSuccess(GumpUser result) { 78 public void onSuccess(GumpUser result) {
69 Logger.d(TAG, "gumpUser:" + result.toString()); 79 Logger.d(TAG, "gumpUser:" + result.toString());
70 btnLogin.setVisibility(View.GONE); 80 btnLogin.setVisibility(View.GONE);
71 tvUserInfo.setText(formatUserInfo(result)); 81 tvUserInfo.setText(formatUserInfo(result));
72 btnPay.setVisibility(View.VISIBLE); 82 btnPay.setVisibility(View.VISIBLE);
73 } 83 }
74 84
75 @Override 85 @Override
76 public void onError(InlandSDKException error) { 86 public void onError(InlandSDKException error) {
77 Logger.d(TAG, "login error:" + error.getMessage()); 87 Logger.d(TAG, "login error:" + error.getMessage());
78 } 88 }
79 89
80 @Override 90 @Override
81 public void onCancel() { 91 public void onCancel() {
82 Logger.d(TAG, "login be canceled"); 92 Logger.d(TAG, "login be canceled");
83 } 93 }
84 }); 94 });
85 95
86 3)执行登录操作 96 3)执行登录操作
87 97
88 Passport.getInstance().login(MainActivity.this); 98 Passport.getInstance().login(MainActivity.this);
89 99
90 4)支付操作 100 4)支付操作
91 101
92 PayRequest payRequest = new PayRequest(); 102 PayRequest payRequest = new PayRequest();
93 payRequest.setPrice(1); 103 payRequest.setPrice(1);
94 payRequest.setProduct("玄冥剑"); 104 payRequest.setProduct("玄冥剑");
95 payRequest.setExtOrder("p100201508311730"); 105 payRequest.setExtOrder("p100201508311730");
96 payRequest.setGumpUid(Passport.getInstance().getGumpUser().getUid()); 106 payRequest.setGumpUid(Passport.getInstance().getGumpUser().getUid());
97 InlandSDK.purchase(MainActivity.this, payRequest, new PurchaseCallback() { 107 InlandSDK.purchase(MainActivity.this, payRequest, new PurchaseCallback() {
98 108
99 @Override 109 @Override
100 public void onPurchaseError(Exception e) { 110 public void onPurchaseError(Exception e) {
101 Logger.w(TAG, "purchase error:" + e.getMessage()); 111 Logger.w(TAG, "purchase error:" + e.getMessage());
102 tvPurchaseResult.setText("purchase occured an error:" + e.getMessage()); 112 tvPurchaseResult.setText("purchase occured an error:" + e.getMessage());
103 } 113 }
104 114
105 @Override 115 @Override
106 public void onPurchaseSuccess(String gumpTransId, String extOrder) { 116 public void onPurchaseSuccess(String gumpTransId, String extOrder) {
107 Logger.d(TAG, "purchase success:" + gumpTransId + ",extorder:" + extOrder); 117 Logger.d(TAG, "purchase success:" + gumpTransId + ",extorder:" + extOrder);
108 tvPurchaseResult.setText("purchase " + gumpTransId + " success,extorder:" + extOrder); 118 tvPurchaseResult.setText("purchase " + gumpTransId + " success,extorder:" + extOrder);
109 } 119 }
110 120
111 @Override 121 @Override
112 public void onPurchaseCanceled() { 122 public void onPurchaseCanceled() {
113 Logger.d(TAG, "purchase be canceled"); 123 Logger.d(TAG, "purchase be canceled");
114 tvPurchaseResult.setText("purchase be canceled"); 124 tvPurchaseResult.setText("purchase be canceled");
115 } 125 }
116 }); 126 });
117 127
118 5)配置onActivityResult拦截处理,请在activity的onActivityResult方法内增加InlandSDK的处理方法onActivityResult,当此方法返回true时,说明结果已处理,否则说明未对结果进行处理 128 5)配置onActivityResult拦截处理,请在activity的onActivityResult方法内增加InlandSDK的处理方法onActivityResult,当此方法返回true时,说明结果已处理,否则说明未对结果进行处理
119 129
120 if (!InlandSDK.onActivityResult(requestCode, resultCode, data)) 130 if (!InlandSDK.onActivityResult(requestCode, resultCode, data))
121 super.onActivityResult(requestCode, resultCode, data); 131 super.onActivityResult(requestCode, resultCode, data);