fix: 二级商户进件字段补充

This commit is contained in:
dax
2022-07-08 11:32:16 +08:00
parent 91597b90ac
commit 28b4c9c7a6
3 changed files with 34 additions and 37 deletions

View File

@@ -34,6 +34,7 @@ import cn.felord.payment.wechat.v3.model.ecommerce.UboInfo;
import cn.felord.payment.wechat.v3.model.specmch.SubMchModifyParams; import cn.felord.payment.wechat.v3.model.specmch.SubMchModifyParams;
import com.fasterxml.jackson.databind.node.ObjectNode; import com.fasterxml.jackson.databind.node.ObjectNode;
import org.springframework.http.HttpHeaders; import org.springframework.http.HttpHeaders;
import org.springframework.util.StringUtils;
import org.springframework.web.util.UriComponentsBuilder; import org.springframework.web.util.UriComponentsBuilder;
import java.net.URI; import java.net.URI;
@@ -68,21 +69,16 @@ public class ApplymentApi extends AbstractApi {
*/ */
public WechatResponseEntity<ObjectNode> apply(EcommerceApplymentParams params) { public WechatResponseEntity<ObjectNode> apply(EcommerceApplymentParams params) {
WechatResponseEntity<ObjectNode> wechatResponseEntity = new WechatResponseEntity<>(); WechatResponseEntity<ObjectNode> wechatResponseEntity = new WechatResponseEntity<>();
this.client().withType(WechatPayV3Type.ECOMMERCE_APPLYMENT, params) this.client().withType(WechatPayV3Type.ECOMMERCE_APPLYMENT, params).function((wechatPayV3Type, applymentParams) -> {
.function((wechatPayV3Type, applymentParams) -> { SignatureProvider signatureProvider = this.client().signatureProvider();
SignatureProvider signatureProvider = this.client().signatureProvider(); X509WechatCertificateInfo certificate = signatureProvider.getCertificate(this.wechatMetaBean().getTenantId());
X509WechatCertificateInfo certificate = signatureProvider.getCertificate(this.wechatMetaBean().getTenantId()); final X509Certificate x509Certificate = certificate.getX509Certificate();
final X509Certificate x509Certificate = certificate.getX509Certificate(); EcommerceApplymentParams applyRequestParams = this.convert(applymentParams, signatureProvider, x509Certificate);
EcommerceApplymentParams applyRequestParams = this.convert(applymentParams, signatureProvider, x509Certificate); URI uri = UriComponentsBuilder.fromHttpUrl(wechatPayV3Type.uri(WeChatServer.CHINA)).build().toUri();
URI uri = UriComponentsBuilder.fromHttpUrl(wechatPayV3Type.uri(WeChatServer.CHINA)) HttpHeaders httpHeaders = new HttpHeaders();
.build() httpHeaders.add("Wechatpay-Serial", certificate.getWechatPaySerial());
.toUri(); return Post(uri, applyRequestParams, httpHeaders);
HttpHeaders httpHeaders = new HttpHeaders(); }).consumer(wechatResponseEntity::convert).request();
httpHeaders.add("Wechatpay-Serial", certificate.getWechatPaySerial());
return Post(uri, applyRequestParams, httpHeaders);
})
.consumer(wechatResponseEntity::convert)
.request();
return wechatResponseEntity; return wechatResponseEntity;
} }
@@ -94,16 +90,10 @@ public class ApplymentApi extends AbstractApi {
*/ */
public WechatResponseEntity<ObjectNode> queryByApplymentId(String applymentId) { public WechatResponseEntity<ObjectNode> queryByApplymentId(String applymentId) {
WechatResponseEntity<ObjectNode> wechatResponseEntity = new WechatResponseEntity<>(); WechatResponseEntity<ObjectNode> wechatResponseEntity = new WechatResponseEntity<>();
this.client().withType(WechatPayV3Type.ECOMMERCE_APPLYMENT_ID, applymentId) this.client().withType(WechatPayV3Type.ECOMMERCE_APPLYMENT_ID, applymentId).function((type, id) -> {
.function((type, id) -> { URI uri = UriComponentsBuilder.fromHttpUrl(type.uri(WeChatServer.CHINA)).build().expand(id).toUri();
URI uri = UriComponentsBuilder.fromHttpUrl(type.uri(WeChatServer.CHINA)) return Get(uri);
.build() }).consumer(wechatResponseEntity::convert).request();
.expand(id)
.toUri();
return Get(uri);
})
.consumer(wechatResponseEntity::convert)
.request();
return wechatResponseEntity; return wechatResponseEntity;
} }
@@ -116,16 +106,10 @@ public class ApplymentApi extends AbstractApi {
public WechatResponseEntity<ObjectNode> queryByBusinessCode(String outRequestNo) { public WechatResponseEntity<ObjectNode> queryByBusinessCode(String outRequestNo) {
WechatResponseEntity<ObjectNode> wechatResponseEntity = new WechatResponseEntity<>(); WechatResponseEntity<ObjectNode> wechatResponseEntity = new WechatResponseEntity<>();
this.client().withType(WechatPayV3Type.ECOMMERCE_APPLYMENT_OUT_REQUEST_NO, outRequestNo) this.client().withType(WechatPayV3Type.ECOMMERCE_APPLYMENT_OUT_REQUEST_NO, outRequestNo).function((type, id) -> {
.function((type, id) -> { URI uri = UriComponentsBuilder.fromHttpUrl(type.uri(WeChatServer.CHINA)).build().expand(id).toUri();
URI uri = UriComponentsBuilder.fromHttpUrl(type.uri(WeChatServer.CHINA)) return Get(uri);
.build() }).consumer(wechatResponseEntity::convert).request();
.expand(id)
.toUri();
return Get(uri);
})
.consumer(wechatResponseEntity::convert)
.request();
return wechatResponseEntity; return wechatResponseEntity;
} }
@@ -159,11 +143,19 @@ public class ApplymentApi extends AbstractApi {
if (idCardInfo != null) { if (idCardInfo != null) {
idCardInfo.setIdCardName(signatureProvider.encryptRequestMessage(idCardInfo.getIdCardName(), x509Certificate)); idCardInfo.setIdCardName(signatureProvider.encryptRequestMessage(idCardInfo.getIdCardName(), x509Certificate));
idCardInfo.setIdCardNumber(signatureProvider.encryptRequestMessage(idCardInfo.getIdCardNumber(), x509Certificate)); idCardInfo.setIdCardNumber(signatureProvider.encryptRequestMessage(idCardInfo.getIdCardNumber(), x509Certificate));
String idCardAddress = idCardInfo.getIdCardAddress();
if (StringUtils.hasText(idCardAddress)) {
idCardInfo.setIdCardAddress(signatureProvider.encryptRequestMessage(idCardAddress, x509Certificate));
}
} }
EcommerceIdDocInfo idDocInfo = applymentParams.getIdDocInfo(); EcommerceIdDocInfo idDocInfo = applymentParams.getIdDocInfo();
if (idDocInfo != null) { if (idDocInfo != null) {
idDocInfo.setIdDocName(signatureProvider.encryptRequestMessage(idDocInfo.getIdDocName(), x509Certificate)); idDocInfo.setIdDocName(signatureProvider.encryptRequestMessage(idDocInfo.getIdDocName(), x509Certificate));
idDocInfo.setIdDocNumber(signatureProvider.encryptRequestMessage(idDocInfo.getIdDocNumber(), x509Certificate)); idDocInfo.setIdDocNumber(signatureProvider.encryptRequestMessage(idDocInfo.getIdDocNumber(), x509Certificate));
String idDocAddress = idDocInfo.getIdDocAddress();
if (StringUtils.hasText(idDocAddress)) {
idDocInfo.setIdDocAddress(signatureProvider.encryptRequestMessage(idDocAddress, x509Certificate));
}
} }
UboInfo uboInfo = applymentParams.getUboInfo(); UboInfo uboInfo = applymentParams.getUboInfo();
if (uboInfo != null) { if (uboInfo != null) {

View File

@@ -31,5 +31,7 @@ public class EcommerceIdCardInfo {
private String idCardNational; private String idCardNational;
private String idCardName; private String idCardName;
private String idCardNumber; private String idCardNumber;
private LocalDate idCardValidTime; private String idCardAddress;
private LocalDate idCardValidTimeBegin;
private String idCardValidTime;
} }

View File

@@ -27,8 +27,11 @@ import java.time.LocalDate;
*/ */
@Data @Data
public class EcommerceIdDocInfo { public class EcommerceIdDocInfo {
private String idDocCopy;
private String idDocCopyBack;
private String idDocName; private String idDocName;
private String idDocNumber; private String idDocNumber;
private String idDocCopy; private String idDocAddress;
private LocalDate docPeriodBegin;
private String docPeriodEnd; private String docPeriodEnd;
} }