微信支付剛出來的時候,和公眾號的繫結關係很深(甚至舊版本使用的就是公眾號的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.V3 -
2)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。