Browse Source

支付优化

feature-1.1
wuxicheng 3 years ago
parent
commit
5b48a75798
  1. 4
      bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bo/QueryOrderBo.java
  2. 17
      bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bo/RefundBo.java
  3. 2
      bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bo/UnifiedOrderBo.java
  4. 13
      bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/controller/UnifiedPayController.java
  5. 15
      bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/AliPayStrategy.java
  6. 23
      bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/DYPayStrategy.java
  7. 23
      bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/IPayStrategy.java
  8. 23
      bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/KSPayStrategy.java
  9. 31
      bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/WxPayStrategy.java
  10. 3
      bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/dto/QueryOrderDto.java
  11. 17
      bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/dto/RefundDto.java
  12. 2
      bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/dto/UnifiedOrderDto.java
  13. 2
      bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/enums/EnumPayConfigStatus.java
  14. 6
      bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/UnifiedPayService.java
  15. 22
      bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/impl/UnifiedPayServiceImpl.java
  16. 10
      bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/vo/ThirdRefundVo.java
  17. 5
      bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/vo/ThirdUnifiedOrderVo.java
  18. 10
      bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/vo/UnifiedOrderVo.java

4
bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bo/QueryOrderBo.java

@ -14,10 +14,6 @@ import lombok.Setter;
@NoArgsConstructor
public class QueryOrderBo {
/**
* 支付类型wxpay/alipay/kspay/dypay
*/
private String payType;
/**
* 交易类型 1--JSAPI支付小程序appId支付2--Native支付3--app支付4--JSAPI支付公众号appId支付5--H5支付,微信支付必填
*/

17
bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bo/RefundBo.java

@ -0,0 +1,17 @@
package com.bnyer.pay.bo;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
/**
* @author :WXC
* @Date :2023/05/08
* @description :
*/
@Getter
@Setter
@NoArgsConstructor
public class RefundBo {
}

2
bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bo/UnifiedOrderBo.java

@ -21,7 +21,7 @@ public class UnifiedOrderBo {
*/
private String payId;
/**
* trade_type=JSAPI此参数必传用户在商户appid下的唯一标识
* 用户在商户appid下的唯一标识
*/
private String openId;
/**

13
bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/controller/UnifiedPayController.java

@ -1,12 +1,11 @@
package com.bnyer.pay.controller;
import com.bnyer.common.core.domain.R;
import com.bnyer.pay.dto.InOrderDto;
import com.bnyer.pay.dto.UnifiedOrderDto;
import com.bnyer.pay.dto.QueryOrderDto;
import com.bnyer.pay.service.UnifiedPayService;
import com.bnyer.pay.vo.InOrderVo;
import com.bnyer.pay.vo.UnifiedOrderVo;
import com.bnyer.pay.vo.QueryOrderVo;
import com.bnyer.pay.vo.ThirdInOrderVo;
import io.swagger.annotations.Api;
import io.swagger.v3.oas.annotations.Operation;
import lombok.extern.slf4j.Slf4j;
@ -33,11 +32,11 @@ public class UnifiedPayController {
@Autowired
private UnifiedPayService unifiedPayService;
@PostMapping("/inOrder")
@PostMapping("/unifiedOrder")
@Operation(summary = "统一下单,并生成支付订单" , description = "生成支付订单,返回前端支付所需参数")
public R<InOrderVo> inOrder(@Valid @RequestBody InOrderDto dto, HttpServletRequest request){
InOrderVo inOrderVo = unifiedPayService.inOrder(dto,request);
return R.ok(inOrderVo);
public R<UnifiedOrderVo> unifiedOrder(@Valid @RequestBody UnifiedOrderDto dto, HttpServletRequest request){
UnifiedOrderVo unifiedOrderVo = unifiedPayService.unifiedOrder(dto,request);
return R.ok(unifiedOrderVo);
}
@PostMapping("/queryOrder")

15
bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/AliPayStrategy.java

@ -22,6 +22,7 @@ import com.bnyer.common.core.exception.ServiceException;
import com.bnyer.common.core.utils.DateUtils;
import com.bnyer.common.core.utils.StringUtils;
import com.bnyer.pay.bo.QueryOrderBo;
import com.bnyer.pay.bo.RefundBo;
import com.bnyer.pay.bo.UnifiedOrderBo;
import com.bnyer.pay.constant.AliPayConstant;
import com.bnyer.pay.dto.EditPayInfoNotifyDto;
@ -29,7 +30,8 @@ import com.bnyer.pay.dto.PayNotifyCheckDto;
import com.bnyer.pay.enums.EnumPayChannel;
import com.bnyer.pay.manager.AliPayManager;
import com.bnyer.pay.service.PayInfoService;
import com.bnyer.pay.vo.ThirdInOrderVo;
import com.bnyer.pay.vo.ThirdRefundVo;
import com.bnyer.pay.vo.ThirdUnifiedOrderVo;
import com.bnyer.pay.vo.ThirdQueryOrderVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@ -60,7 +62,7 @@ public class AliPayStrategy extends AbstractPayStrategy {
}
@Override
public ThirdInOrderVo unifiedOrder(UnifiedOrderBo bo) {
public ThirdUnifiedOrderVo unifiedOrder(UnifiedOrderBo bo) {
log.info("支付宝支付:统一下单接口调用开始,AliPayStrategy.unifiedOrder bo:{}", JSON.toJSONString(bo));
AlipayConfig alipayConfig = aliPayManager.getAlipayConfig();
String appid = alipayConfig.getAppid();
@ -88,8 +90,8 @@ public class AliPayStrategy extends AbstractPayStrategy {
// 这里和普通的接口调用不同,使用的是sdkExecute
AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request);
if(response.isSuccess()){
ThirdInOrderVo vo = new ThirdInOrderVo();
ThirdInOrderVo.AliThirdInOrderVo aliThirdInOrderVo = new ThirdInOrderVo.AliThirdInOrderVo();
ThirdUnifiedOrderVo vo = new ThirdUnifiedOrderVo();
ThirdUnifiedOrderVo.AliThirdInOrderVo aliThirdInOrderVo = new ThirdUnifiedOrderVo.AliThirdInOrderVo();
aliThirdInOrderVo.setOutStr(response.getBody());
vo.setAliThirdInOrderVo(aliThirdInOrderVo);
vo.setOutOrderNo(bo.getPayId());
@ -209,5 +211,10 @@ public class AliPayStrategy extends AbstractPayStrategy {
}
}
@Override
public ThirdRefundVo refund(RefundBo bo) {
return null;
}
}

23
bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/DYPayStrategy.java

@ -11,6 +11,7 @@ import com.bnyer.common.core.enums.ResponseEnum;
import com.bnyer.common.core.exception.ServiceException;
import com.bnyer.common.core.utils.StringUtils;
import com.bnyer.pay.bo.QueryOrderBo;
import com.bnyer.pay.bo.RefundBo;
import com.bnyer.pay.bo.UnifiedOrderBo;
import com.bnyer.pay.constant.DYPayConstants;
import com.bnyer.pay.dto.EditPayInfoNotifyDto;
@ -22,7 +23,8 @@ import com.bnyer.pay.service.PayInfoService;
import com.bnyer.pay.utils.DYPayUtil;
import com.bnyer.pay.utils.MoneyUtil;
import com.bnyer.pay.utils.PayRestTemplateUtil;
import com.bnyer.pay.vo.ThirdInOrderVo;
import com.bnyer.pay.vo.ThirdRefundVo;
import com.bnyer.pay.vo.ThirdUnifiedOrderVo;
import com.bnyer.pay.vo.ThirdQueryOrderVo;
import com.github.binarywang.wxpay.bean.request.BaseWxPayRequest;
import com.github.binarywang.wxpay.bean.result.BaseWxPayResult;
@ -75,7 +77,7 @@ public class DYPayStrategy extends AbstractPayStrategy{
}
@Override
public ThirdInOrderVo unifiedOrder(UnifiedOrderBo bo) {
public ThirdUnifiedOrderVo unifiedOrder(UnifiedOrderBo bo) {
String result = "";
DypayConfig dypayConfig = getDypayConfig();
String appId = dypayConfig.getAppid();
@ -145,15 +147,15 @@ public class DYPayStrategy extends AbstractPayStrategy{
throw new ServiceException(ResponseEnum.PAY_FAILS);
}
//保存预下单信息
ThirdInOrderVo thirdInOrderVo = new ThirdInOrderVo();
thirdInOrderVo.setAppId(appId);
ThirdInOrderVo.DyThirdInOrderVo dyThirdInOrderVo = new ThirdInOrderVo.DyThirdInOrderVo();
thirdInOrderVo.setOutOrderNo(bo.getPayId());
ThirdUnifiedOrderVo thirdUnifiedOrderVo = new ThirdUnifiedOrderVo();
thirdUnifiedOrderVo.setAppId(appId);
ThirdUnifiedOrderVo.DyThirdInOrderVo dyThirdInOrderVo = new ThirdUnifiedOrderVo.DyThirdInOrderVo();
thirdUnifiedOrderVo.setOutOrderNo(bo.getPayId());
//把order_no和order_info_token返回前端用于调起收银台
dyThirdInOrderVo.setOrderId(orderId);
dyThirdInOrderVo.setOrderToken(orderToken);
thirdInOrderVo.setDyThirdInOrderVo(dyThirdInOrderVo);
return thirdInOrderVo;
thirdUnifiedOrderVo.setDyThirdInOrderVo(dyThirdInOrderVo);
return thirdUnifiedOrderVo;
}
@Override
@ -291,4 +293,9 @@ public class DYPayStrategy extends AbstractPayStrategy{
thirdQueryOrderVo.setChannelNo(channelNo);
return thirdQueryOrderVo;
}
@Override
public ThirdRefundVo refund(RefundBo bo) {
return null;
}
}

23
bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/IPayStrategy.java

@ -1,8 +1,10 @@
package com.bnyer.pay.design.strategy;
import com.bnyer.pay.bo.QueryOrderBo;
import com.bnyer.pay.bo.RefundBo;
import com.bnyer.pay.bo.UnifiedOrderBo;
import com.bnyer.pay.vo.ThirdInOrderVo;
import com.bnyer.pay.vo.ThirdRefundVo;
import com.bnyer.pay.vo.ThirdUnifiedOrderVo;
import com.bnyer.pay.vo.ThirdQueryOrderVo;
/**
@ -16,10 +18,10 @@ public interface IPayStrategy {
* @param bo
* @return
*/
ThirdInOrderVo unifiedOrder(UnifiedOrderBo bo);
ThirdUnifiedOrderVo unifiedOrder(UnifiedOrderBo bo);
/**
* 支付回调处理
* 统一支付回调处理
* 满足支付成功需要几个条件
* 1.回调到pay服务时要保证修改支付状态payStatus为1001对账状态singStatus为1001
* 2.pay服务处理完以后发送消息到order服务修改order表订单状态orderStatus为1支付状态payStatus为1001
@ -31,15 +33,20 @@ public interface IPayStrategy {
String parsePayNotify(String params);
/**
* 订单查询
* 统一订单查询
* @param bo 入参
* @return 第三方订单查询信息
*/
ThirdQueryOrderVo queryOrder(QueryOrderBo bo);
//===========待完成================
// TODO: 2023/04/03 订单查询
// TODO: 2023/04/03 退款
// void refund();
/**
* 统一退款
* @param bo 入参
* @return 第三方退款信息
*/
ThirdRefundVo refund(RefundBo bo);
//===========待完成================
// TODO: 2023/04/03 退款查询
// void refundQuery();
}

23
bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/KSPayStrategy.java

@ -13,6 +13,7 @@ import com.bnyer.common.core.enums.ResponseEnum;
import com.bnyer.common.core.exception.ServiceException;
import com.bnyer.common.core.utils.StringUtils;
import com.bnyer.pay.bo.QueryOrderBo;
import com.bnyer.pay.bo.RefundBo;
import com.bnyer.pay.bo.UnifiedOrderBo;
import com.bnyer.pay.constant.KSPayConstants;
import com.bnyer.pay.dto.EditPayInfoNotifyDto;
@ -24,7 +25,8 @@ import com.bnyer.pay.service.PayInfoService;
import com.bnyer.pay.utils.KSPayUtil;
import com.bnyer.pay.utils.MoneyUtil;
import com.bnyer.pay.utils.PayRestTemplateUtil;
import com.bnyer.pay.vo.ThirdInOrderVo;
import com.bnyer.pay.vo.ThirdRefundVo;
import com.bnyer.pay.vo.ThirdUnifiedOrderVo;
import com.bnyer.pay.vo.ThirdQueryOrderVo;
import com.github.binarywang.wxpay.bean.request.BaseWxPayRequest;
import lombok.extern.slf4j.Slf4j;
@ -77,7 +79,7 @@ public class KSPayStrategy extends AbstractPayStrategy{
}
@Override
public ThirdInOrderVo unifiedOrder(UnifiedOrderBo bo) {
public ThirdUnifiedOrderVo unifiedOrder(UnifiedOrderBo bo) {
String result = "";
KspayConfig kspayConfig = getKspayConfig();
String openId = SecurityContextHolder.getFhOpenId();
@ -150,15 +152,15 @@ public class KSPayStrategy extends AbstractPayStrategy{
throw new ServiceException(ResponseEnum.PAY_FAILS);
}
//保存预下单信息
ThirdInOrderVo thirdInOrderVo = new ThirdInOrderVo();
thirdInOrderVo.setAppId(appId);
ThirdInOrderVo.KsThirdInOrderVo ksThirdInOrderVo = new ThirdInOrderVo.KsThirdInOrderVo();
thirdInOrderVo.setOutOrderNo(bo.getPayId());
ThirdUnifiedOrderVo thirdUnifiedOrderVo = new ThirdUnifiedOrderVo();
thirdUnifiedOrderVo.setAppId(appId);
ThirdUnifiedOrderVo.KsThirdInOrderVo ksThirdInOrderVo = new ThirdUnifiedOrderVo.KsThirdInOrderVo();
thirdUnifiedOrderVo.setOutOrderNo(bo.getPayId());
//把order_no和order_info_token返回前端用于调起收银台
ksThirdInOrderVo.setOrderNo(orderNo);
ksThirdInOrderVo.setOrderToken(orderToken);
thirdInOrderVo.setKsThirdInOrderVo(ksThirdInOrderVo);
return thirdInOrderVo;
thirdUnifiedOrderVo.setKsThirdInOrderVo(ksThirdInOrderVo);
return thirdUnifiedOrderVo;
}
@Override
@ -294,4 +296,9 @@ public class KSPayStrategy extends AbstractPayStrategy{
thirdQueryOrderVo.setOpenId(openId);
return thirdQueryOrderVo;
}
@Override
public ThirdRefundVo refund(RefundBo bo) {
return null;
}
}

31
bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/WxPayStrategy.java

@ -8,6 +8,7 @@ import com.bnyer.common.core.enums.ResponseEnum;
import com.bnyer.common.core.exception.ServiceException;
import com.bnyer.common.core.utils.StringUtils;
import com.bnyer.pay.bo.QueryOrderBo;
import com.bnyer.pay.bo.RefundBo;
import com.bnyer.pay.bo.UnifiedOrderBo;
import com.bnyer.pay.dto.EditPayInfoNotifyDto;
import com.bnyer.pay.dto.PayNotifyCheckDto;
@ -17,7 +18,8 @@ import com.bnyer.pay.enums.EnumWxPayStatus;
import com.bnyer.pay.manager.WxPayManager;
import com.bnyer.pay.service.PayInfoService;
import com.bnyer.pay.utils.WXPayUtil;
import com.bnyer.pay.vo.ThirdInOrderVo;
import com.bnyer.pay.vo.ThirdRefundVo;
import com.bnyer.pay.vo.ThirdUnifiedOrderVo;
import com.bnyer.pay.vo.ThirdQueryOrderVo;
import com.github.binarywang.wxpay.bean.notify.WxPayNotifyResponse;
import com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyV3Result;
@ -56,20 +58,20 @@ public class WxPayStrategy extends AbstractPayStrategy {
}
@Override
public ThirdInOrderVo unifiedOrder(UnifiedOrderBo bo) {
public ThirdUnifiedOrderVo unifiedOrder(UnifiedOrderBo bo) {
log.info("微信支付:统一下单接口调用开始,WxPayStrategy.unifiedOrder bo:{}",JSON.toJSONString(bo));
ThirdInOrderVo thirdInOrderVo = null;
ThirdUnifiedOrderVo thirdUnifiedOrderVo = null;
EnumTradeType payByTradeType = EnumTradeType.getPayByTradeType(bo.getTradeType());
switch (payByTradeType){
case JSAPI_MINI:
thirdInOrderVo = jsApiPay(bo);
thirdUnifiedOrderVo = jsApiPay(bo);
break;
case JSAPI_PUBLIC:
break;
default:
throw new ServiceException("TradeType未匹配上对应支付方式");
}
return thirdInOrderVo;
return thirdUnifiedOrderVo;
}
/**
@ -77,7 +79,7 @@ public class WxPayStrategy extends AbstractPayStrategy {
* @param bo
* @return
*/
private ThirdInOrderVo jsApiPay(UnifiedOrderBo bo) {
private ThirdUnifiedOrderVo jsApiPay(UnifiedOrderBo bo) {
WxpayConfig wxPayConfig = wxPayManager.getWxPayConfigByTradeType(bo.getTradeType());
WxPayService wxPayService = wxPayManager.getWxPayService(wxPayConfig);
String openId = SecurityContextHolder.getWechatOpenId();
@ -95,16 +97,16 @@ public class WxPayStrategy extends AbstractPayStrategy {
WxPayUnifiedOrderV3Result wxPayUnifiedOrderV3Result = wxPayService.createOrderV3(TradeTypeEnum.JSAPI, orderRequest);
WxPayUnifiedOrderV3Result.JsapiResult jsapiResult = wxPayUnifiedOrderV3Result.getPayInfo(TradeTypeEnum.JSAPI, wxPayConfig.getAppid(), wxPayConfig.getMchid(), wxPayService.getConfig().getPrivateKey());
//返回数据
ThirdInOrderVo thirdInOrderVo = new ThirdInOrderVo();
thirdInOrderVo.setAppId(wxPayConfig.getAppid());
ThirdInOrderVo.WxThirdInOrderVo wxThirdInOrderVo = new ThirdInOrderVo.WxThirdInOrderVo();
ThirdUnifiedOrderVo thirdUnifiedOrderVo = new ThirdUnifiedOrderVo();
thirdUnifiedOrderVo.setAppId(wxPayConfig.getAppid());
ThirdUnifiedOrderVo.WxThirdInOrderVo wxThirdInOrderVo = new ThirdUnifiedOrderVo.WxThirdInOrderVo();
wxThirdInOrderVo.setPackageValue(jsapiResult.getPackageValue());
wxThirdInOrderVo.setTimeStamp(jsapiResult.getTimeStamp());
wxThirdInOrderVo.setNonceStr(jsapiResult.getNonceStr());
wxThirdInOrderVo.setPaySign(jsapiResult.getPaySign());
thirdInOrderVo.setOutOrderNo(bo.getPayId());
thirdInOrderVo.setAppId(jsapiResult.getAppId());
return thirdInOrderVo;
thirdUnifiedOrderVo.setOutOrderNo(bo.getPayId());
thirdUnifiedOrderVo.setAppId(jsapiResult.getAppId());
return thirdUnifiedOrderVo;
} catch (WxPayException e) {
log.error("微信支付:统一下单接口调用失败,payId:{},error{}", bo.getPayId(), e.getMessage());
throw new ServiceException(ResponseEnum.PAY_FAILS);
@ -201,4 +203,9 @@ public class WxPayStrategy extends AbstractPayStrategy {
throw new ServiceException(ResponseEnum.ORDER_QUERY_FAILS);
}
}
@Override
public ThirdRefundVo refund(RefundBo bo) {
return null;
}
}

3
bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/dto/QueryOrderDto.java

@ -21,4 +21,7 @@ public class QueryOrderDto {
@ApiModelProperty(value="支付单号",required = true)
private String payId;
@ApiModelProperty(value = "第三方流水号")
private String payNo;
}

17
bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/dto/RefundDto.java

@ -0,0 +1,17 @@
package com.bnyer.pay.dto;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
/**
* @author :WXC
* @Date :2023/05/08
* @description :
*/
@Getter
@Setter
@NoArgsConstructor
public class RefundDto {
}

2
bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/dto/InOrderDto.java → bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/dto/UnifiedOrderDto.java

@ -17,7 +17,7 @@ import javax.validation.constraints.NotNull;
@Getter
@Setter
@NoArgsConstructor
public class InOrderDto {
public class UnifiedOrderDto {
@NotBlank(message = "业务主订单号不能为空")
@ApiModelProperty(value="业务主订单号:关联内部业务订单表",required = true)

2
bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/enums/EnumPayConfigStatus.java

@ -13,7 +13,7 @@ import java.util.Objects;
@AllArgsConstructor
public enum EnumPayConfigStatus {
ENABLE("0","正常"),
ENABLE("0","启用"),
DISABLE("1","停用"),
;

6
bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/UnifiedPayService.java

@ -1,8 +1,8 @@
package com.bnyer.pay.service;
import com.bnyer.pay.dto.InOrderDto;
import com.bnyer.pay.dto.UnifiedOrderDto;
import com.bnyer.pay.dto.QueryOrderDto;
import com.bnyer.pay.vo.InOrderVo;
import com.bnyer.pay.vo.UnifiedOrderVo;
import com.bnyer.pay.vo.QueryOrderVo;
import javax.servlet.http.HttpServletRequest;
@ -20,7 +20,7 @@ public interface UnifiedPayService {
* @param request
* @return
*/
InOrderVo inOrder(InOrderDto dto, HttpServletRequest request);
UnifiedOrderVo unifiedOrder(UnifiedOrderDto dto, HttpServletRequest request);
/**
* 统一订单查询

22
bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/impl/UnifiedPayServiceImpl.java

@ -15,7 +15,7 @@ import com.bnyer.pay.constant.KSPayConstants;
import com.bnyer.pay.design.factory.PayFactory;
import com.bnyer.pay.design.strategy.IPayStrategy;
import com.bnyer.pay.dto.AddPayInfoDto;
import com.bnyer.pay.dto.InOrderDto;
import com.bnyer.pay.dto.UnifiedOrderDto;
import com.bnyer.pay.dto.QueryOrderDto;
import com.bnyer.pay.enums.EnumAliPayStatus;
import com.bnyer.pay.enums.EnumDyPayStatus;
@ -56,7 +56,7 @@ public class UnifiedPayServiceImpl implements UnifiedPayService {
* @return
*/
@Override
public InOrderVo inOrder(InOrderDto dto, HttpServletRequest request) {
public UnifiedOrderVo unifiedOrder(UnifiedOrderDto dto, HttpServletRequest request) {
//支付金额
String payAmount;
//商品类型:快手支付需要
@ -93,32 +93,32 @@ public class UnifiedPayServiceImpl implements UnifiedPayService {
if (Objects.isNull(payStrategy)){
throw new ServiceException("暂不支持该支付方式");
}
ThirdInOrderVo thirdInOrderVo = payStrategy.unifiedOrder(unifiedOrderBo);
ThirdUnifiedOrderVo thirdUnifiedOrderVo = payStrategy.unifiedOrder(unifiedOrderBo);
//构建支付订单完成入库
AddPayInfoDto addPayInfoDto = buildPayInfo(thirdInOrderVo, unifiedOrderBo,dto);
AddPayInfoDto addPayInfoDto = buildPayInfo(thirdUnifiedOrderVo, unifiedOrderBo,dto);
payInfoService.addPayInfo(addPayInfoDto);
InOrderVo inOrderVo = EntityConvertUtil.copy(thirdInOrderVo, InOrderVo.class);
return inOrderVo;
UnifiedOrderVo unifiedOrderVo = EntityConvertUtil.copy(thirdUnifiedOrderVo, UnifiedOrderVo.class);
return unifiedOrderVo;
}
/**
* 构建支付订单
*
* @param thirdInOrderVo
* @param thirdUnifiedOrderVo
* @param unifiedOrderBo
* @param dto
* @return
*/
private AddPayInfoDto buildPayInfo(ThirdInOrderVo thirdInOrderVo, UnifiedOrderBo unifiedOrderBo, InOrderDto dto) {
private AddPayInfoDto buildPayInfo(ThirdUnifiedOrderVo thirdUnifiedOrderVo, UnifiedOrderBo unifiedOrderBo, UnifiedOrderDto dto) {
AddPayInfoDto addPayInfoDto = new AddPayInfoDto();
addPayInfoDto.setAppid(thirdInOrderVo.getAppId());
addPayInfoDto.setAppid(thirdUnifiedOrderVo.getAppId());
addPayInfoDto.setOrderNo(dto.getOrderNo());
addPayInfoDto.setSceneCode(dto.getSceneCode());
addPayInfoDto.setRemark(dto.getRemark());
addPayInfoDto.setPayType(dto.getPayType());
addPayInfoDto.setPayId(unifiedOrderBo.getPayId());
addPayInfoDto.setPayAmount(new BigDecimal(unifiedOrderBo.getPayAmount()));
addPayInfoDto.setAppid(thirdInOrderVo.getAppId());
addPayInfoDto.setAppid(thirdUnifiedOrderVo.getAppId());
addPayInfoDto.setGoodsSubject(unifiedOrderBo.getGoodsSubject());
addPayInfoDto.setGoodsDesc(unifiedOrderBo.getGoodsDesc());
addPayInfoDto.setTradeType(dto.getTradeType());
@ -138,7 +138,7 @@ public class UnifiedPayServiceImpl implements UnifiedPayService {
* @param request 请求request用于获取ip地址
* @return
*/
private UnifiedOrderBo buildUnifiedOrderDto(InOrderDto dto, String goodsDesc, int goodsType, String payAmount, String payId, HttpServletRequest request) {
private UnifiedOrderBo buildUnifiedOrderDto(UnifiedOrderDto dto, String goodsDesc, int goodsType, String payAmount, String payId, HttpServletRequest request) {
String openId = "";
//当前时间
Date currDate = new Date();

10
bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/vo/ThirdRefundVo.java

@ -0,0 +1,10 @@
package com.bnyer.pay.vo;
/**
* @author :WXC
* @Date :2023/05/08
* @description :
*/
public class ThirdRefundVo {
}

5
bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/vo/ThirdInOrderVo.java → bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/vo/ThirdUnifiedOrderVo.java

@ -2,7 +2,6 @@ package com.bnyer.pay.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import lombok.experimental.Accessors;
import java.io.Serializable;
@ -13,7 +12,7 @@ import java.io.Serializable;
*/
@Data
@NoArgsConstructor
public class ThirdInOrderVo implements Serializable {
public class ThirdUnifiedOrderVo implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "应用id")
@ -44,7 +43,7 @@ public class ThirdInOrderVo implements Serializable {
private String nonceStr;
@ApiModelProperty(value = "会话标识")
private String packageValue;
@ApiModelProperty(value = "微信返回的字段")
@ApiModelProperty(value = "签名类型")
private String signType;
@ApiModelProperty(value = "签名")
private String paySign;

10
bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/vo/InOrderVo.java → bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/vo/UnifiedOrderVo.java

@ -11,7 +11,7 @@ import lombok.NoArgsConstructor;
*/
@Data
@NoArgsConstructor
public class InOrderVo {
public class UnifiedOrderVo {
@ApiModelProperty(value = "应用id")
private String appId;
@ -20,16 +20,16 @@ public class InOrderVo {
private String outOrderNo;
@ApiModelProperty(value = "微信下单返回")
private ThirdInOrderVo.WxThirdInOrderVo wxThirdInOrderVo;
private ThirdUnifiedOrderVo.WxThirdInOrderVo wxThirdInOrderVo;
@ApiModelProperty(value = "支付宝下单返回")
private ThirdInOrderVo.AliThirdInOrderVo aliThirdInOrderVo;
private ThirdUnifiedOrderVo.AliThirdInOrderVo aliThirdInOrderVo;
@ApiModelProperty(value = "快手下单返回")
private ThirdInOrderVo.KsThirdInOrderVo ksThirdInOrderVo;
private ThirdUnifiedOrderVo.KsThirdInOrderVo ksThirdInOrderVo;
@ApiModelProperty(value = "抖音下单返回")
private ThirdInOrderVo.DyThirdInOrderVo dyThirdInOrderVo;
private ThirdUnifiedOrderVo.DyThirdInOrderVo dyThirdInOrderVo;
@Data
public static class WxThirdInOrderVo {
Loading…
Cancel
Save