開通支付寶開發(fā)者賬號
網(wǎng)上有很多問著袜刷,這里就不多介紹了
http://jingyan.baidu.com/article/6c67b1d689bab12786bb1e6d.html
創(chuàng)建應用
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" - 調(diào)起支付寶
把上一步得到 “orderInfo”梢莽,傳進來,并且使用子進程調(diào)用涮雷。這里用的 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);
很簡單吧
- 支付寶回調(diào)
這里一定要以服務端的查詢狀態(tài)為準
//成功
if (map.get("resultStatus").toString().equals("9000")) {
//do Something 查詢支付狀態(tài)
} else {
Utils.toastText(ActivityPay.this, map.get("momo").toString());
}
- 查詢支付狀態(tài)
本項目由后臺服務提供仑扑,可能會存在延遲
問題
- ALI38173 可能是下單錯誤,檢查 orderinfo的參數(shù)
- ALI40247 可能是應用未上線蜓竹,先上線后 重試