From 21b9acf3c96be29598b9a8ad324dbe685fc967d6 Mon Sep 17 00:00:00 2001 From: gong <1157756119@qq.com> Date: Wed, 7 Jan 2026 17:51:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E8=BF=9B=E4=BB=B6=E7=8A=B6?= =?UTF-8?q?=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/czg/EntryManager.java | 23 ++- .../com/czg/dto/resp/QueryStatusResp.java | 49 +++++++ .../czg/third/alipay/AlipayEntryManager.java | 128 +++++++++++++++-- .../czg/third/wechat/WechatEntryManager.java | 132 +++++++++++------- .../wechat/dto/resp/WechatAuditDetail.java | 29 ++++ .../wechat/dto/resp/WechatQueryStateResp.java | 70 ++++++++++ 6 files changed, 361 insertions(+), 70 deletions(-) create mode 100644 cash-sdk/aggregation-pay/src/main/java/com/czg/dto/resp/QueryStatusResp.java create mode 100644 cash-sdk/aggregation-pay/src/main/java/com/czg/third/wechat/dto/resp/WechatAuditDetail.java create mode 100644 cash-sdk/aggregation-pay/src/main/java/com/czg/third/wechat/dto/resp/WechatQueryStateResp.java diff --git a/cash-sdk/aggregation-pay/src/main/java/com/czg/EntryManager.java b/cash-sdk/aggregation-pay/src/main/java/com/czg/EntryManager.java index 0aa4bc0a8..125864422 100644 --- a/cash-sdk/aggregation-pay/src/main/java/com/czg/EntryManager.java +++ b/cash-sdk/aggregation-pay/src/main/java/com/czg/EntryManager.java @@ -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 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); } /** diff --git a/cash-sdk/aggregation-pay/src/main/java/com/czg/dto/resp/QueryStatusResp.java b/cash-sdk/aggregation-pay/src/main/java/com/czg/dto/resp/QueryStatusResp.java new file mode 100644 index 000000000..b6edf25f2 --- /dev/null +++ b/cash-sdk/aggregation-pay/src/main/java/com/czg/dto/resp/QueryStatusResp.java @@ -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; +} diff --git a/cash-sdk/aggregation-pay/src/main/java/com/czg/third/alipay/AlipayEntryManager.java b/cash-sdk/aggregation-pay/src/main/java/com/czg/third/alipay/AlipayEntryManager.java index feeb47dc5..105476b38 100644 --- a/cash-sdk/aggregation-pay/src/main/java/com/czg/third/alipay/AlipayEntryManager.java +++ b/cash-sdk/aggregation-pay/src/main/java/com/czg/third/alipay/AlipayEntryManager.java @@ -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; /** * 支付宝进件管理 - * * ... * * @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 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 queryBankBranchList(String instId, String province, String city) { + public static List 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(); diff --git a/cash-sdk/aggregation-pay/src/main/java/com/czg/third/wechat/WechatEntryManager.java b/cash-sdk/aggregation-pay/src/main/java/com/czg/third/wechat/WechatEntryManager.java index 29568043a..0b320481e 100644 --- a/cash-sdk/aggregation-pay/src/main/java/com/czg/third/wechat/WechatEntryManager.java +++ b/cash-sdk/aggregation-pay/src/main/java/com/czg/third/wechat/WechatEntryManager.java @@ -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"); diff --git a/cash-sdk/aggregation-pay/src/main/java/com/czg/third/wechat/dto/resp/WechatAuditDetail.java b/cash-sdk/aggregation-pay/src/main/java/com/czg/third/wechat/dto/resp/WechatAuditDetail.java new file mode 100644 index 000000000..6e9deea6f --- /dev/null +++ b/cash-sdk/aggregation-pay/src/main/java/com/czg/third/wechat/dto/resp/WechatAuditDetail.java @@ -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; +} diff --git a/cash-sdk/aggregation-pay/src/main/java/com/czg/third/wechat/dto/resp/WechatQueryStateResp.java b/cash-sdk/aggregation-pay/src/main/java/com/czg/third/wechat/dto/resp/WechatQueryStateResp.java new file mode 100644 index 000000000..c351d3f3f --- /dev/null +++ b/cash-sdk/aggregation-pay/src/main/java/com/czg/third/wechat/dto/resp/WechatQueryStateResp.java @@ -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 auditDetail; +}