支付宝SDK

来源:互联网 发布:机器人的编程语言 编辑:程序博客网 时间:2024/06/08 04:03

由于支付宝SDK对于整个支付流程已经介绍的十分详细了,在这里我就简单说一些注意点。

由于存在支付宝可能没有安装的情况,所以我们在调用支付宝支付时,需要对其进行判断,做出不同的处理方式,即是使用客户端支付,还是使用H5支付,这里简单阐述一下:

情况一:已安装支付宝客户端

/** * 唤醒支付宝支付 * @param data 服务端返回订单数据 */public void payOrder(JSONObject data) {    registerLoadingView.setVisibility(View.GONE);    String redirectStr = data.getString("redirectStr");    if (!TextUtils.isEmpty(redirectStr)) {    // 唤醒支付宝支付        Thread payThread = new Thread(() -> {            PayTask alipay = new PayTask(activity);            String result = alipay.pay(redirectStr);            Message msg = Message.obtain();            msg.what = MSG_PAY_RESPONSE;            msg.obj = result;            handler.sendMessage(msg);        });        payThread.start();    }}Handler handler = new Handler(msg -> {    if (MSG_PAY_RESPONSE == msg.what) {        Result result = new Result((String) msg.obj);        if (!TextUtils.isEmpty(result.getResult())) {            switch (result.getResult()) {                case "4000":    // 系统异常 TODO                    Toast.makeText(context, "订单支付失败", Toast.LENGTH_SHORT).show();                    break;                case "6001":    // 用户中途取消支付操作   TODO                    Toast.makeText(context, "订单支付已被取消", Toast.LENGTH_SHORT).show();                    break;                case "6002":    // 网络连接出错   TODO                    Toast.makeText(context, "网络连接出错", Toast.LENGTH_SHORT).show();                    break;                case "9000":    // 操作成功 TODO                    Toast.makeText(context, "订单支付成功", Toast.LENGTH_SHORT).show();                    // TODO do something...                    break;            }        }    }    return false;});

情况二:未安装支付宝客户端

需要在Androidmanifest.xml文件中加入以下代码,即可进入H5支付流程。

<!-- 支付宝 --><activity    android:name="com.alipay.sdk.app.H5PayActivity"    android:configChanges="orientation|keyboardHidden|navigation"    android:exported="false"    android:screenOrientation="behind"    android:windowSoftInputMode="adjustResize|stateHidden" />
0 0
原创粉丝点击