跳过微信支付
OrderController
/**
* 订单支付
*
* @param ordersPaymentDTO
* @return
*/
@PutMapping("/payment")
@ApiOperation("订单支付")
public Result<OrderPaymentVO> payment(@RequestBody OrdersPaymentDTO ordersPaymentDTO) throws Exception {
log.info("订单支付:{}", ordersPaymentDTO);
OrderPaymentVO orderPaymentVO = orderService.payment(ordersPaymentDTO);
log.info("生成预支付交易单:{}", orderPaymentVO);
// 模拟交易成功,修改数据库订单状态
orderService.paySuccess(ordersPaymentDTO.getOrderNumber());
log.info("模拟交易成功:{}", ordersPaymentDTO.getOrderNumber());
return Result.success(orderPaymentVO);
}
orderServiceImpl
/**
* 订单支付
*
* @param ordersPaymentDTO
* @return
*/
public OrderPaymentVO payment(OrdersPaymentDTO ordersPaymentDTO) throws Exception {
// 当前登录用户id
Long userId = BaseContext.getCurrentId();
User user = userMapper.getById(userId);
// //调用微信支付接口,生成预支付交易单
// JSONObject jsonObject = weChatPayUtil.pay(
// ordersPaymentDTO.getOrderNumber(), //商户订单号
// new BigDecimal(0.01), //支付金额,单位 元
// "苍穹外卖订单", //商品描述
// user.getOpenid() //微信用户的openid
// );
// 生成空的JSON,跳过微信支付流程
JSONObject jsonObject = new JSONObject();
if (jsonObject.getString("code") != null && jsonObject.getString("code").equals("ORDERPAID")) {
throw new OrderBusinessException("该订单已支付");
}
OrderPaymentVO vo = jsonObject.toJavaObject(OrderPaymentVO.class);
vo.setPackageStr(jsonObject.getString("package"));
return vo;
}
小程序-pages.pay.index.js
if (res.code === 1) {
//直接调用支付成功界面
wx.showModal({
title: '演示',
content: '支付成功',
success:function(){
uni.redirectTo({url: '/pages/success/index?orderId' + _this.orderId})
}
})
console.log('支付成功!')
效果展示