ZFAKA 接支付宝当面付,“钱到了但页面不返回/订单还是待付款”,这是典型问题:当面付本来就没有同步 return 跳转,订单状态完全靠异步 notify 回调更新。所以你看到的“不返回结果”要分两层看:
支付宝当面付(扫码付)不支持 return_url 同步跳转,用户付完不会自动跳回成功页,只能靠:
所以“页面一直转圈/不返回”本身不一定有毛病,关键看后台订单有没有变成已支付/已发货。
二、钱扣了但订单不变 = 异步回调没进来(90% 情况)
ZFAKA 后台「系统设置 → 网站地址」必须是:
https://你的域名/product/notify/?paymethod=zfbf2f
支付宝发通知时,是用你系统里的 weburl 拼出来的。weburl 写错 → 回调地址错 → 掉单。
"ali_public_key":填支付宝公钥(不是应用公钥)
填成“应用公钥”会出现:能出码、能收款,但验签失败、回调不认。
- 宝塔「防火墙 / 防 CC / 5 秒盾」会把支付宝机器人请求拦掉
4. 伪静态 / Nginx 把 notify 打挂
if (!-e $request_filename){
rewrite ^/(.*)$ /index.php?$1 last;
"product/notify" 直接 404/500,支付宝收到非 success 就一直重试失败。
禁用函数没开、Yaf 没装好,也会让回调脚本中断。
ZFAKA 有些版本不是纯 notify 改单,还要 cli 定时任务跑订单/发邮件:
php -q /项目路径/public/cli.php request_uri="/crontab/order/index"
"https://你的域名/product/notify/?paymethod=zfbf2f"如果报 500/404 → 路由或环境坏了如果返回
2. 支付宝开放平台 → 当面付应用 → 看「异步通知日志 / 消息通知」支付宝有没有发?HTTP 状态码是多少?
"product/notify"没记录 = 支付宝根本没打过来(weburl/防火墙问题)有 500 = 代码/环境问题有 200 但订单不变 = 验签或业务逻辑问题
进 ZFAKA 后台手动把订单置为已支付 / 重新发卡。
如果你愿意,把下面信息发我,我可以直接帮你定位到哪一层:
1. 宝塔还是 1Panel / 原生 Nginx
"/product/notify/?paymethod=zfbf2f" 返回什么
4. 支付宝开放平台里“异步通知”是 200 / 500 / 无记录
5. ZFAKA 版本(1.4.x / zlkb 版 / 其他 fork)
要不要我给你一份ZFAKA 当面付 notify 排查用的日志开关 + 手动补单步骤?