手机版

微信公众平台开发教程ThinkPHP框架下微信支付功能详解

时间:2021-08-26 来源:互联网 编辑:宝哥软件园 浏览:

本文举例说明了ThinkPHP框架下的微信支付功能。分享给大家参考,如下:

免责声明:原文主要取自白君瑶的博客,部分内容做了修改,仅供个人举例,主要供大家自己参考。请指正。

注意:微信官方账号的微信支付,强烈建议使用外网可访问的链接测试,否则即使代码正确也无法调出支付界面。可以用草料二维码生成可扫描的图片,也可以直接在微信输入网址。

使用框架:thinkphp3.2.3。

一.微信公众平台信息配置

1).进入微信公众平台

从左侧“微信支付”进入配置界面,添加或修改正确的支付授权目录,注意该目录的要求,建议精确到斜线/的上级目录

2).授权域名

[注意]:

域名的确认已经被工信部备案了,在最初的开发中很容易错过“www”,而截图中因为我们的备案没有添加“www”,所以记得只去掉“http://”。

二.ThinkPHP 框架,相应代码配置

微信官方账号支付-场景参考

1).Weixinpay.php文件处理

将Weixinpay.php文件导入目录

2).配置

在项目的配置文件中增加以下代码,其中的值需要根据实际微信官方账号的信息进行配置【注】:很多人会误认为是MCHID,造成不必要的时间浪费。具体发展请参考官方文件。

/Application/Common/Conf/config . PHP

3).支付函数的编辑

是点击支付后的界面,自动调用微信默认的支付框架。

[注意]:

在处理支付逻辑的时候,一定要记住这个页面是需要get请求的,也就是总金额和订单号提交给GET处理,可以收到$数据

4).getParameters修改

上述文件中的getParameters()方法需要修改,标记的位置是根据实际业务情况从数据库中获取的。具体代码将在后面提供。

5).上述函数,需要html的配合:/M/View/Cart/pay.html

6).回调函数的编辑

[注意]:

该路径必须与配置文件中的回调路径一致。这个回调功能是根据微信支付后是否真正完成数据更新来修改订单状态。例如,我将订单编号的付款状态参数从0异步设置为1。

【个人测试发现这里会话和cookie的设置无效,仅供参考】

[注意]:

之前发现由于微信服务的设计,会多次回拨notify()判断支付是否成功,但无法检测到简单的更新操作。为了与自己的平台关联,需要判断状态,否则不可避免要多次执行notify_wx()中的逻辑处理。

7).如果是整合到自己的项目中

需要将curl _ get _ contents添加到自己的公共函数中

8).补充:

(1).提醒:提供的源代码已经剥离了微信支付的核心。注意html页面中jquery.js的正确引用。pay.html基本上是直接从微信官方账号官网下载的演示页面。请在使用代码前配置微信支付url,并在网络外测试。

(2).这个功能开发中遇到的各种坑!强烈建议参考批评。[重要]

三.微信扫码支付

1).场景分析

场景参考

一般的网站开发,如果是手机,大部分都是使用上述的微信官方账号支付方式,大部分的扫码支付都出现在PC端。当然,有些移动网站有生成二维码的需求,但由于微信浏览器的识别。限制,一种情况是在微信上直接浏览的购物网站,长按二维码就能识别;另一种情况是在其他移动浏览器中,如百度和Toutiao。这样,除非你用另一部手机扫码支付,或者保存二维码截图,然后在微信上找到图片进行长按识别。很显然,后者的用法过于繁琐,所以惩罚是针对微信浏览器的开发。否则不建议使用扫码支付功能,但适合PC开发

2).功能开发

以上介绍的通用功能开发步骤1)、2)、3)、6)和7)

3).补充函数

补充常用/function . PHP中的函数weixinpay()和二维码()

4).设计显示微信扫码的页面

我订购的页面是M/Order/mobilepayment.html,即通过同时访问Order/微信paymenter和调用微信,生成一个二维码,显示在页面的img标签中。具体代码见后面的附录

5).补充 wechatpaymenter 方法。

6).注意:

模式2生成的二维码也有时间限制。同时也不能在允许的情况下截取。此外,二维码的生成根据订单号唯一确定。如果只生成一次,很可能不会第二次显示。建议用time()代替that。

扫码支付模式参考

7).运行结果截图

信息配置正确时,功能结果如图

四.附录

1.源代码参考

2.提醒:

注意微信配置的正确性。如果是错的,微信支付会报错,不会生成二维码。参考官方文件更深入了解也是不错的选择。

更多对PHP相关内容感兴趣的读者可以查看本网站专题:《PHP微信开发技巧汇总》、《php curl用法总结》、《PHP网络编程技巧总结》、《php字符串(string)用法总结》、《PHP中json格式数据操作技巧汇总》、《PHP针对XML文件操作技巧总结》、0103010

希望本文对PHP编程有所帮助。

版权声明:微信公众平台开发教程ThinkPHP框架下微信支付功能详解是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。