使用开源库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的话,处理起来比较简单,相关关键代码如下所示:

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

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

时间: 2024-08-02 22:58:10

使用开源库MAGICODES.WECHAT.SDK进行微信公众号支付开发的相关文章

微信公众号支付开发全过程 --JAVA

按照惯例,开头总得写点感想 ------------------------------------------------------------------ 业务流程 这个微信官网说的还是很详细的,还配了图.我还要再说一遍. 用户点击一个支付按钮-->{后台一大推处理}-->用户看到了一个输入密码的界面,包含金额等一些信息-->用户输入密码后出来一个支付成功的页面(这部分流程都是微信自己完成的,我们什么都不用做)-->返回系统自己的页面(总不能让用户一直看着一个支付完成的页面吧

微信公众号支付开发

最近做了公众号支付,从无到有.大概经历如下步骤: 开发环境 VS2015 W10 .NET4.6 一.公众号 客户公司没有公众号,也不会申请.于是打开微信公众号介面,告诉它一步步弄.最后申请了一个服务号,并且提交了认证申请.其中大概有几处注意 : 微信号公众号名字(这个有被占用的情况).认证时提交的身份信息,企业的三证合一拍照上传. 认证申请提交后第3天时通过了,然后进入微信号开通支付功能,这个是指公众号的支付功能.过程中需要绑定银行帐号,选择经营项目,注意各项目营收费率不一样,经营资质拍照上传

微信公众号支付开发备忘

1,首先,你得有一个通过备案的域名,然后一个服务器,然后把你开发好的代码,放到该域名的服务器下; 2,然后登陆微信公众平台, https://mp.weixin.qq.com/ 然后点击: 然后如果这个已经启用,先把他停用: (这里面,稍微说一下,这个要验证通过,必须自己写一个页面,这里面用到的out.aspx,代码的话,前台为空,然后后台代码如下: Response.Write(this.Request.QueryString["echostr"]. Response.End();

微信公众号支付总结

微信公众号支付总结大致可以分为三步, 第一步获取用户授权,第二步调用统一下单接口获取预支付id,第三步H5调起微信支付的内置JS进行支付. 注意: 不得不提的是,每个公众号(公众平台),每一个APP(开放平台), 如果要进行微信支付得单独进行开通微信支付功能.开通成功后会为每一个公众号,APP 分配一个商户号.最开始没有搞清楚这层关系,导致出现类似"appid与商户号没有关联",授权时没有"scope 权限"这样的问题. 获取用户授权 String wxaccess

微信公众号退款开发

博主是小菜鸟,这篇文章仅是自己开发的随笔记录,不足博友可以指出来,一起进步 1.[微信支付]公众号支付开发者文档链接地址 https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_4 调用微信退款接口,需要发送特定的xml格式字符串到到微信退款接口: 2.微信申请退款需要双向证书, JAVA只需要使用apiclient_cert.p12即可,证书从 https://pay.weixin.qq.com/index.php/core/hom

thinkphp整合系列之微信公众号支付

thinkphp整合系列之微信公众号支付 白俊遥 2016-07-17 11:26:52 PHP thinkphp 公众号支付是指在微信app中访问的页面通过js直接调起微信支付:因此页面必须是在微信中打开的:示例项目:https://github.com/baijunyao/thinkphp-bjyadmin一:设置域名登录微信公众平台:微信支付中设置支付授权目录:把域名改为自己的:注意最后是有一个斜线的 / 设置授权域名:二:导入sdk/ThinkPHP/Library/Vendor/Wei

vue项目使用微信公众号支付总结

微信公众号支付 1. 使用jssdk调用微信支付,具体查看开发文档: 使用的vuex,在mutations中 wechatPay (state, data) { state.payObject = data console.log('微信支付开始请求') if (wechat) { wx.chooseWXPay({ timestamp: state.payObject.timeStamp, // 支付签名时间戳 nonceStr: state.payObject.nonceStr, // 支付签

vue项目使用微信公众号支付总结及遇到的坑

微信公众号支付 1. 使用jssdk调用微信支付,具体查看开发文档: 使用的vuex,在mutations中 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 wechatPay (state, data) {     state.payObject = data     console.log('微信支付开始请求')     if (wechat) {      wx.chooseWXPay({       tim

2017-9月微信公众号支付-Java详解

微信支付源代码 在此之前,先C麻瓜藤N遍,MD官方文档一半正确一半错误.言归正传, 微信支付整体流程:微信授权登录商户的公众号--微信支付的公众号配置--统一下单--微信js调起支付页面--输入密码支付--支付成功,异步回调URL处理商户的相应业务 一.业务场景: 先看一下支付的业务场景:用户使用微信登录商户页面,点击支付按钮,调起微信支付,选择付款卡号,输入密码,完成支付,如图: 场景十分简单,不过步骤比较多,稍不注意就掉坑里了. 二.微信公众号支付的配置准备: 1)调用公众号支付,首先你得有