diff --git a/Samples/Shared/Senparc.Weixin.Sample.Shared/Views/Shared/_AboutPartial.cshtml b/Samples/Shared/Senparc.Weixin.Sample.Shared/Views/Shared/_AboutPartial.cshtml index 541af8fb2c..3eee235c85 100644 --- a/Samples/Shared/Senparc.Weixin.Sample.Shared/Views/Shared/_AboutPartial.cshtml +++ b/Samples/Shared/Senparc.Weixin.Sample.Shared/Views/Shared/_AboutPartial.cshtml @@ -3,10 +3,10 @@

使用 Senparc.Weixin,您可以方便快速地开发微信全平台的应用(包括微信公众号、小程序、小游戏、企业号、开放平台、微信支付、JS-SDK、微信硬件/蓝牙,等等)。本项目的 Demo 同样适合初学者进行 .NET 编程学习。

目前 Senparc.Weixin 已经支持几乎所有微信平台模块和接口,并同时支持 - .NET 3.5 / 4.0 / 4.5 / .NET Standard 2.x / .NET Core 2.x / .NET Core 3.x / .NET 6.0 多种框架。 + .NET 3.5 / 4.0 / 4.5 / .NET Standard 2.x / .NET Core 2.x / .NET Core 3.x / .NET 6.0 / .NET 8.0 多种框架。

Senparc.Weixin SDK 是目前使用率最高的微信 .NET SDK,也是国内最受欢迎的 .NET 开源项目之一,是唯一入选 2021“科创中国”开源创新榜[1] [2] 的 .NET 项目。

-

项目自 2012 年开源,2013 年 1 月起正式发布到 GitHub。10 年来,我们一直保持着项目的持续更新,并将完整的源代码以及设计思想毫无保留地分享给大家,希望有更多的人可以从中受益,理解并传播开源的精神,一同助力中国开源事业!感恩一路上给我们提供帮助的朋友们!

+

项目自 2012 年开源,2013 年 1 月起正式发布到 GitHub。10 余年来,我们一直保持着项目的持续更新,并将完整的源代码以及设计思想毫无保留地分享给大家,希望有更多的人可以从中受益,理解并传播开源的精神,一同助力中国开源事业!感恩一路上给我们提供帮助的朋友们!

团队

Senparc.Weixin 由盛派网络及盛派开发者社区核心团队负责维护,同时正在得到大量来自社区成员和社会各界的支持,欢迎加入我们!

