查询进件状态
This commit is contained in:
@@ -6,6 +6,7 @@ import com.czg.dto.req.*;
|
||||
import com.czg.dto.resp.BankBranchDto;
|
||||
import com.czg.dto.resp.EntryRespDto;
|
||||
import com.czg.dto.resp.EntryThirdRespDto;
|
||||
import com.czg.dto.resp.QueryStatusResp;
|
||||
import com.czg.exception.CzgException;
|
||||
import com.czg.third.alipay.AlipayEntryManager;
|
||||
import com.czg.third.wechat.WechatEntryManager;
|
||||
@@ -33,7 +34,27 @@ public class EntryManager {
|
||||
* @param instId 顶级机构ID CMB
|
||||
*/
|
||||
public static List<BankBranchDto> queryBankBranchList(String province, String city, String instId) {
|
||||
return AlipayEntryManager.queryBankBranchList(instId, province, city);
|
||||
return AlipayEntryManager.queryBankBranchList(null, instId, province, city);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询微信进件状态
|
||||
*
|
||||
* @param merchantCode 商户编号
|
||||
* @return 进件状态
|
||||
*/
|
||||
public static QueryStatusResp queryWechatEntryStatus(String merchantCode) {
|
||||
return WechatEntryManager.queryMerchantEntryStatus(null, merchantCode);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询支付宝进件状态
|
||||
*
|
||||
* @param merchantCode 商户编号
|
||||
* @return 进件状态
|
||||
*/
|
||||
public static QueryStatusResp queryAlipayEntryStatus(String merchantCode) {
|
||||
return AlipayEntryManager.queryMerchantEntryStatus(null, merchantCode);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
package com.czg.dto.resp;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 查询进件状态
|
||||
* @author yjjie
|
||||
* @date 2026/1/7 17:12
|
||||
*/
|
||||
@Data
|
||||
public class QueryStatusResp {
|
||||
|
||||
/**
|
||||
* 平台
|
||||
* {@link com.czg.PayCst.Platform}
|
||||
*/
|
||||
private String platform;
|
||||
|
||||
/**
|
||||
* 商户编号
|
||||
*/
|
||||
private String merchantCode;
|
||||
|
||||
/**
|
||||
* 进件编号
|
||||
*/
|
||||
private String applyId;
|
||||
|
||||
/**
|
||||
* 三方商户id
|
||||
*/
|
||||
private String thirdMerchantId;
|
||||
|
||||
/**
|
||||
* 进件状态
|
||||
* {@link com.czg.PayCst.EntryStatus}
|
||||
*/
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 签约地址
|
||||
*/
|
||||
private String signUrl;
|
||||
|
||||
/**
|
||||
* 失败原因
|
||||
*/
|
||||
private String failReason;
|
||||
}
|
||||
@@ -1,35 +1,36 @@
|
||||
package com.czg.third.alipay;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson2.JSONArray;
|
||||
import com.alipay.api.AlipayApiException;
|
||||
import com.alipay.api.DefaultAlipayClient;
|
||||
import com.alipay.api.FileItem;
|
||||
import com.alipay.api.domain.AlipayFinancialnetAuthPbcnameQueryModel;
|
||||
import com.alipay.api.domain.AntMerchantExpandIndirectZftCreateModel;
|
||||
import com.alipay.api.domain.AntMerchantExpandIndirectZftSimplecreateModel;
|
||||
import com.alipay.api.domain.SiteInfo;
|
||||
import com.alipay.api.domain.*;
|
||||
import com.alipay.api.request.AlipayFinancialnetAuthPbcnameQueryRequest;
|
||||
import com.alipay.api.request.AntMerchantExpandIndirectImageUploadRequest;
|
||||
import com.alipay.api.request.AntMerchantExpandIndirectZftCreateRequest;
|
||||
import com.alipay.api.request.AntMerchantExpandIndirectZftSimplecreateRequest;
|
||||
import com.alipay.api.request.AntMerchantExpandIndirectZftorderQueryRequest;
|
||||
import com.alipay.api.response.AlipayFinancialnetAuthPbcnameQueryResponse;
|
||||
import com.alipay.api.response.AntMerchantExpandIndirectImageUploadResponse;
|
||||
import com.alipay.api.response.AntMerchantExpandIndirectZftCreateResponse;
|
||||
import com.alipay.api.response.AntMerchantExpandIndirectZftSimplecreateResponse;
|
||||
import com.alipay.api.response.AntMerchantExpandIndirectZftorderQueryResponse;
|
||||
import com.alipay.v3.ApiClient;
|
||||
import com.alipay.v3.ApiException;
|
||||
import com.alipay.v3.Configuration;
|
||||
import com.alipay.v3.api.AlipayOpenAgentApi;
|
||||
import com.alipay.v3.api.AntMerchantExpandIndirectImageApi;
|
||||
import com.alipay.v3.model.*;
|
||||
import com.alipay.v3.model.AlipayOpenAgentCreateDefaultResponse;
|
||||
import com.alipay.v3.model.AlipayOpenAgentCreateModel;
|
||||
import com.alipay.v3.model.AlipayOpenAgentCreateResponseModel;
|
||||
import com.alipay.v3.model.ContactModel;
|
||||
import com.alipay.v3.util.model.AlipayConfig;
|
||||
import com.czg.PayCst;
|
||||
import com.czg.dto.req.*;
|
||||
import com.czg.dto.resp.BankBranchDto;
|
||||
import com.czg.dto.resp.EntryRespDto;
|
||||
import com.czg.dto.resp.EntryThirdRespDto;
|
||||
import com.czg.dto.resp.QueryStatusResp;
|
||||
import com.czg.exception.CzgException;
|
||||
import com.czg.third.alipay.dto.config.AlipayConfigDto;
|
||||
import com.czg.third.wechat.dto.req.entry.WechatEntryReqDto;
|
||||
import com.czg.third.wechat.dto.resp.WechatQueryStateResp;
|
||||
import com.czg.utils.UploadFileUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@@ -41,7 +42,6 @@ import java.util.List;
|
||||
|
||||
/**
|
||||
* 支付宝进件管理
|
||||
*
|
||||
* <a href="https://opendocs.alipay.com/solution/9434dd99_ant.merchant.expand.indirect.zft.simplecreate?scene=bf5951260023430e944c2e9afdf7f9e2&pathHash=d3136936">...</a>
|
||||
*
|
||||
* @author yjjie
|
||||
@@ -50,6 +50,104 @@ import java.util.List;
|
||||
@Slf4j
|
||||
public class AlipayEntryManager {
|
||||
|
||||
/**
|
||||
* 查询商户进件状态
|
||||
*
|
||||
* @param configDto 配置信息
|
||||
* @param merchantCode 自系统的商户编号
|
||||
* @return 进件状态
|
||||
*/
|
||||
public static QueryStatusResp queryMerchantEntryStatus(AlipayConfigDto configDto, String merchantCode) {
|
||||
QueryStatusResp queryStatusResp = new QueryStatusResp();
|
||||
queryStatusResp.setPlatform(PayCst.Platform.ALIPAY);
|
||||
queryStatusResp.setMerchantCode(merchantCode);
|
||||
|
||||
AntMerchantExpandIndirectZftorderQueryRequest request = new AntMerchantExpandIndirectZftorderQueryRequest();
|
||||
|
||||
AntMerchantExpandIndirectZftorderQueryModel model = new AntMerchantExpandIndirectZftorderQueryModel();
|
||||
model.setExternalId(merchantCode);
|
||||
|
||||
request.setBizModel(model);
|
||||
|
||||
try {
|
||||
DefaultAlipayClient defaultAlipayClient = AlipayClient.getDefaultClient(configDto);
|
||||
AntMerchantExpandIndirectZftorderQueryResponse response = defaultAlipayClient.execute(request);
|
||||
log.info("支付宝查询进件状态结果:{}", response.getBody());
|
||||
|
||||
if (response.isSuccess()) {
|
||||
List<ZftSubMerchantOrder> orders = response.getOrders();
|
||||
if (orders != null && !orders.isEmpty()) {
|
||||
ZftSubMerchantOrder first = orders.getFirst();
|
||||
queryStatusResp.setApplyId(first.getExternalId());
|
||||
|
||||
if ("99".equals(first.getStatus())) {
|
||||
// 已完成
|
||||
queryStatusResp.setStatus(PayCst.EntryStatus.FINISH);
|
||||
queryStatusResp.setThirdMerchantId(first.getSmid());
|
||||
queryStatusResp.setFailReason("");
|
||||
return queryStatusResp;
|
||||
}
|
||||
if ("-1".equals(first.getStatus())) {
|
||||
// 拒绝
|
||||
queryStatusResp.setStatus(PayCst.EntryStatus.REJECTED);
|
||||
queryStatusResp.setFailReason(first.getReason());
|
||||
return queryStatusResp;
|
||||
}
|
||||
|
||||
if (StrUtil.isNotBlank(first.getFkAudit())) {
|
||||
if ("REJECT".equals(first.getFkAudit())) {
|
||||
// 风控拒绝
|
||||
queryStatusResp.setStatus(PayCst.EntryStatus.REJECTED);
|
||||
queryStatusResp.setFailReason(first.getFkAuditMemo());
|
||||
return queryStatusResp;
|
||||
}
|
||||
|
||||
if ("CREATE".equals(first.getFkAudit())) {
|
||||
queryStatusResp.setStatus(PayCst.EntryStatus.AUDIT);
|
||||
queryStatusResp.setFailReason(first.getFkAuditMemo());
|
||||
return queryStatusResp;
|
||||
}
|
||||
}
|
||||
|
||||
if (StrUtil.isNotBlank(first.getKzAudit())) {
|
||||
if ("REJECT".equals(first.getKzAudit())) {
|
||||
// 风控拒绝
|
||||
queryStatusResp.setStatus(PayCst.EntryStatus.REJECTED);
|
||||
queryStatusResp.setFailReason(first.getKzAuditMemo());
|
||||
return queryStatusResp;
|
||||
}
|
||||
|
||||
if ("CREATE".equals(first.getKzAudit())) {
|
||||
queryStatusResp.setStatus(PayCst.EntryStatus.AUDIT);
|
||||
queryStatusResp.setFailReason(first.getKzAuditMemo());
|
||||
return queryStatusResp;
|
||||
}
|
||||
}
|
||||
|
||||
if (StrUtil.isNotBlank(first.getSubConfirm()) && "FAIL".equals(first.getSubConfirm())) {
|
||||
// 签约失败
|
||||
queryStatusResp.setStatus(PayCst.EntryStatus.REJECTED);
|
||||
queryStatusResp.setFailReason("签约失败");
|
||||
return queryStatusResp;
|
||||
}
|
||||
|
||||
queryStatusResp.setStatus(PayCst.EntryStatus.SIGN);
|
||||
queryStatusResp.setSignUrl(first.getSubSignQrCodeUrl());
|
||||
return queryStatusResp;
|
||||
}
|
||||
} else {
|
||||
queryStatusResp.setStatus(PayCst.EntryStatus.REJECTED);
|
||||
queryStatusResp.setFailReason(response.getSubMsg());
|
||||
}
|
||||
} catch (AlipayApiException e) {
|
||||
log.error("支付宝查询进件状态报错:{}", e.getMessage(), e);
|
||||
queryStatusResp.setStatus(PayCst.EntryStatus.INIT);
|
||||
}
|
||||
|
||||
|
||||
return queryStatusResp;
|
||||
}
|
||||
|
||||
/**
|
||||
* 进件商户
|
||||
*
|
||||
@@ -72,13 +170,13 @@ public class AlipayEntryManager {
|
||||
respDto.setEntryId(response.getOrderId());
|
||||
respDto.setErrorMsg("");
|
||||
} else {
|
||||
respDto.setStatus(PayCst.EntryStatus.FAIL);
|
||||
respDto.setStatus(PayCst.EntryStatus.REJECTED);
|
||||
respDto.setEntryId("");
|
||||
respDto.setErrorMsg(response.getSubMsg());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("支付宝进件报错:{}", e.getMessage(), e);
|
||||
respDto.setStatus(PayCst.EntryStatus.FAIL);
|
||||
respDto.setStatus(PayCst.EntryStatus.REJECTED);
|
||||
respDto.setEntryId("");
|
||||
respDto.setErrorMsg(e.getMessage());
|
||||
}
|
||||
@@ -128,7 +226,7 @@ public class AlipayEntryManager {
|
||||
* @param province 省份 陕西省
|
||||
* @param city 城市 西安市
|
||||
*/
|
||||
public static List<BankBranchDto> queryBankBranchList(String instId, String province, String city) {
|
||||
public static List<BankBranchDto> queryBankBranchList(AlipayConfigDto configDto, String instId, String province, String city) {
|
||||
try {
|
||||
AlipayFinancialnetAuthPbcnameQueryRequest request = new AlipayFinancialnetAuthPbcnameQueryRequest();
|
||||
|
||||
@@ -138,7 +236,7 @@ public class AlipayEntryManager {
|
||||
model.setCity(city);
|
||||
|
||||
request.setBizModel(model);
|
||||
DefaultAlipayClient defaultAlipayClient = AlipayClient.getDefaultClient(null);
|
||||
DefaultAlipayClient defaultAlipayClient = AlipayClient.getDefaultClient(configDto);
|
||||
AlipayFinancialnetAuthPbcnameQueryResponse response = defaultAlipayClient.execute(request);
|
||||
|
||||
String data = response.getPbcQueryResult();
|
||||
|
||||
@@ -5,6 +5,7 @@ import com.alibaba.fastjson2.JSONWriter;
|
||||
import com.czg.PayCst;
|
||||
import com.czg.dto.req.*;
|
||||
import com.czg.dto.resp.EntryThirdRespDto;
|
||||
import com.czg.dto.resp.QueryStatusResp;
|
||||
import com.czg.exception.CzgException;
|
||||
import com.czg.third.wechat.dto.config.WechatPayConfigDto;
|
||||
import com.czg.third.wechat.dto.req.entry.*;
|
||||
@@ -14,6 +15,8 @@ import com.czg.third.wechat.dto.req.entry.business.WechatEntryLicenseReqDto;
|
||||
import com.czg.third.wechat.dto.req.entry.business.sales.WechatEntryMiniProgramReqDto;
|
||||
import com.czg.third.wechat.dto.req.entry.business.sales.WechatEntrySalesInfoReqDto;
|
||||
import com.czg.third.wechat.dto.req.entry.business.sales.WechatEntryStoreInfoReqDto;
|
||||
import com.czg.third.wechat.dto.resp.WechatAuditDetail;
|
||||
import com.czg.third.wechat.dto.resp.WechatQueryStateResp;
|
||||
import com.czg.utils.UploadFileUtil;
|
||||
import com.wechat.pay.java.core.Config;
|
||||
import com.wechat.pay.java.core.cipher.PrivacyEncryptor;
|
||||
@@ -35,6 +38,63 @@ import java.util.Map;
|
||||
@Slf4j
|
||||
public class WechatEntryManager {
|
||||
|
||||
/**
|
||||
* 查询商户进件状态
|
||||
*
|
||||
* @param configDto 配置信息
|
||||
* @param merchantCode 自系统的商户编号
|
||||
* @return 进件状态
|
||||
*/
|
||||
public static QueryStatusResp queryMerchantEntryStatus(WechatPayConfigDto configDto, String merchantCode) {
|
||||
QueryStatusResp queryStatusResp = new QueryStatusResp();
|
||||
queryStatusResp.setPlatform(PayCst.Platform.WECHAT);
|
||||
queryStatusResp.setMerchantCode(merchantCode);
|
||||
|
||||
String resp = WechatReqUtils.getReq(configDto, "/v3/applyment4sub/applyment/business_code/" + merchantCode, Map.of());
|
||||
JSONObject object = JSONObject.parseObject(resp);
|
||||
JSONObject data = object.getJSONObject("data");
|
||||
if (data == null) {
|
||||
log.error("微信查询进件状态失败:{}", resp);
|
||||
queryStatusResp.setFailReason(object.getString("message"));
|
||||
queryStatusResp.setStatus(PayCst.EntryStatus.REJECTED);
|
||||
return queryStatusResp;
|
||||
}
|
||||
log.info("微信查询进件状态:{}", resp);
|
||||
WechatQueryStateResp stateResp = JSONObject.parseObject(data.toJSONString(), WechatQueryStateResp.class);
|
||||
|
||||
queryStatusResp.setApplyId(stateResp.getApplyId());
|
||||
switch (stateResp.getApplyState()) {
|
||||
case "APPLYMENT_STATE_EDITTING" -> {
|
||||
queryStatusResp.setStatus(PayCst.EntryStatus.WAIT);
|
||||
queryStatusResp.setFailReason("");
|
||||
}
|
||||
case "APPLYMENT_STATE_AUDITING" -> {
|
||||
queryStatusResp.setStatus(PayCst.EntryStatus.AUDIT);
|
||||
queryStatusResp.setFailReason("");
|
||||
}
|
||||
case "APPLYMENT_STATE_REJECTED" -> {
|
||||
queryStatusResp.setStatus(PayCst.EntryStatus.REJECTED);
|
||||
StringBuilder msg = new StringBuilder();
|
||||
for (WechatAuditDetail auditDetail : stateResp.getAuditDetail()) {
|
||||
msg.append(auditDetail.getRejectReason()).append(",");
|
||||
}
|
||||
queryStatusResp.setFailReason(msg.toString());
|
||||
}
|
||||
case "APPLYMENT_STATE_TO_BE_CONFIRMED", "APPLYMENT_STATE_TO_BE_SIGNED" -> {
|
||||
queryStatusResp.setStatus(PayCst.EntryStatus.SIGN);
|
||||
queryStatusResp.setFailReason("");
|
||||
queryStatusResp.setSignUrl(stateResp.getSignUrl());
|
||||
}
|
||||
case "APPLYMENT_STATE_SIGNING", "APPLYMENT_STATE_FINISHED" -> {
|
||||
queryStatusResp.setStatus(PayCst.EntryStatus.FINISH);
|
||||
queryStatusResp.setFailReason("");
|
||||
queryStatusResp.setThirdMerchantId(stateResp.getSubMchId());
|
||||
}
|
||||
}
|
||||
|
||||
return queryStatusResp;
|
||||
}
|
||||
|
||||
/**
|
||||
* 进件商户
|
||||
*
|
||||
@@ -46,22 +106,25 @@ public class WechatEntryManager {
|
||||
EntryThirdRespDto respDto = new EntryThirdRespDto()
|
||||
.setPlatform(PayCst.Platform.WECHAT);
|
||||
|
||||
log.info("微信进件参数:{}", JSONObject.toJSONString(entryReqDto));
|
||||
try {
|
||||
String params = JSONObject.toJSONString(entryReqDto, JSONWriter.Feature.IgnoreEmpty);
|
||||
String respBody = WechatReqUtils.postReq(configDto, "/v3/applyment4sub/applyment/", params);
|
||||
JSONObject object = JSONObject.parseObject(respBody);
|
||||
if (object.containsKey("applyment_id")) {
|
||||
JSONObject data = object.getJSONObject("data");
|
||||
log.info("微信进件结果:{}", respBody);
|
||||
if (data != null) {
|
||||
respDto.setStatus(PayCst.EntryStatus.INIT);
|
||||
respDto.setEntryId(object.getString("applyment_id"));
|
||||
respDto.setEntryId(data.getString("applyment_id"));
|
||||
respDto.setErrorMsg("");
|
||||
} else {
|
||||
respDto.setStatus(PayCst.EntryStatus.FAIL);
|
||||
respDto.setStatus(PayCst.EntryStatus.REJECTED);
|
||||
respDto.setEntryId("");
|
||||
respDto.setErrorMsg(object.getString("message"));
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("微信进件报错:{}", e.getMessage(), e);
|
||||
respDto.setStatus(PayCst.EntryStatus.FAIL);
|
||||
respDto.setStatus(PayCst.EntryStatus.REJECTED);
|
||||
respDto.setEntryId("");
|
||||
respDto.setErrorMsg(e.getMessage());
|
||||
}
|
||||
@@ -71,22 +134,25 @@ public class WechatEntryManager {
|
||||
|
||||
public static JSONObject queryBankList(WechatPayConfigDto configDto, Integer offset, Integer limit) {
|
||||
String resp = WechatReqUtils.getReq(configDto, "/v3/capital/capitallhh/banks/corporate-banking", Map.of("offset", offset, "limit", limit));
|
||||
log.info("查询银行列表:{}", resp);
|
||||
log.info("微信查询银行列表:{}", resp);
|
||||
return JSONObject.parseObject(resp);
|
||||
}
|
||||
|
||||
public static JSONObject queryBankBranchList(WechatPayConfigDto configDto, String bankAliceCode, String cityCode, Integer offset, Integer limit) {
|
||||
String resp = WechatReqUtils.getReq(configDto, "/v3/capital/capitallhh/banks/" + bankAliceCode + "/branches", Map.of("city_code", cityCode, "offset", offset, "limit", limit));
|
||||
log.info("微信查询银行支行列表:{}", resp);
|
||||
return JSONObject.parseObject(resp);
|
||||
}
|
||||
|
||||
public static JSONObject queryProvinceList(WechatPayConfigDto configDto) {
|
||||
String resp = WechatReqUtils.getReq(configDto, "/v3/capital/capitallhh/areas/provinces", Map.of());
|
||||
log.info("微信查询省份列表:{}", resp);
|
||||
return JSONObject.parseObject(resp);
|
||||
}
|
||||
|
||||
public static JSONObject queryCityList(WechatPayConfigDto configDto, String provinceCode) {
|
||||
String resp = WechatReqUtils.getReq(configDto, "/v3/capital/capitallhh/areas/provinces/" + provinceCode + "/cities", Map.of());
|
||||
log.info("微信查询城市列表:{}", resp);
|
||||
return JSONObject.parseObject(resp);
|
||||
}
|
||||
|
||||
@@ -257,58 +323,16 @@ public class WechatEntryManager {
|
||||
}
|
||||
|
||||
public static void main(String[] args) throws IOException {
|
||||
WechatPayConfigDto dto = new WechatPayConfigDto()
|
||||
.setMerchantId("1643779408")
|
||||
.setApiV3Key("a92baac5eb7a36ed8ec198113e769a03")
|
||||
.setSerialNumber("4DE9BAC2EA584C3F274F694C9753CA814C4E9BF4")
|
||||
.setPublicKey("""
|
||||
-----BEGIN PUBLIC KEY-----
|
||||
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtbeWXEEjBaYtw2OyM+SC
|
||||
aCEMbryRXi4duKxx3vYG4rUVix+d5/Jz7Khev4Upml9zC+Xxvv/G9bHWAUyolzqD
|
||||
wefahGurIxr43r4GJVnQ4i5G6BbBVw5d4Vuz0y/9Zd14zmc/EmBpT0Ml26H7tOZl
|
||||
n1LSbQ4xNFkrRKrNEcExBLxkCd+K5K2TREZznywIi0izbHImvuzM8IneuR51FiqK
|
||||
pdFnAjTwb126EIj6ECkL6KLCl8RWqpfiX8SFiolSQLs1/w79O0sIUk96X2zWpnoW
|
||||
rTDFatPif/VEKl3y2dTlxxDxoZtVi48yTDW00OMzVl5D67oX3FVK0KsjHJSCfGlZ
|
||||
6wIDAQAB
|
||||
-----END PUBLIC KEY-----""")
|
||||
.setPrivateKey("""
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
MIIEwAIBADANBgkqhkiG9w0BAQEFAASCBKowggSmAgEAAoIBAQDqnAZhTxT572fo
|
||||
6wvSr8Rt0vRXg+EFKC6UvUiNE24oocQU5fjedX9KL/+fmoqay/xqIxvxvCNFTs4J
|
||||
zlMqavSl6bMWCpjvf/Ry82JmN1v2kJEO4lgP8BsEiqlUpObCH8BMAVUOn1j+9q4Q
|
||||
uZJJcbtRvec2fNweDM8EJp4B7RlUdDbHm86lfcDVp8iini7VjDp6D7aHT+C8A8OT
|
||||
ugxQIquDec778wVd9r2Sv3+t6rAzFs+n+Zu++2xtFEPhO5N0wjrLHaukl+9crU+1
|
||||
lktjDzcPd07SwGZ+A+3BTmW3UCramI3506e/3MWBECB7ge+gM4URAV0nJJCLH/Im
|
||||
WgEvPMr5AgMBAAECggEBAKv+wraoMWqiVv1tA/froAgbtcJLDranJK8qrXuvmPz0
|
||||
yzm+91qvrSgIVFEADUk67swo/R2Vng37nhWWS2Y3jy/rSr2H+2Lp3Z5ATA0/3I3A
|
||||
onfU/FaC4mvL9CP32KzMdj/CYkccDzSsSCQ+x75MQNXGcTGDDCSDo2kZnpEu73j3
|
||||
aqvO1jbqTGWigRfjOIaIhStjQIT8nEm/3mJ4f5dM9M6FMz33mhax8EahSgvdahYB
|
||||
t45iaGOWw81OJhmry47EvpwjXBl7jtO2HX3LiLbq5Ebcwu1zqDz5NM7ttnnGAqWC
|
||||
6y7JN5Vt4wPYrCydiUDe7dj0looffr2yw6MkNfYjLGECgYEA+FAvbEInQEi9YguS
|
||||
CQtLHngqvYeai66tvyykog9o38KHnPGx2Myf+rn/Hcp7KNRfjd5G34CCNg7KLnrx
|
||||
YIYh6+2bY3jirzdYUxuNKGbvM4gky/6M/P9zHF/uALKOE02yArdqemf4UxUvrYCc
|
||||
JdXsAMqvbpdvW1aGgNRB32YCkG0CgYEA8d89vawsCjNCEUh0VWTMoBLFoex3qBMZ
|
||||
rfzYQeBo6bDCRlAlUVzl+ouBUxSYxP/U8rzeNaRzGUwRLmlGMjyIr58FBlHsg2cR
|
||||
DlsX3HVCUjpS6sgPXOqakdiLfhMcHZAspislSyVfeS3TbUWiA45+5PuNUq+EZYwl
|
||||
ESsB1+yfRT0CgYEA0Ct49ksnWM8iZbXJgeeD3FFlk2rBd2TDqEem5W4Bv8T3p+0/
|
||||
6b7yR2HyrGj5gys3yFmWFP1JLESN3xWWkhMhEQcrg+LuN3Iwi8vHNR3GXu892f7W
|
||||
96q4OAt8Hf2S+j/igkB99YyANDbIt63gOh/zMF67X/14j5wkOpC3gK+maqkCgYEA
|
||||
s7nIrPoUt3ejLiiCmTmPe5q3VDzcJP4cZNau8zSHgK6hjZHcSPsYwPWMoWl6o1fe
|
||||
qoiBLacHB9MoKS58xLOKdcVZ/Ho/ntylJd+2eVCAeY1xM5h5IfgJ5znbXVFh4O3S
|
||||
357L1Wzt5qOQqW/GlZH65LevKbPWU4axvHISqpnfN5kCgYEAqiqLuAPu84VSsqsE
|
||||
GFh25t+1f0JY1sNfilE3/t9AdQeeCFv/5z9KB1kMt3a5ZFeVonsFIvCyaOJjhSkj
|
||||
4HCB94vWS7NuN5G9r874lMaPbZYQGwrcVaf265tN7cYYr3gUx1qB6+u+fh/kcft1
|
||||
BBmTzhb0zp5k8ngwAkA1g/LK204=
|
||||
-----END PRIVATE KEY-----""")
|
||||
.setPublicKeyId("PUB_KEY_ID_0116437794082025111000382377001000")
|
||||
.setDomain("https://api.mch.weixin.qq.com");
|
||||
|
||||
int offset = 0;
|
||||
Integer limit = 100;
|
||||
// JSONObject resp = queryBankList(dto, offset, limit);
|
||||
|
||||
queryMerchantEntryStatus(null, "20220106000000000001");
|
||||
|
||||
// int offset = 0;
|
||||
// Integer limit = 100;
|
||||
// JSONObject resp = queryBankList(null, offset, limit);
|
||||
|
||||
// queryBankBranchList(dto, "1000009561", "110000", offset, limit);
|
||||
queryBankBranchList(dto, "1000009561", "29", offset, limit);
|
||||
// queryBankBranchList(dto, "1000009561", "29", offset, limit);
|
||||
|
||||
// queryProvinceList(dto);
|
||||
// queryCityList(dto, "28");
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.czg.third.wechat.dto.resp;
|
||||
|
||||
import com.alibaba.fastjson2.annotation.JSONField;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @author yjjie
|
||||
* @date 2026/1/7 15:46
|
||||
*/
|
||||
@Data
|
||||
public class WechatAuditDetail {
|
||||
/**
|
||||
* 字段名
|
||||
*/
|
||||
@JSONField(name = "field")
|
||||
public String field;
|
||||
|
||||
/**
|
||||
* 字段名称
|
||||
*/
|
||||
@JSONField(name = "field_name")
|
||||
public String fieldName;
|
||||
|
||||
/**
|
||||
* 驳回原因
|
||||
*/
|
||||
@JSONField(name = "reject_reason")
|
||||
public String rejectReason;
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
package com.czg.third.wechat.dto.resp;
|
||||
|
||||
import com.alibaba.fastjson2.annotation.JSONField;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 微信进件状态查询返回参数
|
||||
* @author yjjie
|
||||
* @date 2026/1/7 15:42
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class WechatQueryStateResp {
|
||||
|
||||
/**
|
||||
* 业务申请编号
|
||||
*/
|
||||
@JSONField(name = "business_code")
|
||||
public String businessCode;
|
||||
|
||||
/**
|
||||
* 微信支付申请单号
|
||||
*/
|
||||
@JSONField(name = "applyment_id")
|
||||
public String applyId;
|
||||
|
||||
/**
|
||||
* 特约商户号
|
||||
* 当申请单状态为APPLYMENT_STATE_TO_BE_SIGNED、APPLYMENT_STATE_SIGNING、APPLYMENT_STATE_FINISHED时才返回。
|
||||
*/
|
||||
@JSONField(name = "sub_mchid")
|
||||
public String subMchId;
|
||||
|
||||
/**
|
||||
* 超级管理员签约链接
|
||||
* 1、超级管理员用微信扫码,关注“微信支付商家助手”公众号后,公众号将自动发送签约消息;超管需点击消息,根据指引完成核对联系信息、账户验证、签约等操作;
|
||||
* 2、超管完成核对联系信息,后续申请单进度可通过公众号自动通知超级管理员。
|
||||
*/
|
||||
@JSONField(name = "sign_url")
|
||||
public String signUrl;
|
||||
|
||||
/**
|
||||
* 申请单状态
|
||||
* APPLYMENT_STATE_EDITTING:(编辑中)提交申请发生错误导致,请尝试重新提交。
|
||||
* APPLYMENT_STATE_AUDITING:(审核中)申请单正在审核中,超级管理员用微信打开“签约链接”,完成绑定微信号后,申请单进度将通过微信公众号通知超级管理员,引导完成后续步骤。
|
||||
* APPLYMENT_STATE_REJECTED:(已驳回)请按照驳回原因修改申请资料,超级管理员用微信打开“签约链接”,完成绑定微信号,后续申请单进度将通过微信公众号通知超级管理员。
|
||||
* APPLYMENT_STATE_TO_BE_CONFIRMED:(待账户验证)请超级管理员使用微信打开返回的“签约链接”,根据页面指引完成账户验证。
|
||||
* APPLYMENT_STATE_TO_BE_SIGNED:(待签约)请超级管理员使用微信打开返回的“签约链接”,根据页面指引完成签约。
|
||||
* APPLYMENT_STATE_SIGNING:(开通权限中)系统开通相关权限中,请耐心等待。
|
||||
* APPLYMENT_STATE_FINISHED:(已完成)商户入驻申请已完成。
|
||||
* APPLYMENT_STATE_CANCELED:(已作废)申请单已被撤销。
|
||||
*/
|
||||
@JSONField(name = "applyment_state")
|
||||
public String applyState;
|
||||
|
||||
/**
|
||||
* 申请状态描述
|
||||
*/
|
||||
@JSONField(name = "applyment_state_msg")
|
||||
public String applyStateMsg;
|
||||
|
||||
/**
|
||||
* 驳回原因详情
|
||||
*/
|
||||
@JSONField(name = "audit_detail")
|
||||
public List<WechatAuditDetail> auditDetail;
|
||||
}
|
||||
Reference in New Issue
Block a user