客户端接入(安卓:微信,支付宝,钱包[简配:引导下载钥匙])
安卓客户端接口人: 刘贝liubei@wifi.com
配置 AndroidManifest.xml
必须完成 基本接入步骤(必接) 相应的配置项,除此之外还需要配置
<manifest … >
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<application>
<activity
android:name="com.alipay.sdk.app.H5PayActivity"
android:configChanges="orientation|keyboardHidden|navigation|screenSize"
android:exported="false"
android:screenOrientation="behind"
android:windowSoftInputMode="adjustResize|stateHidden" />
<activity
android:name="com.wifi.open.xpay.PayActivity"
android:theme="@style/Theme_Transparent_Pay" />
<activity android:name="{应用包名}.wxapi.WXPayEntryActivity"
android:exported="true"
android:launchMode="singleTop"/>
<activity android:name="com.wifi.open.xpay.wallet.WalletPayResultActivity">
<intent-filter>
<action android:name="wifi.intent.action.SDK_RESULT" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:host="wallet"
android:path="/WalletPayResultActivity"
android:scheme="xpay" />
</intent-filter>
</activity>
…
</application>
</manifest>
导入资源文件
- 将res-pay.zip解压后合并到App工程目录下的res目录中
- 将pay-libs/alipaySdk-20151215.jar和wechat-sdk-android-without-mta-5.1.6.jar放到工程目录libs下
- 需要加入 simpleWallet/libs/callwifi-3.0.8.jar
调用收银台界面
WKXPay.pay(activity, payParam, new XPay.Callback() {
@Override
public void onPayResult (int payStatus, String msg){
Log.e("XPay", "pay result: " + payStatus + "; msg:" + msg);
}
});
payBizData
名字 |
类型 |
描述 |
是否可选 |
security_type |
String(6) |
Sign字段签名方式 ,目前为RSA |
NO |
sign |
String(128) |
商户签名,签名生规则见 签名、加密机制 章节 |
NO |
pay_token |
String(128) |
支付平台支付凭证PayToken,由生成支付交易服务生成,用来验证支付请求的有效性 |
NO |
out_trade_id |
String(64) |
外部订单号,第三方商户自己生成的订单标识,必须要唯一不能重复 |
NO |
transaction_id |
String(64) |
业务流水号,商户应保证唯一;业务流水号,和订单号不一样;只是个唯一的流水号 |
NO |
payBaseData
名字 |
类型 |
描述 |
是否可选 |
appid |
String(32) |
游戏传 appid |
NO |
out_user_id |
string(64) |
连尚账户相关:union_id...uhid... |
二选一可为空 |
guest_id |
string(64) |
1.CP方给出的:openid ;用openid + unionid 在支付端进行 查询连尚统一账户信息:uhid;2.游客:传给定值:GUESTER |
二选一可为空 |
client_user_id |
string(64) |
1.游客时:游戏cp方必传该字段;2.cp方定义的用户id;其他接入渠道不是必传项 |
NO |
version |
String(6) |
服务版本号,传 2 |
NO |
request_id |
String(64) |
请求信息标识,商户应保持唯一 |
NO |
service_name |
String(32) |
服务名称,跳转支付服务为"paymentAccessRequest" |
NO |
platform |
String(10) |
最终支付来源,即商户使用何种方式调用支付平台支付 H5/Online/Native SDK/Offline/Android/iOS |
NO |
time_stamp |
String(14) |
时间戳(请求时的时间) |
NO |
|
compress_type |
String(2) |
压缩类型:0(不压缩),1(gzip) |
NO |
language |
Int |
语言 填0=中文 |
NO |
merchant_id |
String(32) |
支付平台商户ID,第三方接入支付平台支付前向支付平台支付申请获得 |
NO |
Example
{
"payBizData": {
"pay_token": "",
"sign": "...",
"out_trade_id": "",
"transaction_id": "",
"security_type": "RSA"
},
"payBaseData": {
"appid": "",
"out_user_id": "",
"request_id": "",
"version": "2",
"service_name": "paymentAccessRequest",
"client_user_id": "",
"platform": "Android",
"time_stamp": "",
"language": 0,
"compress_type": "0",
"merchant_id": "",
"guest_id": ""
}
}
PayStatus
参数值 |
参数名称 |
描述 |
0 |
PAY_CANCEL |
支付取消 |
1 |
PAY_SUCCESS |
支付成功 |
-1 |
PAY_INVALID |
支付无效,不需要等待结果,一定是失败的 |
-2 |
PAY_ERROR |
支付异常,可能支付成功也可能支付失败 |
2 |
PAY_LIFE_CYCLE |
支付页面生命周期 |
设置生产\测试环境
XPayConfig.IS_TEST = BuildConfig.DEBUG;
混淆设置
# Alipay
-dontwarn android.net.**
-keep class android.net.SSLCertificateSocketFactory{*;}
-keep class com.alipay.android.app.IAlixPay{*;}
-keep class com.alipay.android.app.IAlixPay$Stub{*;}
-keep class com.alipay.android.app.IRemoteServiceCallback{*;}
-keep class com.alipay.android.app.IRemoteServiceCallback$Stub{*;}
-keep class com.alipay.sdk.app.PayTask{ public *;}
-keep class com.alipay.sdk.app.AuthTask{ public *;}
-keep class com.alipay.sdk.app.H5PayCallback {
<fields>;
<methods>;
}
-keep class com.alipay.android.phone.mrpc.core.** { *; }
-keep class com.alipay.apmobilesecuritysdk.** { *; }
-keep class com.alipay.mobile.framework.service.annotation.** { *; }
-keep class com.alipay.mobilesecuritysdk.face.** { *; }
-keep class com.alipay.tscenter.biz.rpc.** { *; }
-keep class org.json.alipay.** { *; }
-keep class com.alipay.tscenter.** { *; }
-keep class com.ta.utdid2.** { *;}
-keep class com.ut.device.** { *;}
# Weixin Pay
-keep class com.tencent.mm.opensdk.** {*;}
-keep class com.tencent.mm.sdk.** {*;}
# wifi pay
-keep class callwifi**{*;}
-keep class com.sdpopen.**{*;}