苍穹外卖-如何取消/跳过微信支付功能-实现模拟微信支付
微信支付代码定位(小程序端)
全局搜索/payment 定位到请求方法common\
// 订单支付
var paymentOrder = function paymentOrder(params) {return (
(0, _request.request)({
url: "/user/order/payment",
method: 'PUT',
params: params }));};
可以找到请求/user/order/payment的方法定义
根据paymentOrder方法 全局搜索找到使用该方法的位置common\
wx.requestPayment({
nonceStr: res.data.nonceStr,
package: res.data.packageStr,
paySign: res.data.paySign,
timeStamp: res.data.timeStamp,
signType: res.data.signType,
success:function(res){
wx.showModal({
title: '提示',
content: '支付成功',
success:function(){
uni.redirectTo({url: '/pages/success/index?orderId=' + _this.orderId });
}
})
console.log('支付成功!')
}
})
可以定位到小程序向微信服务器发送的支付方法
跳过微信支付代码(小程序端)
注释/替换上述微信支付的代码
// 跳过微信支付
wx.showModal({
title: '提示',
content: '支付成功',
success:function(){
uni.redirectTo({url: '/pages/success/index?orderId=' + _this.orderId });
}
})
console.log('支付成功!')
return;
无需向微信服务器发送支付请求,直接弹出支付成功的提示
跳过微信支付代码(后端)
修改的实现方法
public void payment(OrdersPaymentDTO ordersPaymentDTO) {
Long userId = BaseContext.getCurrentId();
Orders ordersDB = orderMapper.getByNumberAndUserId(ordersPaymentDTO.getOrderNumber(), userId);
Orders order = Orders.builder()
.id(ordersDB.getId())
.status(Orders.TO_BE_CONFIRMED)
.payStatus(Orders.PAID)
.checkoutTime(LocalDateTime.now()).build();
orderMapper.update(order);
}
修改OrderService中原微信支付的代码,跳过向微信服务器发起预支付请求的过程,直接模拟支付成功