| | |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import java.io.Serializable; |
| | | |
| | | import com.google.gson.annotations.SerializedName; |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | | import lombok.experimental.Accessors; |
| | |
| | | */ |
| | | @TableField("order_id") |
| | | private String orderId; |
| | | |
| | | /** |
| | | * 微信支付交易号 |
| | | */ |
| | | @TableField("out_trade_no") |
| | | private String outTradeNo; |
| | | |
| | | /** |
| | | * 支付状态1发起支付2支付成功3支付失败4已关闭 |
| | | */ |
| | |
| | | */ |
| | | @TableField("order_no") |
| | | private String orderNo; |
| | | |
| | | /** |
| | | * 微信支付交易号 |
| | | */ |
| | | @TableField("out_trade_no") |
| | | private String outTradeNo; |
| | | |
| | | /** |
| | | * 订单来源1.商城2.秒杀活动3.线下创建 |
| | | */ |
| | |
| | | * @param goodsNames |
| | | * @param prepayId |
| | | */ |
| | | void saveOrderPayment(Long userId, Long shopId, String subMchId, String orderId, BigDecimal payMoney, Date endTime, String profitSharing, String openid, String goodsNames, String prepayId); |
| | | void saveOrderPayment(Long userId, Long shopId, String subMchId, String orderId, String outTradeNo, BigDecimal payMoney, Date endTime, String profitSharing, String openid, String goodsNames, String prepayId); |
| | | |
| | | /** |
| | | * |
| | |
| | | * @return |
| | | */ |
| | | OrderPayment getByOrderId(String orderId); |
| | | |
| | | /** |
| | | * |
| | | * @param outTradeNo |
| | | * @param transactionId |
| | | */ |
| | | void updatePaySuccess(String outTradeNo, String transactionId); |
| | | } |
| | |
| | | package com.ruoyi.order.service.impl.account; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.ruoyi.common.core.utils.uuid.IdUtils; |
| | | import com.ruoyi.order.domain.pojo.account.OrderPayment; |
| | |
| | | public class OrderPaymentServiceImpl extends ServiceImpl<OrderPaymentMapper, OrderPayment> implements OrderPaymentService { |
| | | |
| | | @Override |
| | | public void saveOrderPayment(Long userId, Long shopId, String subMchId, String orderId, BigDecimal payMoney, Date endTime, |
| | | public void saveOrderPayment(Long userId, Long shopId, String subMchId, String orderId, String outTradeNo, BigDecimal payMoney, Date endTime, |
| | | String profitSharing, String openid, String goodsNames, String prepayId) { |
| | | OrderPayment payment = new OrderPayment(); |
| | | payment.setPaymentId(IdUtils.simpleUUID()); |
| | |
| | | payment.setPayMoney(payMoney); |
| | | payment.setTimeExpire(endTime); |
| | | payment.setSubMchId(subMchId); |
| | | payment.setOutTradeNo(outTradeNo); |
| | | payment.setPayStatus(1); |
| | | // 0 否 1、是 |
| | | payment.setProfitSharing("Y".equals(profitSharing) ? 1 : 0); |
| | | payment.setUserOpenId(openid); |
| | |
| | | .last(" limit 1 "); |
| | | return this.getOne(queryWrapper); |
| | | } |
| | | |
| | | @Override |
| | | public void updatePaySuccess(String outTradeNo, String transactionId) { |
| | | LambdaUpdateWrapper<OrderPayment> updateWrapper = Wrappers.lambdaUpdate(); |
| | | updateWrapper.eq(OrderPayment::getOutTradeNo, outTradeNo) |
| | | .set(OrderPayment::getPayStatus, 2) |
| | | .set(OrderPayment::getTransactionId, transactionId) |
| | | .set(OrderPayment::getBackTime, new Date()); |
| | | this.update(updateWrapper); |
| | | } |
| | | } |
| | |
| | | BigDecimal orderPayMoney = new BigDecimal("0.00"); |
| | | // 创建订单ID和订单号 |
| | | String orderId = IdUtils.simpleUUID(); |
| | | |
| | | String orderNo = CodeFactoryUtil.getShopOrderNo(); |
| | | OrderGoods orderGoods; |
| | | String orderGoodsId; |
| | |
| | | } |
| | | |
| | | if(appPlaceOrderVo.getPayMoney().compareTo(BigDecimal.TEN)<0){ |
| | | String outTradeNo = IdUtils.simpleUUID(); |
| | | |
| | | // 保存订单 交易流水 |
| | | order.setOutTradeNo(outTradeNo); |
| | | this.saveOrUpdate(order); |
| | | |
| | | // 小程序微信下单支付 |
| | | createWxPayInfo(appPlaceOrderVo, userId, order.getShopId(), goodsName, orderNo, |
| | | createWxPayInfo(appPlaceOrderVo, userId, order.getShopId(), goodsName, outTradeNo, |
| | | orderId, order.getPayMoney(), appPlaceOrderDto.getOpenid(), |
| | | appPlaceOrderDto.getSpbillCreateIp(), goodsNameList,1); |
| | | } |
| | |
| | | * @param userId |
| | | * @param shopId |
| | | * @param goodsName |
| | | * @param orderNo |
| | | * @param outTradeNo |
| | | * @param orderId |
| | | * @param payMoney |
| | | * @param openid |
| | |
| | | * @param goodsNameList |
| | | */ |
| | | public void createWxPayInfo(AppPlaceOrderVo appPlaceOrderVo, Long userId, Long shopId, |
| | | String goodsName, String orderNo, |
| | | String goodsName, String outTradeNo, |
| | | String orderId, BigDecimal payMoney, |
| | | String openid, String payerClientIp, List<String> goodsNameList,Integer orderFrom){ |
| | | try { |
| | |
| | | String description = goodsName + "-商品购买"; |
| | | |
| | | request.setDescription(description); |
| | | request.setOutTradeNo(orderNo); |
| | | request.setOutTradeNo(outTradeNo); |
| | | request.setNotifyUrl(config.getNotifyUrl()); |
| | | // 结算信息 |
| | | PartnerTransactionsRequest.SettleInfo settleInfo = new PartnerTransactionsRequest.SettleInfo(); |
| | |
| | | paymentMessageService.savePaymentMessage("1", orderId, payRequestJson, payResponseJson); |
| | | |
| | | // 保存支付订单统一下单支付记录 |
| | | orderPaymentService.saveOrderPayment(userId, shopId, subMchId, orderId, payMoney, |
| | | orderPaymentService.saveOrderPayment(userId, shopId, subMchId, orderId, outTradeNo, payMoney, |
| | | appPlaceOrderVo.getEndTime(), "Y", openid, |
| | | Joiner.on(";").join(goodsNameList), result.getPackageValue()); |
| | | |
| | | } catch (WxPayException e) { |
| | | throw new ServiceException(e.getMessage()); |
| | | } |
| | |
| | | |
| | | |
| | | if(appPlaceOrderVo.getPayMoney().compareTo(BigDecimal.TEN)<0){ |
| | | |
| | | String outTradeNo = IdUtils.simpleUUID(); |
| | | |
| | | // 保存订单 交易流水 |
| | | order.setOutTradeNo(outTradeNo); |
| | | this.saveOrUpdate(order); |
| | | |
| | | // 小程序微信下单支付 |
| | | createWxPayInfo(appPlaceOrderVo, userId, order.getShopId(), orderGoods.getGoodsName(), orderNo, |
| | | orderId, order.getPayMoney(), appPlaceActivityDto.getOpenid(), |
| | |
| | | @Override |
| | | @Transactional |
| | | public void payBack(PartnerTransactionsResult transaction) { |
| | | |
| | | // Order order = this.getById(orderId); |
| | | // 更新订单状态 订单编号,就是 微信outTradeNo |
| | | String orderNo = transaction.getOutTradeNo(); |
| | |
| | | request.setTransactionId(transaction.getTransactionId()); |
| | | profitsSharingService.applyProfitSharing(request);*/ |
| | | } |
| | | //生成支付记录 |
| | | OrderPayment orderPayment = new OrderPayment(); |
| | | //修改支付记录生成支付记录 |
| | | orderPaymentService.updatePaySuccess(transaction.getOutTradeNo(), transaction.getTransactionId()); |
| | | |
| | | PayRecord payRecord = new PayRecord(); |
| | | payRecord.setDelFlag(0); |
| | | payRecord.setOrderId(orderId); |