解决异次元发卡网站,支付宝插件支付结果回调失败问题
最近,小伙伴在用我的发卡网站购物时,发现我的网站扫了码(支付宝)给了钱,但是网页却没有跳转,随后进行分析调试,在此记录分析调试的过程以供大家参考!
一、问题分析
我的发卡网站在下单时,成功弹出了支付宝二维码页面,小伙伴正常支付,我正常收到款项,但是我的网站却判定没有支付成功。故,初步分析是支付宝回调支付结果的问题!
二、问题解决
既然支付回调问题,我们开始一一排查我网站的回调设置:
1、网站设置
由于我的网站域名变更过,而之后有没有人使用购买过,所以之前没有发现这里的域名还写的是变更前的域名地址!随后,我更改为: http://shop.pppfz.com
这里,我以为将这里修改好后,就可以了,但是,当我的小伙伴再次尝试支付购买时,还是出现了可以扫码支付,但是就是不出货!🤔 这时,我就有点懵逼了,我就开始在网上搜索原因,找找灵感。🔍
2、支付宝回调域名白名单
果然,搜了一圈,我想到了支付宝是不是上次的域名也没有修改,我就登陆了支付宝开发者管理后台 去看看,登录后发现好像没有没配置回调域名白名单(也不知道以前是怎么成功的),我就赶紧配置上: https://shop.pppfz.com 希望这次能解决问题!🤞
这个时候,我配置完成了,我以为万事大吉了,我自信的告诉我的小伙伴,我的网站修好了,你们可以放心大胆的使用了!我自信慢慢的去休息了。结果不一会我的小伙伴回来告诉我,还是不行,我人都麻了。😓
没办法,我又开始看日志,搜各种文档,,,,,,,
最终,发现是我网站回调地址要写成: https://shop.pppfz.com 才行,要用https协议!🔒希望这次问题真的解决了!🙏
参考: 异次元发卡官方文档——回调设置
然而,这不是麻烦小伙伴很多次了吗,啪啪被打脸,我也不好意思去找他继续测试支付功能🔧,我就开始捣鼓支付宝沙盒调试功能,去测试为什么会出现回调不成功的情况。(有需要的可以继续往下看!)
这里解释一下,总体来说回调问题就两个关键点:
1、发卡网站中其他设置中的地址写自己网站的域名(https协议)
2、支付宝后台要添加域名白名单(https协议)
三、支付宝插件调试
需要工具: 支付宝沙盒教程 或: https://pppfz.com/posts/25.html
1、问题分析
按照上面的教程,成功弄到了沙盒应用信息和买家账号密码后,我满心欢喜地😄将沙盒应用信息填入支付宝插件后,却报错了——没有发送到正确的沙盒支付网关地址!❌💻
我看到这个错误时,一楞,我靠,这也没有可以修改支付网关地址的地方呀,不好该呀!看来,我要去找异次元的插件源代码了!
2、问题解决
GitHub地址: 异次元发卡——GitHub
但是我在仓库里找了一圈,也没有找到有用的代码。😢
没办法了,我开始转换思路,进入我的发卡网站的根目录去看看!🔍
终于,我有所发现了: 🎉
/index/app/Plugin
- 这个目录下放的是通用插件,出问题的是支付插件,不在这里面
/index/app/Pay
- 就在上面,就这里面我发现了我想要找的插件目录了:
Alipay
- 就在上面,就这里面我发现了我想要找的插件目录了:
我点进去,没几个文件夹,都看了看,但是没有发现我想要的东西,但是我发现了一个有用的信息: composer.lock
——安装项目的外部依赖 📂
我点进去,找呀找找呀找,咦,我发现了一个有用的东西:🔍✨
1 |
|
这也不用怎么特别的找,那么大几个汉字:微X ,支付X 😆
进入项目一看,哦,是我想找的项目,然后我就发现了 /index/app/Pay/Alipay/Vendor/yurunsoft/pay-sdk/src/AlipayApp/Params/PublicParams.php
文件中的 apiDomain
要改为:https://openapi-sandbox.dl.alipaydev.com/gateway.do
1 |
|
至于怎么发现的麻,隐藏在下面了:
发现过程,你肯定不想看!
下面是与GPT的对话的图片
3、问题成功解决
最后测试支付成功截图: