支付宝拉起支付

引入支付包SDK:

官网地址选择下载Demo文件

 在Demo文件里找到aar文件

aar文件引入到项目里 

拉起支付:

                final Runnable payRunnable = new Runnable() {

                    @Override
                    public void run() {
                        PayTask alipay = new PayTask(LoginActivity.this);
                        Map<String, String> result = alipay.payV2("后台返回的订单信息,里面除了订单ID等,还有签名等安全信息", true);
                        Log.i("msp", result.toString());

                        Message msg = new Message();
                        msg.what = 1;
                        msg.obj = result;
                        mHandler.sendMessage(msg);
                    }
                };
                // 必须异步调用
                Thread payThread = new Thread(payRunnable);
                payThread.start();

 回调:

   private Handler mHandler = new Handler() {
        @SuppressWarnings("unused")
        public void handleMessage(Message msg) {
            switch (((HashMap) msg.obj).get("resultStatus").toString()) {
                //这里接收支付宝的回调信息
                //需要注意的是,支付结果一定要调用自己的服务端来确定,不能通过支付宝的回调结果来判断
                case "9000":
                    //订单支付成功
                    break;
                case "8000":
                    //正在处理中
                    break;
                case "4000":
                    //订单支付失败
                    break;
                case "6001":
                    //用户中途取消
                    break;
                case "6002":
                    //网络连接出错
                    break;

            }
            ToastUtils.showLongToast(LoginActivity.this, ((HashMap) msg.obj).get("memo").toString());
        }
    };

返回状态
((HashMap) msg.obj).get("resultStatus")
9000 订单支付成功
8000 正在处理中
4000 订单支付失败
6001 用户中途取消
6002 网络连接出错

((HashMap) msg.obj).get("memo")
状态明文描述:类似“操作已经取消”等提示语
发布了213 篇原创文章 · 获赞 12 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/a1003434346/article/details/102823757
今日推荐