微信支付官方SDK V3适配thinkphp框架

浏览:11410 最后更新:2016-01-19 10:05 分类:类库 关键字: 微信支付,公众平台
发现微信支付的官方sdk有了很大改进,我们开源微信应用开发框架终于有动力集成官方的版本,替换了民间的版本,顺带修复了官方版本的几个bug(同时引入了更多的bug,maybe)必须哒!本次微信官方的SDK我们只把jsapi支付适配了thinkphp框架,其他支付方式开发者可以参考jsapi支付的适配方式自行修改,当然也可以等我们后续更新。
源代码都在这里了 http://git.oschina.net/uctoo/uctoo/
先简述一下适配大致做了什么
从https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=11_1下载的官方原版微信支付SDK
放到了UCToo开源产品的以下目录,
http://git.oschina.net/uctoo/uctoo/tree/master/ThinkPHP/Library/Com/Wxpay
官方的SDK都是用的静态方法写的,估计只能适用于单公众号的应用场景,UCToo产品中需要支持多公众号使用,就需要对原版SDK进行动态改造。
还有就是需要支持名字空间,将类和文件拆分,按Thinkphp框架命名方式进行重命名。附件代码就是这个SDK改造后的结果。
微信支付前端的示例代码写到了这个目录
http://git.oschina.net/uctoo/uctoo/tree/master/Addons/Wxpay
使用了onethink的hook机制试图让开发者可以一行代码集成jsapi支付,但是其实没什么卵用。因为支付情况都很个性化,所以感觉比较难做到完全配置化集成微信支付。
目前UCToo做到只要正确配置了微信公众号信息和微信商户信息就可以运行起来微信支付的示例。
0.5RC3版本仅改造了jsapi的支付方式,其他支付方式后续会改造更新到UCToo中,有开发者先做了,可以在git提交requests。
正常运行起UCToo中微信支付示例的步骤:
1.安装UCToo。(LAMP环境)
2.登录管理后台配置公众号。

公众号信息和微信支付信息填写正确。

3.在公众平台后台微信支付功能配置支付授权目录,因为官方后台貌似是屏蔽了 ?=/ 这样的字符串所以授权目录只能配置成这样,反正TP框架也能正确识别,有没有什么其他副作用暂时没发现
http://test.uctoo.com/addon/Wxpay/Index/jsApiPay/mp_id/

还有需要把授权Oauth的地址也配置上,就是官方后台,开发者中心,网页授权获取用户基本信息这里,根据自己平台配置好,UCToo的测试环境配置成 test.uctoo.com

4.进入支付页面的完整URL需要带一个mp_id的参数,比如这样
http://test.uctoo.com/addon/Wxpay/Index/index/mp_id/107.html
可以配置到自定义菜单里,或者从其他页面跳转到这个地址。
跳转的controller里面需要对微信支付的各种参数进行处理,并通过微信支付SDK整理好相应的js参数输出到支付页面。
代码在这里,
http://git.oschina.net/uctoo/uctoo/blob/master/Addons/Wxpay/Controller/IndexController.class.php
5.在用户微信支付界面交互完成后的回调里,处理一些用户界面的支付成功逻辑,比如跳转到支付成功结果页面。但这里最好只是做界面处理,不做订单状态处理。
http://git.oschina.net/uctoo/uctoo/blob/master/Addons/Wxpay/widget.html

6.在微信支付成功后,微信支付会向通知地址发送多次支付成功的notify通知,notify的地址就是第二步中配置的 http://test.uctoo.com/addon/Wxpay/Index/notify,收到notify后进行定制化的订单完成支付后的一些处理,比较推荐的一种方式是继承WxPayNotify类,在NotifyProcess方法中处理具体模块的支付后处理逻辑,比如
http://git.oschina.net/uctoo/uctoo/blob/master/Addons/Wxpay/Controller/PayNotifyCallBackController.class.php

有什么问题可以加微信开发交流群138048128
示例演示公众号
评论( 相关
后面还有条评论,点击查看>>