博客使用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的话,处理起来比较简单,相关关键代码以下所示:
在支付成功的函数中,咱们能够编写成功逻辑,好比订单状态的变动,支付日志的记录等等。
至此,整个微信公众号开发均已完成。