Android集成说明
1.下载SDK包, 并解压,文件目录如下:
.
|____alipaySdk-15.5.9-20181123210601.aar //依赖的支付宝SDK
|____android-demo //demo工程
|____scanforpay-sdk-0.1.0.aar //scanforpay SDK
2.将aar文件放到app的libs目录下,并在工程的build.gradle
中加入
flatDir {
dirs 'libs'
}
3.在相应模块的build.gradle
中的dependencies {}
里加入依赖。scanforpay sdk依赖okhttp3,所以需要加入okhttp3的依赖。
compile(name: 'scanforpay-sdk-0.1.0', ext: 'aar')
compile(name: 'alipaySdk-15.5.9-20181123210601', ext: 'aar')
implementation("com.squareup.okhttp3:okhttp:3.10.0")
4.在AndroidManifest.xml
中加入支付宝需要的权限
<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" />
5.调用接口,发起支付。
// new一个ScanForPayPayTask对象
mTask = new ScanForPayPayTask(MainActivity.this);
// 设置Listener处理支付结果回调
mTask.setListener(new ScanForPayResultListener() {
@Override
public void onSuccess(ScanForPayResult result) {
Log.d("MainActivity", "ScanForPayResult:" + result.toString());
int status = result.getStatus(); // 支付状态,1为支付成功
String params = result.getParams(); // 订单信息,需要传给后台,可以用于更新App中的订单信息,服务端校验签名,查询交易状态
if(status == 1 && !params.isEmpty()){
// TODO 需要在服务器实现,用params字段里的信息去服务端验证签名及查询结果
// 成功后的操作
showAlert(MainActivity.this, "支付成功");
}
}
@Override
public void onFail(ScanForPayResult result) {
// 失败后的操作
Log.d("MainActivity", "ScanForPayResult:" + result.toString());
if(result.getCode() < 0){
// 第三方的错误码都转为了负数,可以不处理,一般是用户取消
}else{
showAlert(MainActivity.this, "支付失败:" + result.getMsg());
}
}
});
// 设置为沙箱环境
mTask.setSandBox(true);
// 生成支付请求串,这里需要由商户服务端完成, demo里只是演示
String request = buildRequest(WALLET_ALIPAY, "测试商品", 0.01f);
// 调用pay方法发起支付
mTask.pay(request);