奔三路 - 你30岁前的学习路!

奔三路学习网

当前位置: 主页 > 大前端知识 > php >

laravel+vue+easyWechat,实现微信支付的那些坑坑

时间:2019-01-02 17:00来源: 作者:史密斯
千万别用weixin-js-sdk做支付,坑大的你出不来!
我用的是WeixinJSBridge.invoke微信内置的对象,千万别用weixin-js-sdk做支付,坑大的你出不来!

首当其冲的给大家分享困扰我整个元旦假期的巨坑,支付平台的域名配置是项目访问的路径,不是你支付的接口地址。

例如你的项目是www.66666.com/a,然后接口地址是www.66666.com/pay。千万别把pay的路径放上,而是用填写a地址最后加反斜杠。

巨坑就是上面两个,现在说小坑!

小坑主要集中在laravel和easyWechat的使用上面,流程一定要屡清楚了。

1、首先用户发起支付,这个时候要在订单表把out_trade_no记录下来,顺带录入订单表的还有用户id、下单时间、订单类型、商品ID、订单金额

2、用户输入密码成功支付后,微信支付平台会自动以post方法回调你在配置文件设置的回调地址,在这个回调地址对应的控制器行为里,拿到out_trade_no后,查找订单表,如果该订单还没有支付时间,就给订单表录入对应的支付时间和支付状态

3、最后根据订单类型做相对应的业务操作。

以上流程具体细节就是坑。
easyWechat支付肯定是用EasyWeChat::payment()方法,但是如果你用了weixin-js-sdk就会在各种属性的匹配上花上大量时间,而且我最后是一直没跑通。

最后发现用WeixinJSBridge.invoke,然后$app->jssdk->bridgeConfig($result['prepay_id']),就可以生成配置文件,什么属性对应不对应根本不用担心!

至于回调的行为里,如果在网上搜索会找到旧的easyWechat代码,用的不是handlePaidNotify方法,但官网文档里这些内容是存在通知菜单里,很隐蔽的。

祝君看了我的大坑小坑也可以顺利的实现微信支付功能! (责任编辑:admin)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
发布者资料
史密斯 查看详细资料 发送留言 加为好友 用户等级:注册会员 注册时间:2017-11-24 11:11 最后登录:2019-01-03 18:01

奔三路小程序已改版