步驟:
1、獲取用戶授權
2、獲取tradeNo
3、發起支付
// a.3 支付寶支付
// #ifdef MP-ALIPAY
_payByAli(payItemObj,paySource) {
let that = this;
// 下單開始start
// 1 獲取用戶授權
my.getAuthCode({
scopes: 'auth_user',
success: auth => {
let authCode=auth.authCode;
// 2 獲取tradeNo
let params={
uin:common.getGlobalUserInfo().id,
payType:1,
paySource:paySource,
total:payItemObj.receivable*100,
orderId:payItemObj.id,
auth_code:authCode,
grant_type:'authorization_code',
};
request.setRequest('/payment/order',params,true).then(res => {
if (res.data.status === 1) {
if(!res.data.data.tradeNo){
request.setErrorMessage('沒有獲取到tradeNo');
return;
}
let tradeNo=res.data.data.tradeNo;
// 3 發起支付
my.tradePay({
tradeNO: tradeNo,
success: (result) => {
if (result.resultCode != 9000) {
request.setErrorMessage(result.memo);
} else {
// 跳轉到訂單詳情頁面
my.alert({
content: '支付成功',
buttonText: '確定',
success: () => {
// 充值支付後跳轉到我的頁面
if(paySource==1){
my.navigateTo({
url:'/pages/consume/consume'
})
}else{
console.log("支付成功");
}
}
});
}
},
fail: (err) => {
request.setErrorMessage('支付異常');
}
});
} else if (res.data.status < 1) {
//<=0:人工返回的錯誤信息
request.setErrorMessage(res.data.msg);
} else {
request.setErrorMessage();
}
});
},
fail: err => {
request.setErrorMessage('獲取用戶授權失敗');
}
});
// 下單結束end
},
// #endif