支付宝

参考

        参考

准备工作

        导入相应的jar包,并在清单文件中添加两个activity,如下:
        <!-- alipay sdk begin -->
        <activity
            android:name="com.alipay.sdk.app.H5PayActivity"
            android:configChanges="orientation|keyboardHidden|navigation|screenSize"
            android:exported="false"
            android:screenOrientation="behind"
            android:windowSoftInputMode="adjustResize|stateHidden" />

        <!-- alipay sdk end -->

        <activity
            android:name="com.alipay.sdk.auth.AuthActivity"
            android:configChanges="orientation|keyboardHidden|navigation"
            android:exported="false"
            android:screenOrientation="behind" />
        <activity android:name=".activity.AmbitusProductListActivity" />

支付

        请求支付宝的所有数据应该在后台拼接完成,前端展示调用支付宝的sdk发起请求即可。如下:

                            Runnable payRunnable = new Runnable() {
                                @Override
                                public void run() {
                                    PayTask alipay = new PayTask(CashierDeskActivity.this);
                                    // 调用支付接口,获取支付结果
                                    String result = alipay.pay(data);//其中data就是后台返回的,已经拼接成功了的用于调用支付宝支付的string
                                    Message msg = new Message();
                                    msg.what = SDK_PAY_FLAG;
                                    msg.obj = result;
                                    mHandler.sendMessage(msg);//通过handler处理支付的回调结果
                                }
                            };
                            // 必须异步调用
                            Thread payThread = new Thread(payRunnable);
                            payThread.start();
        处理支付之后的结果,如下:
                case SDK_PAY_FLAG: {
                    PayResult payResult = new PayResult((String) msg.obj);
                    String resultInfo = payResult.getResult();
                    String resultStatus = payResult.getResultStatus();
                    // 判断resultStatus 为“9000”则代表支付成功,具体状态码代表含义可参考接口文档
                    if (TextUtils.equals(resultStatus, "9000")) {
                        //处理自己的逻辑
                        ToastUtils.toastCustom("支付成功", CashierDeskActivity.this);
                    } else {
                        // 判断resultStatus 为非“9000”则代表可能支付失败
                        // “8000”代表支付结果因为支付渠道原因或者系统原因还在等待支付结果确认,最终交易是否成功以服务端异步通知为准(小概率状态)
                        if (TextUtils.equals(resultStatus, "8000")) {
                            ToastUtils.toastCustom("支付结果确认中", CashierDeskActivity.this);
                        } else {
                            //支付失败,处理自己的逻辑
                            ToastUtils.toastCustom("支付失败", CashierDeskActivity.this);
                        }
                    }
                    break;
                }




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值