-
概要
博客使用Word發博,發布后,排版會出現很多問題,敬請諒解。可加群獲取原始文檔。
本篇主要講解微信支付的開發流程,相關業務基於MAGICODES.WECHAT.SDK實現。通過本篇教程,您可以很方便的快速完成微信公眾號支付的開發。
-
關於Magicodes.WeChat.SDK
MAGICODES.WECHAT.SDK為心萊團隊封裝的輕量級微信SDK,現已全部開源,開源庫地址為:https://github.com/xin-lai/Magicodes.WeChat.SDK
更多介紹,請關注后續博客。
官方博客:http://www.cnblogs.com/codelove/
相關開源庫地址:https://github.com/xin-lai
-
微信公眾號支付
用戶已有商城網址,用戶通過微信消息、微信掃描二維碼、微信自定義菜單等操作在微信內打開網頁時,可以調用微信支付完成下單購買流程。
-
支付流程
微信的支付流程圖太復雜,這里我畫了一個相對簡單的:
-
開發實踐
-
開發流程圖
-
-
配置微信支付授權目錄
-
首先,需要登錄公眾號后台,然后進入【微信支付】頁面
- 設置【開發配置】
發起支付的頁面目錄必須與設置的精確匹配。並將支付鏈接發到對應的公眾號會話窗口中才能正常發起支付測試。注意正式目錄一定不能與測試目錄設置成一樣,否則支付會出錯。
注意:如果是使用測試目錄的地址,一定要記得把個人測試微信號添加到白名單。另外,請注意紅框內說明,否則很容易掉坑里。
-
配置OAUTH域名以及JSSDK
使用微信支付,需要通過OAUTH獲取用戶的OPENID,因為要調用JS API,那么JSSDK授權也是需要的。
相關配置界面如下:
-
引用Magicodes.WeChat.SDK並且注冊相關配置
Magicdoes.WeChat.SDK可以通過Nuget包來引用,引用之后,需要先做一些初始化設置。
- 初始化SDK配置
這里初始化了SDK配置,並且注冊了相關函數。比如獲取支付配置函數,這里可以編寫自己的獲取支付配置的邏輯。
如果是使用Magicodes.WeiChat或者是Magicodes.Shop,那么可以在相關設置界面設置微信支付相關參數,如下所示:
- 設置微信配置
打開Magicodes.WeiChat設置界面,配置微信支付相關參數。支付配置模型如下所示:
public interface IWeChatPayConfig
{
/// <summary>
/// 證書相對路徑
/// </summary>
string PayCertPath { get; set; }
/// <summary>
/// 證書密鑰(與微信商戶平台商戶MchID一致)
/// </summary>
string CertPassword { get; set; }
/// <summary>
/// 支付密鑰
/// </summary>
string TenPayKey { get; set; }
/// <summary>
/// 商戶Mch_ID
/// </summary>
string MchId { get; set; }
/// <summary>
/// 支付完成后的回調處理頁面
/// </summary>
string Notify { get; set; }
}
-
添加支付頁,設置支付參數
在開始支付之前,我們需要創建一個支付頁。並且生成支付相關參數,如下面代碼所示:
關於OPENID的獲取,Magicodes.WeiChat可以通過在Action上添加[WeChatOAuth]來獲取粉絲信息,包括OPENID。
-
調用JS Api進行支付
微信頁面,我們需要編寫業務邏輯並調用JS API進行支付,相關JS代碼如下所示:
注意:調用JS api需要JSSDK權限。Magicodes.WeiChat用戶只需使用"ViewBag.UseJSSDK=true"即可啟用並注冊JSSDK權限。
然后,我們只需要綁定JS按鈕事件即可,如:
$('#btnPay').on('click',function(){
callpay();
});
-
接收微信服務器事件通知,處理支付業務
微信支付完畢后,微信服務器會異步通知我們的Web服務器,通知地址我們在上面的支付配置中已經配置過了。
使用Magicodes.WeChat.SDK的話,處理起來比較簡單,相關關鍵代碼如下所示:
在支付成功的函數中,我們可以編寫成功邏輯,比如訂單狀態的變更,支付日志的記錄等等。
至此,整個微信公眾號開發均已完成。