116 lines
3.6 KiB
JavaScript
116 lines
3.6 KiB
JavaScript
|
import Dialog from 'tdesign-miniprogram/dialog/index';
|
|||
|
import Toast from 'tdesign-miniprogram/toast/index';
|
|||
|
|
|||
|
import { dispatchCommitPay } from '../../../services/order/orderConfirm';
|
|||
|
|
|||
|
// 真实的提交支付
|
|||
|
export const commitPay = (params) => {
|
|||
|
return dispatchCommitPay({
|
|||
|
goodsRequestList: params.goodsRequestList, // 待结算的商品集合
|
|||
|
invoiceRequest: params.invoiceRequest, // 发票信息
|
|||
|
// isIgnore: params.isIgnore || false, // 删掉 是否忽视库存不足和商品失效,继续结算,true=继续结算 购物车请赋值false
|
|||
|
userAddressReq: params.userAddressReq, // 地址信息(用户在购物选择更换地址)
|
|||
|
currency: params.currency || 'CNY', // 支付货币: 人民币=CNY,美元=USD
|
|||
|
logisticsType: params.logisticsType || 1, // 配送方式 0=无需配送 1=快递 2=商家 3=同城 4=自提
|
|||
|
// orderMark: params.orderMark, // 下单备注
|
|||
|
orderType: params.orderType || 0, // 订单类型 0=普通订单 1=虚拟订单
|
|||
|
payType: params.payType || 1, // 支付类型(0=线上、1=线下)
|
|||
|
totalAmount: params.totalAmount, // 新增字段"totalAmount"总的支付金额
|
|||
|
userName: params.userName, // 用户名
|
|||
|
payWay: 1,
|
|||
|
authorizationCode: '', //loginCode, // 登录凭证
|
|||
|
storeInfoList: params.storeInfoList, //备注信息列表
|
|||
|
couponList: params.couponList,
|
|||
|
groupInfo: params.groupInfo,
|
|||
|
});
|
|||
|
};
|
|||
|
|
|||
|
export const paySuccess = (payOrderInfo) => {
|
|||
|
const { payAmt, tradeNo, groupId, promotionId } = payOrderInfo;
|
|||
|
// 支付成功
|
|||
|
Toast({
|
|||
|
context: this,
|
|||
|
selector: '#t-toast',
|
|||
|
message: '支付成功',
|
|||
|
duration: 2000,
|
|||
|
icon: 'check-circle',
|
|||
|
});
|
|||
|
|
|||
|
const params = {
|
|||
|
totalPaid: payAmt,
|
|||
|
orderNo: tradeNo,
|
|||
|
};
|
|||
|
if (groupId) {
|
|||
|
params.groupId = groupId;
|
|||
|
}
|
|||
|
if (promotionId) {
|
|||
|
params.promotionId = promotionId;
|
|||
|
}
|
|||
|
const paramsStr = Object.keys(params)
|
|||
|
.map((k) => `${k}=${params[k]}`)
|
|||
|
.join('&');
|
|||
|
// 跳转支付结果页面
|
|||
|
wx.redirectTo({ url: `/pages/order/pay-result/index?${paramsStr}` });
|
|||
|
};
|
|||
|
|
|||
|
export const payFail = (payOrderInfo, resultMsg) => {
|
|||
|
if (resultMsg === 'requestPayment:fail cancel') {
|
|||
|
if (payOrderInfo.dialogOnCancel) {
|
|||
|
//结算页,取消付款,dialog提示
|
|||
|
Dialog.confirm({
|
|||
|
title: '是否放弃付款',
|
|||
|
content: '商品可能很快就会被抢空哦,是否放弃付款?',
|
|||
|
confirmBtn: '放弃',
|
|||
|
cancelBtn: '继续付款',
|
|||
|
}).then(() => {
|
|||
|
wx.redirectTo({ url: '/pages/order/order-list/index' });
|
|||
|
});
|
|||
|
} else {
|
|||
|
//订单列表页,订单详情页,取消付款,toast提示
|
|||
|
Toast({
|
|||
|
context: this,
|
|||
|
selector: '#t-toast',
|
|||
|
message: '支付取消',
|
|||
|
duration: 2000,
|
|||
|
icon: 'close-circle',
|
|||
|
});
|
|||
|
}
|
|||
|
} else {
|
|||
|
Toast({
|
|||
|
context: this,
|
|||
|
selector: '#t-toast',
|
|||
|
message: `支付失败:${resultMsg}`,
|
|||
|
duration: 2000,
|
|||
|
icon: 'close-circle',
|
|||
|
});
|
|||
|
setTimeout(() => {
|
|||
|
wx.redirectTo({ url: '/pages/order/order-list/index' });
|
|||
|
}, 2000);
|
|||
|
}
|
|||
|
};
|
|||
|
|
|||
|
// 微信支付方式
|
|||
|
export const wechatPayOrder = (payOrderInfo) => {
|
|||
|
// const payInfo = JSON.parse(payOrderInfo.payInfo);
|
|||
|
// const { timeStamp, nonceStr, signType, paySign } = payInfo;
|
|||
|
return new Promise((resolve) => {
|
|||
|
// demo 中直接走支付成功
|
|||
|
paySuccess(payOrderInfo);
|
|||
|
resolve();
|
|||
|
/* wx.requestPayment({
|
|||
|
timeStamp,
|
|||
|
nonceStr,
|
|||
|
package: payInfo.package,
|
|||
|
signType,
|
|||
|
paySign,
|
|||
|
success: function () {
|
|||
|
paySuccess(payOrderInfo);
|
|||
|
resolve();
|
|||
|
},
|
|||
|
fail: function (err) {
|
|||
|
payFail(payOrderInfo, err.errMsg);
|
|||
|
},
|
|||
|
}); */
|
|||
|
});
|
|||
|
};
|