微信支付-JSAPI模式开发

时间:2016-04-22 20:26:27   收藏:0   阅读:956

     之前写了两篇文章都不是关于技术类的,这个号主要还是以分享技术为主,第三篇必须得上技术类的文章,不然会对不起大家的,所以就有了今天的文章。

        现在微信支付开发很火,也不是特别难,网上也很多别人整理的教程,也有官方开发文档。主要是每个人在开发的过程中常常会遇到一些不同的小问题,然后怎么去解决这才是最关键的。作为web开发者,尤其是后端开发者,不会微信支付开发的话就真的很low。

        最近做了一个在线租车的微信项目,项目其中正好有微信支付这个功能,我在做的过程中也遇到了一些小问题,虽说之前也做过,但之前都没遇到过这些问题。最后经过自己的思考和网上查资料,一个一个方法的去调试,最后完美的解决了。

      以下是我做微信支付功能的相关效果截图:

      技术分享

技术分享

技术分享

技术分享

技术分享
以下是我的开发步骤:

注明:我用的是Thinkphp框架搭的项目,所以这个微信支付功能是在TP的基础上实现的。

第一步:需要以下资料

 ‘WX_APPID‘ => ‘微信公众号应用ID

 ‘APPSECRET‘ =>微信公众号应用密钥

 ‘MCHID‘ =>微信商户ID

 ‘KEY‘ => ‘微信商户密钥

 微信商户密钥如何设置:

技术分享
第二步:支付目录授权配置

技术分享
第三步:上传类库

路径:/Libs/ThinkPHP/Library/Vendor/WxPayPubHelper

微信支付-JSAPI模式没有用到证书,也可以不用上传证书。

技术分享

路径:/Libs/ThinkPHP/Library/Vendor/SendMessage

这个是微信公众号主动给用户推送消息的类,当订单支付完成时执行这个方法,给用户推一个消息,通知用户订单支付成功,此功能我主要是为了用户体验而加的。

技术分享

第四步:配置文件

技术分享

第五步:控制器

技术分享

技术分享

技术分享

技术分享

第六步:支付页面

技术分享

技术分享

技术分享

       到此为止,微信JSAPI支付功能就全部做好了。

       我在做微信支付的过程中出现了一个比较麻烦的问题,耗费了我半天的时间才解决的,就是在支付过程中回调通知地址的URL不规则,导致虽然支付成功了,但获取不到订单信息以及对订单信息的处理。微信支付要求回调通知URL必须不能带参数,如:“http://你的域名/index.php/home/WxJsAPI/notify/”。因为我用的是Thinkphp的路由模式3,此路由带了参数,如:“http://你的域名/index.php?s=/home/WxJsAPI/notify/”。(凡是URL里带有“?”的,都算是带了参数)

       我最后的解决方法是,重写服务器的URL,让Thinkphp的三种模式都兼容。所以我就在Nginx的配置文件里rewrite了URL,如:

技术分享
        当然,如果你是第一次做,肯定会遇到各种问题,如果你是新手,遇到的问题都不知道为什么,即使你做过了再做我相信还是可能由于细节上的疏忽会出现问题的,不过不要烦躁,耐心的去发现问题,耐心的去调试,最后一定可以解决的。


完整代码包下载:http://pan.baidu.com/s/1i5rn3w



        现在是信息大爆炸时代,信息泛滥,在这样的社会环境下,好的原创文章是最需要的,最不应该被淹没的,所以我就开始写文章了。这是我写的第三篇文章,是一篇关于微信支付的技术类文章,目的是分享给有需要的朋友,大家可以一起交流进步。可能很多地方写的不好,请大家多多指出。

        我一直认为写文章是最好的思考方式,不光在分享,也在沉淀自己。张德Talk上的文章主要是分享技术、产品、创业和生活的相关有趣故事和经历。

技术分享


评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!