diff --git a/src/Senparc.Weixin.Open/Senparc.Weixin.Open/Entities/Request/RequestMessage3rdWxaWxVerify.cs b/src/Senparc.Weixin.Open/Senparc.Weixin.Open/Entities/Request/RequestMessage3rdWxaWxVerify.cs new file mode 100644 index 0000000000..9dea7ba752 --- /dev/null +++ b/src/Senparc.Weixin.Open/Senparc.Weixin.Open/Entities/Request/RequestMessage3rdWxaWxVerify.cs @@ -0,0 +1,35 @@ +/*---------------------------------------------------------------- + Copyright (C) 2023 Senparc + + 文件名:RequestMessage3rdWxaAuth.cs + 文件功能描述:小程序认证年审和过期能力限制提醒(过期当天&过期30天&过期60天) + + + 创建标识:Senparc - 20231211 +----------------------------------------------------------------*/ + +namespace Senparc.Weixin.Open +{ + public class RequestMessage3rdWxaWxVerify : RequestMessageBase + { + public override RequestInfoType InfoType + { + get { return RequestInfoType.notify_3rd_wxa_wxverify; } + } + /// + /// 小程序appid + /// + public string appid { get; set; } + + /// + /// 认证过期时间戳(秒) + /// + public long expired { get; set; } + + /// + /// 提醒消息内容 + /// + public string message { get; set; } + + } +} diff --git a/src/Senparc.Weixin.Open/Senparc.Weixin.Open/Entities/Request/RequestMessageNicknameAudit.cs b/src/Senparc.Weixin.Open/Senparc.Weixin.Open/Entities/Request/RequestMessageNicknameAudit.cs index a1153b96ed..1bbc0950e1 100644 --- a/src/Senparc.Weixin.Open/Senparc.Weixin.Open/Entities/Request/RequestMessageNicknameAudit.cs +++ b/src/Senparc.Weixin.Open/Senparc.Weixin.Open/Entities/Request/RequestMessageNicknameAudit.cs @@ -2,15 +2,22 @@ Copyright (C) 2024 Senparc 文件名:RequestMessageNicknameAudit.cs - 文件功能描述:推送取消授权通知 + 文件功能描述:小程序昵称审核事件 创建标识:mc7246 - 20190603 ----------------------------------------------------------------*/ +using System; + namespace Senparc.Weixin.Open { + /// + /// 小程序昵称审核事件 + /// 该事件已移入小程序SDK,请在小程序SDK内处理 + /// + [Obsolete("此事件请在小程序SDK处理")] public class RequestMessageNicknameAudit : RequestMessageBase { public override RequestInfoType InfoType diff --git a/src/Senparc.Weixin.Open/Senparc.Weixin.Open/Enums.cs b/src/Senparc.Weixin.Open/Senparc.Weixin.Open/Enums.cs index 999a8369ee..e7048fc0a8 100644 --- a/src/Senparc.Weixin.Open/Senparc.Weixin.Open/Enums.cs +++ b/src/Senparc.Weixin.Open/Senparc.Weixin.Open/Enums.cs @@ -133,7 +133,11 @@ public enum RequestInfoType /// /// 微信认证推送事件 /// - notify_3rd_wxa_auth + notify_3rd_wxa_auth, + /// + /// 小程序认证年审和过期能力限制提醒推送事件 + /// + notify_3rd_wxa_wxverify } diff --git a/src/Senparc.Weixin.Open/Senparc.Weixin.Open/MessageHandlers/ThirdPartyMessageHandler.cs b/src/Senparc.Weixin.Open/Senparc.Weixin.Open/MessageHandlers/ThirdPartyMessageHandler.cs index 6323500290..9b4e0243b4 100644 --- a/src/Senparc.Weixin.Open/Senparc.Weixin.Open/MessageHandlers/ThirdPartyMessageHandler.cs +++ b/src/Senparc.Weixin.Open/Senparc.Weixin.Open/MessageHandlers/ThirdPartyMessageHandler.cs @@ -183,6 +183,12 @@ public void Execute() ResponseMessageText = On3rdWxaAuthRequest(requestMessage); } break; + case RequestInfoType.notify_3rd_wxa_wxverify: + { + var requestMessage = RequestMessage as RequestMessage3rdWxaWxVerify; + ResponseMessageText = On3rdWxaWxVerifyRequest(requestMessage); + } + break; default: throw new UnknownRequestMsgTypeException("未知的InfoType请求类型", null); } @@ -206,6 +212,11 @@ public virtual void OnExecuted() { } + public virtual string On3rdWxaWxVerifyRequest(RequestMessage3rdWxaWxVerify requestMessage) + { + return "success"; + } + public virtual string On3rdWxaAuthRequest(RequestMessage3rdWxaAuth requestMessage) { @@ -270,6 +281,8 @@ public virtual string OnThirdFasteRegisterRequest(RequestMessageThirdFasteRegist return "success"; } + + [Obsolete("此事件请在小程序SDK处理")] public virtual string OnNicknameAuditRequest(RequestMessageNicknameAudit requestMessage) { return "success"; diff --git a/src/Senparc.Weixin.Open/Senparc.Weixin.Open/RequestMessageFactory.cs b/src/Senparc.Weixin.Open/Senparc.Weixin.Open/RequestMessageFactory.cs index 29ba646ff7..fb7a17e316 100644 --- a/src/Senparc.Weixin.Open/Senparc.Weixin.Open/RequestMessageFactory.cs +++ b/src/Senparc.Weixin.Open/Senparc.Weixin.Open/RequestMessageFactory.cs @@ -92,12 +92,24 @@ public static IRequestMessageBase GetRequestEntity(XDocument doc, PostModel post case RequestInfoType.notify_third_fasteregister: requestMessage = new RequestMessageThirdFasteRegister(); break; + case RequestInfoType.notify_third_fastverifybetaapp: + requestMessage = new RequestMessageFastVerifyBetaApp(); + break; + case RequestInfoType.notify_third_fastregisterbetaapp: + requestMessage = new RequestMessageFastRegisterBetaAppApp(); + break; case RequestInfoType.notify_icpfiling_verify_result: requestMessage = new RequestMessageIcpFilingVerify(); break; case RequestInfoType.notify_apply_icpfiling_result: requestMessage = new RequestMessageIcpFilingApply(); break; + case RequestInfoType.notify_3rd_wxa_auth: + requestMessage = new RequestMessage3rdWxaAuth(); + break; + case RequestInfoType.notify_3rd_wxa_wxverify: + requestMessage = new RequestMessage3rdWxaWxVerify(); + break; default: throw new UnknownRequestMsgTypeException(string.Format("InfoType:{0} 在RequestMessageFactory中没有对应的处理程序!", infoType), new ArgumentOutOfRangeException());//为了能够对类型变动最大程度容错(如微信目前还可以对公众账号suscribe等未知类型,但API没有开放),建议在使用的时候catch这个异常 } diff --git a/src/Senparc.Weixin.Open/Senparc.Weixin.Open/Senparc.Weixin.Open.net8.csproj b/src/Senparc.Weixin.Open/Senparc.Weixin.Open/Senparc.Weixin.Open.net8.csproj index 2bbd3f2448..c92fbfd50d 100644 --- a/src/Senparc.Weixin.Open/Senparc.Weixin.Open/Senparc.Weixin.Open.net8.csproj +++ b/src/Senparc.Weixin.Open/Senparc.Weixin.Open/Senparc.Weixin.Open.net8.csproj @@ -1,7 +1,7 @@ net462;netstandard2.0;netstandard2.1 - 4.17.4 + 4.17.5 Senparc.Weixin.Open Senparc.Weixin.Open true @@ -222,6 +222,7 @@ v4.17.1 新增“小程序微信认证”功能 v4.17.2 添加小程序微信认证事件第三方通知推送 / PR #2969 v4.17.4 修复获取小程序申诉记录返回结果 / PR #2974 + v4.17.5 修复微信认证事件通知 PR / #2979 https://github.com/JeffreySu/WeiXinMPSDK diff --git a/src/Senparc.Weixin.Open/Senparc.Weixin.Open/WxaAPIs/Sec/SecJson/QueryAuthJsonResult.cs b/src/Senparc.Weixin.Open/Senparc.Weixin.Open/WxaAPIs/Sec/SecJson/QueryAuthJsonResult.cs index d3e637c767..512ae0dcec 100644 --- a/src/Senparc.Weixin.Open/Senparc.Weixin.Open/WxaAPIs/Sec/SecJson/QueryAuthJsonResult.cs +++ b/src/Senparc.Weixin.Open/Senparc.Weixin.Open/WxaAPIs/Sec/SecJson/QueryAuthJsonResult.cs @@ -40,8 +40,66 @@ public class QueryAuthJsonResult : WxJsonResult { /// /// 当前任务流程的状态码: - /// 0: 初始状态 1: 任务超时, 24小时内有效 2: 用户授权拒绝 3: 用户授权同意 4: 发起人脸流程 5: 人脸认证失败 6: 人脸认证ok 7: 人脸认证后,已经提交手机号码下发验证码 8: 手机验证失败 9: 手机验证成功 11: 创建认证审核单失败 12: 创建认证审核审核单成功 14: 验证失败 15: 等待支付 | | auth_url | string | 小程序管理员授权链接 | | apply_status | number | 审核单状态,创建认证审核审核单成功后该值有效。 0:审核单不存在 1:待支付 2:审核中 3:打回重填 4:认证通过 5:认证最终失败(不能再修改) | | orderid | number | 小程序后台展示的认证订单号 | | appid | string | 小程序appid | | refill_reason | string | 当审核单被打回重填(apply_status=3)时有效 | | fail_reason | string | 审核最终失败的原因(apply_status=5)时有效 | /// - public int task_status { get; set; } + public TaskStatus task_status { get; set; } + + /// + /// 小程序管理员授权链接 + /// + + public string auth_url { get; set; } + + /// + /// 审核单状态,创建认证审核审核单成功后该值有效 + /// + public ApplyStatus apply_status { get; set; } + + /// + /// 小程序后台展示的认证订单号 + /// + public string orderid { get; set; } + + /// + /// 小程序appid + /// + public string appid { get; set; } + + /// + /// 当审核单被打回重填(apply_status=3)时有效 + /// + public string refill_reason { get; set; } + + /// + /// 审核最终失败的原因(apply_status=5)时有效 + /// + public string fail_reason { get; set; } + + public enum TaskStatus + { + 初始状态 =0, + 任务超时_24小时内有效=1, + 用户授权拒绝 = 2, + 用户授权同意=3, + 发起人脸流程=4, + 人脸认证失败=5, + 人脸认证ok = 6, + 人脸认证后_已经提交手机号码下发验证码= 7, + 手机验证失败=8, + 手机验证成功 =9, + 创建认证审核单失败=11, + 创建认证审核审核单成功 =12, + 验证失败 =14, + 等待支付=15 + } + + public enum ApplyStatus + { + 审核单不存在 = 0, + 待支付 = 1, + 审核中 = 2, + 打回重填 = 3, + 认证通过 = 4, + 认证最终失败_不能再修改 = 5 + } } } \ No newline at end of file diff --git a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Entities/Request/Event/RequestMessageEvent_WxVerifyDispatch.cs b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Entities/Request/Event/RequestMessageEvent_WxVerifyDispatch.cs new file mode 100644 index 0000000000..f7e2d46312 --- /dev/null +++ b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Entities/Request/Event/RequestMessageEvent_WxVerifyDispatch.cs @@ -0,0 +1,63 @@ +#region Apache License Version 2.0 +/*---------------------------------------------------------------- + +Copyright 2023 Jeffrey Su & Suzhou Senparc Network Technology Co.,Ltd. + +Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file +except in compliance with the License. You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software distributed under the +License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, +either express or implied. See the License for the specific language governing permissions +and limitations under the License. + +Detail: https://github.com/JeffreySu/WeiXinMPSDK/blob/master/license.md + +----------------------------------------------------------------*/ +#endregion Apache License Version 2.0 + +/*---------------------------------------------------------------- + Copyright (C) 2023 Senparc + + 文件名:RequestMessageEvent_AddExpressPath.cs + 文件功能描述:运单轨迹更新事件 + + + 创建标识:chinanhb - 20230529 + +----------------------------------------------------------------*/ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Senparc.Weixin.WxOpen.Entities +{ + public class RequestMessageEvent_WxVerifyDispatch : RequestMessageEventBase,IRequestMessageEventBase + { + /// + /// 事件类型 + /// + public override Event Event + { + get { return Event.wx_verify_dispatch; } + } + /// + /// 微信认证审核机构 + /// + public string Provider { get; set; } + + /// + /// 微信认证审核机构联系方式 + /// + public string Contact { get; set; } + + /// + /// 微信认证派单时间 + /// + public long DispatchTime { get; set; } + } +} diff --git a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Entities/Request/Event/RequestMessageEvent_WxVerifyPaySucc.cs b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Entities/Request/Event/RequestMessageEvent_WxVerifyPaySucc.cs new file mode 100644 index 0000000000..ae50795eca --- /dev/null +++ b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Entities/Request/Event/RequestMessageEvent_WxVerifyPaySucc.cs @@ -0,0 +1,53 @@ +#region Apache License Version 2.0 +/*---------------------------------------------------------------- + +Copyright 2023 Jeffrey Su & Suzhou Senparc Network Technology Co.,Ltd. + +Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file +except in compliance with the License. You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software distributed under the +License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, +either express or implied. See the License for the specific language governing permissions +and limitations under the License. + +Detail: https://github.com/JeffreySu/WeiXinMPSDK/blob/master/license.md + +----------------------------------------------------------------*/ +#endregion Apache License Version 2.0 + +/*---------------------------------------------------------------- + Copyright (C) 2023 Senparc + + 文件名:RequestMessageEvent_AddExpressPath.cs + 文件功能描述:运单轨迹更新事件 + + + 创建标识:chinanhb - 20230529 + +----------------------------------------------------------------*/ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Senparc.Weixin.WxOpen.Entities +{ + public class RequestMessageEvent_WxVerifyPaySucc : RequestMessageEventBase,IRequestMessageEventBase + { + /// + /// 事件类型 + /// + public override Event Event + { + get { return Event.wx_verify_pay_succ; } + } + /// + /// 微信认证订单ID + /// + public string OrderId { get; set; } + } +} diff --git a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Entities/Request/Event/RequestMessageEvent_WxaCategoryAudit.cs b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Entities/Request/Event/RequestMessageEvent_WxaCategoryAudit.cs index 26aab1146a..91a105a245 100644 --- a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Entities/Request/Event/RequestMessageEvent_WxaCategoryAudit.cs +++ b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Entities/Request/Event/RequestMessageEvent_WxaCategoryAudit.cs @@ -32,7 +32,7 @@ and limitations under the License. namespace Senparc.Weixin.WxOpen.Entities { /// - /// 事件之小程序审核成功 + /// 事件之小程序类目审核成功 /// public class RequestMessageEvent_WxaCategoryAudit : RequestMessageEventBase, IRequestMessageEventBase { diff --git a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Enums.cs b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Enums.cs index 7e4d5504b7..79cd7a3141 100644 --- a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Enums.cs +++ b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Enums.cs @@ -98,7 +98,14 @@ public enum Event /// 订单将要结算或已经结算事件 /// trade_manage_order_settlement, - + /// + /// 小程序微信认证支付成功事件 + /// + wx_verify_pay_succ, + /// + /// 小程序微信认证派单事件 + /// + wx_verify_dispatch, #region 小程序虚拟支付 /// diff --git a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/MessageContexts/DefaultWxOpenMessageContext.cs b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/MessageContexts/DefaultWxOpenMessageContext.cs index 3d9e445e68..a0e8c5655f 100644 --- a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/MessageContexts/DefaultWxOpenMessageContext.cs +++ b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/MessageContexts/DefaultWxOpenMessageContext.cs @@ -81,6 +81,12 @@ public override IRequestMessageBase GetRequestEntityMappingResult(RequestMsgType case "WXA_MEDIA_CHECK"://内容安全回调:wxa_media_check 推送结果 requestMessage = new RequestMessageEvent_MediaCheck(); break; + case "WXA_CATEGORY_AUDIT": //小程序类目审核事件 + requestMessage = new RequestMessageEvent_WxaCategoryAudit(); + break; + case "ADD_EXPRESS_PATH": //运单轨迹推送事件 + requestMessage = new RequestMessageEvent_AddExpressPath(); + break; case "TRADE_MANAGE_ORDER_SETTLEMENT"://订单将要结算或已经结算 requestMessage = new RequestMessageEvent_TradeManageOrderSettlement(); break; @@ -90,6 +96,12 @@ public override IRequestMessageBase GetRequestEntityMappingResult(RequestMsgType case "TRADE_MANAGE_REMIND_SHIPPING"://提醒需要上传发货信息 requestMessage = new RequestMessageEvent_TradeManageRemindShipping(); break; + case "WX_VERIFY_PAY_SUCC": //微信认证支付成功通知 + requestMessage = new RequestMessageEvent_WxVerifyPaySucc(); + break; + case "WX_VERIFY_DISPATCH": //微信认证派单事件 + requestMessage = new RequestMessageEvent_WxVerifyDispatch(); + break; default://其他意外类型(也可以选择抛出异常) requestMessage = new RequestMessageEventBase(); break; diff --git a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/MessageHandlers/WxOpenMessageHandler.Event.cs b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/MessageHandlers/WxOpenMessageHandler.Event.cs index 7be374441a..fa31d11fdc 100644 --- a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/MessageHandlers/WxOpenMessageHandler.Event.cs +++ b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/MessageHandlers/WxOpenMessageHandler.Event.cs @@ -130,6 +130,12 @@ public virtual IResponseMessageBase OnEventRequest(IRequestMessageEventBase requ case Event.trade_manage_remind_shipping: responseMessage = OnEvent_TradeManageRemindShipping(RequestMessage as RequestMessageEvent_TradeManageRemindShipping); break; + case Event.wx_verify_pay_succ: + responseMessage = OnEvent_WxVerifyPaySuccRequest(RequestMessage as RequestMessageEvent_WxVerifyPaySucc); + break; + case Event.wx_verify_dispatch: + responseMessage = OnEvent_WxVerifyDispatchRequest(RequestMessage as RequestMessageEvent_WxVerifyDispatch); + break; #region 小程序虚拟支付 case Event.xpay_goods_deliver_notify: @@ -150,6 +156,25 @@ public virtual IResponseMessageBase OnEventRequest(IRequestMessageEventBase requ } #region Event 下属分类 + + /// + /// 微信认证支付成功事件 + /// + /// + /// + public virtual IResponseMessageBase OnEvent_WxVerifyPaySuccRequest(RequestMessageEvent_WxVerifyPaySucc requestMessage) + { + return DefaultResponseMessage(requestMessage); + } + /// + /// 微信认证派单事件 + /// + /// + /// + public virtual IResponseMessageBase OnEvent_WxVerifyDispatchRequest(RequestMessageEvent_WxVerifyDispatch requestMessage) + { + return DefaultResponseMessage(requestMessage); + } /// /// 订单将要结算或已经结算事件推送 /// @@ -395,6 +420,12 @@ public virtual async Task OnEventRequestAsync(IRequestMess case Event.trade_manage_remind_shipping: responseMessage = await OnEvent_TradeManageRemindShippingAsync(RequestMessage as RequestMessageEvent_TradeManageRemindShipping); break; + case Event.wx_verify_pay_succ: + responseMessage = await OnEvent_WxVerifyPaySuccRequestAsync(RequestMessage as RequestMessageEvent_WxVerifyPaySucc); + break; + case Event.wx_verify_dispatch: + responseMessage = await OnEvent_WxVerifyDispatchRequestAsync(RequestMessage as RequestMessageEvent_WxVerifyDispatch); + break; #region 小程序虚拟支付 case Event.xpay_goods_deliver_notify: @@ -415,6 +446,25 @@ public virtual async Task OnEventRequestAsync(IRequestMess } #region Event 下属分类 + /// + /// 【异步方法】微信认证支付成功事件 + /// + /// + /// + public virtual async Task OnEvent_WxVerifyPaySuccRequestAsync(RequestMessageEvent_WxVerifyPaySucc requestMessage) + { + return await DefaultAsyncMethod(requestMessage, () => OnEvent_WxVerifyPaySuccRequest(requestMessage)).ConfigureAwait(false); + } + /// + /// 【异步方法】微信认证派单事件 + /// + /// + /// + public virtual async Task OnEvent_WxVerifyDispatchRequestAsync(RequestMessageEvent_WxVerifyDispatch requestMessage) + { + return await DefaultAsyncMethod(requestMessage, () => OnEvent_WxVerifyDispatchRequest(requestMessage)).ConfigureAwait(false); + } + /// /// 【异步方法】订单将要结算或已经结算事件推送 /// diff --git a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen.net8.csproj b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen.net8.csproj index 5bab0509cb..d7d9cb1784 100644 --- a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen.net8.csproj +++ b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen.net8.csproj @@ -1,7 +1,7 @@ net462;netstandard2.0;netstandard2.1 - 3.17.4 + 3.17.5 9.0 Senparc.Weixin.WxOpen Senparc.Weixin.WxOpen @@ -178,7 +178,8 @@ v3.17.1 添加 CodeApi.RevertCodeRelease() 方法的 appVersion 参数 v3.17.2 添加“小程序虚拟支付”功能 PR #2961 / Issue #2951 v3.17.3 添加小程序分类审核异步通知事件 / PR #2969 - + v3.17.5 新增小程序认证年审事件接口 / PR #2979 + https://github.com/JeffreySu/WeiXinMPSDK