解决异次元发卡网站,支付宝插件支付结果回调失败问题

最近,小伙伴在用我的发卡网站购物时,发现我的网站扫了码(支付宝)给了钱,但是网页却没有跳转,随后进行分析调试,在此记录分析调试的过程以供大家参考!

一、问题分析

我的发卡网站在下单时,成功弹出了支付宝二维码页面,小伙伴正常支付,我正常收到款项,但是我的网站却判定没有支付成功。故,初步分析是支付宝回调支付结果的问题!

支付失败订单日志

二、问题解决

既然支付回调问题,我们开始一一排查我网站的回调设置:

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
2
3
4
5
"description": "PHP 集成支付 SDK ,集成了支付宝、微信支付的支付接口和其它相关接口的操作。",
"support": {
"issues": "https://github.com/Yurunsoft/PaySDK/issues",
"source": "https://github.com/Yurunsoft/PaySDK/tree/v3.1.3"
},

这也不用怎么特别的找,那么大几个汉字:微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
2
$this->apiDomain = 'https://openapi.alipay.com/gateway.do'; //原来的
$this->apiDomain = 'https://openapi-sandbox.dl.alipaydev.com/gateway.do'; //修改后的

至于怎么发现的麻,隐藏在下面了:

发现过程,你肯定不想看!

下面是与GPT的对话的图片

与GPT的对话——发现过程

3、问题成功解决

最后测试支付成功截图:

支付成功

网站接受支付结果回调成功

重定向成功

记录收入成功