[fix]修改微信支付

This commit is contained in:
wangqx 2025-09-26 15:25:57 +08:00
parent ea555fbe34
commit c7d71811b6
4 changed files with 55 additions and 10 deletions

View File

@ -73,11 +73,14 @@ public class AppPayController {
if (user == null) {
return R.notLogin();
}
//先生成充值订单
chargeBO.setMemberId(user.getUserId());
chargeBO.setMethod(paymentMethodEnum.getCode());
chargeBusiness.charge(chargeBO);
payParam.setSn(chargeBO.getCode());
if(payParam.getOrderType().equals("RECHARGE")){
//先生成充值订单
chargeBO.setMemberId(user.getUserId());
chargeBO.setMethod(paymentMethodEnum.getCode());
chargeBusiness.charge(chargeBO);
payParam.setSn(chargeBO.getCode());
}
return cashierSupport.payment(paymentMethodEnum, paymentClientEnum, request, response, payParam);
} catch (ServiceException se) {
log.info("支付异常", se);

View File

@ -50,4 +50,6 @@ public interface OrderService extends IService<Order> {
void sendMessage(Long orderId);
void paySuccess(String orderNo,String payNo,Integer payType);
}

View File

@ -3,6 +3,7 @@ package com.wzj.soopin.order.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.LocalDateTimeUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.text.StrBuilder;
import cn.hutool.core.util.RandomUtil;
@ -530,5 +531,45 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
}
}
@Override
public void paySuccess(String orderNo,String payNo,Integer payType) {
// 根据订单编号查询订单信息
Order order = getByNo(orderNo);
Assert.notNull(order, "订单不存在");
// 生成订单核销码信息
verificationCodeService.generateVerificationCode(order);
// 更新订单信息
this.updateById(Order.builder()
.id(order.getId())
.status(OrderStatusEnum.VERIFY.getValue())
.paymentTime(LocalDateTime.now())
.payType(payType)
.build());
//发出消息
MqUtil.sendIMMessage(buildMQMessage(order));
}
private MQMessage buildMQMessage(Order order) {
Map<String, Object> params = new HashMap<>();
params.put("orderID", order.getId());
params.put("amount", order.getTotalAmount());
//取订单的第一个商品
List<OrderItem> orderItems = orderItemMapper.findByOrderId(order.getId());
if (CollectionUtil.isNotEmpty(orderItems)) {
params.put("name", orderItems.get(0).getProductName());
params.put("pic", orderItems.get(0).getPic());
params.put("price", orderItems.get(0).getSalePrice());
params.put("amount", orderItems.get(0).getQuantity());
}
MQMessage mqMessage = new MQMessage();
mqMessage.setTag(MessageActionEnum.ORDER_PAY.name());
mqMessage.setMessageType(MQMessageType.IM.name());
mqMessage.setToUserId(order.getMemberId());
mqMessage.setData(params);
return mqMessage;
}
}

View File

@ -54,14 +54,14 @@ public class OrderCashier implements CashierExecute {
Order order = orderService.getByNo(payParam.getSn());
// //如果订单已支付则不能发器支付
if (!order.getStatus().equals(OrderStatusEnum.UNPAID.name())) {
if (!order.getStatus().equals(OrderStatusEnum.UNPAID.getValue())) {
throw new ServiceException(ResultCode.PAY_DOUBLE_ERROR);
}
//如果订单状态不是待付款则抛出异常
if (!order.getStatus().equals(OrderStatusEnum.UNPAID.getValue())) {
throw new ServiceException(ResultCode.PAY_BAN);
}
cashierParam.setPrice(order.getPayAmount().longValue());
cashierParam.setPrice(order.getTotalAmount().longValue());
//
// try {
// BaseSetting baseSetting = JSONUtil.toBean(settingService.get(SettingEnum.BASE_SETTING.name()).getSettingValue(), BaseSetting.class);
@ -92,9 +92,8 @@ public class OrderCashier implements CashierExecute {
PayParam payParam = paymentSuccessParams.getPayParam();
if (payParam.getOrderType().equals(CashierEnum.ORDER.name())) {
// orderService.payOrder(payParam.getSn(),
// paymentSuccessParams.getPaymentMethod(),
// paymentSuccessParams.getReceivableNo());
orderService.paySuccess(payParam.getSn(),
paymentSuccessParams.getReceivableNo(),paymentSuccessParams.getPaymentMethod());
log.info("订单{}支付成功,金额{},方式{}", payParam.getSn(),
paymentSuccessParams.getPaymentMethod(),
paymentSuccessParams.getReceivableNo());