Android.支付宝支付

开通支付宝开发者账号

网上有很多问着,这里就不多介绍了
http://jingyan.baidu.com/article/6c67b1d689bab12786bb1e6d.html

创建应用

http://jingyan.baidu.com/article/c33e3f48ae1558ea15cbb5e6.html

官方demo 及Sdk

https://doc.open.alipay.com/doc2/detail.htm?treeId=54&articleId=104509&docType=1

正式接入

https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.6ObDrA&treeId=204&articleId=105297&docType=1

Android 接入

https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.3q7zOQ&treeId=204&articleId=105296&docType=1

说明
  • 下单
    本项目由后台服务提供,返回 "orderInfo"
  • 调起支付宝
    把上一步得到 “orderInfo”,传进来,并且使用子进程调用。这里用的 RxJava
    private Observable> openAliPay(final Activity activity, final String orderInfo) {
        Observable observable = Observable.create(new Observable.OnSubscribe>() {
            @Override
            public void call(Subscriber> subscriber) {
                try {
                    //沙箱测试
                    //EnvUtils.setEnv(EnvUtils.EnvEnum.SANDBOX);
                    PayTask alipay = new PayTask(activity);
                    Log.i("version", "call: " + alipay.getVersion());
                    Map result = alipay.payV2(orderInfo, false);
                    subscriber.onNext(result);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
        return observable;
    }

如果需要进行沙箱测试,添加如下代码

EnvUtils.setEnv(EnvUtils.EnvEnum.SANDBOX);

很简单吧

  • 支付宝回调
    这里一定要以服务端的查询状态为准
    //成功
    if (map.get("resultStatus").toString().equals("9000")) {
        //do Something 查询支付状态
    } else {
        Utils.toastText(ActivityPay.this, map.get("momo").toString());
    }
  • 查询支付状态
    本项目由后台服务提供,可能会存在延迟

问题

  • ALI38173 可能是下单错误,检查 orderinfo的参数
  • ALI40247 可能是应用未上线,先上线后 重试

你可能感兴趣的:(Android.支付宝支付)