新接口完善和其他修改
diff --git a/config/application-devel-pg-xkx.properties b/config/application-devel-pg-xkx.properties
index e03fe08..390649f 100644
--- a/config/application-devel-pg-xkx.properties
+++ b/config/application-devel-pg-xkx.properties
@@ -12,7 +12,12 @@
spring.datasource.password=123456
database.dbtype=postgresql
+# logging settings
+spring.jpa.show-sql = false
logging.level.org.hibernate.SQL=ERROR
+logging.level.com.mascloud=ERROR
+logging.level.root=info
+
# Redis settings
spring.redis.host=localhost
spring.redis.port=6379
diff --git a/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/UserMessageData.java b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/UserMessageData.java
new file mode 100644
index 0000000..666c677
--- /dev/null
+++ b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/UserMessageData.java
@@ -0,0 +1,20 @@
+package com.supwisdom.dlpay.api.bean;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+@NoArgsConstructor
+@AllArgsConstructor
+@Getter
+@Setter
+public class UserMessageData {
+ private String msgid; //tb_msg的id
+ private String content; //tb_msg的content
+ private String lastupdate; //tb_msg的lastupdate
+ private String refno; //tb_msg的refno
+ private String transdesc; //refno对应流水的交易描述
+ private Double amount; //refno对应流水的交易金额
+ private String userid; //tb_msg的userid
+}
diff --git a/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/UserQueryMessageParam.java b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/UserQueryMessageParam.java
new file mode 100644
index 0000000..d9a01e3
--- /dev/null
+++ b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/UserQueryMessageParam.java
@@ -0,0 +1,28 @@
+package com.supwisdom.dlpay.api.bean;
+
+import com.supwisdom.dlpay.api.APIRequestParam;
+import com.supwisdom.dlpay.api.annotation.Sign;
+import com.supwisdom.dlpay.api.exception.RequestParamCheckException;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotEmpty;
+
+@Getter
+@Setter
+public class UserQueryMessageParam extends APIRequestParam {
+ @Sign
+ @NotEmpty(message = "用户ID不能为空")
+ private String userid;
+
+ @Sign
+ private Integer pageNo; //可以为空,默认1
+
+ @Sign
+ private Integer pageSize; //可以为空,默认10
+
+ @Override
+ public boolean checkParam() throws RequestParamCheckException {
+ return true;
+ }
+}
diff --git a/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/UserQueryMessageResponse.java b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/UserQueryMessageResponse.java
new file mode 100644
index 0000000..b5e4028
--- /dev/null
+++ b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/UserQueryMessageResponse.java
@@ -0,0 +1,20 @@
+package com.supwisdom.dlpay.api.bean;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+import java.util.List;
+
+@Getter
+@Setter
+@AllArgsConstructor
+@NoArgsConstructor
+public class UserQueryMessageResponse extends ApiResponse {
+ private int pageNo = 1;
+ private int pageSize = 10;
+ private int totalCount = 0;
+ private int totalPages = 0;
+ private List<UserMessageData> data;
+}
diff --git a/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/YnrccPayConfirmParam.java b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/YnrccPayConfirmParam.java
index 678c24e..0b5851f 100644
--- a/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/YnrccPayConfirmParam.java
+++ b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/YnrccPayConfirmParam.java
@@ -6,21 +6,22 @@
import lombok.Getter;
import lombok.Setter;
+import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
@Getter
@Setter
public class YnrccPayConfirmParam extends APIRequestParam {
@Sign
- @NotNull(message = "交易参考号不能为空")
+ @NotBlank(message = "交易参考号不能为空")
private String refno;
@Sign
- @NotNull(message = "参数Plain不能为空")
+ @NotBlank(message = "参数Plain不能为空")
private String plain; //农商行快捷支付参数
@Sign
- @NotNull(message = "参数Signature不能为空")
+ @NotBlank(message = "参数Signature不能为空")
private String signature; //农商行快捷支付参数
@Override
diff --git a/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/YnrccPayLimitModifyParam.java b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/YnrccPayLimitModifyParam.java
index 6845d83..bd6e000 100644
--- a/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/YnrccPayLimitModifyParam.java
+++ b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/YnrccPayLimitModifyParam.java
@@ -7,21 +7,22 @@
import lombok.Setter;
import javax.validation.constraints.Min;
+import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
@Getter
@Setter
public class YnrccPayLimitModifyParam extends APIRequestParam {
@Sign
- @NotEmpty(message = "用户ID不能为空")
+ @NotBlank(message = "用户ID不能为空")
private String userid;
@Sign
- @NotEmpty(message = "银行卡号不能为空")
+ @NotBlank(message = "银行卡号不能为空")
private String bankcardno;
@Sign
- @NotEmpty(message = "签约商户不能为空")
+ @NotBlank(message = "签约商户不能为空")
private String shopaccno;
@Sign
diff --git a/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/YnrccPayOrderParam.java b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/YnrccPayOrderParam.java
index 6e66c41..a497a13 100644
--- a/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/YnrccPayOrderParam.java
+++ b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/YnrccPayOrderParam.java
@@ -7,6 +7,7 @@
import lombok.Getter;
import lombok.Setter;
+import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Positive;
@@ -14,15 +15,15 @@
@Setter
public class YnrccPayOrderParam extends APIRequestParam {
@Sign
- @NotNull(message = "用户唯一号不能为空")
+ @NotBlank(message = "用户唯一号不能为空")
private String userid; //用户userid
@Sign
- @NotNull(message = "银行卡号不能为空")
+ @NotBlank(message = "银行卡号不能为空")
private String bankcardno;
@Sign
- @NotNull(message = "对接系统唯一订单号不能为空")
+ @NotBlank(message = "对接系统唯一订单号不能为空")
private String billno;
@Sign
@@ -31,18 +32,18 @@
private Integer amount;
@Sign
- @NotNull(message = "请指定交易商户")
+ @NotBlank(message = "请指定交易商户")
private String shopaccno;
@Sign
- @NotNull(message = "交易日期不能为空")
+ @NotBlank(message = "交易日期不能为空")
private String transdate;
@Sign
- @NotNull(message = "交易时间不能为空")
+ @NotBlank(message = "交易时间不能为空")
private String transtime;
@Sign
- @NotNull(message = "流水类型不能为空")
+ @NotBlank(message = "流水类型不能为空")
private String dtltype;
@Override
diff --git a/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/YnrccPayRefundParam.java b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/YnrccPayRefundParam.java
index decc341..73095ce 100644
--- a/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/YnrccPayRefundParam.java
+++ b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/YnrccPayRefundParam.java
@@ -9,6 +9,7 @@
import org.apache.commons.lang3.StringUtils;
import javax.validation.constraints.Min;
+import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
@Getter
@@ -26,13 +27,13 @@
private Integer refundAmount;
@Sign
- @NotNull(message = "撤销或退款流水号不能为空")
+ @NotBlank(message = "撤销或退款流水号不能为空")
private String requestbillno;
@Sign
- @NotNull(message = "交易日期不能为空")
+ @NotBlank(message = "交易日期不能为空")
private String transdate;
@Sign
- @NotNull(message = "交易时间不能为空")
+ @NotBlank(message = "交易时间不能为空")
private String transtime;
@Override
diff --git a/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/YnrccPaySignApplyParam.java b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/YnrccPaySignApplyParam.java
index 581316b..da80b3a 100644
--- a/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/YnrccPaySignApplyParam.java
+++ b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/YnrccPaySignApplyParam.java
@@ -6,21 +6,22 @@
import lombok.Getter;
import lombok.Setter;
+import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
@Getter
@Setter
public class YnrccPaySignApplyParam extends APIRequestParam {
@Sign
- @NotEmpty(message = "用户ID不能为空")
+ @NotBlank(message = "用户ID不能为空")
private String userid;
@Sign
- @NotEmpty(message = "银行卡号不能为空")
+ @NotBlank(message = "银行卡号不能为空")
private String bankcardno;
@Sign
- @NotEmpty(message = "签约商户不能为空")
+ @NotBlank(message = "签约商户不能为空")
private String shopaccno;
@Override
diff --git a/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/YnrccPaySignCancelParam.java b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/YnrccPaySignCancelParam.java
index 17e3b57..9d83baf 100644
--- a/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/YnrccPaySignCancelParam.java
+++ b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/YnrccPaySignCancelParam.java
@@ -6,21 +6,22 @@
import lombok.Getter;
import lombok.Setter;
+import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
@Getter
@Setter
public class YnrccPaySignCancelParam extends APIRequestParam {
@Sign
- @NotEmpty(message = "用户ID不能为空")
+ @NotBlank(message = "用户ID不能为空")
private String userid;
@Sign
- @NotEmpty(message = "银行卡号不能为空")
+ @NotBlank(message = "银行卡号不能为空")
private String bankcardno;
@Sign
- @NotEmpty(message = "签约商户不能为空")
+ @NotBlank(message = "签约商户不能为空")
private String shopaccno;
@Override
diff --git a/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/YnrccPaySignConfirmParam.java b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/YnrccPaySignConfirmParam.java
index 136bc58..aa85cb6 100644
--- a/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/YnrccPaySignConfirmParam.java
+++ b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/YnrccPaySignConfirmParam.java
@@ -6,6 +6,7 @@
import lombok.Getter;
import lombok.Setter;
+import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
@@ -13,15 +14,15 @@
@Setter
public class YnrccPaySignConfirmParam extends APIRequestParam {
@Sign
- @NotEmpty(message = "签约号不能为空")
+ @NotBlank(message = "签约号不能为空")
private String signNo; //申请时返回的签约号
@Sign
- @NotNull(message = "参数Plain不能为空")
+ @NotBlank(message = "参数Plain不能为空")
private String plain; //农商行快捷支付参数
@Sign
- @NotNull(message = "参数Signature不能为空")
+ @NotBlank(message = "参数Signature不能为空")
private String signature; //农商行快捷支付参数
@Override
diff --git a/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/YnrccPaySignInfo.java b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/YnrccPaySignInfo.java
new file mode 100644
index 0000000..785d556
--- /dev/null
+++ b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/YnrccPaySignInfo.java
@@ -0,0 +1,19 @@
+package com.supwisdom.dlpay.api.bean;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+@NoArgsConstructor
+@AllArgsConstructor
+@Getter
+@Setter
+public class YnrccPaySignInfo {
+ private String signNo; //申请时返回的签约号
+ private String bankcardno; //签约银行卡号
+ private String shopaccno; //核心平台商户账号
+ private String shopname; //核心平台商户名称
+ private String signtime; //签约时间 yyyyMMddHHmmss
+ private String userid; //核心平台用户ID
+}
diff --git a/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/YnrccPaySignListQueryParam.java b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/YnrccPaySignListQueryParam.java
new file mode 100644
index 0000000..3a923d9
--- /dev/null
+++ b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/YnrccPaySignListQueryParam.java
@@ -0,0 +1,26 @@
+package com.supwisdom.dlpay.api.bean;
+
+import com.supwisdom.dlpay.api.APIRequestParam;
+import com.supwisdom.dlpay.api.annotation.Sign;
+import com.supwisdom.dlpay.api.exception.RequestParamCheckException;
+import lombok.Getter;
+import lombok.Setter;
+import org.apache.commons.lang3.StringUtils;
+
+@Getter
+@Setter
+public class YnrccPaySignListQueryParam extends APIRequestParam {
+ @Sign
+ private String userid; //可二选一
+
+ @Sign
+ private String bankcardno; //可二选一
+
+ @Override
+ public boolean checkParam() throws RequestParamCheckException {
+ if (StringUtils.isEmpty(userid) && StringUtils.isEmpty(bankcardno)) {
+ throw new RequestParamCheckException("未指定要查询的签约用户!");
+ }
+ return true;
+ }
+}
diff --git a/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/YnrccPaySignListQueryResponse.java b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/YnrccPaySignListQueryResponse.java
new file mode 100644
index 0000000..526f979
--- /dev/null
+++ b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/YnrccPaySignListQueryResponse.java
@@ -0,0 +1,14 @@
+package com.supwisdom.dlpay.api.bean;
+
+import lombok.*;
+
+import java.util.List;
+
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
+@ToString
+public class YnrccPaySignListQueryResponse extends ApiResponse {
+ private List<YnrccPaySignInfo> data;
+}
diff --git a/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/YnrccPaySignQueryParam.java b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/YnrccPaySignQueryParam.java
index 5d52f38..d18e016 100644
--- a/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/YnrccPaySignQueryParam.java
+++ b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/YnrccPaySignQueryParam.java
@@ -6,21 +6,22 @@
import lombok.Getter;
import lombok.Setter;
+import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
@Getter
@Setter
public class YnrccPaySignQueryParam extends APIRequestParam {
@Sign
- @NotEmpty(message = "用户ID不能为空")
+ @NotBlank(message = "用户ID不能为空")
private String userid;
@Sign
- @NotEmpty(message = "银行卡号不能为空")
+ @NotBlank(message = "银行卡号不能为空")
private String bankcardno;
@Sign
- @NotEmpty(message = "签约商户不能为空")
+ @NotBlank(message = "签约商户不能为空")
private String shopaccno;
@Override
diff --git a/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/YnrccPayThirdAuthParam.java b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/YnrccPayThirdAuthParam.java
new file mode 100644
index 0000000..5f225e4
--- /dev/null
+++ b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/YnrccPayThirdAuthParam.java
@@ -0,0 +1,30 @@
+package com.supwisdom.dlpay.api.bean;
+
+import com.supwisdom.dlpay.api.APIRequestParam;
+import com.supwisdom.dlpay.api.annotation.Sign;
+import com.supwisdom.dlpay.api.exception.RequestParamCheckException;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+
+@Getter
+@Setter
+public class YnrccPayThirdAuthParam extends APIRequestParam {
+ @Sign
+ @NotBlank(message = "第三方服务标识不能为空")
+ private String thirdservice;
+
+ @Sign
+ @NotBlank(message = "用户ID不能为空")
+ private String userid;
+
+ @Sign
+ @NotBlank(message = "银行卡号不能为空")
+ private String bankcardno;
+
+ @Override
+ public boolean checkParam() throws RequestParamCheckException {
+ return true;
+ }
+}
diff --git a/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/YnrccPayThirdAuthResponse.java b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/YnrccPayThirdAuthResponse.java
new file mode 100644
index 0000000..eb1babb
--- /dev/null
+++ b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/YnrccPayThirdAuthResponse.java
@@ -0,0 +1,13 @@
+package com.supwisdom.dlpay.api.bean;
+
+import lombok.*;
+
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
+@ToString
+public class YnrccPayThirdAuthResponse extends ApiResponse{
+ private String sdkConfigData;
+ private String access2ServiceData;
+}
diff --git a/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/proxy/ConsumePropxy.java b/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/proxy/ConsumePropxy.java
index 18f1521..9eb32fb 100644
--- a/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/proxy/ConsumePropxy.java
+++ b/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/proxy/ConsumePropxy.java
@@ -34,4 +34,6 @@
@PostMapping("/ynrccpay/refund")
YnrccPayRefundResponse ynrccPayRefund(@RequestBody YnrccPayRefundParam param);
+ @PostMapping("/ynrccpay/thirdAuth")
+ YnrccPayThirdAuthResponse ynrccPayThirdAuth(@RequestBody YnrccPayThirdAuthParam param);
}
diff --git a/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/proxy/UserProxy.java b/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/proxy/UserProxy.java
index 01f8fd4..1fb815f 100644
--- a/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/proxy/UserProxy.java
+++ b/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/proxy/UserProxy.java
@@ -93,4 +93,10 @@
@PostMapping("/api/user/ynrccpayModifyLimit")
YnrccPayLimitModifyResponse modifyYnrccPayLimit(@RequestBody YnrccPayLimitModifyParam param);
+
+ @PostMapping("/api/user/queryMessage")
+ UserQueryMessageResponse queryUserMessage(@RequestBody UserQueryMessageParam param);
+
+ @PostMapping("/api/user/ynrccpaySignList")
+ YnrccPaySignListQueryResponse queryYnrccPaySignList(@RequestBody YnrccPaySignListQueryParam param);
}
diff --git a/payapi/build.gradle b/payapi/build.gradle
index cdb07b4..7a4c6cf 100644
--- a/payapi/build.gradle
+++ b/payapi/build.gradle
@@ -115,7 +115,11 @@
// implementation files('libs/ojdbc6.jar')
implementation 'commons-dbcp:commons-dbcp:1.4'
implementation 'commons-beanutils:commons-beanutils:1.9.3'
- implementation files('libs/ynrcc-mbp-1.1.0-RELEASE.jar')
+ implementation files('libs/ynrcc-openapi-sdk-1.1.2-RELEASE.jar')
+
+ //大理农商行sdk需求jar
+ implementation 'cn.hutool:hutool-crypto:5.4.7'
+ implementation 'org.bouncycastle:bcprov-jdk15on:1.64'
implementation 'log4j:log4j:1.2.17'
implementation 'com.alibaba:fastjson:1.2.60'
diff --git a/payapi/libs/ynrcc-mbp-1.1.0-RELEASE.jar b/payapi/libs/ynrcc-mbp-1.1.0-RELEASE.jar
deleted file mode 100644
index 0aee6ef..0000000
--- a/payapi/libs/ynrcc-mbp-1.1.0-RELEASE.jar
+++ /dev/null
Binary files differ
diff --git a/payapi/libs/ynrcc-openapi-sdk-1.1.2-RELEASE.jar b/payapi/libs/ynrcc-openapi-sdk-1.1.2-RELEASE.jar
new file mode 100644
index 0000000..c3d54ee
--- /dev/null
+++ b/payapi/libs/ynrcc-openapi-sdk-1.1.2-RELEASE.jar
Binary files differ
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/agent/ynrccpay/YnrccPayUtil.java b/payapi/src/main/java/com/supwisdom/dlpay/agent/ynrccpay/YnrccPayUtil.java
index d0a3474..38a6982 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/agent/ynrccpay/YnrccPayUtil.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/agent/ynrccpay/YnrccPayUtil.java
@@ -20,6 +20,7 @@
public static final String SUCCESS = "ZF0000";
public static final String WAIT_FOR_QUERY = "ZF0098"; //等待查询结果
+ public static final String NO_RECORDS_TODAY = "0406"; //当日无交易明细
public static String toJson(Object obj) {
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/citizencard/dao/YnrccPaySignDao.java b/payapi/src/main/java/com/supwisdom/dlpay/citizencard/dao/YnrccPaySignDao.java
index d8b0949..adc6075 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/citizencard/dao/YnrccPaySignDao.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/citizencard/dao/YnrccPaySignDao.java
@@ -5,6 +5,8 @@
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
+import java.util.List;
+
@Repository
public interface YnrccPaySignDao extends JpaRepository<TYnrccPaySign, String> {
@Query("from TYnrccPaySign t where t.bankcardno=?1 and t.shopaccno=?2 and t.status='normal'")
@@ -13,5 +15,17 @@
@Query("select count(t.id) from TYnrccPaySign t where t.bankcardno=?1 and t.shopaccno<>?2 and t.status='normal' and t.signFlag is true ")
int countByBankcardnoAndSignStatus(String bankcardno, String shopaccno);
+ @Query("from TYnrccPaySign t where t.bankcardno=?1 and t.shopaccno<>?2 and t.status='normal' and t.signFlag is true")
+ List<TYnrccPaySign> queryOtherShopSign(String bankcardno, String shopaccno);
+
TYnrccPaySign getById(String id);
+
+ @Query("from TYnrccPaySign t where t.userid=?1 and t.status='normal' and t.signFlag is true")
+ List<TYnrccPaySign> queryActiveSignsByUserid(String userid);
+
+ @Query("from TYnrccPaySign t where t.bankcardno=?1 and t.status='normal' and t.signFlag is true")
+ List<TYnrccPaySign> queryActiveSignsByBankcardno(String bankcardno);
+
+ @Query("from TYnrccPaySign t where t.userid=?1 and t.bankcardno=?2 and t.status='normal' and t.signFlag is true")
+ List<TYnrccPaySign> queryActiveSignsByUseridAndBankcardno(String userid, String bankcardno);
}
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/framework/util/PageRes.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/util/PageRes.java
new file mode 100644
index 0000000..03467f9
--- /dev/null
+++ b/payapi/src/main/java/com/supwisdom/dlpay/framework/util/PageRes.java
@@ -0,0 +1,51 @@
+package com.supwisdom.dlpay.framework.util;
+
+import java.util.List;
+
+public class PageRes<T> {
+ private int pageNo = 1;
+ private int pageSize = 10;
+ private int totalCount = 0;
+ private int totalPages = 0;
+ private List<T> data;
+
+ public int getPageNo() {
+ return pageNo;
+ }
+
+ public void setPageNo(int pageNo) {
+ this.pageNo = pageNo;
+ }
+
+ public int getPageSize() {
+ return pageSize;
+ }
+
+ public void setPageSize(int pageSize) {
+ this.pageSize = pageSize;
+ }
+
+ public int getTotalCount() {
+ return totalCount;
+ }
+
+ public void setTotalCount(int totalCount) {
+ this.totalCount = totalCount;
+ }
+
+ public int getTotalPages() {
+ return totalPages;
+ }
+
+ public void setTotalPages(int totalPages) {
+ this.totalPages = totalPages;
+ }
+
+ public List<T> getData() {
+ return data;
+ }
+
+ public void setData(List<T> data) {
+ this.data = data;
+ }
+}
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/system/service/UserMessageService.java b/payapi/src/main/java/com/supwisdom/dlpay/system/service/UserMessageService.java
new file mode 100644
index 0000000..842b9d9
--- /dev/null
+++ b/payapi/src/main/java/com/supwisdom/dlpay/system/service/UserMessageService.java
@@ -0,0 +1,11 @@
+package com.supwisdom.dlpay.system.service;
+
+import com.supwisdom.dlpay.api.bean.UserMessageData;
+import com.supwisdom.dlpay.framework.util.PageRes;
+import org.springframework.transaction.annotation.Transactional;
+
+public interface UserMessageService {
+ @Transactional(rollbackFor = Exception.class, readOnly = true)
+ PageRes<UserMessageData> queryMessageByUserid(String userid, int pageNo, int pageSize);
+
+}
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/UserMessageServiceImpl.java b/payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/UserMessageServiceImpl.java
new file mode 100644
index 0000000..b5fa9ce
--- /dev/null
+++ b/payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/UserMessageServiceImpl.java
@@ -0,0 +1,49 @@
+package com.supwisdom.dlpay.system.service.impl;
+
+import com.supwisdom.dlpay.api.bean.UserMessageData;
+import com.supwisdom.dlpay.framework.util.PageRes;
+import com.supwisdom.dlpay.framework.util.PageResult;
+import com.supwisdom.dlpay.framework.util.StringUtil;
+import com.supwisdom.dlpay.system.bean.CitizenCardShowBean;
+import com.supwisdom.dlpay.system.service.UserMessageService;
+import org.hibernate.query.internal.NativeQueryImpl;
+import org.hibernate.transform.Transformers;
+import org.springframework.stereotype.Service;
+
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import javax.persistence.Query;
+import java.math.BigInteger;
+import java.util.ArrayList;
+import java.util.List;
+
+@Service
+public class UserMessageServiceImpl implements UserMessageService {
+ @PersistenceContext
+ private EntityManager entityManager;
+
+ @Override
+ public PageRes<UserMessageData> queryMessageByUserid(String userid, int pageNo, int pageSize) {
+ StringBuffer querySql = new StringBuffer("select a.msgid,a.content,a.lastupdate,a.refno,b.transdesc,b.amount,a.userid " +
+ " from tb_msg a left join tb_persondtl b on a.refno=b.refno where a.userid=:userid order by a.lastupdate desc");
+ StringBuffer countSql = new StringBuffer("select count(a.msgid) as cnt " +
+ " from tb_msg a left join tb_persondtl b on a.refno=b.refno where a.userid=:userid ");
+
+ Query query = entityManager.createNativeQuery(querySql.toString());
+ Query countQuery = entityManager.createNativeQuery(countSql.toString());
+ query.setParameter("userid", userid.trim());
+ countQuery.setParameter("userid", userid.trim());
+ query.setFirstResult((pageNo - 1) * pageSize);
+ query.setMaxResults(pageSize); //分页显示
+ query.unwrap(NativeQueryImpl.class).setResultTransformer(Transformers.aliasToBean(UserMessageData.class));
+ List<UserMessageData> list = query.getResultList();
+ BigInteger cnt = (BigInteger) countQuery.getSingleResult();
+ PageRes<UserMessageData> page = new PageRes<>();
+ page.setPageNo(pageNo);
+ page.setPageSize(pageSize);
+ page.setTotalCount(cnt == null ? 0 : cnt.intValue());
+ page.setTotalPages(page.getTotalCount() % page.getPageSize() > 0 ? (page.getTotalCount() / page.getPageSize() + 1) : (page.getTotalCount() / page.getPageSize()));
+ page.setData(list == null ? new ArrayList<>(0) : list);
+ return page;
+ }
+}
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/agent/service/impl/ynrcc_netpay_service_impl.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/agent/service/impl/ynrcc_netpay_service_impl.kt
index c1e037b..3949c55 100644
--- a/payapi/src/main/kotlin/com/supwisdom/dlpay/agent/service/impl/ynrcc_netpay_service_impl.kt
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/agent/service/impl/ynrcc_netpay_service_impl.kt
@@ -1,32 +1,22 @@
package com.supwisdom.dlpay.agent.service.impl
import com.csii.ynrcc.open.api.pay.YNRCCFastGateWayPayApi
+import com.csii.ynrcc.open.api.service.User
+import com.csii.ynrcc.open.api.service.YNRCCOpenServiceApi
import com.google.gson.Gson
import com.supwisdom.dlpay.agent.service.YnrccNetPayService
import com.supwisdom.dlpay.agent.ynrccpay.YnrccPayCommonResp
import com.supwisdom.dlpay.agent.ynrccpay.YnrccPayResp
import com.supwisdom.dlpay.agent.ynrccpay.YnrccPayUtil
-import com.supwisdom.dlpay.api.bean.YnrccPaySignApplyParam
-import com.supwisdom.dlpay.api.bean.YnrccPaySignApplyResponse
-import com.supwisdom.dlpay.api.dao.CardDao
-import com.supwisdom.dlpay.api.dao.PersonDao
-import com.supwisdom.dlpay.api.repositories.ShopaccService
+import com.supwisdom.dlpay.api.domain.TPerson
import com.supwisdom.dlpay.api.service.SourceTypeService
-import com.supwisdom.dlpay.citizencard.dao.YnrccPaySignDao
-import com.supwisdom.dlpay.citizencard.domain.TYnrccPaySign
import com.supwisdom.dlpay.exception.TransactionProcessException
-import com.supwisdom.dlpay.framework.dao.ShopaccDao
import com.supwisdom.dlpay.framework.service.SystemUtilService
-import com.supwisdom.dlpay.framework.util.MoneyUtil
-import com.supwisdom.dlpay.framework.util.StringUtil
-import com.supwisdom.dlpay.framework.util.TradeDict
-import com.supwisdom.dlpay.framework.util.TradeErrorCode
-import com.supwisdom.dlpay.util.ConstantUtil
+import com.supwisdom.dlpay.framework.util.*
import mu.KotlinLogging
import org.springframework.http.HttpEntity
import org.springframework.http.HttpHeaders
import org.springframework.http.MediaType
-import org.springframework.http.ResponseEntity
import org.springframework.http.converter.StringHttpMessageConverter
import org.springframework.stereotype.Service
import org.springframework.util.LinkedMultiValueMap
@@ -72,9 +62,49 @@
params["TransId"] = "IFSR"
params["Mer_Id"] = merId.trim()
params["MerURL"] = merUrl.trim()
+ params["PAY_MODE"] = "QS"
//调SDK生成签名
val signData = YNRCCFastGateWayPayApi.sign(params)
+ if (signData["Plain"].isNullOrEmpty() || signData["Signature"].isNullOrEmpty()) {
+ resp.code = "ZE0002"
+ resp.message = "签名计算错误!"
+ logger.error("签名后[Plain]和[Signature]参数为空!")
+ return resp
+ }
+
+ resp.code = YnrccPayUtil.SUCCESS
+ resp.message = "SUCCESS"
+ resp.plain = signData["Plain"]
+ resp.signature = signData["Signature"]
+ return resp
+ }
+
+ override fun doApplyAuthYnrccPaySign(shopaccno: String, oldCustomerSignNo: String): YnrccPayResp {
+ val resp = YnrccPayResp()
+ val config = sourceTypeService.getConsumePaytypeConfig(TradeDict.PAYTYPE_YNRCC_PAY, shopaccno, false, false)
+ val merId = config[YnrccPayUtil.MER_ID]
+ if (merId.isNullOrEmpty()) {
+ resp.code = "ZE0001"
+ resp.message = "系统参数未配置[Mer_Id]"
+ logger.error(resp.error())
+ return resp
+ }
+
+ val params = hashMapOf<String, String>()
+ params["TransId"] = "IFSR"
+ params["Mer_Id"] = merId.trim()
+ params["CustomerSignNo"] = oldCustomerSignNo.trim()
+ params["PAY_MODE"] = "QS"
+
+ //调SDK生成签名
+ val signData = YNRCCFastGateWayPayApi.sign(params)
+ if (signData["Plain"].isNullOrEmpty() || signData["Signature"].isNullOrEmpty()) {
+ resp.code = "ZE0002"
+ resp.message = "签名计算错误!"
+ logger.error("签名后[Plain]和[Signature]参数为空!")
+ return resp
+ }
resp.code = YnrccPayUtil.SUCCESS
resp.message = "SUCCESS"
@@ -106,6 +136,7 @@
params["TransId"] = "IFCR"
params["Mer_Id"] = merId.trim()
params["CustomerSignNo"] = customerSignNo
+ params["PAY_MODE"] = "Q"
val signData = YNRCCFastGateWayPayApi.sign(params) //调SDK生成签名
val plain = signData["Plain"]
@@ -149,22 +180,25 @@
val result = restTemplate.postForEntity(url, httpEntity, String::class.java)
if (200 == result.statusCodeValue) {
//请求成功
+ logger.info("农商行网关快捷支付请求【$opt】返回:\nurl=[$url]\nResponse Body=[" + result.body + "]")
val resJson = Gson().fromJson(result.body, YnrccPayCommonResp::class.java)
if (null == resJson || StringUtil.isEmpty(resJson.plain) || StringUtil.isEmpty(resJson.signature)) {
return error("ZE0098", "请求农商行网关【$opt】返回数据为空!")
}
val resData = YNRCCFastGateWayPayApi.verify(resJson.signature, resJson.plain) //调SDK验证签名
- logger.info("农商行网关快捷支付请求【$opt】返回:\nurl=[$url]\nResponse=[" + YnrccPayUtil.toJson(resData) + "]")
- return if (YnrccPayUtil.SUCCESS == resData["RespCode"]) {
+ logger.info("农商行网关快捷支付请求【$opt】返回:\nurl=[$url]\nResponse Plain=[" + YnrccPayUtil.toJson(resData) + "]")
+ val respCode = resData["RespCode"]?.trim()?.replace("\r\n", "")
+ return if (YnrccPayUtil.SUCCESS == respCode) {
+ resData["RespCode"] = respCode
resData["RespDesc"] = "SUCCESS"
resData
} else {
- val errcode = resData["RespCode"]
val errmsg = YnrccPayUtil.errcode.firstOrNull {
- it.second.code == errcode
+ it.second.code == respCode
}?.second?.msg
- resData["RespDesc"] = "$errcode $errmsg" //设置失败信息
+ resData["RespCode"] = respCode
+ resData["RespDesc"] = "$respCode $errmsg" //设置失败信息
resData
}
} else {
@@ -211,9 +245,16 @@
params["CustomerSignNo"] = customerSignNo
params["MerURL"] = merUrl
params["MsgExt"] = extData
+ params["PAY_MODE"] = "QS"
//调SDK生成签名
val signData = YNRCCFastGateWayPayApi.sign(params)
+ if (signData["Plain"].isNullOrEmpty() || signData["Signature"].isNullOrEmpty()) {
+ resp.code = "ZE0002"
+ resp.message = "签名计算错误!"
+ logger.error("签名后[Plain]和[Signature]参数为空!")
+ return resp
+ }
resp.code = YnrccPayUtil.SUCCESS
resp.message = "SUCCESS"
@@ -247,6 +288,7 @@
params["OrgMerchantSeqNo"] = orignRefno
params["Amount"] = MoneyUtil.formatYuanToString(amount / 100.0)
params["OrgMerchantDate"] = orignTransDate
+ params["PAY_MODE"] = "Q"
val signData = YNRCCFastGateWayPayApi.sign(params) //调SDK生成签名
val plain = signData["Plain"]
@@ -306,6 +348,7 @@
params["Mer_IdName"] = merIdName.trim()
params["OrderNo"] = orignRefno
params["OrderDate"] = orignTransDate
+ params["PAY_MODE"] = "Q"
val signData = YNRCCFastGateWayPayApi.sign(params) //调SDK生成签名
val plain = signData["Plain"]
@@ -339,4 +382,48 @@
return resp
}
+ override fun doQueryYnrccPayChkfile(checkDate: String, shopaccno: String): YnrccPayResp {
+ val resp = YnrccPayResp()
+ val config = sourceTypeService.getConsumePaytypeConfig(TradeDict.PAYTYPE_YNRCC_PAY, shopaccno, false, false)
+ val gateWay = config[YnrccPayUtil.GATEWAY]
+ val merId = config[YnrccPayUtil.MER_ID]
+ if (gateWay.isNullOrEmpty()) {
+ resp.code = "ZE0001"
+ resp.message = "系统参数未配置[网关地址]"
+ logger.error(resp.error())
+ return resp
+ }
+ if (merId.isNullOrEmpty()) {
+ resp.code = "ZE0001"
+ resp.message = "系统参数未配置[Mer_Id]"
+ logger.error(resp.error())
+ return resp
+ }
+
+ val url = String.format(gateWay, "MerchantCheckFileQry.do") //赋予接口名
+ val params = hashMapOf<String, String>()
+ params["TransId"] = "IDFR"
+ params["Mer_Id"] = merId.trim()
+ params["ClearDate"] = checkDate
+ params["PAY_MODE"] = "Q"
+
+ val signData = YNRCCFastGateWayPayApi.sign(params) //调SDK生成签名
+ val plain = signData["Plain"]
+ val signature = signData["Signature"]
+ if (plain.isNullOrEmpty() || signature.isNullOrEmpty()) {
+ resp.code = "ZE0002"
+ resp.message = "签名计算错误!"
+ logger.error(resp.error())
+ return resp
+ }
+
+ val result = postForm(url, plain, signature, "对账") //发起表单提交
+ resp.code = result["RespCode"]
+ resp.message = result["RespDesc"]
+ if (YnrccPayUtil.SUCCESS == result["RespCode"]) {
+ resp.plain = result["Plain"] //对账单
+ }
+ return resp
+ }
+
}
\ No newline at end of file
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/agent/service/ynrcc_netpay_service.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/agent/service/ynrcc_netpay_service.kt
index f2e5bdc..127e319 100644
--- a/payapi/src/main/kotlin/com/supwisdom/dlpay/agent/service/ynrcc_netpay_service.kt
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/agent/service/ynrcc_netpay_service.kt
@@ -8,15 +8,20 @@
import com.supwisdom.dlpay.agent.citizencard.YnrccUtil
import com.supwisdom.dlpay.agent.ynrccpay.YnrccPayResp
import com.supwisdom.dlpay.agent.ynrccpay.YnrccPayUtil
+import com.supwisdom.dlpay.api.dao.TransactionMainDao
import com.supwisdom.dlpay.api.domain.TTransactionMain
+import com.supwisdom.dlpay.exception.TransactionProcessException
import com.supwisdom.dlpay.framework.util.MoneyUtil
+import com.supwisdom.dlpay.framework.util.TradeErrorCode
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.stereotype.Component
interface YnrccNetPayService {
fun doAnalysisSignature(shopaccno: String, plain: String, signature: String): Map<String, String>
- fun doApplyYnrccPaySign(shopaccno: String): YnrccPayResp
+ fun doApplyYnrccPaySign(shopaccno: String): YnrccPayResp //首次签约
+
+ fun doApplyAuthYnrccPaySign(shopaccno: String, oldCustomerSignNo: String): YnrccPayResp //授权签约
fun doCancelYnrccPaySign(shopaccno: String, customerSignNo: String): YnrccPayResp
@@ -26,12 +31,16 @@
fun doYnrccPayRefund(shopaccno: String, orignRefno: String, amount: Int, orignTransDate: String): YnrccPayResp
fun doQueryYnrccPayResult(shopaccno: String, orignRefno: String, orignTransDate: String): YnrccPayResp
+
+ fun doQueryYnrccPayChkfile(checkDate: String, shopaccno: String): YnrccPayResp
}
@Component("ynrccpayAgent")
class YnrccNetPayAgent: AgentPayService<DtlStatus>{
@Autowired
private lateinit var ynrccNetPayService: YnrccNetPayService
+ @Autowired
+ lateinit var transactionMainDao: TransactionMainDao
private fun agentCode(code: String, msg: String?): org.springframework.data.util.Pair<AgentCode, YnrccRespCode> {
return YnrccPayUtil.errcode.firstOrNull {
@@ -61,8 +70,12 @@
}
override fun refund(transaction: TTransactionMain): AgentResponse<DtlStatus> {
+ val originalDtl = transactionMainDao.findByRefno(transaction.reverseRefno)?:
+ throw TransactionProcessException(TradeErrorCode.TRANSACTION_NOT_EXISTS, "原始流水<${transaction.reverseRefno}>不存在")
+
+ //fixme:必须找原流水获取下单日期
val resp = ynrccNetPayService.doYnrccPayRefund(transaction.shopDtl.shopaccno, transaction.reverseRefno,
- MoneyUtil.YuanToFen(transaction.personDtl.amount), transaction.shopDtl.accdate)
+ MoneyUtil.YuanToFen(transaction.personDtl.amount), originalDtl.shopDtl.accdate)
return AgentResponse<DtlStatus>().also {
val code = agentCode(resp.code, resp.message)
it.code = code.first
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/agent/service/ynrccpay_checkfile_service.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/agent/service/ynrccpay_checkfile_service.kt
new file mode 100644
index 0000000..0c7126e
--- /dev/null
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/agent/service/ynrccpay_checkfile_service.kt
@@ -0,0 +1,157 @@
+package com.supwisdom.dlpay.agent.service
+
+import com.supwisdom.dlpay.agent.AgentCode
+import com.supwisdom.dlpay.agent.AgentResponse
+import com.supwisdom.dlpay.agent.CheckFileProvider
+import com.supwisdom.dlpay.agent.ynrccpay.YnrccPayUtil
+import com.supwisdom.dlpay.api.domain.TSourceTypeCheckStatus
+import com.supwisdom.dlpay.api.domain.TTransactionChkfile
+import com.supwisdom.dlpay.api.service.SourceTypeService
+import com.supwisdom.dlpay.api.service.TransactionReconciliationService
+import com.supwisdom.dlpay.exception.TransactionException
+import com.supwisdom.dlpay.framework.service.SystemUtilService
+import com.supwisdom.dlpay.util.ConstantUtil
+import mu.KotlinLogging
+import org.springframework.beans.factory.annotation.Autowired
+import org.springframework.stereotype.Component
+
+@Component("ynrccpayCheckFileProvider")
+class YnrccpayCheckFileProvider : CheckFileProvider {
+ @Autowired
+ private lateinit var systemUtilService: SystemUtilService
+ @Autowired
+ private lateinit var transactionReconciliationService: TransactionReconciliationService
+ @Autowired
+ private lateinit var sourceTypeService: SourceTypeService
+ @Autowired
+ private lateinit var ynrccNetPayService:YnrccNetPayService
+
+ private val logger = KotlinLogging.logger { }
+
+ override fun acquireCheckFile(checkStatus: TSourceTypeCheckStatus): AgentResponse<TSourceTypeCheckStatus> {
+ try {
+ val billDate = checkStatus.checkAccdate
+ logger.info("【农商行网关快捷支付】对账单下载:download checkdate=【$billDate】")
+
+ val chkfile: TTransactionChkfile = transactionReconciliationService
+ .getTransactionChkfile(billDate, checkStatus.sourceType)?.let { file ->
+ when (file.status) {
+ ConstantUtil.CHKFILE_STATUS_INIT -> file //初始化直接返回
+ ConstantUtil.CHKFILE_STATUS_ERROR -> reinitCheckFile(file) //错误或未对账的直接重新拉取
+ else -> {
+ when (checkStatus.forceRecheck) {
+ true -> reinitCheckFile(file) //对账已完成但强制重新对账
+ false -> {
+ if (file.status == ConstantUtil.CHKFILE_STATUS_UNCHECK) {
+ file
+ } else {
+ throw TransactionException(-1, "【农商行网关快捷支付】该天[$billDate]已对账完成")
+ }
+ } //对账已完成报错
+ }
+ }
+ }
+ }
+ ?: transactionReconciliationService.saveInitTransactionChkfile(billDate, checkStatus.sourceType)
+
+ if (chkfile.status == ConstantUtil.CHKFILE_STATUS_UNCHECK) {
+ return successDownload("[$billDate]日对账数据已入库成功", checkStatus)
+ }
+
+ val shopaccno = ""
+ val resp = ynrccNetPayService.doQueryYnrccPayChkfile(billDate, shopaccno)
+ when (resp.code) {
+ YnrccPayUtil.SUCCESS -> {
+ //TODO: 农商行网关快捷支付 对账文件解析
+ val agentUrl = ""
+
+ //成功
+ return AgentResponse<TSourceTypeCheckStatus>().also {
+ it.code = AgentCode.FAIL
+ it.agentMsg = "获取对账文件逻辑暂缺"
+// it.payload = sourceTypeService.saveOrUpdateSourceTypeCheckStatus(checkStatus.apply {
+// this.checkFileOk = false
+// this.chkfileUrl = agentUrl
+// })
+ }
+
+ }
+ YnrccPayUtil.NO_RECORDS_TODAY -> {
+ //当日无交易明细,也创建空记录
+ transactionReconciliationService.doSuccessTransactionChkfile(chkfile, "请求银行返回:当日无交易明细")
+ //成功
+ return successDownload("当日无交易明细", checkStatus.apply {
+ this.chkfileUrl = "none"
+ })
+ }
+ else -> {
+ //报错,退出对账单拉取
+ logger.error("农商行网关快捷支付对账单下载[$billDate]报错:${resp.message}")
+ chkfile.status = ConstantUtil.CHKFILE_STATUS_ERROR
+ chkfile.remark = "请求获取对账文件报错:${resp.message}"
+ transactionReconciliationService.saveOrUpdateTransactionChkfile(chkfile)
+
+ //失败
+ return AgentResponse<TSourceTypeCheckStatus>().also {
+ it.code = AgentCode.FAIL
+ it.agentMsg = chkfile.remark
+ it.payload = sourceTypeService.saveOrUpdateSourceTypeCheckStatus(checkStatus.apply {
+ this.remark = chkfile.remark
+ })
+ }
+ }
+ }
+ } catch (et: TransactionException) {
+ return AgentResponse<TSourceTypeCheckStatus>().also {
+ it.code = AgentCode.FAIL
+ it.agentMsg = et.message
+ it.agentCode = "${et.code()}"
+ it.payload = sourceTypeService.saveOrUpdateSourceTypeCheckStatus(checkStatus.apply {
+ this.remark = et.message
+ })
+ }
+ }
+
+ }
+
+ override fun queryCheckFile(checkStatus: TSourceTypeCheckStatus?): AgentResponse<TSourceTypeCheckStatus> {
+ return AgentResponse<TSourceTypeCheckStatus>().also {
+ it.code = AgentCode.SUCCESS
+ it.agentMsg = "OK"
+ it.payload = checkStatus
+ }
+ }
+
+ override fun downloadCheckFile(checkStatus: TSourceTypeCheckStatus?): AgentResponse<TSourceTypeCheckStatus> {
+ return AgentResponse<TSourceTypeCheckStatus>().also {
+ it.code = AgentCode.SUCCESS
+ it.agentMsg = "OK"
+ it.payload = checkStatus
+ }
+ }
+
+ private fun reinitCheckFile(chkfile: TTransactionChkfile): TTransactionChkfile {
+ transactionReconciliationService.deleteTransactionChkdtls(chkfile.id) //删除明细
+ return transactionReconciliationService.saveOrUpdateTransactionChkfile(chkfile.apply {
+ this.status = ConstantUtil.CHKFILE_STATUS_INIT
+ this.result = ConstantUtil.CHKFILE_RESULT_NONE
+ this.remark = null
+ this.othercnt = 0
+ this.otheramt = 0.00
+ this.localcnt = 0
+ this.localamt = 0.00
+ }) //初始化chkfile
+ }
+
+ private fun successDownload(message: String, checkStatus: TSourceTypeCheckStatus): AgentResponse<TSourceTypeCheckStatus> {
+ return AgentResponse<TSourceTypeCheckStatus>().also {
+ it.code = AgentCode.SUCCESS
+ it.agentMsg = message
+ it.payload = sourceTypeService.saveOrUpdateSourceTypeCheckStatus(checkStatus.apply {
+ this.checkFileOk = true
+ this.remark = message
+ })
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/advices.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/advices.kt
index 1fda9f0..17d1d2e 100644
--- a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/advices.kt
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/advices.kt
@@ -48,6 +48,7 @@
.exception(undeclared.code(), undeclared, "业务处理错误"))
}
+ ex.printStackTrace()
return ResponseEntity.ok().body(ResponseBodyBuilder.create()
.exception(TradeErrorCode.BUSINESS_DEAL_ERROR, undeclared, "业务处理报错"))
}
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/consume_api_controller.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/consume_api_controller.kt
index 16ceadb..c9a6945 100644
--- a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/consume_api_controller.kt
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/consume_api_controller.kt
@@ -983,4 +983,37 @@
.fail(TradeErrorCode.TRANSACTION_NOT_EXISTS, "流水不存在"))
}
+ /**
+ * 直接调第三方查询流水结果 (方便测试)
+ * */
+ @PostMapping("/thirdquery")
+ fun thirdToQueryResult(refno: String): ResponseEntity<Any> {
+ consumePayService.getTransactionMainDtl(refno, null, null)?.let {
+ agentQueryResultTask.queryResult(it, 0)
+ return ResponseEntity.ok(
+ ResponseBodyBuilder.create()
+ .success("已成功进入查询异步查询队列")
+ )
+ } ?: return ResponseEntity.ok(
+ ResponseBodyBuilder.create()
+ .fail(TradeErrorCode.TRANSACTION_NOT_EXISTS, "流水不存在")
+ )
+ }
+
+ /**
+ * ============================================================================
+ * 农商行网关快捷支付【第三方开放能力】
+ * ============================================================================
+ * */
+ @PostMapping("/ynrccpay/thirdAuth")
+ fun ynrccPayThirdAuth(@Valid @RequestBody param: YnrccPayThirdAuthParam): ResponseEntity<Any> {
+ val ret = ynrccNetPayBusinessService.doYnrccPayThirdAuth(param.thirdservice,param.bankcardno,param.userid)
+ return if (ret.retcode == 0) {
+ ResponseEntity.ok(ResponseBodyBuilder.create()
+ .success(ret, "成功"))
+ } else {
+ ResponseEntity.ok(ResponseBodyBuilder.create()
+ .fail(ret.retcode, ret.retmsg))
+ }
+ }
}
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/user_api_controller.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/user_api_controller.kt
index 1c6750c..8d8fb8f 100644
--- a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/user_api_controller.kt
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/user_api_controller.kt
@@ -2,7 +2,6 @@
import com.supwisdom.dlpay.agent.citizencard.YnrccUtil
import com.supwisdom.dlpay.agent.service.CitizencardPayService
-import com.supwisdom.dlpay.agent.service.YnrccNetPayService
import com.supwisdom.dlpay.api.bean.*
import com.supwisdom.dlpay.api.exception.RequestParamCheckException
import com.supwisdom.dlpay.api.service.*
@@ -13,9 +12,11 @@
import com.supwisdom.dlpay.mobile.service.MobileApiService
import com.supwisdom.dlpay.system.bean.LevelBean
import com.supwisdom.dlpay.system.service.PointsService
+import com.supwisdom.dlpay.system.service.UserMessageService
import org.apache.commons.beanutils.BeanUtils
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.http.ResponseEntity
+import org.springframework.validation.annotation.Validated
import org.springframework.web.bind.annotation.*
import java.net.URLDecoder
import javax.validation.Valid
@@ -41,6 +42,8 @@
private lateinit var qrcodeService: QRCodeService
@Autowired
private lateinit var ynrccNetPayBusinessService: YnrccNetPayBusinessService
+ @Autowired
+ private lateinit var userMessageService: UserMessageService
@PostMapping("/open")
fun openAccount(@RequestBody param: OpenUserParam): ResponseEntity<Any> {
@@ -447,6 +450,26 @@
}
/**
+ * 查询用户消息
+ * */
+ @PostMapping("/queryMessage")
+ fun queryUserMessage(@Valid @RequestBody param: UserQueryMessageParam): ResponseEntity<Any> {
+ val userid = param.userid ?: throw RequestParamCheckException("用户ID不能为空")
+ val pageNo = param.pageNo ?: 1
+ val pageSize = param.pageSize ?: 10
+ val page = userMessageService.queryMessageByUserid(userid, pageNo, pageSize)
+ return ResponseEntity.ok(ResponseBodyBuilder.create()
+ .success(UserQueryMessageResponse().apply {
+ this.pageNo = page.pageNo
+ this.pageSize = page.pageSize
+ this.totalCount = page.totalCount
+ this.totalPages = page.totalPages
+ this.data = page.data
+ }, "success")
+ )
+ }
+
+ /**
* ============================================================================
* 农商行快捷支付【签约状态查询】
* ============================================================================
@@ -460,14 +483,36 @@
/**
* ============================================================================
+ * 农商行快捷支付【签约列表查询】
+ * ============================================================================
+ * */
+ @PostMapping("/ynrccpaySignList")
+ fun queryYnrccPaySignList(@Valid @RequestBody param: YnrccPaySignListQueryParam): ResponseEntity<Any> {
+ val resp = ynrccNetPayBusinessService.doQueryYnrccPaySignList(param.userid, param.bankcardno)
+ return if (0 == resp.retcode) {
+ ResponseEntity.ok(ResponseBodyBuilder.create()
+ .success(resp, "success"))
+ } else {
+ ResponseEntity.ok(ResponseBodyBuilder.create()
+ .fail(resp.retcode, resp.retmsg))
+ }
+ }
+
+ /**
+ * ============================================================================
* 农商行快捷支付【签约申请】
* ============================================================================
* */
@PostMapping("/ynrccpaySignApply")
fun applyYnrccPaySign(@Valid @RequestBody param: YnrccPaySignApplyParam): ResponseEntity<Any> {
val resp = ynrccNetPayBusinessService.applyUserYnrccPaySign(param)
- return ResponseEntity.ok(ResponseBodyBuilder.create()
+ return if (0 == resp.retcode) {
+ ResponseEntity.ok(ResponseBodyBuilder.create()
.success(resp, "success"))
+ } else {
+ ResponseEntity.ok(ResponseBodyBuilder.create()
+ .fail(resp.retcode, resp.retmsg))
+ }
}
/**
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/ynrcc_netpay_business_service.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/ynrcc_netpay_business_service.kt
index 61e590b..da5f5ac 100644
--- a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/ynrcc_netpay_business_service.kt
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/ynrcc_netpay_business_service.kt
@@ -1,10 +1,13 @@
package com.supwisdom.dlpay.api.service.impl
+import com.csii.ynrcc.open.api.service.User
+import com.csii.ynrcc.open.api.service.YNRCCOpenServiceApi
import com.supwisdom.dlpay.agent.AgentCode
import com.supwisdom.dlpay.agent.AgentResponse
import com.supwisdom.dlpay.agent.DtlStatus
import com.supwisdom.dlpay.agent.citizencard.YnrccRespCode
import com.supwisdom.dlpay.agent.service.YnrccNetPayService
+import com.supwisdom.dlpay.agent.ynrccpay.YnrccPayResp
import com.supwisdom.dlpay.agent.ynrccpay.YnrccPayUtil
import com.supwisdom.dlpay.api.bean.*
import com.supwisdom.dlpay.api.dao.CardDao
@@ -28,6 +31,7 @@
import com.supwisdom.dlpay.util.ConstantUtil
import mu.KotlinLogging
import org.springframework.stereotype.Service
+import java.util.ArrayList
@Service
class YnrccNetPayBusinessServiceImpl(val personDao: PersonDao,
@@ -42,6 +46,7 @@
private val logger = KotlinLogging.logger { }
override fun checkUserYnrccPaySignStatus(userid: String, bankcardno: String, shopaccno: String): Boolean {
+ logger.info("查询签约状态:userid=[$userid],bankcardno=[$bankcardno],shopaccno=[$shopaccno]")
val person = personDao.findByUserid(userid)
?: throw TransactionProcessException(TradeErrorCode.ACCOUNT_NOT_EXISTS, "用户<$userid>不存在")
val shopacc = shopaccDao.findByShopaccno(shopaccno)
@@ -60,21 +65,26 @@
}
override fun applyUserYnrccPaySign(param: YnrccPaySignApplyParam): YnrccPaySignApplyResponse {
+ logger.info("申请签约参数:" + YnrccPayUtil.toJson(param))
+ val resp = YnrccPaySignApplyResponse()
val person = personDao.findByUserid(param.userid?.trim())
?: throw TransactionProcessException(TradeErrorCode.ACCOUNT_NOT_EXISTS, "用户<${param.userid}>不存在")
val shopacc = shopaccDao.findByShopaccno(param.shopaccno?.trim())
?: throw TransactionProcessException(TradeErrorCode.SHOP_NOT_EXISTS, "商户<${param.shopaccno}>不存在")
val bankCard = cardDao.findCardByCardnoAndCardtype(param.bankcardno.trim(), ConstantUtil.CARDTYPE_BANKCARD)
if (null != bankCard && person.userid != bankCard.userid) {
- throw TransactionProcessException(TradeErrorCode.INPUT_DATA_ERROR, "银行卡持有人错误!")
+ resp.retcode = 99
+ resp.retmsg = "银行卡持有人错误!"
+ return resp
}
val idType = IDTypes.findByValue(person.idtype)
if (idType < 0) {
- throw TransactionProcessException(TradeErrorCode.INPUT_DATA_ERROR, "证件类型未识别[${person.idtype}]!")
+ resp.retcode = 99
+ resp.retmsg = "证件类型未识别[${person.idtype}]!"
+ return resp
}
sourceTypeService.checkShopSourceType(shopacc.shopaccno, TradeDict.PAYTYPE_YNRCC_PAY, false)
- val isAuthSign = ynrccPaySignDao.countByBankcardnoAndSignStatus(param.bankcardno, shopacc.shopaccno) > 0
var userSign = ynrccPaySignDao.getUserSign(param.bankcardno, shopacc.shopaccno) ?: TYnrccPaySign().apply {
this.bankcardno = param.bankcardno.trim()
this.shopaccno = shopacc.shopaccno
@@ -84,20 +94,38 @@
this.createtime = systemUtilService.sysdatetime.hostdatetime
}
if (person.userid != userSign.userid) {
- throw TransactionProcessException(TradeErrorCode.INPUT_DATA_ERROR, "银行卡持有人不匹配!")
+ resp.retcode = 99
+ resp.retmsg = "银行卡持有人不匹配!"
+ return resp
} else if (userSign.isSignFlag) {
- throw TransactionProcessException(TradeErrorCode.INPUT_DATA_ERROR, "该卡已签约!")
+ resp.retcode = 99
+ resp.retmsg = "该卡已签约!"
+ return resp
}
+
+ var isAuthSign = false
+ var signDataResp = YnrccPayResp()
+ val existSigns = ynrccPaySignDao.queryOtherShopSign(param.bankcardno, shopacc.shopaccno)
+ if (null != existSigns && existSigns.size > 0) {
+ //已签约过,则是授权签约
+ logger.info("进入授权签约申请!")
+ isAuthSign = true
+ val oldCustomerSignNo = existSigns[0].customerSignNo
+ signDataResp = ynrccNetPayService.doApplyAuthYnrccPaySign(shopacc.shopaccno, oldCustomerSignNo) //授权签约
+ } else {
+ //首次签约
+ signDataResp = ynrccNetPayService.doApplyYnrccPaySign(shopacc.shopaccno) //初次签约
+ }
+ if (YnrccPayUtil.SUCCESS != signDataResp.code) {
+ resp.retcode = 99
+ resp.retmsg = signDataResp.message
+ return resp
+ }
+
if (StringUtil.isEmpty(userSign.id)) {
ynrccPaySignDao.save(userSign) //新创建的保存申请记录
}
- val signDataResp = ynrccNetPayService.doApplyYnrccPaySign(shopacc.shopaccno)
- if (YnrccPayUtil.SUCCESS != signDataResp.code) {
- throw TransactionProcessException(TradeErrorCode.BUSINESS_DEAL_ERROR, signDataResp.message)
- }
-
- val resp = YnrccPaySignApplyResponse()
resp.retcode = 0
resp.retmsg = "success"
resp.signNo = userSign.id
@@ -115,6 +143,7 @@
}
override fun confirmUserYnrccPaySign(param: YnrccPaySignConfirmParam): YnrccPaySignConfirmResponse {
+ logger.info("确认签约参数:" + YnrccPayUtil.toJson(param))
val userSign = ynrccPaySignDao.getById(param.signNo.toString())
?: throw TransactionProcessException(TradeErrorCode.BUSINESS_DEAL_ERROR, "签约申请记录<${param.signNo}>不存在!")
@@ -129,9 +158,10 @@
}
//签约成功
- if (data["CustomerAcNo"] != userSign.bankcardno) {
- throw TransactionProcessException(TradeErrorCode.BUSINESS_DEAL_ERROR, "支付账号与签约号不匹配!")
- } else if (userSign.isSignFlag && data["CustomerSignNo"] != userSign.customerSignNo) {
+// if (data["CustomerAcNo"] != userSign.bankcardno) {
+// throw TransactionProcessException(TradeErrorCode.BUSINESS_DEAL_ERROR, "支付账号与签约号不匹配!") // CustomerAcNo 是脱敏返回的,不判断。 6210****6743
+// }
+ if (userSign.isSignFlag && data["CustomerSignNo"] != userSign.customerSignNo) {
throw TransactionProcessException(TradeErrorCode.BUSINESS_DEAL_ERROR, "用户已签约且快捷支付协议号不一致!")
}
@@ -151,6 +181,7 @@
}
override fun cancelUserYnrccPaySign(param: YnrccPaySignCancelParam): YnrccPaySignCancelResponse {
+ logger.info("申请解约参数:" + YnrccPayUtil.toJson(param))
val userSign = ynrccPaySignDao.getUserSign(param.bankcardno.trim(), param.shopaccno)
?: throw TransactionProcessException(TradeErrorCode.BUSINESS_DEAL_ERROR, "签约记录不存在或已解约!")
if (userSign.userid != param.userid) {
@@ -196,7 +227,8 @@
val refno = transdtl.refno
val shopaccno = transdtl.shopDtl.shopaccno
val amount = MoneyUtil.YuanToFen(transdtl.shopDtl.amount)
- val transDateTime = "${transdtl.shopDtl.transdate}${transdtl.shopDtl.transtime}"
+ val hosttime = systemUtilService.sysdatetime.hosttime
+ val transDateTime = "${transdtl.shopDtl.accdate}$hosttime" //下单日期(记账日期,退款时用到)+下单时间
val billno = transdtl.outTradeNo //billno放附加信息
val productInfo = "农商行网关快捷支付[${transdtl.shopDtl.transdesc}]"; //商品描述
val person = personDao.findByUserid(userSign.userid)
@@ -222,6 +254,7 @@
}
override fun doYnrccPayConfirm(transaction: TTransactionMain, plain: String, signature: String): AgentResponse<DtlStatus> {
+ logger.info("支付确认参数: refno=[${transaction.refno}],plain=[$plain],signature=[$signature]")
if (TradeDict.DTL_STATUS_SUCCESS == transaction.status) {
throw TransactionProcessException(TradeErrorCode.TRANSACTION_IS_FINISHED, "流水已入账!")
}
@@ -252,5 +285,64 @@
}
}
+ override fun doQueryYnrccPaySignList(userid: String?, bankcardno: String?): YnrccPaySignListQueryResponse {
+ val resp = YnrccPaySignListQueryResponse()
+ val signList = when (userid.isNullOrBlank()) {
+ true -> ynrccPaySignDao.queryActiveSignsByBankcardno(bankcardno?.trim())
+ false -> when (bankcardno.isNullOrBlank()) {
+ true -> ynrccPaySignDao.queryActiveSignsByUserid(userid?.trim())
+ false -> ynrccPaySignDao.queryActiveSignsByUseridAndBankcardno(userid?.trim(), bankcardno?.trim())
+ }
+ }
+ if (signList.isNullOrEmpty()) {
+ resp.retcode = 99
+ resp.retmsg = "无签约信息"
+ return resp
+ }
+ val data = ArrayList<YnrccPaySignInfo>()
+ for (sign in signList) {
+ data.add(YnrccPaySignInfo().apply {
+ this.signNo = sign.id
+ this.bankcardno = sign.bankcardno
+ this.shopaccno = sign.shopaccno
+ this.shopname = shopaccDao.getByShopaccno(sign.shopaccno)?.shopname ?: ""
+ this.signtime = sign.signTime
+ this.userid = sign.userid
+ })
+ }
+
+ resp.retcode = 0
+ resp.retmsg = "success"
+ resp.data = data
+ return resp
+ }
+
+ override fun doYnrccPayThirdAuth(thirdSrv: String, bankcardno: String, userid: String): YnrccPayThirdAuthResponse {
+ val resp = YnrccPayThirdAuthResponse()
+ resp.retcode = 99
+
+ //TODO: 根据第三方服务标识thirdSrv获取配置信息
+ val mchId = ""
+ val appId = ""
+ val token = ""
+ val pubKey = ""
+ val handler = YNRCCOpenServiceApi.getInstance(mchId, appId, token, pubKey)
+
+ //获取客户端sdk配置信息
+ val sdkConfigData = handler.getSDKConfigData()
+
+ //获取客户端SDK访问开放服务所需参数
+ val person = personDao.findByUserid(userid)
+ ?: throw TransactionProcessException(TradeErrorCode.ACCOUNT_NOT_EXISTS, "用户不存在!")
+ //TODO: 判断bankcard是否该userid所有
+ val user = User(person.name, person.idno, person.mobile, bankcardno)
+ val access2ServiceData = handler.getAccess2ServiceData(user)
+
+ resp.retcode = 0
+ resp.retmsg = "success"
+ resp.sdkConfigData = sdkConfigData
+ resp.access2ServiceData = access2ServiceData
+ return resp
+ }
}
\ No newline at end of file
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/ynrcc_netpay_business_service.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/ynrcc_netpay_business_service.kt
index ad3527c..aa2ddec 100644
--- a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/ynrcc_netpay_business_service.kt
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/ynrcc_netpay_business_service.kt
@@ -28,4 +28,10 @@
@Transactional(rollbackFor = [Exception::class])
fun doYnrccPayConfirm(transaction: TTransactionMain, plain: String, signature: String): AgentResponse<DtlStatus>
+
+ @Transactional(rollbackFor = [Exception::class])
+ fun doQueryYnrccPaySignList(userid: String?, bankcardno: String?): YnrccPaySignListQueryResponse
+
+ @Transactional(rollbackFor = [Exception::class])
+ fun doYnrccPayThirdAuth(thirdSrv: String, bankcardno: String, userid: String): YnrccPayThirdAuthResponse
}
\ No newline at end of file
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/framework/controller/framework_controller.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/framework/controller/framework_controller.kt
index 6429383..a55845f 100644
--- a/payapi/src/main/kotlin/com/supwisdom/dlpay/framework/controller/framework_controller.kt
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/framework/controller/framework_controller.kt
@@ -1,13 +1,8 @@
package com.supwisdom.dlpay.framework.controller
-import com.google.gson.Gson
import com.jcabi.manifests.Manifests
-import com.supwisdom.dlpay.agent.service.YnrccNetPayService
import com.supwisdom.dlpay.api.bean.ApiVersionResponse
import com.supwisdom.dlpay.framework.ResponseBodyBuilder
-import com.supwisdom.dlpay.framework.util.DateUtil
-import com.supwisdom.dlpay.framework.util.RandomUtils
-import org.springframework.beans.factory.annotation.Autowired
import org.springframework.http.ResponseEntity
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.RequestMapping
@@ -17,9 +12,6 @@
@RestController
@RequestMapping("/api/common")
class AboutController {
- @Autowired
- private lateinit var ynrccNetPayService: YnrccNetPayService
-
@GetMapping("/version")
fun version(): ResponseEntity<Any> {
return try {
@@ -32,31 +24,4 @@
.success(ApiVersionResponse("unknown")))
}
}
-
- @GetMapping("/resttest")
- fun test(): ResponseEntity<Any> {
- return try {
- val shopaccno="2000000013"
- val transDateTime = DateUtil.getNow("yyyyMMddHHmmss")
- val refno = transDateTime + RandomUtils.randomNumber(6)
- val amount = 1
- val productInfo = "农商行快捷支付测试"
- val extData = refno
- val custname = ""
- val email=""
- val customerSignNo="12345678"
-
- val resp = ynrccNetPayService.doApplyYnrccPaySign(shopaccno)
-
-// val resp = ynrccNetPayService.doYnrccPayInit(shopaccno,refno,amount,transDateTime,
-// productInfo,extData,custname,email,customerSignNo);
-
- ResponseEntity.ok(ResponseBodyBuilder.create()
- .success(Gson().toJson(resp)))
- } catch (e: Exception) {
- e.printStackTrace()
- ResponseEntity.ok(ResponseBodyBuilder.create()
- .success(e.message ?: "error!"))
- }
- }
}
\ No newline at end of file
diff --git a/payapi/src/main/resources/payment_merchant.properties b/payapi/src/main/resources/payment_merchant.properties
index f07cdea..6a10fe5 100644
--- a/payapi/src/main/resources/payment_merchant.properties
+++ b/payapi/src/main/resources/payment_merchant.properties
@@ -1,11 +1,13 @@
development=no
# \u8BC1\u4E66\u8DEF\u5F84,\u5FC5\u987B\u6307\u5B9A\u670D\u52A1\u5668\u7AEF\u8BC1\u4E66\u5BB9\u5668\u7EDD\u5BF9\u8DEF\u5F84
-cafile=D:/ynrccpay/merchant.jks
+cafile=D:/ynrcc_test/merchant.jks
# \u8BC1\u4E66\u5E93\u5BC6\u7801
store_password=111111
# \u7528\u4E8E\u5546\u6237\u7B7E\u540D\u7684\u79D8\u94A5\u522B\u540D
-key_alias=merchant_key
+#key_alias=merchant_key
+key_alias=ynrcc
# \u79D8\u94A5\u5BC6\u7801
-key_password=881220
+#key_password=881220
+key_password=111111
# \u9A8C\u7B7E\u79D8\u94A5\u522B\u540D
alias_paygate=alias_paygate
\ No newline at end of file