源文件
This commit is contained in:
187
jeepay-ui-uapp-cashier/pages/payway/payway.js
Normal file
187
jeepay-ui-uapp-cashier/pages/payway/payway.js
Normal file
@@ -0,0 +1,187 @@
|
||||
import appConfig from '@/config/appConfig.js'
|
||||
import { toErrPageFunc } from '@/util/toErrorPageUtil.js'
|
||||
import { $payCancelBoardCast, $payEventBoardCast } from '@/http/apiManager.js'
|
||||
|
||||
function wechatH5Func(orderRes, payOrderInfo){
|
||||
|
||||
|
||||
let onBridgeReady = function () {
|
||||
|
||||
// eslint-disable-next-line no-undef
|
||||
WeixinJSBridge.invoke( 'getBrandWCPayRequest', JSON.parse(orderRes.payInfo), function(res) {
|
||||
|
||||
payEventBoardCast(orderRes.payOrderId, res)
|
||||
|
||||
if (res.err_msg == "get_brand_wcpay_request:ok") {
|
||||
// 使用以上方式判断前端返回,微信团队郑重提示:
|
||||
//res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。
|
||||
// //重定向
|
||||
if(payOrderInfo.returnUrl){
|
||||
location.href = payOrderInfo.returnUrl;
|
||||
}else{
|
||||
alert('支付成功!');
|
||||
// if(payOrderInfo.fun) return payOrderInfo.fun()
|
||||
window.WeixinJSBridge.call('closeWindow')
|
||||
}
|
||||
|
||||
}
|
||||
if (res.err_msg == "get_brand_wcpay_request:cancel") {
|
||||
// payCancel(orderRes.payOrderId)
|
||||
alert("支付取消");
|
||||
// return false;
|
||||
window.WeixinJSBridge.call('closeWindow')
|
||||
}
|
||||
if (res.err_msg == "get_brand_wcpay_request:fail") {
|
||||
alert('支付失败:' + JSON.stringify(res))
|
||||
// return false;
|
||||
window.WeixinJSBridge.call('closeWindow')
|
||||
}
|
||||
if (res.err_msg == "total_fee") {
|
||||
alert('缺少参数')
|
||||
window.WeixinJSBridge.call('closeWindow')
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
if (typeof WeixinJSBridge == "undefined"){
|
||||
if( document.addEventListener ){
|
||||
document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false);
|
||||
}else if (document.attachEvent){
|
||||
document.attachEvent('WeixinJSBridgeReady', onBridgeReady);
|
||||
document.attachEvent('onWeixinJSBridgeReady', onBridgeReady);
|
||||
}
|
||||
}else{
|
||||
onBridgeReady();
|
||||
}
|
||||
}
|
||||
|
||||
// 支付宝内的浏览器调起支付:https://myjsapi.alipay.com/jsapi/native/trade-pay.html
|
||||
function alipayH5Func(orderRes){
|
||||
// 执行事件
|
||||
let doAlipay = function () {
|
||||
AlipayJSBridge.call("tradePay", { tradeNO: orderRes.alipayTradeNo }, function (data) {
|
||||
payEventBoardCast(orderRes.payOrderId, data)
|
||||
if ("9000" == data.resultCode) {
|
||||
// //重定向
|
||||
if(orderRes.returnUrl){
|
||||
location.href = orderRes.returnUrl;
|
||||
}else{
|
||||
alert('支付成功!');
|
||||
window.AlipayJSBridge.call('closeWebview')
|
||||
}
|
||||
//‘8000’:后台获取支付结果超时,暂时未拿到支付结果;
|
||||
// ‘6004’:支付过程中网络出错, 暂时未拿到支付结果;
|
||||
}else if("8000" == data.resultCode || "6004" == data.resultCode){ //其他
|
||||
alert(JSON.stringify(data));
|
||||
window.AlipayJSBridge.call('closeWebview')
|
||||
}else{ ///其他异常信息, 需要取消订单
|
||||
// payCancel(orderRes.payOrderId)
|
||||
alert('用户已取消!');
|
||||
window.AlipayJSBridge.call('closeWebview')
|
||||
}
|
||||
});
|
||||
}
|
||||
if (!window.AlipayJSBridge) {
|
||||
document.addEventListener('AlipayJSBridgeReady', doAlipay, false);
|
||||
}else{
|
||||
doAlipay();
|
||||
}
|
||||
}
|
||||
|
||||
function wechatLiteFunc(orderRes, payOrderInfo){
|
||||
const payInfo = JSON.parse(orderRes.payInfo)
|
||||
wx.requestPayment({
|
||||
"timeStamp": payInfo.timeStamp,
|
||||
"nonceStr": payInfo.nonceStr,
|
||||
"package": payInfo.package,
|
||||
"signType": payInfo.signType,
|
||||
"paySign": payInfo.paySign,
|
||||
"success": function(res){
|
||||
if(appConfig.redPacketIsOpen){
|
||||
setTimeout(() => {
|
||||
uni.navigateTo({
|
||||
url: '/pages/paySuccess/redSuccess?payOrderId=' + orderRes.payOrderId
|
||||
})
|
||||
}, 1000)
|
||||
return false;
|
||||
}
|
||||
if(payOrderInfo.fun) return payOrderInfo.fun()
|
||||
uni.navigateTo({
|
||||
url: '/pages/paySuccess/paySuccess?amount=' + payOrderInfo.amount + '&payOrderId=' + orderRes.payOrderId
|
||||
})
|
||||
},
|
||||
"fail": function(res){
|
||||
if(res.errMsg == 'requestPayment:fail cancel') {
|
||||
// payCancel(orderRes.payOrderId)
|
||||
// toErrPageFunc('取消支付')
|
||||
return uni.showToast({title: '取消支付',icon:'none'})
|
||||
}else {
|
||||
toErrPageFunc(res.errMsg)
|
||||
}
|
||||
},
|
||||
"complete": (res) => {
|
||||
payEventBoardCast(orderRes.payOrderId, res)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function alipayLiteFunc(orderRes, payOrderInfo){
|
||||
my.tradePay({
|
||||
tradeNO: orderRes.alipayTradeNo,
|
||||
success: (res) => {
|
||||
if(res.resultCode == 9000) {
|
||||
if(payOrderInfo.fun) return payOrderInfo.fun()
|
||||
uni.navigateTo({
|
||||
url: '/pages/paySuccess/paySuccess?amount=' + payOrderInfo.amount
|
||||
})
|
||||
}else if(res.resultCode == 6001) {
|
||||
// payCancel(orderRes.payOrderId)
|
||||
// toErrPageFunc('取消支付')
|
||||
return uni.showToast({title: '取消支付',icon:'none'})
|
||||
}else if(res.resultCode == 4000) {
|
||||
// toErrPageFunc('订单处理失败')
|
||||
return uni.showToast({title: '订单处理失败',icon:'none'})
|
||||
}else if(res.resultCode == 4) {
|
||||
toErrPageFunc('无权限调用')
|
||||
}else {
|
||||
toErrPageFunc(JSON.stringify(res))
|
||||
}
|
||||
},
|
||||
fail: (res) => {
|
||||
toErrPageFunc(JSON.stringify(res))
|
||||
},
|
||||
complete: (res) => {
|
||||
payEventBoardCast(orderRes.payOrderId, res)
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function ysfpayH5Func(orderRes){
|
||||
window.location.href = orderRes.redirectUrl
|
||||
}
|
||||
|
||||
|
||||
function payCancel(payOrderId) {
|
||||
$payCancelBoardCast(payOrderId).then(() => {
|
||||
console.log("取消支付")
|
||||
})
|
||||
}
|
||||
|
||||
function payEventBoardCast(payOrderId, resData) {
|
||||
$payEventBoardCast(payOrderId, resData)
|
||||
}
|
||||
|
||||
|
||||
export default () => {
|
||||
|
||||
let result = {}
|
||||
result[appConfig.PAGE_TYPE_ENUM.WECHAT_H5] = wechatH5Func;
|
||||
result[appConfig.PAGE_TYPE_ENUM.ALIPAY_H5] = alipayH5Func;
|
||||
result[appConfig.PAGE_TYPE_ENUM.WECHAT_LITE] = wechatLiteFunc;
|
||||
result[appConfig.PAGE_TYPE_ENUM.ALIPAY_LITE] = alipayLiteFunc;
|
||||
result[appConfig.PAGE_TYPE_ENUM.YSFPAY_H5] = ysfpayH5Func;
|
||||
|
||||
return result;
|
||||
}
|
||||
Reference in New Issue
Block a user