微信付款码
This commit is contained in:
@ -1,5 +1,6 @@
|
||||
package cn.iocoder.yudao.module.pay.api.order;
|
||||
|
||||
import cn.iocoder.yudao.module.pay.api.order.dto.PayCodesUnifiedDto;
|
||||
import cn.iocoder.yudao.module.pay.api.order.dto.PayOrderCreateReqDTO;
|
||||
import cn.iocoder.yudao.module.pay.api.order.dto.PayOrderRespDTO;
|
||||
|
||||
@ -37,4 +38,9 @@ public interface PayOrderApi {
|
||||
*/
|
||||
void updatePayOrderPrice(Long id, Integer payPrice);
|
||||
|
||||
/**
|
||||
* 付款码支付
|
||||
*
|
||||
*/
|
||||
boolean codePay(PayCodesUnifiedDto dto);
|
||||
}
|
||||
|
@ -0,0 +1,20 @@
|
||||
package cn.iocoder.yudao.module.pay.api.order.dto;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class PayCodesUnifiedDto {
|
||||
|
||||
|
||||
private String subject;
|
||||
private String body;
|
||||
|
||||
private String outTradeNo;
|
||||
|
||||
private Integer price;
|
||||
|
||||
private String userIp;
|
||||
|
||||
private String authCode;
|
||||
}
|
@ -1,13 +1,27 @@
|
||||
package cn.iocoder.yudao.module.pay.api.order;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.iocoder.yudao.framework.pay.core.client.PayClient;
|
||||
import cn.iocoder.yudao.framework.pay.core.client.dto.divide.PayDivideRespDto;
|
||||
import cn.iocoder.yudao.framework.pay.core.client.dto.order.PayCodeUnifiedDto;
|
||||
import cn.iocoder.yudao.framework.pay.core.client.dto.order.PayOrderUnifiedReqDTO;
|
||||
import cn.iocoder.yudao.framework.pay.core.enums.order.PayOrderStatusRespEnum;
|
||||
import cn.iocoder.yudao.module.pay.api.order.dto.PayCodesUnifiedDto;
|
||||
import cn.iocoder.yudao.module.pay.api.order.dto.PayOrderCreateReqDTO;
|
||||
import cn.iocoder.yudao.module.pay.api.order.dto.PayOrderRespDTO;
|
||||
import cn.iocoder.yudao.module.pay.convert.order.PayOrderConvert;
|
||||
import cn.iocoder.yudao.module.pay.dal.dataobject.order.PayOrderDO;
|
||||
import cn.iocoder.yudao.module.pay.service.channel.PayChannelService;
|
||||
import cn.iocoder.yudao.module.pay.service.order.PayOrderService;
|
||||
import com.github.binarywang.wxpay.bean.request.WxPayMicropayRequest;
|
||||
import com.github.binarywang.wxpay.bean.result.WxPayMicropayResult;
|
||||
import jdk.internal.org.objectweb.asm.Handle;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 支付单 API 实现类
|
||||
@ -20,6 +34,9 @@ public class PayOrderApiImpl implements PayOrderApi {
|
||||
@Resource
|
||||
private PayOrderService payOrderService;
|
||||
|
||||
@Resource
|
||||
private PayChannelService channelService;
|
||||
|
||||
@Override
|
||||
public Long createOrder(PayOrderCreateReqDTO reqDTO) {
|
||||
return payOrderService.createOrder(reqDTO);
|
||||
@ -36,4 +53,31 @@ public class PayOrderApiImpl implements PayOrderApi {
|
||||
payOrderService.updatePayOrderPrice(id, payPrice);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean codePay(PayCodesUnifiedDto dto) {
|
||||
|
||||
PayCodeUnifiedDto payCodeUnifiedDto = new PayCodeUnifiedDto();
|
||||
BeanUtil.copyProperties(dto, payCodeUnifiedDto);
|
||||
PayClient payClient = channelService.getPayClient(42L);
|
||||
payClient.unifiedCode(payCodeUnifiedDto);
|
||||
|
||||
PayOrderUnifiedReqDTO payOrderUnifiedReqDTO = new PayOrderUnifiedReqDTO();
|
||||
payOrderUnifiedReqDTO.setOutTradeNo(dto.getOutTradeNo());
|
||||
payOrderUnifiedReqDTO.setSubject(dto.getSubject());
|
||||
payOrderUnifiedReqDTO.setBody(dto.getBody());
|
||||
payOrderUnifiedReqDTO.setPrice(dto.getPrice());
|
||||
payOrderUnifiedReqDTO.setUserIp(dto.getUserIp());
|
||||
payOrderUnifiedReqDTO.setNotifyUrl("https://yclhit.com:8896/admin-api/pay/notify/order/xx");
|
||||
payOrderUnifiedReqDTO.setExpireTime(LocalDateTime.now().plusMinutes(1));
|
||||
Map<String, String> channelExtras = new HashMap<>();
|
||||
channelExtras.put("authCode", dto.getAuthCode());
|
||||
payOrderUnifiedReqDTO.setChannelExtras(channelExtras);
|
||||
try {
|
||||
cn.iocoder.yudao.framework.pay.core.client.dto.order.PayOrderRespDTO payOrderRespDTO = payClient.unifiedOrder(payOrderUnifiedReqDTO);
|
||||
return PayOrderStatusRespEnum.isSuccess(payOrderRespDTO.getStatus());
|
||||
}catch (Exception e){
|
||||
System.out.println(e.getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -4,6 +4,7 @@ import cn.iocoder.yudao.framework.pay.core.client.dto.divide.PayDivideBackRespDt
|
||||
import cn.iocoder.yudao.framework.pay.core.client.dto.divide.PayDivideBackUnifiedDto;
|
||||
import cn.iocoder.yudao.framework.pay.core.client.dto.divide.PayDivideRespDto;
|
||||
import cn.iocoder.yudao.framework.pay.core.client.dto.divide.PayDivideUnifiedDto;
|
||||
import cn.iocoder.yudao.framework.pay.core.client.dto.order.PayCodeUnifiedDto;
|
||||
import cn.iocoder.yudao.framework.pay.core.client.dto.order.PayOrderRespDTO;
|
||||
import cn.iocoder.yudao.framework.pay.core.client.dto.order.PayOrderUnifiedReqDTO;
|
||||
import cn.iocoder.yudao.framework.pay.core.client.dto.refund.PayRefundRespDTO;
|
||||
@ -136,4 +137,12 @@ public interface PayClient {
|
||||
*/
|
||||
PayDivideBackRespDto unifiedDivideback(PayDivideBackUnifiedDto reqDTO);
|
||||
|
||||
|
||||
/**
|
||||
* 发起分账
|
||||
*
|
||||
* @param reqDTO 分账参数
|
||||
* @return 分账
|
||||
*/
|
||||
PayDivideRespDto unifiedCode(PayCodeUnifiedDto reqDTO);
|
||||
}
|
||||
|
@ -0,0 +1,18 @@
|
||||
package cn.iocoder.yudao.framework.pay.core.client.dto.order;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class PayCodeUnifiedDto {
|
||||
|
||||
private String body;
|
||||
|
||||
private String outTradeNo;
|
||||
|
||||
private Integer totalFee;
|
||||
|
||||
private String spbillCreateIp;
|
||||
|
||||
private String authCode;
|
||||
}
|
@ -8,6 +8,7 @@ import cn.iocoder.yudao.framework.pay.core.client.dto.divide.PayDivideBackRespDt
|
||||
import cn.iocoder.yudao.framework.pay.core.client.dto.divide.PayDivideBackUnifiedDto;
|
||||
import cn.iocoder.yudao.framework.pay.core.client.dto.divide.PayDivideRespDto;
|
||||
import cn.iocoder.yudao.framework.pay.core.client.dto.divide.PayDivideUnifiedDto;
|
||||
import cn.iocoder.yudao.framework.pay.core.client.dto.order.PayCodeUnifiedDto;
|
||||
import cn.iocoder.yudao.framework.pay.core.client.dto.order.PayOrderRespDTO;
|
||||
import cn.iocoder.yudao.framework.pay.core.client.dto.order.PayOrderUnifiedReqDTO;
|
||||
import cn.iocoder.yudao.framework.pay.core.client.dto.refund.PayRefundRespDTO;
|
||||
@ -334,6 +335,11 @@ public abstract class AbstractPayClient<Config extends PayClientConfig> implemen
|
||||
return resp;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PayDivideRespDto unifiedCode(PayCodeUnifiedDto reqDTO) {
|
||||
return null;
|
||||
}
|
||||
|
||||
protected abstract PayDivideBackRespDto doUnifiedDivideback(PayDivideBackUnifiedDto reqDTO)
|
||||
throws Throwable;
|
||||
|
||||
|
Reference in New Issue
Block a user