使用开源库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-11-05 19:37:53

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

微信支付PHP SDK之微信公众号支付代码详解_php实例

这里假设你已经申请完微信支付 1. 微信后台配置  如图 我们先进行测试,所以先把测试授权目录和 测试白名单添加上.测试授权目录是你要发起微信请求的哪个文件所在的目录. 例如jsapi 发起请求一般是jsapi.php所在目录 为测试目录,测试白名单即开发人员的微信号. 正式的支付授权目录不能和测试的一样否则会报错.不填写或者填错授权目录以及测试白名单都会报错. 报错样例: NaNsystem:access_denied 不在测试白名单 2. 配置 lib/WxPay.Config.php文件

nodejs微信公众号支付开发_node.js

odeJs 微信公众号功能开发,移动端 H5页面调用微信的支付功能.这几天根据公司的需要使用 node 和 h5页面调用微信的支付功能完成支付需求.现在把开发过程重新捋一遍,以帮助更多的开发者顺利的完成微信支付功能的开发.(微信暂时还没有提供 node 的支付功能) 一.请求CODE 请求 code 的目的就是获取用户的 openid(用户相对于当前公众号的唯一标识) 和access_token,请求的API:https://open.weixin.qq.com/connect/oauth2/a

开源库Magicodes.WeChat.SDK总体介绍

  目录 1    概要    1 2    主要特点    2 3    架构图    8 3.1    构造器--WeChatSDKBuilder    8 3.2    函数管理器--WeChatFrameworkFuncsManager    9 3.2.1    获取Key--GetKey    11 3.2.2    获取公众号配置--Config_GetWeChatConfigByKey    12 3.2.3    其他    12 3.3    配置管理器--WeChatCon

代码-微信公众号支付获取不到notify_url通知

问题描述 微信公众号支付获取不到notify_url通知 2015-07-23 10:06:07,848 INFO -SaleAction.wechat_paymentResult 微信支付后台通知结果:{} 2015-07-23 10:06:07,848 INFO -微信支付后台通知结果: 微信支付后台通知结果:{} 2015-07-23 10:06:07,849 INFO -微信支付后台通知结果: 微信支付后台通知结果:{} 2015-07-23 10:06:07,849 INFO -微信支

关于微信公众号支付的问题

问题描述 关于微信公众号支付的问题 现在微信公众号支付功能已经实现,但是现在有一个问题,在调起预支付订单时,我在后台订单表中生成一条订单记录且订单记录状态为未支付状态,现在我在使用微信支付的中途停止了支付,支付中断,这样在数据库里面会有一条尚未支付的订单记录,用户在'我的订单'中也可以看到未支付的订单,我提供一个按钮让用户继续支付.然而,这里的代码,实现的思路是什么?求救了 解决方案 微信公众号支付微信支付之公众号支付

微信公众号支付之坑:调用支付jsapi缺少参数 timeStamp等错误解决方法_php实例

这段时间一直比较忙,一忙起来真感觉自己就只是一台挣钱的机器了(说的好像能挣到多少钱似的,呵呵):这会儿难得有点儿空闲时间,想把前段时间开发微信公众号支付遇到问题及解决方法跟大家分享下,这些"暗坑"能不掉就不掉吧,要不然关键时刻出问题,真是让人急的焦头烂额.  双12客户的商城活动正在蓄势进行中,却有用户频频反馈说:支付不了,有问题,并截图如下:   当时问题感觉很奇怪,自己测试多次都ok啊,问题来了都赶紧解决吧,最终找到解决办法: 原因是程序中一个字符串变量被错误的设置为数字类型,解决

微信公众号支付(一)如何获取用户openId_java

一.获取apikey,appsecret与商户号 注册公众号.商户号 二.获取用户的OpenId 1.设置[授权回调页面域名] 官方解释:用户在网页授权页同意授权给公众号后,微信会将授权数据传给一个回调页面,回调页面需在此域名下,以确保安全可靠.回调页面域名不支持IP地址. 2.用户同意授权 我是把这个url写在微信菜单下的,当进入这个页面的时候就让用户同意.注意:好像是静默授权的,用户不知道 1.url:https://open.weixin.qq.com/connect/oauth/auth

那里有微信公众号免费开发的教程

问题描述 那里有微信公众号免费开发的教程我们的CSDN论坛,怎么不搞一下微信公众号开发的版块,这些目前市面上比较好,资料不好找,其它论坛也有,到处注册账号,烦死人.. 解决方案 解决方案二:该回复于2016-07-10 23:47:53被版主删除解决方案三:我有一些整理解决方案四:该回复于2016-07-10 23:48:03被版主删除解决方案五:csdn早就有微信开发论坛了.

Thinkphp微信公众号支付接口_php技巧

本文实例为大家分享了Thinkphp微信公众号支付接口,供大家参考,具体内容如下 第一步  先把文件夹的那两个图片 配置成一样的路径 除了域名要改 其他保持一致. 第二步  把 Weixinpay 这个文件夹放在 \ThinkPHP\Library\Vendor  将Weixinpay文件夹放置到这个Vendor文件夹中 第三步  把  WxJsAPIController.class.php 这个php文件  \Home\Controller  这里面 第四步  把 WxJsAPI这个文件夹