From 328ac3b6130819a31a7ba2d6af84ceec5c9584bf Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期五, 24 十一月 2023 15:22:38 +0800
Subject: [PATCH] 修改bug

---
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/HuiFuTianXiaUtil.java |  273 +++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 267 insertions(+), 6 deletions(-)

diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/HuiFuTianXiaUtil.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/HuiFuTianXiaUtil.java
index 6c87eaf..aa454b9 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/HuiFuTianXiaUtil.java
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/HuiFuTianXiaUtil.java
@@ -20,6 +20,8 @@
 import org.apache.http.impl.client.CloseableHttpClient;
 import org.apache.http.impl.client.HttpClients;
 import org.apache.http.util.EntityUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.util.StringUtils;
 
 import java.io.File;
@@ -40,6 +42,7 @@
  * @Date 2023/10/12 0:02
  */
 public class HuiFuTianXiaUtil {
+    private static Logger logger = LoggerFactory.getLogger(HuiFuTianXiaUtil.class);
     //私钥(Base64编码)
     private static String privateKeyBase64 = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCs658vv/6VdoSGyxr7gVNxlsFGKC2RE4I3S3C78f7t29t6oSm7tdRUr+B/I1VtV1Ps2SQMqG+gUpLiVbHEj+U8PjrvSht6cBNpqhnUjBASEhO0zeCJXNj3zqEDj7CnzDbUzuZWZDyLEaSLRaVb/DSW34D0GDsGWpIMLui/lnubXCYMNsUJBgRmV/tSv7vApVok3aKDoYkZMDhfnKrbxTtWkDfwNLDCInB300YbGeN7hhECRestktymHw0I78x3g+pdzOKOSofqdHyBCemVgOBt2h+oulVU65jc5ok0vwhx7sk2+i3Dw/S/hx3fpnOAToLhpFSTCqArG5wOhiOTX5RRAgMBAAECggEAT+uu7VDdh5L5eZtR40BIos08kwJq3QyZOJlDh3o3ixP8gtcOBNXrRyDqr5hTGXAtN+C8SqVmwkCn5rgYq3KeTpOshYBI5vP55PJbceMyYke8l+o3hwVEunPj81NsIIHALedaij9VxCjpVf1gif0tCTZP0YGJdkxSCBN+O15/zrOred2xkbAGXCNM2j+uIOZ5LTQ064jUAm9KWO4JvVnlNCQPiJCfe652i4RE9adgTlT7d9XffQ/oZDZcDkD1OVUO4ErsSgvjsjPW9Qk8zAVm/C+ycs27GUbVf6yh3zMoL4JDshzoMYAVDqP3VkpYGiW71PzcOZqktcjbtCom4/gpqQKBgQDgHrsQVzMwr18gRAWl8PsgHyMvhyivzk7uPvm6nK9mvEGg7wnrCMKHkpEOCi4mHWnW6H9ptrkeAQbHN7H8Qd6JZm/H0VN8N8fg4IFarlrLWXET6s7or9btCf4aq8DGrU9C+7fcngSfuqlrSxy9e+9InmzUFGKVLBtYIJbG1r00qwKBgQDFhHhhc4WC1MrWLSGhpaNp+swPstfzUBeX2MtZOIv6yXTYPvJ77AAZoLnW482eUZucltCAUucEtTsop25dKdhbdhbVJ/YRRnaklBL2rai4HX+fjoV29tepJhrOrq3Ey+vqvDEsqrBz2C6YyJ6d9aaPPwCFsnDRO+g7tK9S4ZfC8wKBgGlhKbXqOnCW1RSXx0waPgoBegrb816OlABj7go3qCWXOQiRvMkdilIysS+3y7EyPVTGZzpupyYbd3Nulaq10gwq9T4wB6Atnjb3ePsJZjmdKZUi3/z6yQUVoLwrq+3/CXjGYNJEHop4Ozbuz2ms/3rWuvcRSrU3UvgiAqMlzzsXAoGAJY7xDSbYZm5sO5nNYV2L22UzVHDfm4bJVbiFwmt8Qq34J/6gQWw5AKaNcA1VVhuSiY4sC5q4Dy8fFrXvyItidtHXuaSlp9dMTDNT/9A52vjRAdgqDNsXWzTBuDeDF37nV3V9rE6wyvZ6tdbAQq0phOeoA8RQq5jGqkPLauk24H0CgYEAn92Ru9UuloMmTrJbpeeLmMkwCzKff4SpYSY3WzidjdlfHpyNqBUMYb5Ym3OplrSONT9o2H5mEQipjatiu0teILBT7j+f9ZJYQ3vUurAXbmKtthHuEV4lueylNUgmkv+dm295n2x79w1mk/0emJ/Qr9tz43dpSV/kRCxc+lX+OFk=";
     //公钥(Base64编码)
@@ -101,7 +104,7 @@
         body.put("product_id", product_id);
         body.put("sign", sign(data.toJSONString()));
         body.put("data", data);
-        System.err.println(JSON.toJSONString(body));
+        logger.info(JSON.toJSONString(body));
         HttpRequest post = HttpUtil.createPost(url);
         Map<String, String> headers = new HashMap<>();
         headers.put("Content-type","application/json; charset=utf-8");
@@ -526,7 +529,7 @@
         headers.put("Accept", "application/json");
         post.addHeaders(headers);
         post.body(body.toJSONString());
-        System.err.println(JSON.toJSONString(body));
+        logger.info(JSON.toJSONString(body));
         HttpResponse execute = post.execute();
         String result = execute.body();
         execute.close();
@@ -716,7 +719,7 @@
         body.put("product_id", product_id);
         body.put("sign", sign(data.toJSONString()));
         body.put("data", data);
-        System.err.println(JSON.toJSONString(body));
+        logger.info(JSON.toJSONString(body));
         HttpRequest post = HttpUtil.createPost(url);
         Map<String, String> headers = new HashMap<>();
         headers.put("Content-type","application/json; charset=utf-8");
@@ -752,6 +755,263 @@
 
 
     /**
+     * 修改商户信息
+     * @param dto
+     * @param shopAuthenticationHftx
+     * @param async_return_url
+     * @return
+     */
+    public static R<MerchantBasicdataVo> merchantBasicdataModify(MgtShopHFTXAuthDto dto, ShopAuthenticationHftx shopAuthenticationHftx, String async_return_url){
+        String url = "https://api.huifu.com/v2/merchant/basicdata/modify";
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
+        JSONObject data = new JSONObject();
+        data.put("req_seq_id", shopAuthenticationHftx.getReqSeqId());
+        data.put("req_date", sdf.format(new Date()));
+        data.put("upper_huifu_id", channel_id);
+        data.put("huifu_id", shopAuthenticationHftx.getHuifuId());
+        data.put("reg_name", dto.getRegName());
+        data.put("short_name", dto.getShortName());
+        data.put("ent_type", dto.getEntType());
+        data.put("license_code", dto.getLicenseCode());
+        data.put("license_validity_type", dto.getLicenseValidityType());
+        data.put("license_begin_date", dto.getLicenseBeginDate());
+        if("0".equals(dto.getLicenseValidityType())){
+            data.put("license_end_date", dto.getLicenseEndDate());
+        }
+        data.put("reg_prov_id", dto.getRegProvId());
+        data.put("reg_area_id", dto.getRegAreaId());
+        data.put("reg_district_id", dto.getRegDistrictId());
+        data.put("reg_detail", dto.getRegDetail());
+        data.put("legal_name", dto.getLegalName());
+        data.put("legal_cert_type", dto.getLegalCertType());
+        data.put("legal_cert_no", dto.getLegalCertNo());
+        data.put("legal_cert_validity_type", dto.getLegalCertValidityType());
+        data.put("legal_cert_begin_date", dto.getLegalCertBeginDate());
+        if("0".equals(dto.getLegalCertValidityType())){
+            data.put("legal_cert_end_date", dto.getLegalCertEndDate());
+        }
+        data.put("prov_id", dto.getProvId());
+        data.put("area_id", dto.getAreaId());
+        data.put("district_id", dto.getDistrictId());
+        data.put("detail_addr", dto.getDetailAddr());
+        data.put("contact_name", dto.getContactName());
+        data.put("contact_mobile_no", dto.getContactMobileNo());
+        data.put("contact_email", dto.getContactEmail());
+        data.put("service_phone", dto.getServicePhone());
+        data.put("busi_type", "1");
+        data.put("receipt_name", dto.getReceiptName());
+        data.put("mcc", "7297");
+
+        //结算卡信息配置
+        dto.setCertType("00");
+        dto.setCertValidityType("1");
+        if(StringUtils.hasLength(dto.getCertEndDate())){
+            dto.setCertValidityType("0");
+        }
+        JSONObject card_info = new JSONObject();
+        card_info.put("card_type", dto.getCardType());
+        card_info.put("card_name", dto.getCardName());
+        card_info.put("card_no", dto.getCardNo());
+        if(!"0".equals(dto.getCardType())){
+            card_info.put("prov_id", dto.getJsProvId());
+            card_info.put("area_id", dto.getJsAreaId());
+            card_info.put("cert_type", dto.getCertType());
+        }
+        if("0".equals(dto.getCardType())){
+            card_info.put("branch_code", dto.getBranchCode());
+        }
+        card_info.put("cert_no", dto.getCertNo());
+        card_info.put("cert_validity_type", dto.getCertValidityType());
+        if("0".equals(dto.getCertValidityType())){
+            card_info.put("cert_end_date", dto.getCertEndDate());
+        }
+        card_info.put("mp", dto.getMp());
+        data.put("card_info", card_info.toJSONString());
+
+        //取现信息配置
+        JSONArray jsonArray = new JSONArray();
+        JSONObject cash_config = new JSONObject();
+        cash_config.put("switch_state", "1");
+        cash_config.put("cash_type", "T1");
+        cash_config.put("fix_amt", "0.00");
+        jsonArray.add(cash_config);
+        data.put("cash_config", jsonArray.toJSONString());
+
+        //结算规则配置
+        JSONObject settle_config = new JSONObject();
+        settle_config.put("settle_status", "1");
+        settle_config.put("settle_cycle", "T1");
+        settle_config.put("settle_pattern", "P0");
+        settle_config.put("settle_batch_no", "0");
+        settle_config.put("constant_amt", "0.00");
+        data.put("settle_config", settle_config.toJSONString());
+
+        //协议
+        JSONObject agreement_info = new JSONObject();
+        agreement_info.put("agreement_type", "1");
+        agreement_info.put("agree_begin_date", dto.getAgreeBeginDate());
+        agreement_info.put("agree_end_date", dto.getAgreeEndDate());
+        data.put("agreement_info", agreement_info.toJSONString());
+
+        //扩展资料包
+        JSONArray extended_material_list = new JSONArray();
+
+        data.put("async_return_url", async_return_url);
+//        data.put("mer_icp", dto.getMerIcp());
+        data.put("mer_icp", "");
+        data.put("open_licence_no", dto.getOpenLicenceNo());
+        data.put("head_huifu_id", huifu_id);
+        R<String> r = supplementaryPicture(dto.getRegAcctPic(), IdUtils.simpleUUID(), "F08");
+        if(r.getCode() == 200){
+            data.put("reg_acct_pic", r.getData());
+            shopAuthenticationHftx.setRegAcctPicNo(r.getData());
+        }else{
+            return R.fail(r.getMsg());
+        }
+        if(!"0".equals(dto.getCardType())){
+            r = supplementaryPicture(dto.getSettleCardFrontPic(), IdUtils.simpleUUID(), "F13");
+            if(r.getCode() == 200){
+                data.put("settle_card_front_pic", r.getData());
+                shopAuthenticationHftx.setSettleCardFrontPicNo(r.getData());
+            }else{
+                return R.fail(r.getMsg());
+            }
+        }
+        r = supplementaryPicture(dto.getSettleCertBackPic(), IdUtils.simpleUUID(), "F56");
+        if(r.getCode() == 200){
+            data.put("settle_cert_back_pic", r.getData());
+            shopAuthenticationHftx.setSettleCertBackPicNo(r.getData());
+        }else{
+            return R.fail(r.getMsg());
+        }
+        r = supplementaryPicture(dto.getSettleCertFrontPic(), IdUtils.simpleUUID(), "F55");
+        if(r.getCode() == 200){
+            data.put("settle_cert_front_pic", r.getData());
+            shopAuthenticationHftx.setSettleCertFrontPicNo(r.getData());
+        }else{
+            return R.fail(r.getMsg());
+        }
+        r = supplementaryPicture(dto.getTaxRegPic(), IdUtils.simpleUUID(), "F58");
+        if(r.getCode() == 200){
+            data.put("tax_reg_pic", r.getData());
+            shopAuthenticationHftx.setTaxRegPicNo(r.getData());
+        }else{
+            return R.fail(r.getMsg());
+        }
+        r = supplementaryPicture(dto.getLegalCertBackPic(), IdUtils.simpleUUID(), "F03");
+        if(r.getCode() == 200){
+            data.put("legal_cert_back_pic", r.getData());
+            shopAuthenticationHftx.setLegalCertBackPicNo(r.getData());
+        }else{
+            return R.fail(r.getMsg());
+        }
+        r = supplementaryPicture(dto.getLegalCertFrontPic(), IdUtils.simpleUUID(), "F02");
+        if(r.getCode() == 200){
+            data.put("legal_cert_front_pic", r.getData());
+            shopAuthenticationHftx.setLegalCertFrontPicNo(r.getData());
+        }else{
+            return R.fail(r.getMsg());
+        }
+        r = supplementaryPicture(dto.getLicensePic(), IdUtils.simpleUUID(), "F07");
+        if(r.getCode() == 200){
+            data.put("license_pic", r.getData());
+            shopAuthenticationHftx.setLicensePicNo(r.getData());
+        }else{
+            return R.fail(r.getMsg());
+        }
+        r = supplementaryPicture(dto.getSettleAgreePic(), IdUtils.simpleUUID(), "F116");
+        if(r.getCode() == 200){
+            JSONObject extended_material = new JSONObject();
+            extended_material.put("file_id", r.getData());
+            extended_material.put("file_type", "F480");
+            extended_material_list.add(extended_material);
+            shopAuthenticationHftx.setSettleAgreePicNo(r.getData());
+        }else{
+            return R.fail(r.getMsg());
+        }
+        if(!"0".equals(dto.getCardType()) && !dto.getLegalName().equals(dto.getCardName())){
+            r = supplementaryPicture(dto.getAuthEnturstPic(), IdUtils.simpleUUID(), "F15");
+            if(r.getCode() == 200){
+                data.put("auth_enturst_pic", r.getData());
+                shopAuthenticationHftx.setAuthEnturstPicNo(r.getData());
+            }else{
+                return R.fail(r.getMsg());
+            }
+        }
+
+        data.put("extended_material_list", extended_material_list.toJSONString());
+        data.put("reg_capital", dto.getRegCapital());
+        data.put("business_scope", dto.getBusinessScope());
+        data.put("found_date", dto.getFoundDate());
+        data.put("scene_type", "OFFLINE");
+        r = supplementaryPicture(dto.getStoreHeaderPic(), IdUtils.simpleUUID(), "F22");
+        if(r.getCode() == 200){
+            data.put("store_header_pic", r.getData());
+            shopAuthenticationHftx.setStoreHeaderPicNo(r.getData());
+        }else{
+            return R.fail(r.getMsg());
+        }
+        r = supplementaryPicture(dto.getStoreIndoorPic(), IdUtils.simpleUUID(), "F24");
+        if(r.getCode() == 200){
+            data.put("store_indoor_pic", r.getData());
+            shopAuthenticationHftx.setStoreIndoorPicNo(r.getData());
+        }else{
+            return R.fail(r.getMsg());
+        }
+        r = supplementaryPicture(dto.getStoreCashierDeskPic(), IdUtils.simpleUUID(), "F105");
+        if(r.getCode() == 200){
+            data.put("store_cashier_desk_pic", r.getData());
+            shopAuthenticationHftx.setStoreCashierDeskPicNo(r.getData());
+        }else{
+            return R.fail(r.getMsg());
+        }
+        data.put("legal_mobile_no", dto.getLegalMobileNo());
+        data.put("legal_addr", dto.getLegalAddr());
+
+        JSONObject body = new JSONObject();
+        body.put("sys_id", huifu_id);
+        body.put("product_id", product_id);
+        body.put("sign", sign(data.toJSONString()));
+        body.put("data", data);
+        HttpRequest post = HttpUtil.createPost(url);
+        Map<String, String> headers = new HashMap<>();
+        headers.put("Content-type","application/json; charset=utf-8");
+        headers.put("Accept", "application/json");
+        post.addHeaders(headers);
+        post.body(body.toJSONString());
+        logger.info(JSON.toJSONString(body));
+        HttpResponse execute = post.execute();
+        String result = execute.body();
+        execute.close();
+        if(!StringUtils.hasLength(result)){
+            return R.fail("请求异常");
+        }
+        JSONObject jsonObject = JSON.parseObject(result);
+        JSONObject resultData = jsonObject.getJSONObject("data");
+        String resp_code = resultData.getString("resp_code");
+        String resp_desc = resultData.getString("resp_desc");
+        //处理成功
+        String success1 = "00000000";
+        //交易正在处理中
+        String success2 = "00000100";
+        //审核中
+        String success3 = "90000000";
+        MerchantBasicdataVo vo = new MerchantBasicdataVo();
+        if(success1.equals(resp_code) || success2.equals(resp_code) || success3.equals(resp_code)){
+            vo.setStatus(success1.equals(resp_code) ? 1 : success3.equals(resp_code) ? 2 : 3);
+            vo.setHuifuId(resultData.getString("huifu_id"));
+            vo.setApplyNo(resultData.getString("apply_no"));
+            vo.setTokenNo(resultData.getString("token_no"));
+            return R.ok(vo);
+        }
+        return R.fail(resp_desc);
+    }
+
+
+
+
+
+    /**
      * 查询商户信息
      * @param huifuId
      * @return
@@ -775,7 +1035,7 @@
         headers.put("Accept", "application/json");
         post.addHeaders(headers);
         post.body(body.toJSONString());
-        System.err.println(JSON.toJSONString(body));
+        logger.info(JSON.toJSONString(body));
         HttpResponse execute = post.execute();
         String result = execute.body();
         execute.close();
@@ -842,7 +1102,7 @@
             if (statusCode == org.apache.http.HttpStatus.SC_OK) {
                 HttpEntity resEntity = response.getEntity();
                 result = EntityUtils.toString(resEntity);
-                System.err.println(result);
+                logger.info(result);
             }
             if(!StringUtils.hasLength(result)){
                 return R.fail("请求异常");
@@ -990,6 +1250,7 @@
     }
 
     public static void main(String[] args) {
-        HuiFuTianXiaUtil.getMerchantBasicdataSettlement(IdUtils.simpleUUID(), "6666000141251275", "20231023", "20231023", "1", "10");
+        R<List<MerchantBasicdataSettlementVo>> merchantBasicdataSettlement = HuiFuTianXiaUtil.getMerchantBasicdataSettlement(IdUtils.simpleUUID(), "6666000141606205", "20231110", "20231116", "1", "10");
+        System.err.println(JSON.toJSONString(merchantBasicdataSettlement));
     }
 }

--
Gitblit v1.7.1