From aa19a2874d3b16cd011ea41d537520e5d04b4a88 Mon Sep 17 00:00:00 2001
From: Sun Chen <32948195+sunchenweb@users.noreply.github.com>
Date: Sat, 24 Sep 2022 00:24:04 +0800
Subject: [PATCH] =?UTF-8?q?:art:=20=E5=A2=9E=E5=8A=A0=E5=BE=AE=E4=BF=A1?=
=?UTF-8?q?=E6=8E=A8=E9=80=81=E7=9A=84=E8=87=AA=E5=AE=9A=E4=B9=89=E4=BA=A4?=
=?UTF-8?q?=E6=98=93=E7=BB=84=E4=BB=B6=E4=BB=98=E6=AC=BE=E9=80=9A=E7=9F=A5?=
=?UTF-8?q?=E4=BA=8B=E4=BB=B6=E7=B1=BB=E5=9E=8BOPEN=5FPRODUCT=5FORDER=5FPA?=
=?UTF-8?q?Y?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../chanjar/weixin/common/api/WxConsts.java | 4 ++
.../wx/miniapp/bean/WxMaMessageTest.java | 37 +++++++++++++++++++
2 files changed, 41 insertions(+)
diff --git a/weixin-java-common/src/main/java/me/chanjar/weixin/common/api/WxConsts.java b/weixin-java-common/src/main/java/me/chanjar/weixin/common/api/WxConsts.java
index e88aa1957..9f9724c00 100644
--- a/weixin-java-common/src/main/java/me/chanjar/weixin/common/api/WxConsts.java
+++ b/weixin-java-common/src/main/java/me/chanjar/weixin/common/api/WxConsts.java
@@ -413,6 +413,10 @@ public class WxConsts {
*/
public static final String WEAPP_AUDIT_FAIL = "weapp_audit_fail";
+ /**
+ * 小程序自定义交易组件支付通知
+ */
+ public static final String OPEN_PRODUCT_ORDER_PAY = "open_product_order_pay";
/**
* 点击菜单跳转小程序的事件推送
*/
diff --git a/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/bean/WxMaMessageTest.java b/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/bean/WxMaMessageTest.java
index 098da74e5..bfdb912f6 100644
--- a/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/bean/WxMaMessageTest.java
+++ b/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/bean/WxMaMessageTest.java
@@ -6,6 +6,7 @@ import org.testng.annotations.Test;
import java.util.List;
import java.util.Map;
+import static org.assertj.core.api.Assertions.as;
import static org.assertj.core.api.Assertions.assertThat;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNotNull;
@@ -291,4 +292,40 @@ public class WxMaMessageTest {
.containsEntry("Lat", "0")
.containsEntry("Lng", "0");
}
+
+ /**
+ * 自定义交易组件付款通知事件测试用例
+ * msgType等于event且event等于WxConsts.EventType.OPEN_PRODUCT_ORDER_PAY
+ */
+ @Test
+ public void testFromXmlForOpenProductOrderPayEvent(){
+ String xml = " \n" +
+ " gh_abcdefg \n" +
+ " oABCD \n" +
+ " 1642658087 \n" +
+ " event \n" +
+ " open_product_order_pay\n" +
+ " \n" +
+ " 123456\n" +
+ " 1234567\n" +
+ " 42000000123123\n" +
+ " 2021-12-30 22:31:00\n" +
+ " 10\n" +
+ " oNMZ-5C0SPGHUiKsTwnOXpSHzFvw\n" +
+ " \n" +
+ "";
+ WxMaMessage wxMessage = WxMaMessage.fromXml(xml);
+ assertThat(wxMessage.getMsgType()).isEqualTo("event");
+ assertThat(wxMessage.getEvent()).isEqualTo(WxConsts.EventType.OPEN_PRODUCT_ORDER_PAY);
+ Map allFieldsMap = wxMessage.getAllFieldsMap();
+ Map orderInfo = (Map) allFieldsMap.get("order_info");
+ assertThat(orderInfo).isNotEmpty();
+ assertThat(orderInfo)
+ .containsEntry("out_order_id","123456")
+ .containsEntry("order_id","1234567")
+ .containsEntry("transaction_id","42000000123123")
+ .containsEntry("pay_time","2021-12-30 22:31:00")
+ .containsEntry("amount","10")
+ .containsEntry("sp_openid","oNMZ-5C0SPGHUiKsTwnOXpSHzFvw");
+ }
}