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 125864422..fcfd1224e 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 @@ -9,6 +9,7 @@ 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.alipay.AlipayIsvEntryManager; import com.czg.third.wechat.WechatEntryManager; import com.czg.utils.AssertUtil; import com.czg.utils.AsyncTaskExecutor; @@ -40,7 +41,7 @@ public class EntryManager { /** * 查询微信进件状态 * - * @param merchantCode 商户编号 + * @param merchantCode 商户编号, 进件时返回的批次号 {@link com.czg.dto.resp.EntryRespDto#wechatApplyId} * @return 进件状态 */ public static QueryStatusResp queryWechatEntryStatus(String merchantCode) { @@ -50,11 +51,11 @@ public class EntryManager { /** * 查询支付宝进件状态 * - * @param merchantCode 商户编号 + * @param batchNo 商户编号, 进件时返回的批次号 {@link com.czg.dto.resp.EntryRespDto#alipayOrderId} * @return 进件状态 */ - public static QueryStatusResp queryAlipayEntryStatus(String merchantCode) { - return AlipayEntryManager.queryMerchantEntryStatus(null, merchantCode); + public static QueryStatusResp queryAlipayEntryStatus(String batchNo) { + return AlipayIsvEntryManager.queryMerchantBatchStatus(null, batchNo); } /** @@ -77,7 +78,7 @@ public class EntryManager { tasks.add(() -> WechatEntryManager.entryMerchant(null, reqDto)); } if (ArrayUtil.contains(platform, PayCst.Platform.ALIPAY)) { - tasks.add(() -> AlipayEntryManager.entryMerchant(null, reqDto)); + tasks.add(() -> AlipayIsvEntryManager.entryMerchant(null, reqDto)); } // 执行所有任务 @@ -235,6 +236,7 @@ public class EntryManager { AssertUtil.isBlank(baseInfo.getUserType(), "商户类型不能为空"); AssertUtil.isBlank(baseInfo.getShortName(), "商户简称不能为空"); AssertUtil.isBlank(baseInfo.getMccCode(), "商户行业编码不能为空"); + AssertUtil.isBlank(baseInfo.getAlipayAccount(), "支付宝账号不能为空"); AssertUtil.isBlank(baseInfo.getContactPersonType(), "联系人类型不能为空"); if (!PayCst.ContactPersonType.SUPER.equals(baseInfo.getContactPersonType()) && !PayCst.ContactPersonType.LEGAL.equals(baseInfo.getContactPersonType())) { throw new CzgException("联系人类型错误"); @@ -367,11 +369,11 @@ public class EntryManager { // uploadParamImage(merchantDto); verifyEntryParam(merchantDto); - uploadParamImage(merchantDto); - System.out.println(merchantDto); +// uploadParamImage(merchantDto); +// System.out.println(merchantDto); // entryMerchant(merchantDto, PayCst.Platform.WECHAT); -// entryMerchant(merchantDto, PayCst.Platform.ALIPAY); - entryMerchant(merchantDto, PayCst.Platform.WECHAT, PayCst.Platform.ALIPAY); + entryMerchant(merchantDto, PayCst.Platform.ALIPAY); +// entryMerchant(merchantDto, PayCst.Platform.WECHAT, PayCst.Platform.ALIPAY); } private static AggregateMerchantDto getTestMerchantEntryData() { @@ -382,7 +384,8 @@ public class EntryManager { baseInfoDto.setUserType("1"); baseInfoDto.setCompanyChildType("1"); baseInfoDto.setShortName("测试商户"); - baseInfoDto.setMccCode("0741"); + baseInfoDto.setAlipayAccount("1157756119@qq.com"); + baseInfoDto.setMccCode("A0001_B0001"); baseInfoDto.setContactPersonType(PayCst.ContactPersonType.SUPER); baseInfoDto.setContactName("张三"); baseInfoDto.setContactPersonId("110101199001011234"); diff --git a/cash-sdk/aggregation-pay/src/main/java/com/czg/PayCst.java b/cash-sdk/aggregation-pay/src/main/java/com/czg/PayCst.java index 8bce68aae..606d44dae 100644 --- a/cash-sdk/aggregation-pay/src/main/java/com/czg/PayCst.java +++ b/cash-sdk/aggregation-pay/src/main/java/com/czg/PayCst.java @@ -10,6 +10,11 @@ import java.util.List; */ public interface PayCst { + /** + * 长期有效时间 + */ + String LONG_TERM_DATE = "2099-12-31"; + /** * 平台 */ 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 index b6edf25f2..79bf5cada 100644 --- 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 @@ -1,6 +1,7 @@ package com.czg.dto.resp; import lombok.Data; +import lombok.experimental.Accessors; /** * 查询进件状态 @@ -8,6 +9,7 @@ import lombok.Data; * @date 2026/1/7 17:12 */ @Data +@Accessors(chain = true) public class QueryStatusResp { /** 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 105476b38..59198ff39 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 @@ -2,6 +2,7 @@ package com.czg.third.alipay; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson2.JSONArray; +import com.alibaba.fastjson2.JSONObject; import com.alipay.api.AlipayApiException; import com.alipay.api.DefaultAlipayClient; import com.alipay.api.FileItem; @@ -344,11 +345,12 @@ public class AlipayEntryManager { return entryParams; } - public static void main(String[] args) { + public static void main(String[] args) throws ApiException { // queryBankBranchList("CMB", "陕西省", "西安市"); - uploadImage(null, "https://cashier-oss.oss-cn-beijing.aliyuncs.com/upload/20240312/31476c871c224389aea0ac4e17c964a3.jpg"); +// uploadImage(null, "https://cashier-oss.oss-cn-beijing.aliyuncs.com/upload/20240312/31476c871c224389aea0ac4e17c964a3.jpg"); + test(); } // https://opendocs.alipay.com/solution/0dec7x?pathHash=caec4753 直付通 @@ -361,6 +363,7 @@ public class AlipayEntryManager { alipayConfig.setAlipayPublicKey("MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAiQkrz+emAuS1mB3KKDOMmAZRd/BlPbh7fAIHAqAj1+QCZNcV3o2BTLIIqnuKpSlFXDG3uDzp2VsBxcizXuBbFyPGylnD9CgCj5abyh3+FIHPAZ2IM3TtpqImZ0TSPGXrMli4Nir7MvZktgccCqQKCC4o6iaDGz+UwWwJUIPna8fm2tiTZ+KH150CZbKVj4ZGNpBh5XSV/1dRgyQIV9D/EwSbkZ0n6VgKQLJBi0C2UE3QB17aL1Ir6+gDXIDbknN8O7GUD3aMGdThYdSRUb5wp9CZ5qfV7vCS/CgaRo38nhH3NOzkTL+7v0m1ZDHPmqEkn9VzZN6sCQdL7PoAOjHOCwIDAQAB"); alipayConfig.setPrivateKey("MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCz3FkdffxZibdwis9W7eOW1dEjGAbSvRDL2ikfeCIW5KZNoIjUqxI0mIoUlLRRKO71QLHZS1Vb2aJp8jeOAqIPa8e76HTneQEzk3FGA8gpraSGvbadHWzvxnmYKsts1TBiEZQL82ySJXhQTJvZ6jyDM7s6wHHUnrH+Qi29QpppQ1sxsoJeCtajUgRg3btD6XbBcyFAX3pzM56Kw9eaIjZoD8WToZOM/Y3sqNL2uo8lLqcIpTrI7Pq5ZOspmBQ+t8v3rS9IdDZZMvd0trzS67AXwHz8rKPBT/lL1A4iHnXCHUvktusX1fPs3/RGY/a7PIddaBLnfY0GcueE16K7QcrXAgMBAAECggEAbSdT2eckp75BWoaTcGEs1tRqeM7TDT/6moyKmnOQ1K3tE31SrSYpBUxxuC3LBNo/sw2RIZtrcTOyMnPyLTgB3DP/4lUf5X51MTTQ8LnI1ypvh+pIki9Sdm3QS33lOOZk149tdpdDk6ozyx/DEcvq74EMpoo2SuAIi5LkKVDrXuehvGA/WeXtpmuPgqRFdIA+JBlA3knHk5XEQY/k2Y31gq5oCwNL9iT9OAZqVkukE6EnvCXE9t2rAV4/snYilaf/UaO+ktgEwSbPBQ8YKlovDAarMBbGtgr6E174A9djlPyR+W/fgx8rlTwSWtieb9MkO8LN3KSxgVs0kY5U8OHg8QKBgQDljJq9kTFHare+W/fAXdUy3tJprfNQCAii6s+GuDfTQiviVQDtWmdtHAN+xU3to7MepvVhwHsqtQnZXKTtZuwwxn82FNl7A5RYD3GVFW+wG6AsGLIdESrWxySoL6Kx8QmNpMEVg8acT/ywzW/RnUXS5vU7GIi8GA0vtyBo24R9KQKBgQDIlf/R9+iNk9oXlbB/k4um9eVvBBS7l5cx4E5Id5Dpp4kGZfPZEa7oDsEUstZZM9mgQLJK/noNWbcf0+BohCR5ux7SC12qIoxwN3k4BzTDqrS8BzFuVVp5PELUsf/uCbRn05iMzpiDUhj3Vde04wvjHYIobfKlZO2HeSWXCpUH/wKBgQC8wSuU6ck90pEY5QMKmZ3wYK1g3PsQOirv3Gmde+nbu7PePsuuYQJfBAQTwCZeXJezgtKP+PjOm2Nn6vhrhpB9YxvD2s0ijET1TG23i5L1myHQYNZFdJJnXgXUjqcX7v5ODMYA7QTqEBPXRnbGRK7fx66rU3dMQ/LD46+wyaFeUQKBgA4QTk53dkuu6SSsLyLSwoDjTsHY5Gc+urAZjQORtoxbXcUgEtfOYJgOqMT9wP+iHgkZYCbX7tDO0IMfxOUvFqueTgvmFhwergAUM6CVCMMLTf689l9JBr3nVrw4+rvC3G5HLLP6rEDQ2cVFtIkPPj8fS4fwJYopKGpOOS9843QbAoGBAMoHH8LqoZ50FLsospx/hJe24Cd8wCgQTXSa/hMqNZ1999JDhftMt7R0ZdB1he2LReACe0K9ntBU4H4u225zZ3wZlyOfoyerAHuLK/ysNlgIIzblZlOxbBJ64Kul8leXzlYy3tOZuZ997KqBcWPCE3LUBBNvM6E3blJUnlmJAVoi"); defaultClient.setAlipayConfig(alipayConfig); + log.info("dd: {}", JSONObject.toJSONString(alipayConfig)); AlipayOpenAgentApi api = new AlipayOpenAgentApi(); AlipayOpenAgentCreateModel data = new AlipayOpenAgentCreateModel(); ContactModel contactInfo = new ContactModel(); diff --git a/cash-sdk/aggregation-pay/src/main/java/com/czg/third/alipay/AlipayIsvEntryManager.java b/cash-sdk/aggregation-pay/src/main/java/com/czg/third/alipay/AlipayIsvEntryManager.java new file mode 100644 index 000000000..5efcd1965 --- /dev/null +++ b/cash-sdk/aggregation-pay/src/main/java/com/czg/third/alipay/AlipayIsvEntryManager.java @@ -0,0 +1,241 @@ +package com.czg.third.alipay; + +import com.alibaba.fastjson2.JSONObject; +import com.alipay.v3.ApiException; +import com.alipay.v3.api.AlipayOpenAgentApi; +import com.alipay.v3.api.AlipayOpenAgentCommonsignApi; +import com.alipay.v3.api.AlipayOpenAgentFacetofaceApi; +import com.alipay.v3.api.AlipayOpenAgentOrderApi; +import com.alipay.v3.model.*; +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.alipay.dto.config.AlipayConfigDto; +import com.czg.utils.UploadFileUtil; +import lombok.extern.slf4j.Slf4j; + +import java.io.File; +import java.io.IOException; + +/** + * 支付宝服务商进件管理 + * ... + * @author yjjie + * @date 2026/1/8 13:34 + */ +@Slf4j +public class AlipayIsvEntryManager { + + private static final String ERR_MESSAGE_KEY = "message"; + + public static QueryStatusResp queryMerchantBatchStatus(AlipayConfigDto configDto, String batchNo) { + QueryStatusResp respDto = new QueryStatusResp() + .setPlatform(PayCst.Platform.ALIPAY); + AlipayClient.setApiClient(configDto); + + try { + AlipayOpenAgentOrderApi api = new AlipayOpenAgentOrderApi(); + AlipayOpenAgentOrderQueryResponseModel response = api.query(batchNo); + + log.info("支付宝查询进件状态: 响应={}", response); + respDto.setApplyId(batchNo); + + switch (response.getOrderStatus()) { + case "MERCHANT_INFO_HOLD" -> { + respDto.setStatus(PayCst.EntryStatus.REJECTED); + respDto.setFailReason("三方异常,请重新提交"); + return respDto; + } + case "MERCHANT_CONFIRM_TIME_OUT" -> { + respDto.setStatus(PayCst.EntryStatus.REJECTED); + respDto.setFailReason("商户确认超时,请重新提交"); + return respDto; + } + case "MERCHANT_AUDITING" -> { + respDto.setStatus(PayCst.EntryStatus.AUDIT); + respDto.setFailReason(""); + return respDto; + } + case "MERCHANT_CONFIRM" -> { + respDto.setStatus(PayCst.EntryStatus.SIGN); + respDto.setFailReason(""); + respDto.setSignUrl(response.getConfirmUrl()); + return respDto; + } + case "MERCHANT_APPLY_ORDER_CANCELED" -> { + respDto.setStatus(PayCst.EntryStatus.REJECTED); + respDto.setFailReason(response.getRejectReason()); + return respDto; + } + case "MERCHANT_CONFIRM_SUCCESS" -> { + respDto.setStatus(PayCst.EntryStatus.FINISH); + respDto.setFailReason(""); + respDto.setThirdMerchantId(response.getMerchantPid()); + return respDto; + } + case null -> { + respDto.setStatus(PayCst.EntryStatus.REJECTED); + respDto.setFailReason("查询失败"); + return respDto; + } + default -> { + return respDto; + } + } + + } catch (ApiException e) { + String body = e.getResponseBody(); + log.error("支付宝查询进件状态异常: {}", body); + JSONObject object = JSONObject.parseObject(body); + respDto.setStatus(PayCst.EntryStatus.REJECTED); + respDto.setFailReason(object.getString(ERR_MESSAGE_KEY)); + return respDto; + } + } + + /** + * 创建商户 + * @param configDto 配置信息 + * @param reqDto 请求信息 + */ + public static EntryThirdRespDto entryMerchant(AlipayConfigDto configDto, AggregateMerchantDto reqDto) { + AlipayClient.setApiClient(configDto); + EntryThirdRespDto respDto = new EntryThirdRespDto() + .setPlatform(PayCst.Platform.ALIPAY); + try { + String batchNo = createRequest(reqDto); + + // 构造请求参数以调用接口 + AlipayOpenAgentFacetofaceApi api = new AlipayOpenAgentFacetofaceApi(); + + AlipayOpenAgentFacetofaceSignModel signModel = buildSignModel(reqDto, batchNo); + + File businessLicensePic = UploadFileUtil.getFileByUrl(reqDto.getBusinessLicenceInfo().getLicensePic().getUrl()); + File shopScenePic = UploadFileUtil.getFileByUrl(reqDto.getStoreInfo().getInsidePic().getUrl()); + File shopSignBoardPic = UploadFileUtil.getFileByUrl(reqDto.getStoreInfo().getDoorPic().getUrl()); + + Object response = api.sign(null, businessLicensePic, signModel, shopScenePic, shopSignBoardPic, null); + log.info("支付宝开启代商户签约: 响应={}", JSONObject.toJSONString(response)); + + try { + String orderNo = confirmRequest(batchNo); + respDto.setEntryId(orderNo); + respDto.setStatus(PayCst.EntryStatus.INIT); + respDto.setErrorMsg(""); + return respDto; + } catch (CzgException e) { + respDto.setStatus(PayCst.EntryStatus.REJECTED); + respDto.setErrorMsg(e.getMessage()); + return respDto; + } + } catch (ApiException e) { + String body = e.getResponseBody(); + log.error("支付宝开启代商户签约,创建应用事务异常: {}", body); + JSONObject object = JSONObject.parseObject(body); + respDto.setStatus(PayCst.EntryStatus.REJECTED); + respDto.setErrorMsg(object.getString(ERR_MESSAGE_KEY)); + return respDto; + } catch (IOException e) { + log.error("上传图片出错", e); + respDto.setStatus(PayCst.EntryStatus.REJECTED); + respDto.setErrorMsg("上传图片出错"); + return respDto; + } + } + + /** + * 开启代商户签约、创建应用事务 + * @param reqDto 请求信息 + * @return 请求ID + */ + public static String createRequest(AggregateMerchantDto reqDto) { + AlipayOpenAgentApi api = new AlipayOpenAgentApi(); + AlipayOpenAgentCreateModel openModel = new AlipayOpenAgentCreateModel(); + + MerchantBaseInfoDto info = reqDto.getMerchantBaseInfo(); + LegalPersonInfoDto legalPersonInfo = reqDto.getLegalPersonInfo(); + String contactPersonType = info.getContactPersonType(); + boolean isSuper = PayCst.ContactPersonType.SUPER.equals(contactPersonType); + + ContactModel contactModel = new ContactModel(); + // 联系人名称 + contactModel.setContactName(isSuper ? info.getContactName() : legalPersonInfo.getLegalPersonName()); + // 联系人手机号码 + contactModel.setContactMobile(isSuper ? info.getContactPhone() : legalPersonInfo.getLegalPersonPhone()); + // 联系人邮箱 + contactModel.setContactEmail(isSuper ? info.getContactEmail() : legalPersonInfo.getLegalPersonEmail()); + openModel.setContactInfo(contactModel); + + openModel.setAccount(reqDto.getMerchantBaseInfo().getAlipayAccount()); + + try { + AlipayOpenAgentCreateResponseModel responseModel = api.create(openModel); + log.info("支付宝开启代商户签约,开启事务: 结果={}, batchNo={}", responseModel.getBatchStatus(), responseModel.getBatchNo()); + return responseModel.getBatchNo(); + } catch (ApiException e) { + String body = e.getResponseBody(); + log.error("支付宝开启代商户签约,开启事务异常: {}", body); + JSONObject object = JSONObject.parseObject(body); + throw new CzgException("支付宝开启代商户签约,开启事务异常: " + object.getString(ERR_MESSAGE_KEY)); + } + } + + public static String confirmRequest(String batchNo) { + AlipayClient.setApiClient(null); + // 构造请求参数以调用接口 + AlipayOpenAgentCommonsignApi api = new AlipayOpenAgentCommonsignApi(); + AlipayOpenAgentCommonsignConfirmModel data = new AlipayOpenAgentCommonsignConfirmModel(); + + // 设置ISV 代商户操作事务编号 + data.setBatchNo(batchNo); + try { + AlipayOpenAgentCommonsignConfirmResponseModel response = api.confirm(data); + log.info("支付宝开启代商户签约,确认事务: 响应={}", response); + return response.getOrderNo(); + } catch (ApiException e) { + String body = e.getResponseBody(); + log.error("支付宝开启代商户签约,确认事务异常: {}", body); + JSONObject object = JSONObject.parseObject(body); + throw new CzgException(object.getString(ERR_MESSAGE_KEY)); + } + } + + public static AlipayOpenAgentFacetofaceSignModel buildSignModel(AggregateMerchantDto reqDto, String batchNo) { + AlipayOpenAgentFacetofaceSignModel signModel = new AlipayOpenAgentFacetofaceSignModel(); + signModel.setBatchNo(batchNo); + + MerchantBaseInfoDto baseInfo = reqDto.getMerchantBaseInfo(); + LegalPersonInfoDto legalPersonInfo = reqDto.getLegalPersonInfo(); + BusinessLicenceInfoDto licenceInfo = reqDto.getBusinessLicenceInfo(); + StoreInfoDto storeInfo = reqDto.getStoreInfo(); + + signModel.setMccCode(baseInfo.getMccCode()); + signModel.setRate("0.38"); + signModel.setSignAndAuth(true); + + signModel.setBusinessLicenseNo(licenceInfo.getLicenceNo()); + signModel.setBusinessLicenseMobile(legalPersonInfo.getLegalPersonPhone()); + signModel.setLongTerm(PayCst.LONG_TERM_DATE.equals(licenceInfo.getLicenceEndDate())); + signModel.setDateLimitation(licenceInfo.getLicenceStartDate()); + + signModel.setShopName(baseInfo.getShortName()); + + // 设置店铺地址 + SignAddressInfo shopAddress = new SignAddressInfo(); + shopAddress.setCountryCode("156"); + shopAddress.setDistrictCode(storeInfo.getMercAreaCode()); + shopAddress.setDetailAddress(storeInfo.getBusinessAddress()); + shopAddress.setProvinceCode(storeInfo.getMercProvCode()); + shopAddress.setCityCode(storeInfo.getMercCityCode()); + signModel.setShopAddress(shopAddress); + + return signModel; + } + + public static void main(String[] args) { +// confirmRequest("2026010815384505500018243"); + queryMerchantBatchStatus(null, "2026010815384505500018243"); + } +} diff --git a/cash-sdk/aggregation-pay/src/main/java/com/czg/third/alipay/AlipayReqUtils.java b/cash-sdk/aggregation-pay/src/main/java/com/czg/third/alipay/AlipayReqUtils.java deleted file mode 100644 index c81f50ed6..000000000 --- a/cash-sdk/aggregation-pay/src/main/java/com/czg/third/alipay/AlipayReqUtils.java +++ /dev/null @@ -1,224 +0,0 @@ -package com.czg.third.alipay; - - -import com.alipay.api.AlipayApiException; -import com.alipay.api.AlipayConfig; -import com.alipay.api.DefaultAlipayClient; -import com.alipay.api.domain.*; -import com.alipay.api.request.AntMerchantExpandIndirectZftSimplecreateRequest; -import com.alipay.api.response.AntMerchantExpandIndirectZftSimplecreateResponse; - -import java.util.ArrayList; -import java.util.List; - -/** - * @author yjjie - * @date 2026/1/5 13:46 - */ -public class AlipayReqUtils { - public static void main(String[] args) throws AlipayApiException { -// DefaultAlipayClient defaultAlipayClient = AlipayClient.getDefaultClient(null); -// AlipayClient alipayClient = new DefaultAlipayClient(getAlipayConfig()); - DefaultAlipayClient defaultAlipayClient = new DefaultAlipayClient(getAlipayConfig()); - - // 构造请求参数以调用接口 - AntMerchantExpandIndirectZftSimplecreateRequest request = new AntMerchantExpandIndirectZftSimplecreateRequest(); - AntMerchantExpandIndirectZftSimplecreateModel model = new AntMerchantExpandIndirectZftSimplecreateModel(); - - // 设置商户编号 - model.setExternalId("1052900599901941"); - - // 设置签约支付宝账户 - model.setBindingAlipayLogonId("18434286340"); - - // 设置商户别名 - model.setAliasName("一点点"); - - // 设置商户客服电话 -// model.setServicePhone("0571-85022088"); - - // 设置商户联系人信息 - ContactInfo contactInfos = new ContactInfo(); - contactInfos.setIdCardNo("142725199902176419"); -// contactInfos.setPhone("0571-85022088"); - contactInfos.setName("王伟"); - contactInfos.setMobile("18434286340"); - contactInfos.setEmail("18434286340"); - model.setContactInfos(contactInfos); - - // 设置进件的二级商户名称 - model.setName("王伟"); - - // 设置默认结算规则 - DefaultSettleRule defaultSettleRule = new DefaultSettleRule(); - defaultSettleRule.setDefaultSettleType("alipayAccount"); - defaultSettleRule.setDefaultSettleTarget("18434286340"); - model.setDefaultSettleRule(defaultSettleRule); - - // 设置结算支付宝账号 - model.setAlipayLogonId("18434286340"); - - // 设置结算银行卡信息 - SettleCardInfo bizCards = new SettleCardInfo(); - bizCards.setAccountInstName("招商银行"); - bizCards.setBankCode("103290003044"); - bizCards.setAccountType("DC"); - bizCards.setUsageType("01"); - bizCards.setAccountHolderName("王伟"); - bizCards.setAccountInstCity("杭州市"); - bizCards.setAccountInstId("CMB"); - bizCards.setAccountNo("6214831259609102"); - bizCards.setAccountBranchName("招商银行杭州高新支行"); - bizCards.setAccountInstProvince("浙江省"); - model.setBizCards(bizCards); - - // 设置授权函 - model.setLicenseAuthLetterImage("c6c0c7a1-b9d5-4e5d-b9d4-9eed39f00e65.jpg"); - - // 设置开票资料信息 -// MerchantInvoiceInfo invoiceInfo = new MerchantInvoiceInfo(); -// invoiceInfo.setMailTelephone("057162288888"); -// invoiceInfo.setTaxPayerQualification("01"); -// invoiceInfo.setAddress("浙江省杭州市西湖区西溪路蚂蚁金服"); -// invoiceInfo.setAcceptElectronic(false); -// invoiceInfo.setTelephone("057162288888"); -// invoiceInfo.setTitle("蚂蚁金服(杭州)信息技术有限公司"); -// invoiceInfo.setMailName("张三"); -// invoiceInfo.setAutoInvoice(true); -// invoiceInfo.setTaxPayerValid("19981011"); -// invoiceInfo.setTaxNo("51010482542598631219"); -// invoiceInfo.setBankName("中国银行"); -// AddressInfo mailAddress = new AddressInfo(); -// mailAddress.setAddress("万塘路18号黄龙时代广场B座"); -// mailAddress.setDistrictCode("371002"); -// mailAddress.setLatitude("60.270001"); -// mailAddress.setCityCode("371000"); -// mailAddress.setPoiid("B0FFIVU189"); -// mailAddress.setProvinceCode("370000"); -// mailAddress.setLongitude("120.760001"); -// invoiceInfo.setMailAddress(mailAddress); -// invoiceInfo.setBankAccount("1234567812345678123"); -// model.setInvoiceInfo(invoiceInfo); - - // 设置商户使用服务 - List service = new ArrayList(); - service.add("当面付"); - model.setService(service); - - // 设置经营地址 - AddressInfo businessAddress = new AddressInfo(); - businessAddress.setAddress("万塘路18号黄龙时代广场B座"); - businessAddress.setDistrictCode("371002"); - businessAddress.setLatitude("60.270001"); - businessAddress.setCityCode("371000"); - businessAddress.setPoiid("B0FFIVU189"); - businessAddress.setProvinceCode("370000"); - businessAddress.setType("BUSINESS_ADDRESS"); - businessAddress.setLongitude("120.760001"); - model.setBusinessAddress(businessAddress); - - // 设置门头照 - model.setOutDoorImages("c6c0c7a1-b9d5-4e5d-b9d4-9eed39f00e65.jpg"); - - // 设置内景照 - model.setInDoorImages("c6c0c7a1-b9d5-4e5d-b9d4-9eed39f00e65.jpg"); - - // 设置商户站点信息 -// SiteInfo sites = new SiteInfo(); -// sites.setIcpOrgName("支付宝(中国)网络技术有限公司"); -// sites.setSiteType("01"); -// sites.setSiteDomain("www.alipay.com"); -// sites.setScreenshotImage("c6c0c7a1-b9d5-4e5d-b9d4-9eed39f00e65.jpg"); -// sites.setRemark("备注说明"); -// sites.setAuthLetterImage("c6c0c7a1-b9d5-4e5d-b9d4-9eed39f00e65.jpg"); -// sites.setSiteName("XXX网站"); -// sites.setMarket("豌豆荚"); -// sites.setPassword("测试密码"); -// sites.setDownload("https://itunes.apple.com/cn/app/id333206289?mt=8"); -// sites.setTinyAppId("2021004105652035"); -// sites.setSiteUrl("https://open.alipay.com"); -// sites.setIcpServiceName("支付宝"); -// sites.setRemarkImage("c6c0c7a1-b9d5-4e5d-b9d4-9eed39f00e65.jpg"); -// sites.setAccount("测试账号"); -// sites.setIcpNo("沪ICP备15027489号-2"); -// sites.setStatus("ONLINE"); -// model.setSites(sites); - - // 设置商户类别码 mcc - model.setMcc("B0007"); - - // 设置商户行业资质图片 - List qualifications = new ArrayList(); - IndustryQualificationInfo qualifications0 = new IndustryQualificationInfo(); - qualifications0.setIndustryQualificationImage("c6c0c7a1-b9d5-4e5d-b9d4-9eed39f00e65.jpg"); - qualifications0.setIndustryQualificationType("323"); - qualifications.add(qualifications0); - model.setQualifications(qualifications); - - // 设置补充证件号 - model.setAdditionalCertNo("9133010608210550XR"); - - // 设置补充证件类型 - model.setAdditionalCertType("201"); - - // 设置补充证件图片 - model.setAdditionalCertImage("c6c0c7a1-b9d5-4e5d-b9d4-9eed39f00e65.jpg"); - - // uid参数未来计划废弃,存量商户可继续使用,新商户请使用openid。请根据应用-开发配置-openid配置选择支持的字段。 - // model.setInfoSourceUid("2088111122223333"); - - // 设置(平替原来的info_source_uid字段 -// model.setInfoSourceOpenId("074a1CcTG1LelxKe4xQC0zgNdId0nxi95b5lsNpazWYoCo5"); - - // uid参数未来计划废弃,存量商户可继续使用,新商户请使用openid。请根据应用-开发配置-openid配置选择支持的字段。 - // model.setOverseaSettleAccount("2088111122223333"); - - // 设置(平替原来的oversea_settle_open_id字段 -// model.setOverseaSettleOpenId("074a1CcTG1LelxKe4xQC0zgNdId0nxi95b5lsNpazWYoCo5"); - - // 设置二级商户与服务商的签约时间 - model.setSignTimeWithIsv("2015-04-15"); - - // 设置代扣产品信息 - ZFTWithholdingInfo zftWithholdingInfo = new ZFTWithholdingInfo(); - zftWithholdingInfo.setWithholdingServiceFeatureName("GENERAL_WITHHOLDING_P"); - zftWithholdingInfo.setSignScene("DEFAULT"); - model.setZftWithholdingInfo(zftWithholdingInfo); - - // 设置交易场景 - List tradeScene = new ArrayList(); - tradeScene.add("TINY_APP"); - model.setTradeScene(tradeScene); - - request.setBizModel(model); - // 第三方代调用模式下请设置app_auth_token - // request.putOtherTextParam("app_auth_token", "<-- 请填写应用授权令牌 -->"); - - AntMerchantExpandIndirectZftSimplecreateResponse response = defaultAlipayClient.execute(request); - System.out.println(response.getBody()); - - if (response.isSuccess()) { - System.out.println("调用成功"); - } else { - System.out.println("调用失败"); - // sdk版本是"4.38.0.ALL"及以上,可以参考下面的示例获取诊断链接 - // String diagnosisUrl = DiagnosisUtils.getDiagnosisUrl(response); - // System.out.println(diagnosisUrl); - } - } - - private static AlipayConfig getAlipayConfig() { - String privateKey = "MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQD48HaUoV7OH7os+9L01kHgxzwIhJick4OkFq4aHsntsXEJ J3gedhuEZtV8oHKZ30DPW12IJ4S8NXtpr8OWaqrAPFonf4wVaRY1d0yIAea57kfLEn9oOEEy4FzARgMNDkyxC+/3OUdGbLHpTjfVX3gusXsEhUDy1/WewihAkoNYF37+W3W/uVLzeWoPq0EcUbRv/G/t/p6gL69ltsMAiVFG4Q/Yk24YAN6lYgBPNLXUEwQ1Q+T+1omjfavHgvarKOp33z3JOUH+aGOmDsJ5Y9gyGtJzOCipAd8Zcv+T1ygsEzZYO1/gzcbPnfO1ShqStCHzssuw8FBVx2JdfQKXKMMNAgMBAAECggEAVTrO/pg5Q00titU1Jspsh67u6OOs9H605Ws2dI7yB8VmtAGlaJh7V1t14FN2qSP8poHbhhAxq9aLyGV7C3a9u09udnN+3J28EtYjh7VO732bavWMVXxdJjQWzWWrCb9JlpxFrlkYBA6W4w/6ob0sAqCVQ7jzwbEa0R4cde8ztOa5nysKSfr4YTSs0gqvoiC6fmg8eiRJraEQBoYz9VkKFtOhhh/4w5FhVcYQ2gQvZ3kK3QVuD1eJIQKlCtz8qaox9lXKDiZT4SCmnKshdUL0u5TYIcYeBjZmhJz0Q50KHcpZrCs5y7I0+vRBH3hU+TKSQt7ureymwhbwWMHScLV2gQKBgQD+58SHXhr5M8NGagAmTdsgmCnNv2kOYMd4STyPMY10SVwCv1Bk808ZuP+7e558J1b5/OuDLI5dLq6xrZ/1wLv1G++XqxI00hlFuWS5mUGJVcXotT1mw20rVeUILc7Qe3mLvbMGgfyKf4A7Qa5SSZ4bDeDTJYaFxyiQ281hMzDuPQKBgQD6AiL/Na2/uPH4CG6juwpjYvYVUcjK+7gbRwf3wWsWMpk90Z4ju2iUiP5c1J/oK9P+1T3PIr6M4Xjza8JJj+r9KC/PVB0gBv6vVM96cDpKUEy/UMpcn/T81vqj/Z+WEOODU8Ms6NiTTm+u9ldvpCjbu0u8M+9c0JeIyadJvSTFEQKBgQCsxmFyM3nq8YfpgU2qqNjfBeRH3faSVUy+nj1a/YZYjKS+A/i1BCnYUImeBVNN6chNV342ggvY4xxruDiU9Vcw8wd58O09Oi8BEIFSP6upL6cebUI6Fjo3xlegLJRiwV6INkNTJOYM5hD/mSxUACwXQFfkJipBINXBIgraWD1RLQKBgQCj49axWq0F6+WjZVOyPaD3uh37p9trRUxRhWTxw3fB23WdktaKMgbCqHOmwzP4bRLSEVQtf2dOz1gMqu14b8HqJvgAf/F/11YJ9hz09LEhmjZVjE68HZfqT7uK2W5OX8/lfXmK7TFcj6SjG5YB96lZMhTZ0WnufEd6QkdKDZYXIQKBgQD9GDTcIMbFwbEaKHnfZaTD3f876EGRgsgrCxwdEk7LBCRPwWo7yI929M4psIlpNwNeiyjBkBunWIVkpznp6qPtJqagIPUYesU4f5v6/okq5wcpaNKSkWbIvWVLaLGOiA1aeGJtbpMpyClbSr52puHpRRdvAiIEQ74yYh0JX8q96g=="; - String alipayPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAiQkrz+emAuS1mB3KKDOMmAZRd/BlPbh7fAIHAqAj1+QCZNcV3o2BTLIIqnuKpSlFXDG3uDzp2VsBxcizXuBbFyPGylnD9CgCj5abyh3+FIHPAZ2IM3TtpqImZ0TSPGXrMli4Nir7MvZktgccCqQKCC4o6iaDGz+UwWwJUIPna8fm2tiTZ+KH150CZbKVj4ZGNpBh5XSV/1dRgyQIV9D/EwSbkZ0n6VgKQLJBi0C2UE3QB17aL1Ir6+gDXIDbknN8O7GUD3aMGdThYdSRUb5wp9CZ5qfV7vCS/CgaRo38nhH3NOzkTL+7v0m1ZDHPmqEkn9VzZN6sCQdL7PoAOjHOCwIDAQAB"; - AlipayConfig alipayConfig = new AlipayConfig(); - alipayConfig.setServerUrl("https://openapi.alipay.com/gateway.do"); - alipayConfig.setAppId("2021004174605036"); - alipayConfig.setPrivateKey(privateKey); - alipayConfig.setFormat("json"); - alipayConfig.setAlipayPublicKey(alipayPublicKey); - alipayConfig.setCharset("UTF-8"); - alipayConfig.setSignType("RSA2"); - return alipayConfig; - } - -} diff --git a/cash-sdk/aggregation-pay/src/main/java/com/czg/third/alipay/dto/config/AlipayConfigDto.java b/cash-sdk/aggregation-pay/src/main/java/com/czg/third/alipay/dto/config/AlipayConfigDto.java index d1ce39399..3e9e39da2 100644 --- a/cash-sdk/aggregation-pay/src/main/java/com/czg/third/alipay/dto/config/AlipayConfigDto.java +++ b/cash-sdk/aggregation-pay/src/main/java/com/czg/third/alipay/dto/config/AlipayConfigDto.java @@ -34,10 +34,15 @@ public class AlipayConfigDto { public static AlipayConfigDto getDefaultConfig() { return new AlipayConfigDto() - .setAppId("2021004174605036") - .setPrivateKey("MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQD48HaUoV7OH7os+9L01kHgxzwIhJick4OkFq4aHsntsXEJ J3gedhuEZtV8oHKZ30DPW12IJ4S8NXtpr8OWaqrAPFonf4wVaRY1d0yIAea57kfLEn9oOEEy4FzARgMNDkyxC+/3OUdGbLHpTjfVX3gusXsEhUDy1/WewihAkoNYF37+W3W/uVLzeWoPq0EcUbRv/G/t/p6gL69ltsMAiVFG4Q/Yk24YAN6lYgBPNLXUEwQ1Q+T+1omjfavHgvarKOp33z3JOUH+aGOmDsJ5Y9gyGtJzOCipAd8Zcv+T1ygsEzZYO1/gzcbPnfO1ShqStCHzssuw8FBVx2JdfQKXKMMNAgMBAAECggEAVTrO/pg5Q00titU1Jspsh67u6OOs9H605Ws2dI7yB8VmtAGlaJh7V1t14FN2qSP8poHbhhAxq9aLyGV7C3a9u09udnN+3J28EtYjh7VO732bavWMVXxdJjQWzWWrCb9JlpxFrlkYBA6W4w/6ob0sAqCVQ7jzwbEa0R4cde8ztOa5nysKSfr4YTSs0gqvoiC6fmg8eiRJraEQBoYz9VkKFtOhhh/4w5FhVcYQ2gQvZ3kK3QVuD1eJIQKlCtz8qaox9lXKDiZT4SCmnKshdUL0u5TYIcYeBjZmhJz0Q50KHcpZrCs5y7I0+vRBH3hU+TKSQt7ureymwhbwWMHScLV2gQKBgQD+58SHXhr5M8NGagAmTdsgmCnNv2kOYMd4STyPMY10SVwCv1Bk808ZuP+7e558J1b5/OuDLI5dLq6xrZ/1wLv1G++XqxI00hlFuWS5mUGJVcXotT1mw20rVeUILc7Qe3mLvbMGgfyKf4A7Qa5SSZ4bDeDTJYaFxyiQ281hMzDuPQKBgQD6AiL/Na2/uPH4CG6juwpjYvYVUcjK+7gbRwf3wWsWMpk90Z4ju2iUiP5c1J/oK9P+1T3PIr6M4Xjza8JJj+r9KC/PVB0gBv6vVM96cDpKUEy/UMpcn/T81vqj/Z+WEOODU8Ms6NiTTm+u9ldvpCjbu0u8M+9c0JeIyadJvSTFEQKBgQCsxmFyM3nq8YfpgU2qqNjfBeRH3faSVUy+nj1a/YZYjKS+A/i1BCnYUImeBVNN6chNV342ggvY4xxruDiU9Vcw8wd58O09Oi8BEIFSP6upL6cebUI6Fjo3xlegLJRiwV6INkNTJOYM5hD/mSxUACwXQFfkJipBINXBIgraWD1RLQKBgQCj49axWq0F6+WjZVOyPaD3uh37p9trRUxRhWTxw3fB23WdktaKMgbCqHOmwzP4bRLSEVQtf2dOz1gMqu14b8HqJvgAf/F/11YJ9hz09LEhmjZVjE68HZfqT7uK2W5OX8/lfXmK7TFcj6SjG5YB96lZMhTZ0WnufEd6QkdKDZYXIQKBgQD9GDTcIMbFwbEaKHnfZaTD3f876EGRgsgrCxwdEk7LBCRPwWo7yI929M4psIlpNwNeiyjBkBunWIVkpznp6qPtJqagIPUYesU4f5v6/okq5wcpaNKSkWbIvWVLaLGOiA1aeGJtbpMpyClbSr52puHpRRdvAiIEQ74yYh0JX8q96g==") + .setAppId("2021006121646825") + .setPrivateKey("MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCz3FkdffxZibdwis9W7eOW1dEjGAbSvRDL2ikfeCIW5KZNoIjUqxI0mIoUlLRRKO71QLHZS1Vb2aJp8jeOAqIPa8e76HTneQEzk3FGA8gpraSGvbadHWzvxnmYKsts1TBiEZQL82ySJXhQTJvZ6jyDM7s6wHHUnrH+Qi29QpppQ1sxsoJeCtajUgRg3btD6XbBcyFAX3pzM56Kw9eaIjZoD8WToZOM/Y3sqNL2uo8lLqcIpTrI7Pq5ZOspmBQ+t8v3rS9IdDZZMvd0trzS67AXwHz8rKPBT/lL1A4iHnXCHUvktusX1fPs3/RGY/a7PIddaBLnfY0GcueE16K7QcrXAgMBAAECggEAbSdT2eckp75BWoaTcGEs1tRqeM7TDT/6moyKmnOQ1K3tE31SrSYpBUxxuC3LBNo/sw2RIZtrcTOyMnPyLTgB3DP/4lUf5X51MTTQ8LnI1ypvh+pIki9Sdm3QS33lOOZk149tdpdDk6ozyx/DEcvq74EMpoo2SuAIi5LkKVDrXuehvGA/WeXtpmuPgqRFdIA+JBlA3knHk5XEQY/k2Y31gq5oCwNL9iT9OAZqVkukE6EnvCXE9t2rAV4/snYilaf/UaO+ktgEwSbPBQ8YKlovDAarMBbGtgr6E174A9djlPyR+W/fgx8rlTwSWtieb9MkO8LN3KSxgVs0kY5U8OHg8QKBgQDljJq9kTFHare+W/fAXdUy3tJprfNQCAii6s+GuDfTQiviVQDtWmdtHAN+xU3to7MepvVhwHsqtQnZXKTtZuwwxn82FNl7A5RYD3GVFW+wG6AsGLIdESrWxySoL6Kx8QmNpMEVg8acT/ywzW/RnUXS5vU7GIi8GA0vtyBo24R9KQKBgQDIlf/R9+iNk9oXlbB/k4um9eVvBBS7l5cx4E5Id5Dpp4kGZfPZEa7oDsEUstZZM9mgQLJK/noNWbcf0+BohCR5ux7SC12qIoxwN3k4BzTDqrS8BzFuVVp5PELUsf/uCbRn05iMzpiDUhj3Vde04wvjHYIobfKlZO2HeSWXCpUH/wKBgQC8wSuU6ck90pEY5QMKmZ3wYK1g3PsQOirv3Gmde+nbu7PePsuuYQJfBAQTwCZeXJezgtKP+PjOm2Nn6vhrhpB9YxvD2s0ijET1TG23i5L1myHQYNZFdJJnXgXUjqcX7v5ODMYA7QTqEBPXRnbGRK7fx66rU3dMQ/LD46+wyaFeUQKBgA4QTk53dkuu6SSsLyLSwoDjTsHY5Gc+urAZjQORtoxbXcUgEtfOYJgOqMT9wP+iHgkZYCbX7tDO0IMfxOUvFqueTgvmFhwergAUM6CVCMMLTf689l9JBr3nVrw4+rvC3G5HLLP6rEDQ2cVFtIkPPj8fS4fwJYopKGpOOS9843QbAoGBAMoHH8LqoZ50FLsospx/hJe24Cd8wCgQTXSa/hMqNZ1999JDhftMt7R0ZdB1he2LReACe0K9ntBU4H4u225zZ3wZlyOfoyerAHuLK/ysNlgIIzblZlOxbBJ64Kul8leXzlYy3tOZuZ997KqBcWPCE3LUBBNvM6E3blJUnlmJAVoi") .setAlipayPublicKey("MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAiQkrz+emAuS1mB3KKDOMmAZRd/BlPbh7fAIHAqAj1+QCZNcV3o2BTLIIqnuKpSlFXDG3uDzp2VsBxcizXuBbFyPGylnD9CgCj5abyh3+FIHPAZ2IM3TtpqImZ0TSPGXrMli4Nir7MvZktgccCqQKCC4o6iaDGz+UwWwJUIPna8fm2tiTZ+KH150CZbKVj4ZGNpBh5XSV/1dRgyQIV9D/EwSbkZ0n6VgKQLJBi0C2UE3QB17aL1Ir6+gDXIDbknN8O7GUD3aMGdThYdSRUb5wp9CZ5qfV7vCS/CgaRo38nhH3NOzkTL+7v0m1ZDHPmqEkn9VzZN6sCQdL7PoAOjHOCwIDAQAB") - .setDomain("https://openapi.alipay.com/gateway.do"); + .setDomain("https://openapi.alipay.com"); +// return new AlipayConfigDto() +// .setAppId("2021004174605036") +// .setPrivateKey("MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQD48HaUoV7OH7os+9L01kHgxzwIhJick4OkFq4aHsntsXEJ J3gedhuEZtV8oHKZ30DPW12IJ4S8NXtpr8OWaqrAPFonf4wVaRY1d0yIAea57kfLEn9oOEEy4FzARgMNDkyxC+/3OUdGbLHpTjfVX3gusXsEhUDy1/WewihAkoNYF37+W3W/uVLzeWoPq0EcUbRv/G/t/p6gL69ltsMAiVFG4Q/Yk24YAN6lYgBPNLXUEwQ1Q+T+1omjfavHgvarKOp33z3JOUH+aGOmDsJ5Y9gyGtJzOCipAd8Zcv+T1ygsEzZYO1/gzcbPnfO1ShqStCHzssuw8FBVx2JdfQKXKMMNAgMBAAECggEAVTrO/pg5Q00titU1Jspsh67u6OOs9H605Ws2dI7yB8VmtAGlaJh7V1t14FN2qSP8poHbhhAxq9aLyGV7C3a9u09udnN+3J28EtYjh7VO732bavWMVXxdJjQWzWWrCb9JlpxFrlkYBA6W4w/6ob0sAqCVQ7jzwbEa0R4cde8ztOa5nysKSfr4YTSs0gqvoiC6fmg8eiRJraEQBoYz9VkKFtOhhh/4w5FhVcYQ2gQvZ3kK3QVuD1eJIQKlCtz8qaox9lXKDiZT4SCmnKshdUL0u5TYIcYeBjZmhJz0Q50KHcpZrCs5y7I0+vRBH3hU+TKSQt7ureymwhbwWMHScLV2gQKBgQD+58SHXhr5M8NGagAmTdsgmCnNv2kOYMd4STyPMY10SVwCv1Bk808ZuP+7e558J1b5/OuDLI5dLq6xrZ/1wLv1G++XqxI00hlFuWS5mUGJVcXotT1mw20rVeUILc7Qe3mLvbMGgfyKf4A7Qa5SSZ4bDeDTJYaFxyiQ281hMzDuPQKBgQD6AiL/Na2/uPH4CG6juwpjYvYVUcjK+7gbRwf3wWsWMpk90Z4ju2iUiP5c1J/oK9P+1T3PIr6M4Xjza8JJj+r9KC/PVB0gBv6vVM96cDpKUEy/UMpcn/T81vqj/Z+WEOODU8Ms6NiTTm+u9ldvpCjbu0u8M+9c0JeIyadJvSTFEQKBgQCsxmFyM3nq8YfpgU2qqNjfBeRH3faSVUy+nj1a/YZYjKS+A/i1BCnYUImeBVNN6chNV342ggvY4xxruDiU9Vcw8wd58O09Oi8BEIFSP6upL6cebUI6Fjo3xlegLJRiwV6INkNTJOYM5hD/mSxUACwXQFfkJipBINXBIgraWD1RLQKBgQCj49axWq0F6+WjZVOyPaD3uh37p9trRUxRhWTxw3fB23WdktaKMgbCqHOmwzP4bRLSEVQtf2dOz1gMqu14b8HqJvgAf/F/11YJ9hz09LEhmjZVjE68HZfqT7uK2W5OX8/lfXmK7TFcj6SjG5YB96lZMhTZ0WnufEd6QkdKDZYXIQKBgQD9GDTcIMbFwbEaKHnfZaTD3f876EGRgsgrCxwdEk7LBCRPwWo7yI929M4psIlpNwNeiyjBkBunWIVkpznp6qPtJqagIPUYesU4f5v6/okq5wcpaNKSkWbIvWVLaLGOiA1aeGJtbpMpyClbSr52puHpRRdvAiIEQ74yYh0JX8q96g==") +// .setAlipayPublicKey("MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAiQkrz+emAuS1mB3KKDOMmAZRd/BlPbh7fAIHAqAj1+QCZNcV3o2BTLIIqnuKpSlFXDG3uDzp2VsBxcizXuBbFyPGylnD9CgCj5abyh3+FIHPAZ2IM3TtpqImZ0TSPGXrMli4Nir7MvZktgccCqQKCC4o6iaDGz+UwWwJUIPna8fm2tiTZ+KH150CZbKVj4ZGNpBh5XSV/1dRgyQIV9D/EwSbkZ0n6VgKQLJBi0C2UE3QB17aL1Ir6+gDXIDbknN8O7GUD3aMGdThYdSRUb5wp9CZ5qfV7vCS/CgaRo38nhH3NOzkTL+7v0m1ZDHPmqEkn9VzZN6sCQdL7PoAOjHOCwIDAQAB") +// .setDomain("https://openapi.alipay.com/gateway.do"); // return new AlipayConfigDto() // .setAppId("2021004145625815") // .setPrivateKey("MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCAjDBuS8K/IJb9ui+KuNm/sTUdEiaji4BNpZ92avO1N5JpNlGmac6ec4p3tNFT950sBLcQkClcUpQxUHQzAT6DYNNXOKyvfI/EmcqwCw6PaMNLs/8cV//J2WWZBUhLaOsjKurpm9/3W5MnTh4BGxIfBoeBMA8f8K3BgKdmyKtvIEV2h2cyjsMskdn+g6oNZcmWcms0pvpPHyH46mRaGFhpp0v19wX3WsamGldh1L2VntmaDN3C2XbSrXv90XYp5bEUqwTbLwXpMAlzTibF56d/iqv9oYi8cpAKougUFLOymnbutLNs2tLrEDSFwHcmG2/wbZHybZyYcIgFgv4arf+tAgMBAAECggEAf7hKKlw1y6Z6vvAtalxNZUuRZSfyog3p1bwYWxTavZPQcZ7Zs0lvVDmiO1u5m/7q96BbryY9IhCeUv0H5uF2lhwu/3s9AEL3qTPQkeb6eXxyhhX6A9RfPdM1Qbtg4CQHdHKg4qjP9znSVHwmDZ0y/QaEvdPdQzPjv92u9c2tn4N4x6XyBYcU5gzxiJNnIugCmBgcJo/3H2fgV+XXEhORPvy5of9b4oATHEaLS/8dAS2wuOjhzaGS4MXp3VkXn3XaYjwSzaL03qYWA+xm+aO5sJv8bmqZW7sNVck5o3sPo7cQ4VkBFVzyrRdmJcxcSRJ9MsB9JsrhoKI8pgaXrVie4QKBgQDU2vai0lpBIK/0jzRpPNoqdT8lnafnnWni8nU4kfAh+gCLi+HBPhQRT0kv4unQc2q2/gALE7sgZVO00JGY5a3R0orsojPoUSZlpypGW7GGqKy576NHn0nw4o/PdfysT92VWgt1hlfTf6qfCDhfE9APU+RGvlSWXcT8nxVel3iUaQKBgQCamoJN6+4v+chJvL2nqV8NVVRLp0vDIHxs1QOtKwUodx8Qp1D6CJYtavCXn8aNUFVNQJPJ7TQPpJjXP2rI4SN01weDwx+I+wh8PBGHV6/234R+6TvFgY1PrYgCdfNP4i/E7B4uyEhAxdU73PB8qkqRAeJGok05p7oG71KCOBiYpQKBgEZfGflcuDAeAW5GRhqg3rP4zWa/R7qgZVh9tll8jjp9b96y4XFE99d9MgId8BVVgyt6sEL5Q/2C4ni+F9TH4n6jMADp42VkJuCmsqhOOlP9whU67+2G8Sgtj0QUivPg964f9ffl8XVgGOW5DwIIB9p5btggptCLscufQK5kP545AoGADBvf6tR4wl8w9b2HqTMV08iEIqzGvVC1Dh0c/Zop/EJgN4CzUfIMOSBwGaAVAApzs+pD6QPgGP2OTwWTioo/qa4R05sbxDHNN1XJFa2jhZV6HiqMWOrNs5jm1zJ/zRjtHuJTdtyO9CvKiLbESy9XScY4/8lEfSiK5HIoJzTXkFUCgYAkYkvkW6psJpWj05XWq44UN0n6QOU/Igl35Um/iuOMVhsTmIt09STQVTuzJzfH82+sCqoRsD1blE5unKNUC1DK77aNKTv3Z0dxN9R7FAyfZRiYQXTrbBPBqWjay6FCNxn8e8UsJN4Z6FIV2LGlQI114krSap1MALKLVvnld0NaUQ==") 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 0b320481e..a656b42f8 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 @@ -42,15 +42,15 @@ public class WechatEntryManager { * 查询商户进件状态 * * @param configDto 配置信息 - * @param merchantCode 自系统的商户编号 + * @param applyId 自系统的商户编号 * @return 进件状态 */ - public static QueryStatusResp queryMerchantEntryStatus(WechatPayConfigDto configDto, String merchantCode) { + public static QueryStatusResp queryMerchantEntryStatus(WechatPayConfigDto configDto, String applyId) { QueryStatusResp queryStatusResp = new QueryStatusResp(); queryStatusResp.setPlatform(PayCst.Platform.WECHAT); - queryStatusResp.setMerchantCode(merchantCode); + queryStatusResp.setMerchantCode(applyId); - String resp = WechatReqUtils.getReq(configDto, "/v3/applyment4sub/applyment/business_code/" + merchantCode, Map.of()); + String resp = WechatReqUtils.getReq(configDto, "/v3/applyment4sub/applyment/applyment_id/" + applyId, Map.of()); JSONObject object = JSONObject.parseObject(resp); JSONObject data = object.getJSONObject("data"); if (data == null) { diff --git a/cash-sdk/aggregation-pay/src/main/java/com/czg/utils/UploadFileUtil.java b/cash-sdk/aggregation-pay/src/main/java/com/czg/utils/UploadFileUtil.java index b8b61121d..485436290 100644 --- a/cash-sdk/aggregation-pay/src/main/java/com/czg/utils/UploadFileUtil.java +++ b/cash-sdk/aggregation-pay/src/main/java/com/czg/utils/UploadFileUtil.java @@ -2,10 +2,14 @@ package com.czg.utils; import lombok.extern.slf4j.Slf4j; +import java.io.File; +import java.io.IOException; import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; +import java.nio.file.Files; +import java.nio.file.Path; import java.util.regex.Pattern; /** @@ -33,6 +37,21 @@ public class UploadFileUtil { return "png"; } + /** + * 根据图片URL获取图片文件 + * + * @param url 图片URL + * @return 图片文件 + */ + public static File getFileByUrl(String url) throws IOException { + byte[] bytes = downloadImage(url); + + Path tempFile = Files.createTempFile("image_", "." + extractImageExtension(url)); + Files.write(tempFile, bytes); + + return tempFile.toFile(); + } + /** * 下载图片 * @param url 图片地址