Explorar el Código

添加泰康 添加支付链接接口

wlq hace 1 año
padre
commit
8d19aed660

+ 23 - 0
tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/client/HttpService.java

@@ -911,6 +911,8 @@ public class HttpService {
     }
 
     /**
+     * 委托书列表
+     *
      * @return
      */
     public String carCheckAttorneyList(String tplatformId, String proposalNo) {
@@ -925,4 +927,25 @@ public class HttpService {
 
         return response.getData();
     }
+
+    /**
+     * 获取支付链接
+     *
+     * @return
+     */
+    public String payForward(String tplatformId, String proposalNo) {
+        TKPayForwardParam param = new TKPayForwardParam();
+        param.setChannelCode("OffWeb");
+        param.setTplatformId(tplatformId);
+        param.setProposalNo(proposalNo);
+
+        HttpHeaders httpHeaders = new HttpHeaders();
+        httpHeaders.add("tkCarRequestToken", token());
+
+        TKPayForwardResult.Response response = client.request(HttpURL.payForward, param, httpHeaders, TKPayForwardResult.Response.class);
+
+        TKPayForwardResult result = response.getData();
+
+        return result.getPayForwardUrl();
+    }
 }

+ 5 - 0
tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/client/HttpURL.java

@@ -96,4 +96,9 @@ public interface HttpURL {
     String entrance = host + "/carSelfService/rest/controller/entrance";
 
     String carCheckAttorneyList = host + "/carSelfService/carCheck/attorneyList";
+
+    /**
+     * 获取支付链接地址
+     */
+    String payForward = host + "/carSelfService/rest/pay/forward";
 }

+ 13 - 0
tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/model/api/TKPayForwardParam.java

@@ -0,0 +1,13 @@
+package com.jzg.quotation.taikang.model.api;
+
+import com.jzg.quotation.taikang.client.UnknownFieldEntity;
+import lombok.Getter;
+import lombok.Setter;
+
+@Setter
+@Getter
+public class TKPayForwardParam extends UnknownFieldEntity {
+    private String tplatformId;
+    private String proposalNo;
+    private String channelCode;
+}

+ 183 - 0
tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/model/api/TKPayForwardResult.java

@@ -0,0 +1,183 @@
+package com.jzg.quotation.taikang.model.api;
+
+import com.jzg.quotation.taikang.client.BaseResponse;
+import com.jzg.quotation.taikang.client.UnknownFieldEntity;
+import lombok.Getter;
+import lombok.Setter;
+
+@Setter
+@Getter
+public class TKPayForwardResult extends UnknownFieldEntity {
+
+    @Setter
+    @Getter
+    public static class Response extends BaseResponse<TKPayForwardResult> {
+
+    }
+
+
+    /**
+     * 保险提案号,用于唯一标识一个保险提案
+     */
+    private String proposalNo;
+
+    /**
+     * 支付费用,用户需要支付的保险金额,此处为null可能表示费用未确定或无需支付
+     */
+    private String payFee; // 若需处理为数值,可改为BigDecimal
+
+    /**
+     * 支付账户名称,此处为null表示未提供
+     */
+    private String payAccName;
+
+    /**
+     * 银行代码,用于标识支付所在的银行,此处为null表示未提供
+     */
+    private String bankCode;
+
+    /**
+     * 银行账号,用于接收支付的账号,此处为null表示未提供
+     */
+    private String bankNo;
+
+    /**
+     * 身份证号或其他身份识别号,此处为null表示未提供
+     */
+    private String identifyNo;
+
+    /**
+     * 业务类型,用于标识保险业务的种类,此处为null表示未提供
+     */
+    private String businessType;
+
+    /**
+     * 是否获取发行代码,通常用于标识是否成功获取了某种与保险业务相关的代码,此处为null表示未提供
+     */
+    private String isGetIssueCode; // 若需处理为布尔值,可改为Boolean,并添加转换逻辑
+
+    /**
+     * 支付方式ID,用于标识用户选择的支付方式,此处为null表示未选择
+     */
+    private String paywayid;
+
+    /**
+     * 公司代码,用于标识保险公司或相关机构的代码,此处为null表示未提供
+     */
+    private String comCode;
+
+    /**
+     * 渠道代码,用于标识保险业务的来源渠道,如"OffWeb"表示非网页渠道
+     */
+    private String channelCode;
+
+    /**
+     * 验证码,用于验证用户身份或操作的正确性,此处为null表示未提供
+     */
+    private String validationCode;
+
+    /**
+     * 电话号码,此处为null表示未提供
+     */
+    private String phoneNo;
+
+    /**
+     * 业务内部提案号,通常用于保险公司内部管理和追踪,此处为null表示未提供
+     */
+    private String proposalNoBI;
+
+    /**
+     * 开放平台用户ID,用于标识在开放平台上的用户,此处为null表示未提供
+     */
+    private String openId;
+
+    /**
+     * 卡片识别号,如银行卡号、身份证号等,此处为null表示未提供
+     */
+    private String cardIdentifyNo;
+
+    /**
+     * 卡片识别类型,如身份证、银行卡等,此处为null表示未提供
+     */
+    private String cardIdentifyType;
+
+    /**
+     * 接口代码,用于标识调用的是哪个接口,此处为null表示未提供
+     */
+    private String interfaceCode;
+
+    /**
+     * 来源ID,标识该保险业务信息的来源系统或渠道的唯一标识符,此处为null表示未提供
+     */
+    private String fromId;
+
+    /**
+     * 支付跳转URL,用户点击后将被重定向到支付页面
+     */
+    private String payForwardUrl;
+
+    /**
+     * 转账标志,用于标识该业务是否涉及转账操作,此处为null表示未提供
+     */
+    private String turnFlag;
+
+    /**
+     * 是否重传标志,用于标识该请求是否为重传请求,此处为null表示未提供
+     */
+    private String isRetrans;
+
+    /**
+     * 随机数,用于增强请求的安全性或唯一性,此处为null表示未提供
+     */
+    private String random;
+
+    /**
+     * 应用ID,用于标识调用应用,此处为null表示未提供
+     */
+    private String appId;
+
+    /**
+     * 签名,用于验证请求的真实性和完整性,此处为null表示未提供
+     */
+    private String tkSignature;
+
+    /**
+     * 平台ID,用于标识调用方所属的平台,此处提供了具体的值
+     */
+    private String tplatformId;
+
+    /**
+     * 是否为TPLAT平台标志,用于标识该业务是否来自特定的平台,此处为null表示未提供
+     */
+    private String isTPLATFlag;
+
+    /**
+     * 消息标志,用于标识是否有额外的消息需要处理,此处为null表示未提供
+     */
+    private String messageFlag;
+
+    /**
+     * 被保险人姓名
+     */
+    private String insuredName;
+
+    /**
+     * 车牌号
+     */
+    private String licenseNo;
+
+    /**
+     * 支付截止日期,用户需要在此日期前完成支付
+     */
+    private String paymentDeadline;
+
+    /**
+     * 车辆事故类型,此处为null表示未提供或该业务不涉及事故
+     */
+    private String carAccidentType;
+
+    /**
+     * 微信生活号wap标志,用于标识该业务是否通过微信生活号wap页面进行,此处为null表示未提供
+     */
+    private String weChatLifeWapFlag;
+}

