From 4f30cf515e738340a792b03dcd0baf2dfed8958c Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Tue, 23 Aug 2022 16:56:18 +0800
Subject: [PATCH] 20220822
---
src/main/java/cc/mrbird/febs/pay/model/UniPayCallBackDto.java | 36 ++++++++++++++++++
src/main/java/cc/mrbird/febs/pay/controller/UnipayController.java | 37 ++++--------------
2 files changed, 44 insertions(+), 29 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/pay/controller/UnipayController.java b/src/main/java/cc/mrbird/febs/pay/controller/UnipayController.java
index 99ee0aa..5d9a08d 100644
--- a/src/main/java/cc/mrbird/febs/pay/controller/UnipayController.java
+++ b/src/main/java/cc/mrbird/febs/pay/controller/UnipayController.java
@@ -6,9 +6,11 @@
import cc.mrbird.febs.mall.entity.MallOrderInfo;
import cc.mrbird.febs.mall.mapper.MallOrderInfoMapper;
import cc.mrbird.febs.mall.service.IApiMallMemberService;
+import cc.mrbird.febs.pay.model.UniPayCallBackDto;
import cc.mrbird.febs.rabbit.producter.AgentProducer;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
+import cn.hutool.json.JSONUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
@@ -35,39 +37,16 @@
private AgentProducer agentProducer;
@GetMapping(value = "/unipayCallBack")
- public String unipayCallBack(HttpServletRequest request){
+ public String unipayCallBack(HttpServletRequest request, UniPayCallBackDto uniPayCallBackDto){
log.info("进入汇聚支付回调");
- String orderNo = "";
- BigDecimal orderAmount = BigDecimal.ZERO;
- String payTradeNo = "";
- String callBackState = "";
String requestURI = request.getRequestURI();
- log.info("进入汇聚支付回调"+requestURI);
+ log.info("进入汇聚支付回调"+ JSONUtil.parseObj(uniPayCallBackDto));
+ String orderNo = uniPayCallBackDto.getR2_OrderNo();
+ BigDecimal orderAmount = new BigDecimal(uniPayCallBackDto.getR3_Amount());
+ String callBackState = uniPayCallBackDto.getR6_Status();
+ String payTradeNo = uniPayCallBackDto.getR7_TrxNo();
// String output = java.net.URLDecoder.decode(requestURI, "UTF-8");
- String params = StrUtil.subAfter(requestURI, "?", true);
- System.out.println(params);
- List<String> paramStrList = StrUtil.splitTrim(params, "&");
- if(CollUtil.isNotEmpty(paramStrList)){
- for(String paramStr :paramStrList){
- boolean r2orderNo = paramStr.startsWith("r2_OrderNo");
- if(r2orderNo){
- orderNo = StrUtil.subAfter(paramStr, "=", true);
- }
- boolean r3Amount = paramStr.startsWith("r3_Amount");
- if(r3Amount){
- orderAmount = new BigDecimal(StrUtil.subAfter(paramStr, "=", true));
- }
- boolean r6Status = paramStr.startsWith("r6_Status");
- if(r6Status){
- callBackState = StrUtil.subAfter(paramStr, "=", true);
- }
- boolean r7TrxNo = paramStr.startsWith("r7_TrxNo");
- if(r7TrxNo){
- payTradeNo = StrUtil.subAfter(paramStr, "=", true);
- }
- }
- }
log.info("进入汇聚支付回调"+orderNo+";"+orderAmount+";"+payTradeNo+";"+callBackState);
if("100".equals(callBackState) && StrUtil.isNotBlank(orderNo)){
diff --git a/src/main/java/cc/mrbird/febs/pay/model/UniPayCallBackDto.java b/src/main/java/cc/mrbird/febs/pay/model/UniPayCallBackDto.java
new file mode 100644
index 0000000..718a130
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/pay/model/UniPayCallBackDto.java
@@ -0,0 +1,36 @@
+package cc.mrbird.febs.pay.model;
+
+import lombok.Data;
+
+/**
+ * https://www.baidu.com?
+ * r1_MerchantNo=888000000000000
+ * &r2_OrderNo=2020100000000000000
+ * &r3_Amount=10.00
+ * &r4_Cur=1
+ * &r5_Mp=goods
+ * &r6_Status=100
+ * &r7_TrxNo=100220100000000000
+ * &r8_BankOrderNo=100220100000000000
+ * &r9_BankTrxNo=4200000000202000000000000000
+ * &ra_PayTime=2022-08-11%2B16%253A14%253A39
+ * &rb_DealTime=2022-08-11%2B16%253A14%253A39
+ * &rc_BankCode=WEIXI_GZH
+ * &hmac=14c3819b5cc7bb80635901934f76c7a4
+ */
+@Data
+public class UniPayCallBackDto {
+ private String r1_MerchantNo;
+ private String r2_OrderNo;
+ private String r3_Amount;
+ private String r4_Cur;
+ private String r5_Mp;
+ private String r6_Status;
+ private String r7_TrxNo;
+ private String r8_BankOrderNo;
+ private String r9_BankTrxNo;
+ private String ra_PayTime;
+ private String rb_DealTime;
+ private String rc_BankCode;
+ private String hmac;
+}
--
Gitblit v1.9.1