Browse Source

no message

FengChaoYu 9 months ago
parent
commit
4c5271e906

+ 8 - 0
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/controller/common/PayController.java

@@ -16,6 +16,7 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.servlet.http.HttpServletRequest;
 import java.io.IOException;
 import java.math.BigDecimal;
 import java.util.Map;
@@ -107,5 +108,12 @@ public class PayController {
         return WeChatUtils.getRequestXml(returnData);
     }
 
+    @ApiNotAuth
+    @PostMapping("/allinpay/callback")
+    @ApiOperation(value = "通联回调")
+    public String allinpayCallback(HttpServletRequest request) throws Exception {
+        payLogic.allinpayCallback(request);
+        return "success";
+    }
 
 }

+ 24 - 4
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/logic/user/PayLogic.java

@@ -3,6 +3,7 @@ package com.gree.mall.miniapp.logic.user;
 import cn.hutool.core.convert.Convert;
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
+import cn.hutool.json.JSONUtil;
 import com.gree.mall.miniapp.commonmapper.SoldNumMapper;
 import com.gree.mall.miniapp.enums.*;
 import com.gree.mall.miniapp.enums.es.ESGoodsStatusEnum;
@@ -23,12 +24,11 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
 import java.io.IOException;
+import java.io.UnsupportedEncodingException;
 import java.math.BigDecimal;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
+import java.util.*;
 import java.util.stream.Collectors;
 
 //import com.gree.mall.miniapp.logic.common.FucaiLogic;
@@ -926,4 +926,24 @@ public class PayLogic {
     }
 
 
+    public void allinpayCallback(HttpServletRequest request) throws UnsupportedEncodingException {
+        TreeMap<String,String> params = getParams(request);//动态遍历获取所有收到的参数,此步非常关键,因为收银宝以后可能会加字段,动态获取可以兼容
+        log.info("通联回调: {}", JSONUtil.toJsonStr(params));
+    }
+
+    /**
+     * 动态遍历获取所有收到的参数,此步非常关键,因为收银宝以后可能会加字段,动态获取可以兼容由于收银宝加字段而引起的签名异常
+     * @param request
+     * @return
+     */
+    private TreeMap<String, String> getParams(HttpServletRequest request) throws UnsupportedEncodingException {
+        request.setCharacterEncoding("UTF-8");//通知传输的编码为GBK
+        TreeMap<String, String> map = new TreeMap<String, String>();
+        Map reqMap = request.getParameterMap();
+        for(Object key:reqMap.keySet()){
+            String value = ((String[])reqMap.get(key))[0];
+            map.put(key.toString(),value);
+        }
+        return map;
+    }
 }

+ 1 - 2
mall-miniapp-service/src/main/resources/bootstrap-dev.properties

@@ -70,8 +70,7 @@ ali.cdn.url=
 gree.url.token=
 
 #通联支付回调地址
-php.interface.url=https://admin.zfire.top
-allIn.payment.notifyUrl=${php.interface.url}/java_fucai/common/allInPayCall
+allIn.payment.notifyUrl=${sys.url}${server.servlet.context-path}/pay/allinpay/callback
 
 #内部接口
 inf.url=http://121.43.111.127:11111

+ 1 - 2
mall-miniapp-service/src/main/resources/bootstrap-prd.propertiesb

@@ -72,8 +72,7 @@ ali.cdn.url=
 gree.url.token=
 
 #通联支付回调地址
-php.interface.url=https://admin.zfire.top
-allIn.payment.notifyUrl=${php.interface.url}/java_fucai/common/allInPayCall
+allIn.payment.notifyUrl=${sys.url}${server.servlet.context-path}/pay/allinpay/callback
 
 #内部接口
 inf.url=http://121.43.111.127:11111

+ 1 - 2
mall-miniapp-service/src/main/resources/bootstrap-test.properties

@@ -68,8 +68,7 @@ ali.cdn.url=
 gree.url.token=
 
 #通联支付回调地址
-php.interface.url=https://admin.zfire.top
-allIn.payment.notifyUrl=${php.interface.url}/java_fucai/common/allInPayCall
+allIn.payment.notifyUrl=${sys.url}${server.servlet.context-path}/pay/allinpay/callback
 
 #内部接口
 inf.url=http://121.43.111.127:11111

+ 1 - 2
mall-server-api/src/main/resources/bootstrap-dev.properties

@@ -84,8 +84,7 @@ ali.cdn.url=
 wechat.mp.url=https://jiasm.zfire.top/gejiangh5/
 
 #通联支付回调地址
-php.interface.url=https://admin.zfire.top
-allIn.payment.notifyUrl=${php.interface.url}/java_fucai/common/allInPayCall
+allIn.payment.notifyUrl=${sys.url}/zfdminiapp/pay/allinpay/callback
 
 #内部接口
 inf.url=http://121.43.111.127:11111

+ 1 - 2
mall-server-api/src/main/resources/bootstrap-prd.propertiesb

@@ -73,5 +73,4 @@ ali.cdn.url=
 wechat.mp.url=https://sxbh5.zfire.top/
 
 #通联支付回调地址
-php.interface.url=https://admin.zfire.top
-allIn.payment.notifyUrl=${php.interface.url}/java_fucai/common/allInPayCall
+allIn.payment.notifyUrl=${sys.url}/zfdminiapp/pay/allinpay/callback

+ 1 - 2
mall-server-api/src/main/resources/bootstrap-test.properties

@@ -69,8 +69,7 @@ ali.cdn.url=
 wechat.mp.url=https://jiasm.zfire.top//jsm-sxbh5/
 
 #通联支付回调地址
-php.interface.url=https://admin.zfire.top
-allIn.payment.notifyUrl=${php.interface.url}/java_fucai/common/allInPayCall
+allIn.payment.notifyUrl=${sys.url}/zfdminiapp/pay/allinpay/callback
 
 #内部接口
 inf.url=http://121.43.111.127:11111