ソースを参照

feat:“添加汇付查询签约状态接口”

soobin 1 年間 前
コミット
3f67208c2c

+ 10 - 0
src/main/java/com/szwl/controller/THuifuMchController.java

@@ -5,12 +5,14 @@ import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.huifu.bspay.sdk.opps.core.exception.BasePayException;
 import com.szwl.constant.HuifuConstant;
 import com.szwl.constant.ResponseCodesEnum;
 import com.szwl.model.bo.R;
 import com.szwl.model.bo.ResponseModel;
 import com.szwl.model.entity.THuifuMch;
 import com.szwl.model.entity.THuifuMchCheck;
+import com.szwl.model.entity.TJoinpayMch;
 import com.szwl.model.param.UploadParms;
 import com.szwl.service.THuifuMchCheckService;
 import com.szwl.service.THuifuMchService;
@@ -334,5 +336,13 @@ public class THuifuMchController {
         }
     }
 
+    @ApiOperation(value = "更新签约状态")
+    @PostMapping("/updateConStat")
+    public ResponseModel<?> updateConStat(@RequestBody THuifuMchCheck huifuMchCheck) throws BasePayException {
+        THuifuMchCheck tHuifuMchCheck = tHuifuMchCheckService.getById(huifuMchCheck.getId());
+        String str = tHuifuMchService.updateConStat(tHuifuMchCheck);
+        return R.ok(str);
+    }
+
 }
 

ファイルの差分が大きいため隠しています
+ 2 - 1
src/main/java/com/szwl/mapper/xml/THuifuMchCheckMapper.xml


+ 3 - 0
src/main/java/com/szwl/model/entity/THuifuMchCheck.java

@@ -172,5 +172,8 @@ public class THuifuMchCheck implements Serializable {
     @ApiModelProperty(value = "法人身份证人像面")
     private String legalCertFrontPic;
 
+    @ApiModelProperty(value = "签约状态:2:创建合同异常	3:待签约	4:签约中	5:签约完成(电子协议只有签约完成才能做交易)	6:已失效	7:已拒签	8:签约失败")
+    private String conStat;
+
 
 }

+ 7 - 0
src/main/java/com/szwl/service/THuifuMchService.java

@@ -75,4 +75,11 @@ public interface THuifuMchService extends IService<THuifuMch> {
      * @return
      */
     String newUploadPic(String base64Str, HuifuConstant.fileType fileType, String huifuId);
+
+    /**
+     * 更新签约状态
+     * @param tHuifuMchCheck
+     * @return
+     */
+    String updateConStat(THuifuMchCheck tHuifuMchCheck) throws BasePayException;
 }

+ 50 - 0
src/main/java/com/szwl/service/impl/THuifuMchServiceImpl.java

@@ -6,6 +6,8 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import com.huifu.bspay.sdk.opps.core.exception.BasePayException;
 import com.huifu.bspay.sdk.opps.core.utils.DateTools;
 import com.huifu.bspay.sdk.opps.core.utils.OkHttpClientTools;
@@ -705,4 +707,52 @@ public class THuifuMchServiceImpl extends ServiceImpl<THuifuMchMapper, THuifuMch
         }
         return result;
     }
+
+    @Override
+    public String updateConStat(THuifuMchCheck tHuifuMchCheck) throws BasePayException {
+        // 请求接口
+        String url = "https://api.huifu.com/v2/merchant/basicdata/query";
+        // 请求参数:Data
+        JSONObject request = new JSONObject();
+        request.put("req_seq_id", SequenceTools.getReqSeqId32());
+        request.put("req_date", DateTools.getCurrentDateYYYYMMDD());
+        request.put("huifu_id", tHuifuMchCheck.getHuifuId());
+
+
+        // 签名:sign
+        String s = JSON.toJSONString(request);
+        String s1 = JSON.toJSONString(JSONObject.parseObject(s, TreeMap.class));
+        String sign = HuifuUtils.sign(s1, HuifuConstant.RSA_PRIVATE_KEY);
+
+        // 公共参数
+        System.out.println("请求参数:"+ request);
+        JSONObject requestData = new JSONObject();
+        requestData.put("sys_id", HuifuConstant.SYS_ID);
+        requestData.put("product_id", HuifuConstant.PRODUCT_ID);
+        requestData.put("sign", sign);
+        requestData.put("data", request);
+        System.out.println("请求体:"+ requestData);
+
+        String success = OkHttpClientTools.httpPost(url, requestData.toString(), HuifuConstant.PRODUCT_ID);
+        JSONObject result = JSONObject.parseObject(success);
+        log.info("汇付返回参数:{}", result);
+        JSONObject data = result.getJSONObject("data");
+        String respCode = data.getString("resp_code");
+        if(respCode.equals("00000000") || respCode.equals("00000100")) {
+            try {
+                ObjectMapper objectMapper = new ObjectMapper();
+                JsonNode rootNode = objectMapper.readTree(success);
+                JsonNode agreementInfoList = rootNode.path("data").path("agreement_info_list");
+                JsonNode agreementNode = objectMapper.readTree(agreementInfoList.asText()).get(0);
+                String conStatValue = agreementNode.path("con_stat").asText();
+                System.out.println("con_stat value: " + conStatValue);
+                tHuifuMchCheck.setConStat(conStatValue);
+                tHuifuMchCheckService.updateById(tHuifuMchCheck);
+                return conStatValue;
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+        return null;
+    }
 }