使用开源库MAGICODES.WECHAT.SDK进行微信公众号支付开发

简介:   概要 博客使用Word发博,发布后,排版会出现很多问题,敬请谅解。可加群获取原始文档。 本篇主要讲解微信支付的开发流程,相关业务基于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的话,处理起来比较简单,相关关键代码如下所示:

在支付成功的函数中,我们可以编写成功逻辑,比如订单状态的变更,支付日志的记录等等。

至此,整个微信公众号开发均已完成。

目录
相关文章
|
7天前
|
小程序 前端开发 API
微信小程序全栈开发中的异常处理与日志记录
【4月更文挑战第12天】本文探讨了微信小程序全栈开发中的异常处理和日志记录,强调其对确保应用稳定性和用户体验的重要性。异常处理涵盖前端(网络、页面跳转、用户输入、逻辑异常)和后端(数据库、API、业务逻辑)方面;日志记录则关注关键操作和异常情况的追踪。实践中,前端可利用try-catch处理异常,后端借助日志框架记录异常,同时采用集中式日志管理工具提升分析效率。开发者应注意安全性、性能和团队协作,以优化异常处理与日志记录流程。
|
7天前
|
小程序 安全 数据安全/隐私保护
微信小程序全栈开发中的身份认证与授权机制
【4月更文挑战第12天】本文探讨了微信小程序全栈开发中的身份认证与授权机制。身份认证包括手机号验证、微信登录和第三方登录,而授权机制涉及角色权限控制、ACL和OAuth 2.0。实践中,开发者可利用微信登录获取用户信息,集成第三方登录,以及实施角色和ACL进行权限控制。注意点包括安全性、用户体验和合规性,以保障小程序的安全运行和良好体验。通过这些方法,开发者能有效掌握小程序全栈开发技术。
|
7天前
|
JavaScript 前端开发 小程序
微信小程序全栈开发之性能优化策略
【4月更文挑战第12天】本文探讨了微信小程序全栈开发的性能优化策略,包括前端的资源和渲染优化,如图片压缩、虚拟DOM、代码分割;后端的数据库和API优化,如索引创建、缓存使用、RESTful API设计;以及服务器的负载均衡和CDN加速。通过这些方法,开发者可提升小程序性能,优化用户体验,增强商业价值。
|
7天前
|
小程序 前端开发 JavaScript
微信小程序全栈开发中的PWA技术应用
【4月更文挑战第12天】本文探讨了微信小程序全栈开发中PWA技术的应用,PWA结合Web的开放性和原生应用的性能,提供离线访问、后台运行、桌面图标和原生体验。开发者可利用Service Worker实现离线访问,Worker处理后台运行,Web App Manifest添加桌面图标,CSS和JavaScript提升原生体验。实践中需注意兼容性、性能优化和用户体验。PWA技术能提升小程序的性能和用户体验,助力开发者打造优质小程序。
|
1月前
|
小程序 前端开发 程序员
微信小程序开发入门教程-小程序账号注册及开通
微信小程序开发入门教程-小程序账号注册及开通
|
1月前
|
开发者
微信公众平台开发基本配置
微信公众平台开发基本配置
85 0
|
7天前
|
SQL 安全 小程序
探索微信小程序全栈开发的安全性问题
【4月更文挑战第12天】本文探讨了微信小程序全栈开发中的安全性问题,包括数据安全、接口安全、隐私保护和代码安全。为解决这些问题,建议采取数据加密、使用HTTPS协议、身份认证与授权、输入验证、安全审计及漏洞扫描以及安全培训等措施。通过这些方法,开发者可提升小程序安全性,保护用户隐私和数据。
|
29天前
|
小程序 JavaScript
在使用微信小程序开发中用vant2框架中的Uploader 文件上传wx.uploadFile无反应和使用多图上传
网上有的说是bind:after-read="afterRead"的命名问题不支持-,但是我这儿执行了console.log("file",file);证明函数运行了。后来发现是multiple="true"原因开启了多图上传,如果是多图上传的话file就是数组了
25 2
|
1月前
|
移动开发 JavaScript
微信公众号H5开发,在微信浏览器打开H5,无法一键下载图片
微信公众号H5开发,在微信浏览器打开H5,无法一键下载图片
31 0
|
1月前
|
移动开发 小程序 API
微信小程序的一些开发限制
微信小程序的一些开发限制
72 1

热门文章

最新文章

相关实验场景

更多