mirror of
https://gitee.com/binary/weixin-java-tools.git
synced 2025-04-05 17:38:05 +08:00
🆕 #1916 【微信支付】电商收付通增加关闭普通支付单的接口
This commit is contained in:
parent
34495cb655
commit
0306103d28
@ -0,0 +1,61 @@
|
||||
package com.github.binarywang.wxpay.bean.ecommerce;
|
||||
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 关闭普通订单请求
|
||||
* @author: f00lish
|
||||
* @date: 2020/12/09
|
||||
*/
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
public class PartnerTransactionsCloseRequest implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = -7602636370950088329L;
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
* 字段名:服务商户号
|
||||
* 变量名:sp_mchid
|
||||
* 是否必填:是
|
||||
* 类型:string(32)
|
||||
* 描述:
|
||||
* 服务商户号,由微信支付生成并下发
|
||||
* 示例值:1230000109
|
||||
* </pre>
|
||||
*/
|
||||
@SerializedName(value = "sp_mchid")
|
||||
private String spMchid;
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
* 字段名:二级商户号
|
||||
* 变量名:sub_mchid
|
||||
* 是否必填:是
|
||||
* 类型:string(32)
|
||||
* 描述:
|
||||
* 二级商户的商户号,有微信支付生成并下发。
|
||||
* 示例值:1900000109
|
||||
* </pre>
|
||||
*/
|
||||
@SerializedName(value = "sub_mchid")
|
||||
private String subMchid;
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
* 字段名:商户订单号
|
||||
* 变量名:out_trade_no
|
||||
* 是否必填:是
|
||||
* 类型:string(32)
|
||||
* 描述:
|
||||
* 商户系统内部订单号,只能是数字、大小写字母_-*且在同一个商户号下唯一,详见【商户订单号】。
|
||||
* 特殊规则:最小字符长度为6
|
||||
* 示例值:1217752501201407033233368018
|
||||
* </pre>
|
||||
*/
|
||||
private transient String outTradeNo;
|
||||
}
|
@ -166,6 +166,17 @@ public interface EcommerceService {
|
||||
*/
|
||||
PartnerTransactionsResult queryPartnerTransactions(PartnerTransactionsQueryRequest request) throws WxPayException;
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
* 关闭普通订单API
|
||||
* 文档地址: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/ecommerce/e_transactions/chapter3_6.shtml
|
||||
* </pre>
|
||||
*
|
||||
* @param request 关闭普通订单请求
|
||||
* @throws WxPayException the wx pay exception
|
||||
*/
|
||||
void closePartnerTransactions(PartnerTransactionsCloseRequest request) throws WxPayException;
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
* 服务商账户实时余额
|
||||
|
@ -149,6 +149,12 @@ public class EcommerceServiceImpl implements EcommerceService {
|
||||
return GSON.fromJson(response, PartnerTransactionsResult.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void closePartnerTransactions(PartnerTransactionsCloseRequest request) throws WxPayException {
|
||||
String url = String.format("%s/v3/pay/partner/transactions/out-trade-no/%s/close", this.payService.getPayBaseUrl(), request.getOutTradeNo());
|
||||
String response = this.payService.postV3(url, GSON.toJson(request));
|
||||
}
|
||||
|
||||
@Override
|
||||
public FundBalanceResult spNowBalance(SpAccountTypeEnum accountType) throws WxPayException {
|
||||
String url = String.format("%s/v3/merchant/fund/balance/%s", this.payService.getPayBaseUrl(), accountType);
|
||||
|
@ -100,7 +100,13 @@ public class WxPayServiceApacheHttpImpl extends BaseWxPayServiceImpl {
|
||||
try (CloseableHttpResponse response = httpClient.execute(httpPost)) {
|
||||
//v3已经改为通过状态码判断200 204 成功
|
||||
int statusCode = response.getStatusLine().getStatusCode();
|
||||
String responseString = EntityUtils.toString(response.getEntity(), StandardCharsets.UTF_8);
|
||||
//post方法有可能会没有返回值的情况
|
||||
String responseString;
|
||||
if (response.getEntity() == null) {
|
||||
responseString = null;
|
||||
}else {
|
||||
responseString = EntityUtils.toString(response.getEntity(), StandardCharsets.UTF_8);
|
||||
}
|
||||
if (HttpStatus.SC_OK == statusCode || HttpStatus.SC_NO_CONTENT == statusCode) {
|
||||
this.log.info("\n【请求地址】:{}\n【请求数据】:{}\n【响应数据】:{}", url, requestStr, responseString);
|
||||
return responseString;
|
||||
@ -166,7 +172,13 @@ public class WxPayServiceApacheHttpImpl extends BaseWxPayServiceImpl {
|
||||
try (CloseableHttpResponse response = httpClient.execute(httpPost)) {
|
||||
//v3已经改为通过状态码判断200 204 成功
|
||||
int statusCode = response.getStatusLine().getStatusCode();
|
||||
String responseString = EntityUtils.toString(response.getEntity(), StandardCharsets.UTF_8);
|
||||
//post方法有可能会没有返回值的情况
|
||||
String responseString;
|
||||
if (response.getEntity() == null) {
|
||||
responseString = null;
|
||||
}else {
|
||||
responseString = EntityUtils.toString(response.getEntity(), StandardCharsets.UTF_8);
|
||||
}
|
||||
if (HttpStatus.SC_OK == statusCode || HttpStatus.SC_NO_CONTENT == statusCode) {
|
||||
this.log.info("\n【请求地址】:{}\n【响应数据】:{}", url, responseString);
|
||||
return responseString;
|
||||
|
Loading…
Reference in New Issue
Block a user