博客使用Word發博,發佈後,排版會出現不少問題,敬請諒解。可加羣獲取原始文檔。 git
本篇主要講解微信支付的開發流程,相關業務基於MAGICODES.WECHAT.SDK實現。經過本篇教程,您能夠很方便的快速完成微信公衆號支付的開發。github
MAGICODES.WECHAT.SDK爲心萊團隊封裝的輕量級微信SDK,現已所有開源,開源庫地址爲:https://github.com/xin-lai/Magicodes.WeChat.SDKapi
更多介紹,請關注後續博客。服務器
官方博客:http://www.cnblogs.com/codelove/ 微信
相關開源庫地址:https://github.com/xin-lai 異步
用戶已有商城網址,用戶經過微信消息、微信掃描二維碼、微信自定義菜單等操做在微信內打開網頁時,能夠調用微信支付完成下單購買流程。函數
微信的支付流程圖太複雜,這裏我畫了一個相對簡單的:測試
發起支付的頁面目錄必須與設置的精確匹配。並將支付連接發到對應的公衆號會話窗口中才能正常發起支付測試。注意正式目錄必定不能與測試目錄設置成同樣,不然支付會出錯。微信支付
注意:若是是使用測試目錄的地址,必定要記得把我的測試微信號添加到白名單。另外,請注意紅框內說明,不然很容易掉坑裏。 spa
使用微信支付,須要經過OAUTH獲取用戶的OPENID,由於要調用JS API,那麼JSSDK受權也是須要的。
相關配置界面以下:
Magicdoes.WeChat.SDK能夠經過Nuget包來引用,引用以後,須要先作一些初始化設置。
這裏初始化了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代碼以下所示:
注意:調用JS api須要JSSDK權限。Magicodes.WeiChat用戶只需使用"ViewBag.UseJSSDK=true"便可啓用並註冊JSSDK權限。
而後,咱們只須要綁定JS按鈕事件便可,如:
$('#btnPay').on('click',function(){
callpay();
});
微信支付完畢後,微信服務器會異步通知咱們的Web服務器,通知地址咱們在上面的支付配置中已經配置過了。
使用Magicodes.WeChat.SDK的話,處理起來比較簡單,相關關鍵代碼以下所示:
在支付成功的函數中,咱們能夠編寫成功邏輯,好比訂單狀態的變動,支付日誌的記錄等等。
至此,整個微信公衆號開發均已完成。