From f8615e4ad0b0c9f7b12f8e0382cfb006ae599697 Mon Sep 17 00:00:00 2001 From: sunchenweb Date: Fri, 23 Sep 2022 16:03:56 +0800 Subject: [PATCH] =?UTF-8?q?Fix=20issue=20#2817:=20=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E6=8E=A8=E9=80=81=E8=BF=87=E6=9D=A5=E7=9A=84?= =?UTF-8?q?=E4=BA=8B=E4=BB=B6=E7=B1=BB=E5=9E=8BOPEN=5FPRODUCT=5FORDER=5FPA?= =?UTF-8?q?Y=EF=BC=88=E8=87=AA=E5=AE=9A=E4=B9=89=E4=BA=A4=E6=98=93?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=E4=BB=98=E6=AC=BE=E9=80=9A=E7=9F=A5=EF=BC=89?= =?UTF-8?q?,=E5=A2=9E=E5=8A=A0=E8=87=AA=E5=AE=9A=E4=B9=89=E4=BA=A4?= =?UTF-8?q?=E6=98=93=E7=BB=84=E4=BB=B6=E8=A7=86=E9=A2=91=E5=8F=B7=E4=BB=98?= =?UTF-8?q?=E6=AC=BE=E9=80=9A=E7=9F=A5=E6=B5=8B=E8=AF=95=E7=94=A8=E4=BE=8B?= 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 e88aa1957f..9f9724c00b 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 static class EventType { */ 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 098da74e54..bfdb912f6d 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 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 void testFromXmlForAllFieldsMap() { .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"); + } }