开通支付宝开发者账号
网上有很多问着,这里就不多介绍了
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
正式接入
Android 接入
说明
- 下单
本项目由后台服务提供,返回 "orderInfo" - 调起支付宝
把上一步得到 “orderInfo”,传进来,并且使用子进程调用。这里用的 RxJava
private Observable<Map<String, String>> openAliPay(final Activity activity, final String orderInfo) {
Observable observable = Observable.create(new Observable.OnSubscribe<Map<String, String>>() {
@Override
public void call(Subscriber<? super Map<String, String>> subscriber) {
try {
//沙箱测试
//EnvUtils.setEnv(EnvUtils.EnvEnum.SANDBOX);
PayTask alipay = new PayTask(activity);
Log.i("version", "call: " + alipay.getVersion());
Map<String, String> 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 可能是应用未上线,先上线后 重试