Thinkphp微信支付开发坑

本文详细介绍了在Thinkphp框架下开发微信支付时遇到的挑战,包括准备工作、库引入、支付发起及支付过程中的坑,如异步通知的问题、前端JS回调的用户体验和主动查询的限制。建议开发者多看博文、做好日志、数据过滤和安全性措施,并强调支付测试的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文针对的是 微信支付V3


一、准备工作

首先得有一个已认证的服务号。还要去申请开通微信支付(当然如果只是想玩玩可以申请测试公众号)。记录各种 key 和 secret。配置好 JS SDK 的域名、授权域名(OAuth2)、支付测试目录、支付目录,如果是有第三方托管的还要对接服务器。具体自行 搜索。

二、库引入

下载官方的 DEMO ,整合到自己的项目中。我用的是 thinkphp 框架,一般把微信支付 SDK放到Vendor中。(也可以放项目根目录)。

三、微信支付发起

业务逻辑挺简单的,后台引入 SDK和配置文件。统一下单等等。这些 DEMO 里都有。不累赘了。

四、支付那些坑

有三种方式查询支付状态,1、异步通知:每次支付成功后会有通知返回,只有成功处理通知,微信才会停止发送,但不确保一定成功回调。这里的坑就是接受通知的地址一定要直接访问到。举个例子:开发过程中,我尝试把处理通知的文件放在 thinkphp 的控制器中,发现就是收不到通知,后来放到根目录,就行了。我不知道是不是一定要放在根目录,但我知道放在根目录一定可以。但如果开发过程需要带上其他参数,比如我这次的流程是先根据输入查询用户数据,接着微信支付,支付完需要加上之前查询到参数,一起发给充值平台。在一开始我一直想用 SESSION 和数据库存储充值参数,但由于支付完成后是一个异步操作,用 SESSION 会造成 SESSION 无效;用数据库存储会有很大开销或者有数据原子性的问题出现,所以就要好好研究统一下单时的那些参数,你会发现一个 attach 这个参数,先把参数发给微信,微信在支付通知返回时一起带回来,就避免上述的问题。

2、前端 JS 返回:在每次支付时或支付完成后,前端会有一个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值