Procházet zdrojové kódy

feat:“区分七云商户支付功能”

soobin před 1 rokem
rodič
revize
a3429db88d

+ 10 - 40
src/main/java/com/szwl/constant/HuifuConstant.java

@@ -43,59 +43,29 @@ public class HuifuConstant {
     public final static String HUIFU_PUBLIC_KEY = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlEANOGwxpZ8daesZ6rKfdYWd1SVuOF+XGlttVHurcsNkP/avlLDLKfOdYBdHOXcA4PxXFcmSctD4daTKW3H/gDS7Gk4QT3XZ/n8+vZsHp86Yd3z1CZDuX/um4rgHPxeuN/LedYTV41jZwzgDosp9cwATGtFzTzcfubcUFEJJuvJQIKDYxymYSKC+fUHE3uT8Z4LTMSpPHVsYzHPyl2O2PuzT4lSPor7nJwh675aGIPPObRou/dgl9AZnEC64rXQJfI7jDkyabctUy7w/VWYLtzcqaCN8mtqPmgBbRjeVLzBf76RlyDPfBBIG2rot/hOWn/jTaqt/E2g9QN1mVknrEwIDAQAB";
 
     /**
-     * 微信分配的商户公众账号ID
+     * 申泽商户公众账号ID
      */
-    public static final String WX_SUB_APP_ID = "wx5110d8e12d8b5a46";
+    public static final String SZ_WX_SUB_APP_ID = "wxcd5b1b2636c9f611";
 
     /**
-     * 用户在商户appid下的唯一标识,由商户自行调用微信接口通过授权码换取的openid
+     * 七云商户公众账号ID
      */
-    public static final String WX_SUB_OPEN_ID = "oQZ4-5d_jng3kdM1rSNzGh-MXMj4";
+    public static final String SC_WX_SUB_APP_ID = "wxd9c7c138a055ee66";
 
     /**
-     * 用户在商户appid下的唯一标识,由商户自行调用微信接口通过授权码换取的openid
+     * 申泽商户公众账号ID
      */
-    public static final String ALI_BUYER_ID = "2088002007965465";
+    public static final String WX_APP_SECRET = "e2854aa99f8279f33b4f065b2ffb75b1";
 
     /**
-     * 银联用户唯一标识
+     * 申泽分账商户号
      */
-    public static final String UNIONPAY_USER_ID = "cs/GRNlPCZbwPZ56UxhW32cefcRECkjucWZrI2dSQU9vRYtLCxmQDxojXCAh63pr";
+    public static final String SZ_DIV_HUIFU_ID = "6666000136120737";
 
     /**
-     * 支付宝用户展示的付款二维码
+     * 七云分账商户号
      */
-    public static final String ALIPAY_AUTH_CODE = "287051579656962267";
-
-    /**
-     * 微信用户展示的付款二维码
-     */
-    public static final String WX_AUTH_CODE = "135544956454558898";
-
-    /**
-     * 银联用户展示的付款二维码
-     */
-    public static final String UNIONPAY_AUTH_CODE = "6226765919984381928";
-
-    /**
-     * 银联用户授权码
-     */
-    public static final String UNIONPAY_USER_AUTH_CODE = "6j2MZY3YShmGFn4NHfQqeA==";
-
-    /**
-     * 手机网页支付银行卡号
-     */
-    public static final String WAP_PAY_CARD_NO = "6226021791540124";
-
-    /**
-     * 异步通知地址
-     */
-    public static final String NOTICE_URL = "virgo://http://www.xxx.com/getResp";
-
-    /**
-     * 分账商户号
-     */
-    public static final String DIV_HUIFU_ID = "6666000136120737";
+    public static final String SC_DIV_HUIFU_ID = "6666000139220493";
 
 
     /**

+ 25 - 11
src/main/java/com/szwl/controller/TOrderController.java

@@ -200,6 +200,7 @@ public class TOrderController {
 
         //需要知道订单是哪一个平台的,不能以账号的为标准  0或null为汇聚,1为汇付支付
         String payPlatform = order.getPayPlatform();
+        String companyType = order.getCompanyType();
         if (StringUtils.isNotEmpty(payPlatform) && payPlatform.equals("1")) {
             try {
                 Date date = order.getCreateDate();
@@ -208,15 +209,15 @@ public class TOrderController {
 //                BigDecimal refundAmount = order.getRefundAmount();
                 // 判断是否退过款
                 if(refundAmount != null && refundAmount.compareTo(BigDecimal.ZERO) > 0) {
-                    acctSplitBunch = getAcctSplitBunch(proportion,refusePrice).toString();
+                    acctSplitBunch = getAcctSplitBunch(proportion, refusePrice, companyType).toString();
                 } else {
                     // 如果退款金额等于订单金额,就直接用原来的分销明细,如果小于就重新计算分销明细
                     if(refusePrice.compareTo(order.getPrice()) < 0) {
-                        acctSplitBunch = getAcctSplitBunch(proportion,refusePrice).toString();
+                        acctSplitBunch = getAcctSplitBunch(proportion, refusePrice, companyType).toString();
                     }
                 }
 
-                String refundData = huifuMchService.refund(order.getSn(), price, payDate, remark, acctSplitBunch);
+                String refundData = huifuMchService.refund(order.getSn(), price, payDate, remark, acctSplitBunch, companyType);
                 //订单号
                 if(StrUtil.isNotEmpty(refundData)&&(refundData.equals(HuifuConstant.TRANS_STAT_S)||refundData.equals(HuifuConstant.TRANS_STAT_P))) {
                     order.setStatus(2);
@@ -402,6 +403,7 @@ public class TOrderController {
 
         //需要知道订单是哪一个平台的,不能以账号的为标准  0或null为汇聚,1为杉德支付
         String payPlatform = order.getPayPlatform();
+        String companyType = order.getCompanyType();
         if (StringUtils.isNotEmpty(payPlatform) && payPlatform.equals("1")) {
             try {
                 Date date = order.getCreateDate();
@@ -414,15 +416,15 @@ public class TOrderController {
                 TProportion proportion = proportionService.getOne(wrapper);
                 // 判断是否退过款
                 if(refundAmount != null && refundAmount.compareTo(BigDecimal.ZERO) > 0) {
-                    acctSplitBunch = getAcctSplitBunch(proportion,refusePrice).toString();
+                    acctSplitBunch = getAcctSplitBunch(proportion, refusePrice, companyType).toString();
                 } else {
                     // 如果退款金额等于订单金额,就直接用原来的分销明细,如果小于就重新计算分销明细
                     if(refusePrice.compareTo(order.getPrice()) < 0) {
-                        acctSplitBunch = getAcctSplitBunch(proportion,refusePrice).toString();
+                        acctSplitBunch = getAcctSplitBunch(proportion, refusePrice, companyType).toString();
                     }
                 }
 
-                String refundData = huifuMchService.refund(order.getSn(), price, payDate, remark, acctSplitBunch);
+                String refundData = huifuMchService.refund(order.getSn(), price, payDate, remark, acctSplitBunch, companyType);
                 //订单号
                 if(StrUtil.isNotEmpty(refundData)&&(refundData.equals(HuifuConstant.TRANS_STAT_S)||refundData.equals(HuifuConstant.TRANS_STAT_P))) {
                     order.setStatus(2);
@@ -598,7 +600,7 @@ public class TOrderController {
      * @param price
      * @return
      */
-    public JSONObject getAcctSplitBunch(TProportion proportion, BigDecimal price) {
+    public JSONObject getAcctSplitBunch(TProportion proportion, BigDecimal price, String companyType) {
 
         // 获取分账有几方:0:分账方2个,1:分账方3个,2:分账方4个,3:分账方超4个
         Integer type = proportion.getType();
@@ -646,7 +648,11 @@ public class TOrderController {
                 // 公司平台分销
                 adminJson = new JSONObject();
                 adminJson.put("div_amt", adminAmount.toString());
-                adminJson.put("huifu_id", HuifuConstant.DIV_HUIFU_ID);
+                if(StrUtil.isNotEmpty(companyType) && companyType.equals("1")) {
+                    adminJson.put("huifu_id", HuifuConstant.SC_DIV_HUIFU_ID);
+                } else {
+                    adminJson.put("huifu_id", HuifuConstant.SZ_DIV_HUIFU_ID);
+                }
                 acctInfos.add(adminJson);
                 // 商家分销获得利润
                 selfJson = new JSONObject();
@@ -677,7 +683,11 @@ public class TOrderController {
                 // 公司平台分销
                 adminJson = new JSONObject();
                 adminJson.put("div_amt", adminAmount.toString());
-                adminJson.put("huifu_id", HuifuConstant.DIV_HUIFU_ID);
+                if(StrUtil.isNotEmpty(companyType) && companyType.equals("1")) {
+                    adminJson.put("huifu_id", HuifuConstant.SC_DIV_HUIFU_ID);
+                } else {
+                    adminJson.put("huifu_id", HuifuConstant.SZ_DIV_HUIFU_ID);
+                }
                 acctInfos.add(adminJson);
                 // 商家分销获得利润
                 selfJson = new JSONObject();
@@ -721,7 +731,11 @@ public class TOrderController {
                 // 公司平台分销
                 adminJson = new JSONObject();
                 adminJson.put("div_amt", adminAmount.toString());
-                adminJson.put("huifu_id", HuifuConstant.DIV_HUIFU_ID);
+                if(StrUtil.isNotEmpty(companyType) && companyType.equals("1")) {
+                    adminJson.put("huifu_id", HuifuConstant.SC_DIV_HUIFU_ID);
+                } else {
+                    adminJson.put("huifu_id", HuifuConstant.SZ_DIV_HUIFU_ID);
+                }
                 acctInfos.add(adminJson);
                 // 商家分销获得利润
                 selfJson = new JSONObject();
@@ -759,7 +773,7 @@ public class TOrderController {
             for (int i = 0; i < acctInfos.size(); i++) {
                 JSONObject jsonObject = acctInfos.getJSONObject(i);
                 String huifuId = jsonObject.getString("huifu_id");
-                if (huifuId.equals(HuifuConstant.DIV_HUIFU_ID)) {
+                if (huifuId.equals(HuifuConstant.SZ_DIV_HUIFU_ID) || huifuId.equals(HuifuConstant.SC_DIV_HUIFU_ID)) {
                     BigDecimal currentDivAmt = new BigDecimal(jsonObject.getString("div_amt"));
                     BigDecimal adjustedDivAmt = currentDivAmt.subtract(diffAmount).max(BigDecimal.ZERO);
                     jsonObject.put("div_amt", adjustedDivAmt.toString());

+ 1 - 1
src/main/java/com/szwl/service/THuifuMchService.java

@@ -59,7 +59,7 @@ public interface THuifuMchService extends IService<THuifuMch> {
      * @param remark
      * @return
      */
-    String refund(String sn, BigDecimal price, String payDate, String remark,String acctSplitBunch) throws Exception;
+    String refund(String sn, BigDecimal price, String payDate, String remark,String acctSplitBunch, String companyType) throws Exception;
 
     /**
      * 发送验证码

+ 6 - 2
src/main/java/com/szwl/service/impl/THuifuMchServiceImpl.java

@@ -554,13 +554,17 @@ public class THuifuMchServiceImpl extends ServiceImpl<THuifuMchMapper, THuifuMch
     }
 
     @Override
-    public String refund(String sn, BigDecimal price, String payDate, String remark, String acctSplitBunch) throws Exception {
+    public String refund(String sn, BigDecimal price, String payDate, String remark, String acctSplitBunch, String companyType) throws Exception {
         String url = "https://api.huifu.com/v2/trade/payment/scanpay/refund";
         HuifuBaseCommon.doInit(OppsMerchantConfig.getMerchantConfig());
         JSONObject request = new JSONObject();
         request.put("req_seq_id", HuifuUtils.initReqSeqId());
         request.put("req_date", DateTools.getCurrentDateYYYYMMDD());
-        request.put("huifu_id", HuifuConstant.DIV_HUIFU_ID);
+        if(StrUtil.isNotEmpty(companyType) && companyType.equals("1")) {
+            request.put("huifu_id", HuifuConstant.SC_DIV_HUIFU_ID);
+        } else {
+            request.put("huifu_id", HuifuConstant.SZ_DIV_HUIFU_ID);
+        }
         request.put("ord_amt", price);
         request.put("org_req_date", payDate);
         request.put("org_req_seq_id", sn);

+ 5 - 0
src/main/resources/bootstrap.yml

@@ -11,6 +11,10 @@ spring:
         service-id: config-server
         # 是否获取配置中心配置
         enabled: true
+  servlet:
+    multipart:
+      max-file-size: 10MB
+      max-request-size: 10MB
 # 项目端口
 server:
   port: 49011
@@ -23,6 +27,7 @@ management:
       exposure:
         include: refresh
 
+
 oauth:
   wx:
     #测试帐号