使用開源庫MAGICODES.WECHAT.SDK進行微信公眾號支付開發


 

 

  1. 概要

    博客使用Word發博,發布后,排版會出現很多問題,敬請諒解。可加群獲取原始文檔。

本篇主要講解微信支付的開發流程,相關業務基於MAGICODES.WECHAT.SDK實現。通過本篇教程,您可以很方便的快速完成微信公眾號支付的開發。

  1. 關於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

 

  1. 微信公眾號支付

用戶已有商城網址,用戶通過微信消息、微信掃描二維碼、微信自定義菜單等操作在微信內打開網頁時,可以調用微信支付完成下單購買流程。

  1. 支付流程

微信的支付流程圖太復雜,這里我畫了一個相對簡單的:

  1. 開發實踐

    1. 開發流程圖

  1. 配置微信支付授權目錄

  • 首先,需要登錄公眾號后台,然后進入【微信支付】頁面

  • 設置【開發配置】

發起支付的頁面目錄必須與設置的精確匹配。並將支付鏈接發到對應的公眾號會話窗口中才能正常發起支付測試。注意正式目錄一定不能與測試目錄設置成一樣,否則支付會出錯。

注意:如果是使用測試目錄的地址,一定要記得把個人測試微信號添加到白名單。另外,請注意紅框內說明,否則很容易掉坑里。

  1. 配置OAUTH域名以及JSSDK

使用微信支付,需要通過OAUTH獲取用戶的OPENID,因為要調用JS API,那么JSSDK授權也是需要的。

相關配置界面如下:

  1. 引用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; }

}

 

  1. 添加支付頁,設置支付參數

在開始支付之前,我們需要創建一個支付頁。並且生成支付相關參數,如下面代碼所示:

關於OPENID的獲取,Magicodes.WeiChat可以通過在Action上添加[WeChatOAuth]來獲取粉絲信息,包括OPENID。

  1. 調用JS Api進行支付

微信頁面,我們需要編寫業務邏輯並調用JS API進行支付,相關JS代碼如下所示:

注意:調用JS api需要JSSDK權限。Magicodes.WeiChat用戶只需使用"ViewBag.UseJSSDK=true"即可啟用並注冊JSSDK權限。

然后,我們只需要綁定JS按鈕事件即可,如:

$('#btnPay').on('click',function(){

callpay();

});

 

  1. 接收微信服務器事件通知,處理支付業務

微信支付完畢后,微信服務器會異步通知我們的Web服務器,通知地址我們在上面的支付配置中已經配置過了。

使用Magicodes.WeChat.SDK的話,處理起來比較簡單,相關關鍵代碼如下所示:

在支付成功的函數中,我們可以編寫成功邏輯,比如訂單狀態的變更,支付日志的記錄等等。

至此,整個微信公眾號開發均已完成。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM