微信支付刚出来的时候,和公众号的绑定关系很深(甚至旧版本使用的就是公众号的appId),随着微信生态的逐步丰富,微信支付越来越成为一个独立的平台,同时服务于公众号、小程序、开放平台、企业号/企业微信等诸多平台,甚至微信支付本身也有了一些独立的功能。
早期,顺应微信支付的设计,我们在 Senparc.Weixin.MP(公众号模块)中嵌入了微信支付功能,经过连续 6 年的迭代升级,微信支付已经扩展到QY(企业号)、Work(企业微信)、Open(开放平台)、WxOpen(小程序)等模块,其中出现了诸多重复的逻辑代码和过程,为了让 Senparc.Weixin SDK 的结构更加符合实际场景,并且精简各个模块主体功能,同时也为了将微信支付更加集中地进行管理和深度优化,我们决定将微信支付从各个模块中分离出来,首先分离的是公众号,随后所有模块都将和微信支付分离。
微信支付的独立模块名称叫:Senparc.Weixin.TenPay。
Senparc.Weixin.TenPay 中包含了 V2 和 V3 两个支付版本的功能,可以通过 Senparc.Weixin.TenPay.V2 或 Senparc.Weixin.TenPay.V3 命名空间进行区分。Senparc.Weixin.TenPay 命名空间下为公共的方法。所有的方法保持了原有的结构,因此可以非常方便地进行升级。
如果您在系统中已经使用了 Senparc.Weixin.MP 等模块中使用到了公众号,可以根据以下的步骤进行升级:
- 安装 Senparc.Weixin.TenPay:https://www.nuget.org/packages/Senparc.Weixin.TenPay
命名空间引用:
1)using Senparc.Weixin.MP.TenPayLibV3 改为 using Senparc.Weixin.TenPay.V32)using Senparc.Weixin.MP.TenPayLib 改为 using Senparc.Weixin.TenPay.V2
- 枚举的命名空间变化:如Senparc.Weixin.MP.TenPayLibV3.TenPayV3Type.JSAPI,改为:Senparc.Weixin.TenPay.JSAPI
- 其他如有编译不通过的,可以直接根据提示引用命名空间
- 完成。
总之:只需要修改命名空间,逻辑代码不需要做任何修改。
Senparc.Weixin.TenPay 的源代码在 https://github.com/JeffreySu/WeiXinMPSDK 中和 MP 的同级目录下:https://github.com/JeffreySu/WeiXinMPSDK/tree/master/src/Senparc.Weixin.TenPay。