Skip to content

Commit bc6fb7b

Browse files
authored
🎨 #3656 【微信支付】 修复平台收付通 - 合单支付 - 关闭订单接口,增加缺少的两个参数
1 parent 983e4f1 commit bc6fb7b

File tree

2 files changed

+75
-0
lines changed

2 files changed

+75
-0
lines changed

weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/request/CombineCloseRequest.java

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,5 +87,33 @@ public static class SubOrders implements Serializable {
8787
*/
8888
@SerializedName(value = "out_trade_no")
8989
private String outTradeNo;
90+
/**
91+
* <pre>
92+
* 字段名:二级商户号
93+
* 变量名:sub_mchid
94+
* 是否必填:是
95+
* 类型:string[1,32]
96+
* 描述:
97+
* 二级商户商户号,由微信支付生成并下发。服务商子商户的商户号,被合单方。直连商户不用传二级商户号。
98+
* 示例值:1900000109
99+
* </pre>
100+
*/
101+
@SerializedName(value = "sub_mchid")
102+
private String subMchid;
103+
/**
104+
* <pre>
105+
* 字段名:子商户应用ID
106+
* 变量名:sub_appid
107+
* 是否必填:是
108+
* 类型:string[1,32]
109+
* 描述:
110+
* 子商户申请的应用ID,全局唯一。请求基础下单接口时请注意APPID的应用属性,例如公众号场景下,
111+
* 需使用应用属性为公众号的APPID 若sub_openid有传的情况下,
112+
* sub_appid必填,且sub_appid需与sub_openid对应
113+
* 示例值:wxd678efh567hg6999
114+
* </pre>
115+
*/
116+
@SerializedName(value = "sub_appid")
117+
private String subAppid;
90118
}
91119
}
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
package com.github.binarywang.wxpay.bean.request;
2+
3+
import com.google.gson.Gson;
4+
import org.testng.annotations.Test;
5+
6+
import java.util.Arrays;
7+
8+
import static org.assertj.core.api.Assertions.assertThat;
9+
10+
/**
11+
* @author <a href="https://github.com/binarywang">Binary Wang</a>
12+
* created on 2024-12-19
13+
*/
14+
public class CombineCloseRequestTest {
15+
16+
@Test
17+
public void testSerialization() {
18+
CombineCloseRequest request = new CombineCloseRequest();
19+
request.setCombineAppid("wxd678efh567hg6787");
20+
request.setCombineOutTradeNo("P20150806125346");
21+
22+
CombineCloseRequest.SubOrders subOrder = new CombineCloseRequest.SubOrders();
23+
subOrder.setMchid("1900000109");
24+
subOrder.setOutTradeNo("20150806125346");
25+
subOrder.setSubMchid("1230000109");
26+
subOrder.setSubAppid("wxd678efh567hg6999");
27+
28+
request.setSubOrders(Arrays.asList(subOrder));
29+
30+
Gson gson = new Gson();
31+
String json = gson.toJson(request);
32+
33+
// Verify that the JSON contains the new fields
34+
assertThat(json).contains("\"sub_mchid\":\"1230000109\"");
35+
assertThat(json).contains("\"sub_appid\":\"wxd678efh567hg6999\"");
36+
assertThat(json).contains("\"combine_appid\":\"wxd678efh567hg6787\"");
37+
assertThat(json).contains("\"mchid\":\"1900000109\"");
38+
assertThat(json).contains("\"out_trade_no\":\"20150806125346\"");
39+
40+
// Verify deserialization works
41+
CombineCloseRequest deserializedRequest = gson.fromJson(json, CombineCloseRequest.class);
42+
assertThat(deserializedRequest.getCombineAppid()).isEqualTo("wxd678efh567hg6787");
43+
assertThat(deserializedRequest.getSubOrders()).hasSize(1);
44+
assertThat(deserializedRequest.getSubOrders().get(0).getSubMchid()).isEqualTo("1230000109");
45+
assertThat(deserializedRequest.getSubOrders().get(0).getSubAppid()).isEqualTo("wxd678efh567hg6999");
46+
}
47+
}

0 commit comments

Comments
 (0)