143 lines
3.3 KiB
JavaScript
143 lines
3.3 KiB
JavaScript
/*
|
|
* 支付
|
|
*/
|
|
export const pay = (result, self, success, fail) => {
|
|
if (result.code === -10) {
|
|
self.showError(result.msg);
|
|
return false;
|
|
}
|
|
// #ifdef APP-PLUS
|
|
//微信支付
|
|
wxAppPay(result, self, success, fail);
|
|
// #endif
|
|
return
|
|
// 发起微信支付
|
|
if (result.data.pay_type == 20) {
|
|
//小程序支付
|
|
// #ifdef MP-WEIXIN
|
|
uni.requestPayment({
|
|
provider: 'wxpay',
|
|
timeStamp: result.data.payment.timeStamp,
|
|
nonceStr: result.data.payment.nonceStr,
|
|
package: 'prepay_id=' + result.data.payment.prepay_id,
|
|
signType: 'MD5',
|
|
paySign: result.data.payment.paySign,
|
|
success: res => {
|
|
paySuccess(result, self, success);
|
|
},
|
|
fail: res => {
|
|
self.showError('订单未支付成功', () => {
|
|
payError(result, fail, self);
|
|
});
|
|
},
|
|
});
|
|
// #endif
|
|
//公众号支付
|
|
// #ifdef H5
|
|
if (self.isWeixin()) {
|
|
WeixinJSBridge.invoke('getBrandWCPayRequest', JSON.parse(result.data.payment),
|
|
function(res) {
|
|
if (res.err_msg == "get_brand_wcpay_request:ok") {
|
|
paySuccess(result, self, success);
|
|
} else if (res.err_msg == "get_brand_wcpay_request:cancel") {
|
|
self.showSuccess('支付取消', () => {
|
|
payError(result, fail, self);
|
|
});
|
|
} else {
|
|
self.showError('订单未支付成功', () => {
|
|
payError(result, fail, self);
|
|
});
|
|
}
|
|
}
|
|
);
|
|
} else {
|
|
//h5支付
|
|
self.gotoPage('/pages/order/pay-h5/pay-h5?order_id=' + result.data.order_id + '&order_type=' + result
|
|
.data.order_type);
|
|
return;
|
|
}
|
|
// #endif
|
|
// #ifdef APP-PLUS
|
|
//微信支付
|
|
wxAppPay(result, self, success, fail);
|
|
// #endif
|
|
}
|
|
// 余额支付
|
|
if (result.data.pay_type == 10) {
|
|
paySuccess(result, self, success);
|
|
}
|
|
// 支付宝支付
|
|
if (result.data.pay_type == 30) {
|
|
// #ifdef APP-PLUS
|
|
aliAppPay(result, self, success, fail);
|
|
// #endif
|
|
// #ifdef H5
|
|
self.gotoPage('/pages/order/alipay-h5/alipay-h5?order_id=' + result.data.order_id + '&order_type=' + result
|
|
.data.order_type);
|
|
// #endif
|
|
}
|
|
}
|
|
|
|
/*跳到支付成功页*/
|
|
function paySuccess(result, self, success) {
|
|
if (success) {
|
|
success(result);
|
|
return;
|
|
}
|
|
gotoSuccess(result, self);
|
|
}
|
|
/*跳到支付成功页*/
|
|
function gotoSuccess(result, self) {
|
|
self.gotoPage('/pages/order/myorder', 'reLaunch');
|
|
}
|
|
|
|
/*支付失败跳订单详情*/
|
|
function payError(result, fail, self) {
|
|
if (fail) {
|
|
fail(result);
|
|
return;
|
|
}
|
|
self.gotoPage('/pages/order/myorder', 'reLaunch');
|
|
}
|
|
|
|
function wxAppPay(result, self, success, fail) {
|
|
// 获取支付通道
|
|
plus.payment.getChannels(function(channels) {
|
|
self.channel = channels[0];
|
|
console.log(self.channel);
|
|
console.log(result.data);
|
|
uni.requestPayment({
|
|
provider: 'wxpay',
|
|
orderInfo: result.data,
|
|
success(res) {
|
|
paySuccess(result, self, success);
|
|
},
|
|
fail(error) {
|
|
console.log(error);
|
|
self.showError('订单未支付成功', () => {
|
|
payError(result, fail);
|
|
});
|
|
},
|
|
});
|
|
}, function(e) {
|
|
console.log("获取支付通道失败:" + e.message);
|
|
});
|
|
}
|
|
|
|
function aliAppPay(result, self, success, fail) {
|
|
console.log(result.data.payment);
|
|
uni.requestPayment({
|
|
provider: 'alipay',
|
|
orderInfo: result.data.payment,
|
|
success(res) {
|
|
paySuccess(result, self, success);
|
|
},
|
|
fail(error) {
|
|
console.log(error);
|
|
self.showError('订单未支付成功', () => {
|
|
payError(result, fail, self);
|
|
});
|
|
},
|
|
});
|
|
}
|