From a1a19a3c110e8c7819cd9b620e970baaf4b7ca8b Mon Sep 17 00:00:00 2001 From: thinkerchi Date: Wed, 23 Aug 2023 11:06:34 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=94=B5=E5=95=86?= =?UTF-8?q?=E6=94=B6=E4=BB=98=E9=80=9A=E8=A1=A5=E5=B7=AESDK?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- service/README.md | 1 + .../EcommerceSubsidyService.java | 171 ++++++++++++++++++ .../ecommercesubsidy/model/CancelStatus.java | 23 +++ .../ecommercesubsidy/model/CreateStatus.java | 26 +++ .../ecommercesubsidy/model/ReturnAccount.java | 23 +++ .../ecommercesubsidy/model/ReturnFrom.java | 52 ++++++ .../ecommercesubsidy/model/ReturnStatus.java | 23 +++ .../model/SubsidiesCancelEntity.java | 76 ++++++++ .../model/SubsidiesCancelRequest.java | 64 +++++++ .../model/SubsidiesCreateEntity.java | 124 +++++++++++++ .../model/SubsidiesCreateRequest.java | 88 +++++++++ .../model/SubsidiesReturnEntity.java | 161 +++++++++++++++++ .../model/SubsidiesReturnRequest.java | 128 +++++++++++++ .../ecommercesubsidy/package-info.java | 2 + 14 files changed, 962 insertions(+) create mode 100644 service/src/main/java/com/wechat/pay/java/service/ecommercesubsidy/EcommerceSubsidyService.java create mode 100644 service/src/main/java/com/wechat/pay/java/service/ecommercesubsidy/model/CancelStatus.java create mode 100644 service/src/main/java/com/wechat/pay/java/service/ecommercesubsidy/model/CreateStatus.java create mode 100644 service/src/main/java/com/wechat/pay/java/service/ecommercesubsidy/model/ReturnAccount.java create mode 100644 service/src/main/java/com/wechat/pay/java/service/ecommercesubsidy/model/ReturnFrom.java create mode 100644 service/src/main/java/com/wechat/pay/java/service/ecommercesubsidy/model/ReturnStatus.java create mode 100644 service/src/main/java/com/wechat/pay/java/service/ecommercesubsidy/model/SubsidiesCancelEntity.java create mode 100644 service/src/main/java/com/wechat/pay/java/service/ecommercesubsidy/model/SubsidiesCancelRequest.java create mode 100644 service/src/main/java/com/wechat/pay/java/service/ecommercesubsidy/model/SubsidiesCreateEntity.java create mode 100644 service/src/main/java/com/wechat/pay/java/service/ecommercesubsidy/model/SubsidiesCreateRequest.java create mode 100644 service/src/main/java/com/wechat/pay/java/service/ecommercesubsidy/model/SubsidiesReturnEntity.java create mode 100644 service/src/main/java/com/wechat/pay/java/service/ecommercesubsidy/model/SubsidiesReturnRequest.java create mode 100644 service/src/main/java/com/wechat/pay/java/service/ecommercesubsidy/package-info.java diff --git a/service/README.md b/service/README.md index 3de2957d..7181a377 100644 --- a/service/README.md +++ b/service/README.md @@ -29,3 +29,4 @@ | ecommerceprofitsharing | 电商收付通分账 |✔️|✔️| | profitsharing | 分账 |✔️|✔️| | billdownload | 账单下载 |✔️|✔️| +| ecommercesubsidy | 电商收付通补差 | | | diff --git a/service/src/main/java/com/wechat/pay/java/service/ecommercesubsidy/EcommerceSubsidyService.java b/service/src/main/java/com/wechat/pay/java/service/ecommercesubsidy/EcommerceSubsidyService.java new file mode 100644 index 00000000..9590ecc6 --- /dev/null +++ b/service/src/main/java/com/wechat/pay/java/service/ecommercesubsidy/EcommerceSubsidyService.java @@ -0,0 +1,171 @@ +// Copyright 2021 Tencent Inc. All rights reserved. +// +// 微信支付平台补差API +// +// 微信支付平台补差API +// +// API version: 0.1.3 + +// Code generated by WechatPay APIv3 Generator based on [OpenAPI +// Generator](https://openapi-generator.tech); DO NOT EDIT. + +package com.wechat.pay.java.service.ecommercesubsidy; + +import static com.wechat.pay.java.core.util.GsonUtil.toJson; +import static java.util.Objects.requireNonNull; + +import com.wechat.pay.java.core.Config; +import com.wechat.pay.java.core.exception.HttpException; +import com.wechat.pay.java.core.exception.MalformedMessageException; +import com.wechat.pay.java.core.exception.ServiceException; +import com.wechat.pay.java.core.exception.ValidationException; +import com.wechat.pay.java.core.http.Constant; +import com.wechat.pay.java.core.http.DefaultHttpClientBuilder; +import com.wechat.pay.java.core.http.HostName; +import com.wechat.pay.java.core.http.HttpClient; +import com.wechat.pay.java.core.http.HttpHeaders; +import com.wechat.pay.java.core.http.HttpMethod; +import com.wechat.pay.java.core.http.HttpRequest; +import com.wechat.pay.java.core.http.HttpResponse; +import com.wechat.pay.java.core.http.JsonRequestBody; +import com.wechat.pay.java.core.http.MediaType; +import com.wechat.pay.java.core.http.RequestBody; +import com.wechat.pay.java.service.ecommercesubsidy.model.SubsidiesCancelEntity; +import com.wechat.pay.java.service.ecommercesubsidy.model.SubsidiesCancelRequest; +import com.wechat.pay.java.service.ecommercesubsidy.model.SubsidiesCreateEntity; +import com.wechat.pay.java.service.ecommercesubsidy.model.SubsidiesCreateRequest; +import com.wechat.pay.java.service.ecommercesubsidy.model.SubsidiesReturnEntity; +import com.wechat.pay.java.service.ecommercesubsidy.model.SubsidiesReturnRequest; + +/** EcommerceSubsidyService服务 */ +public class EcommerceSubsidyService { + + private final HttpClient httpClient; + private final HostName hostName; + + private EcommerceSubsidyService(HttpClient httpClient, HostName hostName) { + this.httpClient = requireNonNull(httpClient); + this.hostName = hostName; + } + /** EcommerceSubsidyService构造器 */ + public static class Builder { + + private HttpClient httpClient; + private HostName hostName; + + public Builder config(Config config) { + this.httpClient = new DefaultHttpClientBuilder().config(config).build(); + + return this; + } + + public Builder hostName(HostName hostName) { + this.hostName = hostName; + return this; + } + + public Builder httpClient(HttpClient httpClient) { + this.httpClient = httpClient; + return this; + } + + public EcommerceSubsidyService build() { + return new EcommerceSubsidyService(httpClient, hostName); + } + } + + /** + * 取消补差 + * + * @param request 请求参数 + * @return SubsidiesCancelEntity + * @throws HttpException 发送HTTP请求失败。例如构建请求参数失败、发送请求失败、I/O错误等。包含请求信息。 + * @throws ValidationException 发送HTTP请求成功,验证微信支付返回签名失败。 + * @throws ServiceException 发送HTTP请求成功,服务返回异常。例如返回状态码小于200或大于等于300。 + * @throws MalformedMessageException 服务返回成功,content-type不为application/json、解析返回体失败。 + */ + public SubsidiesCancelEntity cancelSubsidy(SubsidiesCancelRequest request) { + String requestPath = "https://api.mch.weixin.qq.com/v3/ecommerce/subsidies/cancel"; + SubsidiesCancelRequest realRequest = request; + if (this.hostName != null) { + requestPath = requestPath.replaceFirst(HostName.API.getValue(), hostName.getValue()); + } + HttpHeaders headers = new HttpHeaders(); + headers.addHeader(Constant.ACCEPT, MediaType.APPLICATION_JSON.getValue()); + headers.addHeader(Constant.CONTENT_TYPE, MediaType.APPLICATION_JSON.getValue()); + HttpRequest httpRequest = + new HttpRequest.Builder() + .httpMethod(HttpMethod.POST) + .url(requestPath) + .headers(headers) + .body(createRequestBody(realRequest)) + .build(); + HttpResponse httpResponse = + httpClient.execute(httpRequest, SubsidiesCancelEntity.class); + return httpResponse.getServiceResponse(); + } + /** + * 请求补差 + * + * @param request 请求参数 + * @return SubsidiesCreateEntity + * @throws HttpException 发送HTTP请求失败。例如构建请求参数失败、发送请求失败、I/O错误等。包含请求信息。 + * @throws ValidationException 发送HTTP请求成功,验证微信支付返回签名失败。 + * @throws ServiceException 发送HTTP请求成功,服务返回异常。例如返回状态码小于200或大于等于300。 + * @throws MalformedMessageException 服务返回成功,content-type不为application/json、解析返回体失败。 + */ + public SubsidiesCreateEntity createSubsidy(SubsidiesCreateRequest request) { + String requestPath = "https://api.mch.weixin.qq.com/v3/ecommerce/subsidies/create"; + SubsidiesCreateRequest realRequest = request; + if (this.hostName != null) { + requestPath = requestPath.replaceFirst(HostName.API.getValue(), hostName.getValue()); + } + HttpHeaders headers = new HttpHeaders(); + headers.addHeader(Constant.ACCEPT, MediaType.APPLICATION_JSON.getValue()); + headers.addHeader(Constant.CONTENT_TYPE, MediaType.APPLICATION_JSON.getValue()); + HttpRequest httpRequest = + new HttpRequest.Builder() + .httpMethod(HttpMethod.POST) + .url(requestPath) + .headers(headers) + .body(createRequestBody(realRequest)) + .build(); + HttpResponse httpResponse = + httpClient.execute(httpRequest, SubsidiesCreateEntity.class); + return httpResponse.getServiceResponse(); + } + /** + * 请求补差回退 + * + * @param request 请求参数 + * @return SubsidiesReturnEntity + * @throws HttpException 发送HTTP请求失败。例如构建请求参数失败、发送请求失败、I/O错误等。包含请求信息。 + * @throws ValidationException 发送HTTP请求成功,验证微信支付返回签名失败。 + * @throws ServiceException 发送HTTP请求成功,服务返回异常。例如返回状态码小于200或大于等于300。 + * @throws MalformedMessageException 服务返回成功,content-type不为application/json、解析返回体失败。 + */ + public SubsidiesReturnEntity returnSubsidy(SubsidiesReturnRequest request) { + String requestPath = "https://api.mch.weixin.qq.com/v3/ecommerce/subsidies/return"; + SubsidiesReturnRequest realRequest = request; + if (this.hostName != null) { + requestPath = requestPath.replaceFirst(HostName.API.getValue(), hostName.getValue()); + } + HttpHeaders headers = new HttpHeaders(); + headers.addHeader(Constant.ACCEPT, MediaType.APPLICATION_JSON.getValue()); + headers.addHeader(Constant.CONTENT_TYPE, MediaType.APPLICATION_JSON.getValue()); + HttpRequest httpRequest = + new HttpRequest.Builder() + .httpMethod(HttpMethod.POST) + .url(requestPath) + .headers(headers) + .body(createRequestBody(realRequest)) + .build(); + HttpResponse httpResponse = + httpClient.execute(httpRequest, SubsidiesReturnEntity.class); + return httpResponse.getServiceResponse(); + } + + private RequestBody createRequestBody(Object request) { + return new JsonRequestBody.Builder().body(toJson(request)).build(); + } +} diff --git a/service/src/main/java/com/wechat/pay/java/service/ecommercesubsidy/model/CancelStatus.java b/service/src/main/java/com/wechat/pay/java/service/ecommercesubsidy/model/CancelStatus.java new file mode 100644 index 00000000..af377f9c --- /dev/null +++ b/service/src/main/java/com/wechat/pay/java/service/ecommercesubsidy/model/CancelStatus.java @@ -0,0 +1,23 @@ +// Copyright 2021 Tencent Inc. All rights reserved. +// +// 微信支付平台补差API +// +// 微信支付平台补差API +// +// API version: 0.1.3 + +// Code generated by WechatPay APIv3 Generator based on [OpenAPI +// Generator](https://openapi-generator.tech); DO NOT EDIT. + +package com.wechat.pay.java.service.ecommercesubsidy.model; + +import com.google.gson.annotations.SerializedName; + +/** CancelStatus */ +public enum CancelStatus { + @SerializedName("SUCCESS") + SUCCESS, + + @SerializedName("FAIL") + FAIL +} diff --git a/service/src/main/java/com/wechat/pay/java/service/ecommercesubsidy/model/CreateStatus.java b/service/src/main/java/com/wechat/pay/java/service/ecommercesubsidy/model/CreateStatus.java new file mode 100644 index 00000000..b35f27c4 --- /dev/null +++ b/service/src/main/java/com/wechat/pay/java/service/ecommercesubsidy/model/CreateStatus.java @@ -0,0 +1,26 @@ +// Copyright 2021 Tencent Inc. All rights reserved. +// +// 微信支付平台补差API +// +// 微信支付平台补差API +// +// API version: 0.1.3 + +// Code generated by WechatPay APIv3 Generator based on [OpenAPI +// Generator](https://openapi-generator.tech); DO NOT EDIT. + +package com.wechat.pay.java.service.ecommercesubsidy.model; + +import com.google.gson.annotations.SerializedName; + +/** CreateStatus */ +public enum CreateStatus { + @SerializedName("SUCCESS") + SUCCESS, + + @SerializedName("FAIL") + FAIL, + + @SerializedName("REFUND") + REFUND +} diff --git a/service/src/main/java/com/wechat/pay/java/service/ecommercesubsidy/model/ReturnAccount.java b/service/src/main/java/com/wechat/pay/java/service/ecommercesubsidy/model/ReturnAccount.java new file mode 100644 index 00000000..8578d8eb --- /dev/null +++ b/service/src/main/java/com/wechat/pay/java/service/ecommercesubsidy/model/ReturnAccount.java @@ -0,0 +1,23 @@ +// Copyright 2021 Tencent Inc. All rights reserved. +// +// 微信支付平台补差API +// +// 微信支付平台补差API +// +// API version: 0.1.3 + +// Code generated by WechatPay APIv3 Generator based on [OpenAPI +// Generator](https://openapi-generator.tech); DO NOT EDIT. + +package com.wechat.pay.java.service.ecommercesubsidy.model; + +import com.google.gson.annotations.SerializedName; + +/** ReturnAccount */ +public enum ReturnAccount { + @SerializedName("AVAILABLE") + AVAILABLE, + + @SerializedName("UNAVAILABLE") + UNAVAILABLE +} diff --git a/service/src/main/java/com/wechat/pay/java/service/ecommercesubsidy/model/ReturnFrom.java b/service/src/main/java/com/wechat/pay/java/service/ecommercesubsidy/model/ReturnFrom.java new file mode 100644 index 00000000..e92e845f --- /dev/null +++ b/service/src/main/java/com/wechat/pay/java/service/ecommercesubsidy/model/ReturnFrom.java @@ -0,0 +1,52 @@ +// Copyright 2021 Tencent Inc. All rights reserved. +// +// 微信支付平台补差API +// +// 微信支付平台补差API +// +// API version: 0.1.3 + +// Code generated by WechatPay APIv3 Generator based on [OpenAPI +// Generator](https://openapi-generator.tech); DO NOT EDIT. + +package com.wechat.pay.java.service.ecommercesubsidy.model; + +import static com.wechat.pay.java.core.util.StringUtil.toIndentedString; + +import com.google.gson.annotations.SerializedName; + +/** ReturnFrom */ +public class ReturnFrom { + /** 出资账户类型 说明:下面枚举值多选一。 枚举值: AVAILABLE : 可用余额 UNAVAILABLE : 不可用余额 */ + @SerializedName("account") + private ReturnAccount account; + /** 出资金额 说明:对应账户出资金额 */ + @SerializedName("amount") + private Long amount; + + public ReturnAccount getAccount() { + return account; + } + + public void setAccount(ReturnAccount account) { + this.account = account; + } + + public Long getAmount() { + return amount; + } + + public void setAmount(Long amount) { + this.amount = amount; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ReturnFrom {\n"); + sb.append(" account: ").append(toIndentedString(account)).append("\n"); + sb.append(" amount: ").append(toIndentedString(amount)).append("\n"); + sb.append("}"); + return sb.toString(); + } +} diff --git a/service/src/main/java/com/wechat/pay/java/service/ecommercesubsidy/model/ReturnStatus.java b/service/src/main/java/com/wechat/pay/java/service/ecommercesubsidy/model/ReturnStatus.java new file mode 100644 index 00000000..d2a4bd1d --- /dev/null +++ b/service/src/main/java/com/wechat/pay/java/service/ecommercesubsidy/model/ReturnStatus.java @@ -0,0 +1,23 @@ +// Copyright 2021 Tencent Inc. All rights reserved. +// +// 微信支付平台补差API +// +// 微信支付平台补差API +// +// API version: 0.1.3 + +// Code generated by WechatPay APIv3 Generator based on [OpenAPI +// Generator](https://openapi-generator.tech); DO NOT EDIT. + +package com.wechat.pay.java.service.ecommercesubsidy.model; + +import com.google.gson.annotations.SerializedName; + +/** ReturnStatus */ +public enum ReturnStatus { + @SerializedName("SUCCESS") + SUCCESS, + + @SerializedName("FAIL") + FAIL +} diff --git a/service/src/main/java/com/wechat/pay/java/service/ecommercesubsidy/model/SubsidiesCancelEntity.java b/service/src/main/java/com/wechat/pay/java/service/ecommercesubsidy/model/SubsidiesCancelEntity.java new file mode 100644 index 00000000..a1814bcc --- /dev/null +++ b/service/src/main/java/com/wechat/pay/java/service/ecommercesubsidy/model/SubsidiesCancelEntity.java @@ -0,0 +1,76 @@ +// Copyright 2021 Tencent Inc. All rights reserved. +// +// 微信支付平台补差API +// +// 微信支付平台补差API +// +// API version: 0.1.3 + +// Code generated by WechatPay APIv3 Generator based on [OpenAPI +// Generator](https://openapi-generator.tech); DO NOT EDIT. + +package com.wechat.pay.java.service.ecommercesubsidy.model; + +import static com.wechat.pay.java.core.util.StringUtil.toIndentedString; + +import com.google.gson.annotations.SerializedName; + +/** SubsidiesCancelEntity */ +public class SubsidiesCancelEntity { + /** 电商平台二级商户号 说明:补差的电商平台二级商户,填写微信支付分配的商户号 */ + @SerializedName("sub_mchid") + private String subMchid; + /** 微信订单号 说明:微信支付订单号 */ + @SerializedName("transaction_id") + private String transactionId; + /** 取消补差结果 说明:取消补差结果 */ + @SerializedName("result") + private CancelStatus result; + /** 取消补差描述 说明:取消补差描述 */ + @SerializedName("description") + private String description; + + public String getSubMchid() { + return subMchid; + } + + public void setSubMchid(String subMchid) { + this.subMchid = subMchid; + } + + public String getTransactionId() { + return transactionId; + } + + public void setTransactionId(String transactionId) { + this.transactionId = transactionId; + } + + public CancelStatus getResult() { + return result; + } + + public void setResult(CancelStatus result) { + this.result = result; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SubsidiesCancelEntity {\n"); + sb.append(" subMchid: ").append(toIndentedString(subMchid)).append("\n"); + sb.append(" transactionId: ").append(toIndentedString(transactionId)).append("\n"); + sb.append(" result: ").append(toIndentedString(result)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append("}"); + return sb.toString(); + } +} diff --git a/service/src/main/java/com/wechat/pay/java/service/ecommercesubsidy/model/SubsidiesCancelRequest.java b/service/src/main/java/com/wechat/pay/java/service/ecommercesubsidy/model/SubsidiesCancelRequest.java new file mode 100644 index 00000000..d301a514 --- /dev/null +++ b/service/src/main/java/com/wechat/pay/java/service/ecommercesubsidy/model/SubsidiesCancelRequest.java @@ -0,0 +1,64 @@ +// Copyright 2021 Tencent Inc. All rights reserved. +// +// 微信支付平台补差API +// +// 微信支付平台补差API +// +// API version: 0.1.3 + +// Code generated by WechatPay APIv3 Generator based on [OpenAPI +// Generator](https://openapi-generator.tech); DO NOT EDIT. + +package com.wechat.pay.java.service.ecommercesubsidy.model; + +import static com.wechat.pay.java.core.util.StringUtil.toIndentedString; + +import com.google.gson.annotations.SerializedName; + +/** SubsidiesCancelRequest */ +public class SubsidiesCancelRequest { + /** 电商平台二级商户号 说明:补差的电商平台二级商户,填写微信支付分配的商户号 */ + @SerializedName("sub_mchid") + private String subMchid; + /** 微信订单号 说明:微信支付订单号 */ + @SerializedName("transaction_id") + private String transactionId; + /** 取消补差描述 说明:取消补差描述,查询的时候原样带回来 */ + @SerializedName("description") + private String description; + + public String getSubMchid() { + return subMchid; + } + + public void setSubMchid(String subMchid) { + this.subMchid = subMchid; + } + + public String getTransactionId() { + return transactionId; + } + + public void setTransactionId(String transactionId) { + this.transactionId = transactionId; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SubsidiesCancelRequest {\n"); + sb.append(" subMchid: ").append(toIndentedString(subMchid)).append("\n"); + sb.append(" transactionId: ").append(toIndentedString(transactionId)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append("}"); + return sb.toString(); + } +} diff --git a/service/src/main/java/com/wechat/pay/java/service/ecommercesubsidy/model/SubsidiesCreateEntity.java b/service/src/main/java/com/wechat/pay/java/service/ecommercesubsidy/model/SubsidiesCreateEntity.java new file mode 100644 index 00000000..406ec75b --- /dev/null +++ b/service/src/main/java/com/wechat/pay/java/service/ecommercesubsidy/model/SubsidiesCreateEntity.java @@ -0,0 +1,124 @@ +// Copyright 2021 Tencent Inc. All rights reserved. +// +// 微信支付平台补差API +// +// 微信支付平台补差API +// +// API version: 0.1.3 + +// Code generated by WechatPay APIv3 Generator based on [OpenAPI +// Generator](https://openapi-generator.tech); DO NOT EDIT. + +package com.wechat.pay.java.service.ecommercesubsidy.model; + +import static com.wechat.pay.java.core.util.StringUtil.toIndentedString; + +import com.google.gson.annotations.SerializedName; + +/** SubsidiesCreateEntity */ +public class SubsidiesCreateEntity { + /** 电商平台二级商户号 说明:补差的电商平台二级商户,填写微信支付分配的商户号 */ + @SerializedName("sub_mchid") + private String subMchid; + /** 微信订单号 说明:微信支付订单号 */ + @SerializedName("transaction_id") + private String transactionId; + /** 微信补差单号 说明:微信补差单号,微信系统返回的唯一标识 */ + @SerializedName("subsidy_id") + private String subsidyId; + /** 补差描述 说明:补差描述 */ + @SerializedName("description") + private String description; + /** 补差金额 说明:补差金额 */ + @SerializedName("amount") + private Long amount; + /** 补差单结果 说明:补差单结果 */ + @SerializedName("result") + private CreateStatus result; + /** 补差完成时间 说明:补差完成时间,遵循RFC3339标准格式 */ + @SerializedName("success_time") + private String successTime; + /** 商户补差单号 说明:商户系统内部的补差单号,在商户系统内部唯一,同一补差单号多次请求等同一次。只能是数字、大小写字母_-|*@ */ + @SerializedName("out_subsidy_no") + private String outSubsidyNo; + + public String getSubMchid() { + return subMchid; + } + + public void setSubMchid(String subMchid) { + this.subMchid = subMchid; + } + + public String getTransactionId() { + return transactionId; + } + + public void setTransactionId(String transactionId) { + this.transactionId = transactionId; + } + + public String getSubsidyId() { + return subsidyId; + } + + public void setSubsidyId(String subsidyId) { + this.subsidyId = subsidyId; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Long getAmount() { + return amount; + } + + public void setAmount(Long amount) { + this.amount = amount; + } + + public CreateStatus getResult() { + return result; + } + + public void setResult(CreateStatus result) { + this.result = result; + } + + public String getSuccessTime() { + return successTime; + } + + public void setSuccessTime(String successTime) { + this.successTime = successTime; + } + + public String getOutSubsidyNo() { + return outSubsidyNo; + } + + public void setOutSubsidyNo(String outSubsidyNo) { + this.outSubsidyNo = outSubsidyNo; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SubsidiesCreateEntity {\n"); + sb.append(" subMchid: ").append(toIndentedString(subMchid)).append("\n"); + sb.append(" transactionId: ").append(toIndentedString(transactionId)).append("\n"); + sb.append(" subsidyId: ").append(toIndentedString(subsidyId)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" amount: ").append(toIndentedString(amount)).append("\n"); + sb.append(" result: ").append(toIndentedString(result)).append("\n"); + sb.append(" successTime: ").append(toIndentedString(successTime)).append("\n"); + sb.append(" outSubsidyNo: ").append(toIndentedString(outSubsidyNo)).append("\n"); + sb.append("}"); + return sb.toString(); + } +} diff --git a/service/src/main/java/com/wechat/pay/java/service/ecommercesubsidy/model/SubsidiesCreateRequest.java b/service/src/main/java/com/wechat/pay/java/service/ecommercesubsidy/model/SubsidiesCreateRequest.java new file mode 100644 index 00000000..8ebb67f3 --- /dev/null +++ b/service/src/main/java/com/wechat/pay/java/service/ecommercesubsidy/model/SubsidiesCreateRequest.java @@ -0,0 +1,88 @@ +// Copyright 2021 Tencent Inc. All rights reserved. +// +// 微信支付平台补差API +// +// 微信支付平台补差API +// +// API version: 0.1.3 + +// Code generated by WechatPay APIv3 Generator based on [OpenAPI +// Generator](https://openapi-generator.tech); DO NOT EDIT. + +package com.wechat.pay.java.service.ecommercesubsidy.model; + +import static com.wechat.pay.java.core.util.StringUtil.toIndentedString; + +import com.google.gson.annotations.SerializedName; + +/** SubsidiesCreateRequest */ +public class SubsidiesCreateRequest { + /** 电商平台二级商户号 说明:补差的电商平台二级商户,填写微信支付分配的商户号 */ + @SerializedName("sub_mchid") + private String subMchid; + /** 微信订单号 说明:微信支付订单号 */ + @SerializedName("transaction_id") + private String transactionId; + /** 补差金额 说明:补差金额,单位为分,只能为整数,不能超过下单时候的最大补差金额 */ + @SerializedName("amount") + private Long amount; + /** 补差描述 说明:补差备注描述,查询的时候原样带回来 */ + @SerializedName("description") + private String description; + /** 商户补差单号 说明:商户系统内部的补差单号,在商户系统内部唯一,同一补差单号多次请求等同一次。只能是数字、大小写字母_-|*@ */ + @SerializedName("out_subsidy_no") + private String outSubsidyNo; + + public String getSubMchid() { + return subMchid; + } + + public void setSubMchid(String subMchid) { + this.subMchid = subMchid; + } + + public String getTransactionId() { + return transactionId; + } + + public void setTransactionId(String transactionId) { + this.transactionId = transactionId; + } + + public Long getAmount() { + return amount; + } + + public void setAmount(Long amount) { + this.amount = amount; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getOutSubsidyNo() { + return outSubsidyNo; + } + + public void setOutSubsidyNo(String outSubsidyNo) { + this.outSubsidyNo = outSubsidyNo; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SubsidiesCreateRequest {\n"); + sb.append(" subMchid: ").append(toIndentedString(subMchid)).append("\n"); + sb.append(" transactionId: ").append(toIndentedString(transactionId)).append("\n"); + sb.append(" amount: ").append(toIndentedString(amount)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" outSubsidyNo: ").append(toIndentedString(outSubsidyNo)).append("\n"); + sb.append("}"); + return sb.toString(); + } +} diff --git a/service/src/main/java/com/wechat/pay/java/service/ecommercesubsidy/model/SubsidiesReturnEntity.java b/service/src/main/java/com/wechat/pay/java/service/ecommercesubsidy/model/SubsidiesReturnEntity.java new file mode 100644 index 00000000..abb50b53 --- /dev/null +++ b/service/src/main/java/com/wechat/pay/java/service/ecommercesubsidy/model/SubsidiesReturnEntity.java @@ -0,0 +1,161 @@ +// Copyright 2021 Tencent Inc. All rights reserved. +// +// 微信支付平台补差API +// +// 微信支付平台补差API +// +// API version: 0.1.3 + +// Code generated by WechatPay APIv3 Generator based on [OpenAPI +// Generator](https://openapi-generator.tech); DO NOT EDIT. + +package com.wechat.pay.java.service.ecommercesubsidy.model; + +import static com.wechat.pay.java.core.util.StringUtil.toIndentedString; + +import com.google.gson.annotations.SerializedName; +import java.util.List; + +/** SubsidiesReturnEntity */ +public class SubsidiesReturnEntity { + /** 电商平台二级商户号 说明:补差的电商平台二级商户,填写微信支付分配的商户号 */ + @SerializedName("sub_mchid") + private String subMchid; + /** 微信订单号 说明:微信支付订单号 */ + @SerializedName("transaction_id") + private String transactionId; + /** 微信补差回退单号 说明:微信补差回退单号,微信补差回退系统返回的唯一标识 */ + @SerializedName("subsidy_refund_id") + private String subsidyRefundId; + /** 微信退款单号 说明:微信退款单号,微信系统退款返回的唯一标识。因用户账户异常而无法退款时可不传,其他情况必传 */ + @SerializedName("refund_id") + private String refundId; + /** 商户补差回退单号 说明:商户系统内部的补差回退单号,在商户系统内部唯一,同一补差回退单号多次请求等同一次。只能是数字、大小写字母_-|*@ */ + @SerializedName("out_order_no") + private String outOrderNo; + /** 补差回退金额 说明:补差回退金额 */ + @SerializedName("amount") + private Long amount; + /** 补差回退描述 说明:补差回退描述 */ + @SerializedName("description") + private String description; + /** 补差回退结果 说明:补差回退结果 */ + @SerializedName("result") + private ReturnStatus result; + /** 补差回退完成时间 说明:补差回退完成时间,遵循RFC3339标准格式 */ + @SerializedName("success_time") + private String successTime; + /** 微信补差单号 说明:微信补差单号,微信系统返回的唯一标识 */ + @SerializedName("subsidy_id") + private String subsidyId; + /** 回退出资账户及金额 说明:回退出资账户及金额 */ + @SerializedName("from") + private List from; + + public String getSubMchid() { + return subMchid; + } + + public void setSubMchid(String subMchid) { + this.subMchid = subMchid; + } + + public String getTransactionId() { + return transactionId; + } + + public void setTransactionId(String transactionId) { + this.transactionId = transactionId; + } + + public String getSubsidyRefundId() { + return subsidyRefundId; + } + + public void setSubsidyRefundId(String subsidyRefundId) { + this.subsidyRefundId = subsidyRefundId; + } + + public String getRefundId() { + return refundId; + } + + public void setRefundId(String refundId) { + this.refundId = refundId; + } + + public String getOutOrderNo() { + return outOrderNo; + } + + public void setOutOrderNo(String outOrderNo) { + this.outOrderNo = outOrderNo; + } + + public Long getAmount() { + return amount; + } + + public void setAmount(Long amount) { + this.amount = amount; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ReturnStatus getResult() { + return result; + } + + public void setResult(ReturnStatus result) { + this.result = result; + } + + public String getSuccessTime() { + return successTime; + } + + public void setSuccessTime(String successTime) { + this.successTime = successTime; + } + + public String getSubsidyId() { + return subsidyId; + } + + public void setSubsidyId(String subsidyId) { + this.subsidyId = subsidyId; + } + + public List getFrom() { + return from; + } + + public void setFrom(List from) { + this.from = from; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SubsidiesReturnEntity {\n"); + sb.append(" subMchid: ").append(toIndentedString(subMchid)).append("\n"); + sb.append(" transactionId: ").append(toIndentedString(transactionId)).append("\n"); + sb.append(" subsidyRefundId: ").append(toIndentedString(subsidyRefundId)).append("\n"); + sb.append(" refundId: ").append(toIndentedString(refundId)).append("\n"); + sb.append(" outOrderNo: ").append(toIndentedString(outOrderNo)).append("\n"); + sb.append(" amount: ").append(toIndentedString(amount)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" result: ").append(toIndentedString(result)).append("\n"); + sb.append(" successTime: ").append(toIndentedString(successTime)).append("\n"); + sb.append(" subsidyId: ").append(toIndentedString(subsidyId)).append("\n"); + sb.append(" from: ").append(toIndentedString(from)).append("\n"); + sb.append("}"); + return sb.toString(); + } +} diff --git a/service/src/main/java/com/wechat/pay/java/service/ecommercesubsidy/model/SubsidiesReturnRequest.java b/service/src/main/java/com/wechat/pay/java/service/ecommercesubsidy/model/SubsidiesReturnRequest.java new file mode 100644 index 00000000..fde5a50e --- /dev/null +++ b/service/src/main/java/com/wechat/pay/java/service/ecommercesubsidy/model/SubsidiesReturnRequest.java @@ -0,0 +1,128 @@ +// Copyright 2021 Tencent Inc. All rights reserved. +// +// 微信支付平台补差API +// +// 微信支付平台补差API +// +// API version: 0.1.3 + +// Code generated by WechatPay APIv3 Generator based on [OpenAPI +// Generator](https://openapi-generator.tech); DO NOT EDIT. + +package com.wechat.pay.java.service.ecommercesubsidy.model; + +import static com.wechat.pay.java.core.util.StringUtil.toIndentedString; + +import com.google.gson.annotations.SerializedName; +import java.util.List; + +/** SubsidiesReturnRequest */ +public class SubsidiesReturnRequest { + /** 电商平台二级商户号 说明:补差的电商平台二级商户,填写微信支付分配的商户号 */ + @SerializedName("sub_mchid") + private String subMchid; + /** 商户补差回退单号 说明:商户系统内部的补差回退单号,在商户系统内部唯一,同一补差回退单号多次请求等同一次。只能是数字、大小写字母_-|*@ */ + @SerializedName("out_order_no") + private String outOrderNo; + /** 微信订单号 说明:微信支付订单号 */ + @SerializedName("transaction_id") + private String transactionId; + /** 微信退款单号 说明:微信退款单号,微信系统退款返回的唯一标识。因用户账户异常而无法退款时可不传,其他情况必传 */ + @SerializedName("refund_id") + private String refundId; + /** 补差回退金额 说明:补差回退金额,单位为分,只能为整数,不能超过补差单的补差金额。如果指定了出资账户及金额,则必须为所有出资账户的金额之和 */ + @SerializedName("amount") + private Long amount; + /** 补差回退描述 说明:补差回退描述,查询的时候原样带回来 */ + @SerializedName("description") + private String description; + /** 微信补差单号 说明:微信补差单号,微信系统返回的唯一标识 */ + @SerializedName("subsidy_id") + private String subsidyId; + /** + * 回退出资账户及金额 说明:回退需要从指定账户出资时,传递此参数指定出资金额(币种的最小单位,只能为整数)。 + * 当前仅支持从一个账户出资。使用场景需要满足以下条件:1、本次回退金额和已回退金额之和不超过该补差单的补差金额;2、本次回退的金额不超过指定的账户的实际可用资金 + */ + @SerializedName("from") + private List from; + + public String getSubMchid() { + return subMchid; + } + + public void setSubMchid(String subMchid) { + this.subMchid = subMchid; + } + + public String getOutOrderNo() { + return outOrderNo; + } + + public void setOutOrderNo(String outOrderNo) { + this.outOrderNo = outOrderNo; + } + + public String getTransactionId() { + return transactionId; + } + + public void setTransactionId(String transactionId) { + this.transactionId = transactionId; + } + + public String getRefundId() { + return refundId; + } + + public void setRefundId(String refundId) { + this.refundId = refundId; + } + + public Long getAmount() { + return amount; + } + + public void setAmount(Long amount) { + this.amount = amount; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getSubsidyId() { + return subsidyId; + } + + public void setSubsidyId(String subsidyId) { + this.subsidyId = subsidyId; + } + + public List getFrom() { + return from; + } + + public void setFrom(List from) { + this.from = from; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SubsidiesReturnRequest {\n"); + sb.append(" subMchid: ").append(toIndentedString(subMchid)).append("\n"); + sb.append(" outOrderNo: ").append(toIndentedString(outOrderNo)).append("\n"); + sb.append(" transactionId: ").append(toIndentedString(transactionId)).append("\n"); + sb.append(" refundId: ").append(toIndentedString(refundId)).append("\n"); + sb.append(" amount: ").append(toIndentedString(amount)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" subsidyId: ").append(toIndentedString(subsidyId)).append("\n"); + sb.append(" from: ").append(toIndentedString(from)).append("\n"); + sb.append("}"); + return sb.toString(); + } +} diff --git a/service/src/main/java/com/wechat/pay/java/service/ecommercesubsidy/package-info.java b/service/src/main/java/com/wechat/pay/java/service/ecommercesubsidy/package-info.java new file mode 100644 index 00000000..ac9ce188 --- /dev/null +++ b/service/src/main/java/com/wechat/pay/java/service/ecommercesubsidy/package-info.java @@ -0,0 +1,2 @@ +/** 微信支付平台补差API */ +package com.wechat.pay.java.service.ecommercesubsidy; From 850587c5942a34b5065cb86b32773cd0f8f0ec4b Mon Sep 17 00:00:00 2001 From: thinkerchi Date: Wed, 23 Aug 2023 11:12:30 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=94=B5=E5=95=86?= =?UTF-8?q?=E6=94=B6=E4=BB=98=E9=80=9A=E8=A1=A5=E5=B7=AESDK=E6=A0=B7?= =?UTF-8?q?=E4=BE=8B=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../EcommerceSubsidyServiceExample.java | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 service/src/example/java/com/wechat/pay/java/service/ecommercesubsidy/EcommerceSubsidyServiceExample.java diff --git a/service/src/example/java/com/wechat/pay/java/service/ecommercesubsidy/EcommerceSubsidyServiceExample.java b/service/src/example/java/com/wechat/pay/java/service/ecommercesubsidy/EcommerceSubsidyServiceExample.java new file mode 100644 index 00000000..87b4abb1 --- /dev/null +++ b/service/src/example/java/com/wechat/pay/java/service/ecommercesubsidy/EcommerceSubsidyServiceExample.java @@ -0,0 +1,56 @@ +package com.wechat.pay.java.service.ecommercesubsidy; + +import com.wechat.pay.java.core.Config; +import com.wechat.pay.java.core.RSAAutoCertificateConfig; +import com.wechat.pay.java.service.ecommercesubsidy.model.SubsidiesCancelEntity; +import com.wechat.pay.java.service.ecommercesubsidy.model.SubsidiesCancelRequest; +import com.wechat.pay.java.service.ecommercesubsidy.model.SubsidiesCreateEntity; +import com.wechat.pay.java.service.ecommercesubsidy.model.SubsidiesCreateRequest; +import com.wechat.pay.java.service.ecommercesubsidy.model.SubsidiesReturnEntity; +import com.wechat.pay.java.service.ecommercesubsidy.model.SubsidiesReturnRequest; + +/** EcommerceSubsidyService使用示例 */ +public class EcommerceSubsidyServiceExample { + + /** 商户号 */ + public static String merchantId = "190000****"; + /** 商户API私钥路径 */ + public static String privateKeyPath = "/Users/yourname/your/path/apiclient_key.pem"; + /** 商户证书序列号 */ + public static String merchantSerialNumber = "5157F09EFDC096DE15EBE81A47057A72********"; + /** 商户APIV3密钥 */ + public static String apiV3Key = "..."; + + public static EcommerceSubsidyService service; + + public static void main(String[] args) { + // 初始化商户配置 + Config config = + new RSAAutoCertificateConfig.Builder() + .merchantId(merchantId) + // 使用 com.wechat.pay.java.core.util 中的函数从本地文件中加载商户私钥,商户私钥会用来生成请求的签名 + .privateKeyFromPath(privateKeyPath) + .merchantSerialNumber(merchantSerialNumber) + .apiV3Key(apiV3Key) + .build(); + + // 初始化服务 + service = new EcommerceSubsidyService.Builder().config(config).build(); + // ... 调用接口 + } + /** 取消补差 */ + public static SubsidiesCancelEntity cancelSubsidy() { + SubsidiesCancelRequest request = new SubsidiesCancelRequest(); + return service.cancelSubsidy(request); + } + /** 请求补差 */ + public static SubsidiesCreateEntity createSubsidy() { + SubsidiesCreateRequest request = new SubsidiesCreateRequest(); + return service.createSubsidy(request); + } + /** 请求补差回退 */ + public static SubsidiesReturnEntity returnSubsidy() { + SubsidiesReturnRequest request = new SubsidiesReturnRequest(); + return service.returnSubsidy(request); + } +}