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);

results matching ""

    No results matching ""