搜索

微信支付开发小知识

微信支付集成说明
 
微信支付的介绍
https://pay.weixin.qq.com/wiki/doc/api/index.html
包含四种支付方式
 
 
在这里主要介绍的是 扫码支付、公众号支付
 
扫码支付(模式二)
查看文档https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_1
 
a)    扫码支付模式二,相对来说比较简单,采用统一下单接口(UnifiedOrder)返回一个url,把这个url生成一个二维码。
b)    打开手机微信端,扫描此二维码,进入微信支付过程(在手机微信端进行支付操作)。
c)    微信端和网页不在同一个平台,无法通知网页端跳转,所以在嵌入二维码的页面,设置一个轮询js,不断查询(OrderQuery)支付是否成功,如果完成,则跳转到提示页面。支付完成。
 
在我们的系统中只需要用到3个页面,就能实现扫码支付
 
扫码支付默认页 
/Include/Plugin/Payment/WeixinPay/WxpayQRCode/default.aspx 
用于展示二维码和轮询支付结果
 
 
生成二维码
/Include/Plugin/Payment/WeixinPay/WxpayQRCode/CreatePayQRCode.aspx 
用于生成二维码
在这个页面传入一个订单ID
根据订单ID获取订单,代入到支付参数中,并生成一个支付二维码
 
支付回调
/Include/Plugin/Payment/WeixinPay/WxpayQRCode/notify_url.aspx 
用于支付结果回调,在这里完成客户网站订单更新功能,需要注意的是,要在微信平台设置回调地址
微信公众平台-> 微信支付 -> 开发配置
 
 
 
公众号支付
查看文档 https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_1
注意:公众号支付需要在微信端内完成操作。
 
a)    传入初始的订单ID,保存到Session中(因为返回的地址会刷新本页,所以需要保存订单ID到Session),构造网页授权获得一个code,返回到本地址;再根据这个code获得一个openid
b)    根据传入的openid,调用统一下单接口,配合微信端内js完成支付
c)    微信支付回调,更新订单信息
 
在我们的系统中只需要用到3个页面,就能实现公众号支付
 
公众号支付默认页 
/Include/Plugin/Payment/WeixinPay/WxJsApi/default.aspx 
用于获取code和openid
特别注意的是,在微信服务器有2个地方需要配置,
1)    微信公众平台 -> 微信支付 -> 开发配置
 
 
2)    微信公众平台 -> 开发-> 接口权限 –> 功能服务 -> 网页账号 点击修改
 
 
域名必须是完整的,比如 365shangpin.cn就不能更新 www.365shangpin.cn的数据。
如果没有正确的配置,支付时会提示“redirect_uri参数错误”
 
微信端内支付页 
/Include/Plugin/Payment/WeixinPay/WxJsApi/jsapipaypage.aspx 
根据openid 并调用统一下单接口,返回参数,微信端内js调起支付。支付完成根据状态跳转到支付结果显示页
 
 
支付回调
/Include/Plugin/Payment/WeixinPay/WxJsApi/notify_url.aspx 
用于支付结果回调,在这里完成客户网站订单更新功能。
需要注意的是,如果没有在微信服务器配置回调网址,则需要在统一下单接口,传入回调地址
 
 
 
附:微信支付需要提供的参数及获取方法
 
 
 
1.微信公众平台
https://mp.weixin.qq.com/
 
登录成功后在左侧导航栏找到 开发 -> 基本配置
可以看到 AppID(应用ID) 和 AppSecret(应用密钥)
 
 
2.微信支付平台
https://pay.weixin.qq.com
 
登录成功后在左侧导航栏找到 账户设置 -> 账户信息
可以看到 微信支付商户号
 
 
在左侧导航栏找到 账户设置 -> API安全
可以看到 商户支付密钥
 
 
更新时间:2016-05-27 10:36:17