小程序支付调整

dev
caolin 2023-08-23 16:02:14 +08:00
parent e5beeb0ac9
commit 61afc0928f
5 changed files with 29 additions and 12 deletions

View File

@ -1,7 +1,9 @@
package com.jwl.driver.server.controller;
import com.jwl.driver.server.config.WechatPayConfig;
import com.jwl.driver.server.entity.OrderPayInfo;
import com.jwl.driver.server.response.BaseResponse;
import com.jwl.driver.server.service.IOrderPayInfoService;
import com.jwl.driver.server.util.WechatPayUtil;
import com.jwl.driver.server.vo.AppletPayVo;
import com.wechat.pay.java.core.Config;
@ -13,12 +15,14 @@ import com.wechat.pay.java.service.payments.model.Transaction;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.annotation.Resource;
import java.math.BigDecimal;
/**
*
@ -32,17 +36,21 @@ public class AppletPayController {
@Resource
private WechatPayConfig wechatPayConfig;
@Autowired
private IOrderPayInfoService orderPayInfoService;
//生成预支付订单
@ApiOperation("生成预支付订单")
@PostMapping("/prepay")
public BaseResponse createPrepay(@RequestBody AppletPayVo payDto){
// 构建service
JsapiServiceExtension service = createService();
OrderPayInfo orderPayInfo = orderPayInfoService.createOrderPayInfo(payDto.getMoney(),payDto.getUserId(), payDto.getDescription(), payDto.getOutTradeNo(), "applet");
// 请求下单参数
PrepayRequest request = new PrepayRequest();
Amount amount = new Amount();
amount.setTotal(Integer.valueOf((payDto.getMoney()*100)+""));
amount.setTotal(Integer.valueOf((payDto.getMoney().multiply(new BigDecimal("100")).setScale(0).toString())+""));
request.setAmount(amount);
request.setAppid(wechatPayConfig.getAppId());
request.setMchid(wechatPayConfig.getMchId());

View File

@ -46,7 +46,7 @@ public class H5PayController {
// 构建service
H5Service service = createService();
//在order_pay_info里新增一条数据
OrderPayInfo orderPayInfo = orderPayInfoService.createOrderPayInfo(payVo);
OrderPayInfo orderPayInfo = orderPayInfoService.createOrderPayInfo(payVo.getMoney(),payVo.getUserId(),payVo.getDescription(), payVo.getOutTradeNo(), "h5");
// 请求下单参数
PrepayRequest request = new PrepayRequest();

View File

@ -4,6 +4,8 @@ import com.jwl.driver.server.entity.OrderPayInfo;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jwl.driver.server.vo.H5PayVo;
import java.math.BigDecimal;
/**
* <p>
*
@ -16,10 +18,14 @@ public interface IOrderPayInfoService extends IService<OrderPayInfo> {
/**
*
* @param payVo
* @param money
* @param userIdStr
* @param description
* @param outTradeNo
* @param payType
* @return
*/
OrderPayInfo createOrderPayInfo(H5PayVo payVo);
OrderPayInfo createOrderPayInfo(BigDecimal money,String userIdStr,String description,String outTradeNo,String payType);
/**
*

View File

@ -46,23 +46,24 @@ public class OrderPayInfoServiceImpl extends ServiceImpl<OrderPayInfoMapper, Ord
private Snowflake snowflake;
@Override
public OrderPayInfo createOrderPayInfo(H5PayVo payVo) {
Long userId = StrUtil.isNotBlank(payVo.getUserId()) ? Long.parseLong(payVo.getUserId()) : SecurityUtil.getUserId();
public OrderPayInfo createOrderPayInfo(BigDecimal money,String userIdStr,String description,String outTradeNo,String payType) {
Long userId = StrUtil.isNotBlank(userIdStr) ? Long.parseLong(userIdStr) : SecurityUtil.getUserId();
TdSysUser user = userService.getById(userId);
if (Objects.isNull(user)) {
log.error("数据异常,用户不存在" + userId);
throw new BusinessException("数据缺失");
}
TdMember member = memberService.getById(Integer.parseInt(payVo.getOutTradeNo()));
TdMember member = memberService.getById(Integer.parseInt(outTradeNo));
if (Objects.isNull(member) || StrUtil.equals(Constants.IS_ACTIVE_FALSE, member.getIsActive())) {
log.error("数据异常,会员不存在或者已过期" + payVo.getOutTradeNo());
log.error("数据异常,会员不存在或者已过期" + outTradeNo);
throw new BusinessException("数据缺失");
}
OrderPayInfo orderPayInfo = new OrderPayInfo()
.setPayId(snowflake.nextId())
.setMemberId(Integer.parseInt(payVo.getOutTradeNo()))
.setMoney(payVo.getMoney())
.setMemberId(Integer.parseInt(outTradeNo))
.setMoney(money)
.setPaymentType(Constants.WECHAT_PAY)
.setPayType(payType)
.setDescription(user.getUserName() + "-" + member.getMemberName())
.setPayStatus(PayStatus.NOT.getValue())
.setDeleteStatus(0)

View File

@ -4,12 +4,14 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
@Data
@ApiModel("微信支付")
public class AppletPayVo {
@ApiModelProperty("支付金额")
private Double money;//金额
private BigDecimal money;//金额
@ApiModelProperty("小程序端 获取的code")
private String code;//小程序端 获取的code
@ -23,4 +25,4 @@ public class AppletPayVo {
@ApiModelProperty("商户系统的订单号")
private String outTradeNo;
}
}