+ 4 - 1
tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/service/TKQuotationBaseServiceImpl.java

@@ -217,7 +217,10 @@ public class TKQuotationBaseServiceImpl implements QuotationBaseService {
 
     @Override
     public String getPaymentLink(OrderBase orderBase) {
-        return "";
+        // todo
+        String url = httpService.payForward(null, null);
+
+        return url;
     }
 
     @Override

+ 24 - 0
tenant/insurance/quotation-taikang/src/test/java/com/jzg/quotation/taikang/model/api/TKPayForwardResultTest.java

@@ -0,0 +1,24 @@
+package com.jzg.quotation.taikang.model.api;
+
+import com.jzg.quotation.taikang.JsonUtil;
+import org.junit.jupiter.api.Test;
+
+import java.util.Map;
+
+public class TKPayForwardResultTest {
+    @Test
+    public void test1() {
+        String json = """
+{     "status": "1",     "data": {         "proposalNo": "00671071370142500000004363",         "payFee": null,         "payAccName": null,         "bankCode": null,         "bankNo": null,         "identifyNo": null,         "businessType": null,         "isGetIssueCode": null,         "paywayid": null,         "comCode": null,         "channelCode": "OffWeb",         "validationCode": null,         "phoneNo": null,         "proposalNoBI": null,         "openId": null,         "cardIdentifyNo": null,         "cardIdentifyType": null,         "interfaceCode": null,         "fromId": null,         "payForwardUrl": "https://car.tk.cn/ep/#/insureProcess/payUnion?orderID=WBPC202503121144127720000&proposalNo=00671071370142500000004363&turnFlag=0&isRetrans=1&userid=&fromId=67107&tkSignature=TKSIGNATURE&tplatformId=feda77e829d4dedbbd8b4e236bacfac5&isTPLATFlag=1",         "turnFlag": null,         "isRetrans": null,         "random": null,         "appId": null,         "tkSignature": null,         "tplatformId": "feda77e829d4dedbbd8b4e236bacfac5",         "isTPLATFlag": null,         "messageFlag": null,         "insuredName": "石海峰",         "licenseNo": "晋C396B1",         "paymentDeadline": "2025-03-22 11:07:59",         "carAccidentType": null,         "weChatLifeWapFlag": null     } }
+                """;
+
+        TKPayForwardResult.Response response = JsonUtil.readObjcet(json, TKPayForwardResult.Response.class);
+
+
+        Map<String, Object> unknownFields = response.getUnknownFields();
+
+        System.out.println("unknownFields: ");
+        System.out.println(unknownFields);
+    }
+
+}