Преглед изворни кода

修改紫金支付接口切换为新支付接口

wks пре 2 година
родитељ
комит
33ea7ce109

+ 3 - 0
src/main/java/com/ydtech/config/properties/ZijinApiConfigurationProperties.java

@@ -18,6 +18,9 @@ public class ZijinApiConfigurationProperties {
     // 支付地址
     private String payUrl;
 
+    //新支付
+    private String newPayUrl;
+
     // 订单详情查询服务
     private String orderUrl;
 

+ 14 - 3
src/main/java/com/ydtech/modules/order/components/zijin/ZijinRequestApiComponents.java

@@ -258,9 +258,8 @@ public class ZijinRequestApiComponents {
         }
 
         // 处理紫金重复投保
-        String reinsureMessage = Optional.ofNullable(calculatePremiumResponse.getBasePart())
-                .map(CalculatePremiumResponse.BasePartDTO::getReinsureMessage)
-                .orElse("");
+        String reinsureMessage =
+                Optional.ofNullable(calculatePremiumResponse.getBasePart()).map(CalculatePremiumResponse.BasePartDTO::getReinsureMessage).orElse("");
 
         if (reinsureMessage.contains(ResultEnum.R_ZGD_001.getDesc())) {
             throw new SystemException(reinsureMessage);
@@ -336,6 +335,18 @@ public class ZijinRequestApiComponents {
                 ZbfAggregatePayResponse.class, httpHeaders);
     }
 
+    /**
+     * 新支付
+     *
+     * @param newPayRequest 紫金财险 新支付 入参实体
+     * @return 出参实体
+     */
+    public NewPayRequestResponse newPay(NewPayRequest newPayRequest, HttpHeaders httpHeaders) {
+        return request(zijinApiConfigurationProperties.getNewPayUrl(), RequestUrl.NEW_PAY.getDesc(), newPayRequest,
+                NewPayRequestResponse.class, httpHeaders);
+    }
+
+
     /**
      * 订单详情查询服务
      *

+ 1 - 0
src/main/java/com/ydtech/modules/order/entity/api/zijin/constants/enums/RequestUrl.java

@@ -22,6 +22,7 @@ public enum RequestUrl {
     UPLOAD_FILE("uploadFile", "文件上传"),
     UPLOAD_IMAGE_INFO_LIST("uploadImageInfoList", "文件信息与订单关联"),
     ZBF_AGGREGATE_PAY("zbfAggregatePay", "聚合支付服务"),
+    NEW_PAY("newPay", "新支付"),
     GET_ORDER_DETAIL("getOrderDetail", "订单详情查询服务"),
     CANCEL("cancel", "未缴费保单撤单"),
     QUERY_VEHIC_PRODUCTS("queryVehicProducts", "查询“车+意”中意外险方案信息(非摩托车险)"),

+ 46 - 0
src/main/java/com/ydtech/modules/order/entity/api/zijin/request/NewPayRequest.java

@@ -0,0 +1,46 @@
+package com.ydtech.modules.order.entity.api.zijin.request;
+
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.ydtech.modules.order.entity.config.ZjConfigureParameters;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * @version
+ * @description: 紫金财险 新支付 入参实体
+ * @author: wenks
+ * @date: 2024/5/28 17:26
+ **/
+@AllArgsConstructor
+@NoArgsConstructor
+@Data
+public class NewPayRequest implements Serializable {
+
+    private static final long serialVersionUID = 2976848596252887946L;
+
+    @JsonProperty("amount")
+    private String amount;
+
+    @JsonProperty("ordeNo")
+    private String ordeNo;
+
+    @JsonProperty("orderOrigin")
+    private String orderOrigin;
+
+    @JsonProperty("proposalCityCode")
+    private String proposalCityCode;
+
+    public NewPayRequest(String amount, String ordeNo, ZjConfigureParameters zjConfigureParameters) {
+        this.amount = amount;
+        this.ordeNo = ordeNo;
+        this.orderOrigin = zjConfigureParameters.getOrderOrigin();
+        this.proposalCityCode = zjConfigureParameters.getProposalCityCode();
+    }
+
+
+}

+ 53 - 0
src/main/java/com/ydtech/modules/order/entity/api/zijin/response/NewPayRequestResponse.java

@@ -0,0 +1,53 @@
+package com.ydtech.modules.order.entity.api.zijin.response;
+
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+/**
+ * @description: 紫金财险 新支付 响应实体
+ * @author: wenks
+ * @date: 2024/5/28 17:30
+ **/
+@EqualsAndHashCode(callSuper = true)
+@Data
+@NoArgsConstructor
+public class NewPayRequestResponse extends BaseResponse implements Serializable {
+
+    private static final long serialVersionUID = 3146150212183255644L;
+
+    @JsonProperty("twoDimentionImageUrl")
+    private String twoDimentionImageUrl;
+
+    @JsonProperty("orderNo")
+    private String orderNo;
+
+    @JsonProperty("success")
+    private Boolean success;
+
+    @JsonProperty("posTransNo")
+    private String posTransNo;
+
+    @JsonProperty("paymentNo")
+    private String paymentNo;
+
+    @JsonProperty("bankAccountName")
+    private String bankAccountName;
+
+    @JsonProperty("bankCardNo")
+    private String bankCardNo;
+
+    @JsonProperty("bankName")
+    private String bankName;
+
+    @JsonProperty("paymentPolicyNoList")
+    private String paymentPolicyNoList;
+
+    @JsonProperty("url")
+    private String url;
+
+}

+ 8 - 12
src/main/java/com/ydtech/modules/order/service/impl/ZijinOrderApiServiceImpl.java

@@ -211,12 +211,10 @@ public class ZijinOrderApiServiceImpl implements ZijinOrderApiService {
             insAreaCompany.setSyapplyno(submitVerifyInfo.getProposalNo());
             insAreaCompany.setOrderstatus(InsOrderStatusEnum.WAIT_PAY.getCode());
             // 3. 聚合支付服务
-            BigDecimal multiply = insAreaCompany.getSumpremium().multiply(new BigDecimal(100));
-            ZbfAggregatePayRequest zbfAggregatePayRequest = new ZbfAggregatePayRequest(String.valueOf(multiply.intValue()),
-                    zjConfigureParameters.getAppKey(), insAreaCompany.getId());
-            ZbfAggregatePayResponse zbfAggregatePayResponse = zijinRequestApiComponents.zbfAggregatePay(zbfAggregatePayRequest,
-                    httpHeaders);
-            insAreaCompany.setPaymentLink(zbfAggregatePayResponse.getPayUrl());
+            String multiply = insAreaCompany.getSumpremium().stripTrailingZeros().toString();
+            NewPayRequest newPayRequest = new NewPayRequest(multiply, insAreaCompany.getId(), zjConfigureParameters);
+            NewPayRequestResponse newPayRequestResponse = zijinRequestApiComponents.newPay(newPayRequest, httpHeaders);
+            insAreaCompany.setPaymentLink(newPayRequestResponse.getTwoDimentionImageUrl());
             insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
             return HttpResult.ok("核保成功");
 
@@ -436,12 +434,10 @@ public class ZijinOrderApiServiceImpl implements ZijinOrderApiService {
             insAreaCompany.setSyapplyno(baseInfo.getProposalNo());
             insAreaCompany.setOrderstatus(InsOrderStatusEnum.WAIT_PAY.getCode());
             // 3. 聚合支付服务
-            BigDecimal multiply = insAreaCompany.getSumpremium().multiply(new BigDecimal(100));
-            ZbfAggregatePayRequest zbfAggregatePayRequest = new ZbfAggregatePayRequest(String.valueOf(multiply.intValue()),
-                    zjConfigureParameters.getAppKey(), insAreaCompany.getId());
-            ZbfAggregatePayResponse zbfAggregatePayResponse = zijinRequestApiComponents.zbfAggregatePay(zbfAggregatePayRequest,
-                    httpHeaders);
-            insAreaCompany.setPaymentLink(zbfAggregatePayResponse.getPayUrl());
+            String multiply = insAreaCompany.getSumpremium().stripTrailingZeros().toString();
+            NewPayRequest newPayRequest = new NewPayRequest(multiply, insAreaCompany.getId(), zjConfigureParameters);
+            NewPayRequestResponse newPayRequestResponse = zijinRequestApiComponents.newPay(newPayRequest, httpHeaders);
+            insAreaCompany.setPaymentLink(newPayRequestResponse.getTwoDimentionImageUrl());
             insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
             return HttpResult.ok("核保成功");
         } else if (OrderStatusEnum.O_3.getCode().equals(resultObj.getOrderStatus())) {

+ 2 - 0
src/main/resources/application-pre.yml

@@ -230,6 +230,8 @@ zijin:
     url: http://open.zking.com/api/v1/insurance/autoMobile/carInsurance/
     # 支付
     payUrl: http://open.zking.com/api/v1/public/payment/cashier/zbfAggregatePay
+    # 新支付
+    newPayUrl: http://open.zking.com/api/v1/open/open-aggregate/auth/newPay
     # 订单详情查询服务
     orderUrl: http://open.zking.com/api/v1/insurance/public/getOrderDetail
     # 订单状态查询

+ 3 - 1
src/main/resources/application-prod.yml

@@ -229,6 +229,8 @@ zijin:
     url: http://open.zking.com/api/v1/insurance/autoMobile/carInsurance/
     # 支付
     payUrl: http://open.zking.com/api/v1/public/payment/cashier/zbfAggregatePay
+    # 新支付
+    newPayUrl: http://open.zking.com/api/v1/open/open-aggregate/auth/newPay
     # 订单详情查询服务
     orderUrl: http://open.zking.com/api/v1/insurance/public/getOrderDetail
     # 订单状态查询
@@ -339,4 +341,4 @@ anti:
         allowed-pc: true
   redis:
     redisson:
-      file: classpath:redisson-prod.yml
+      file: classpath:redisson-prod.yml

+ 3 - 1
src/main/resources/application-test.yml

@@ -305,6 +305,8 @@ zijin:
     url: http://test-open.zking.com/api/v1/insurance/autoMobile/carInsurance/
     # 支付
     payUrl: http://test-open.zking.com/api/v1/public/payment/cashier/zbfAggregatePay
+    # 新支付
+    newPayUrl: http://test-open.zking.com/api/v1/open/open-aggregate/auth/newPay
     # 订单详情查询服务
     orderUrl: http://test-open.zking.com/api/v1/insurance/public/getOrderDetail
     # 订单状态查询
@@ -423,4 +425,4 @@ anti:
         allowed-pc: true
   redis:
     redisson:
-      file: classpath:redisson-test.yml
+      file: classpath:redisson-test.yml