LYC 发表于 2026-9-24 15:35:50

个人发卡网-个人发卡系统_ZFAKA-个人发卡网对接支付宝当面...

个人发卡网-个人发卡系统_ZFAKA-个人发卡网对接支付宝当面付成功付款成功却不跳转,订单显示未支付解决方案ZFAKA 接支付宝当面付,“钱到了但页面不返回/订单还是待付款”,这是典型问题:当面付本来就没有同步 return 跳转,订单状态完全靠异步 notify 回调更新。所以你看到的“不返回结果”要分两层看:一、先搞清楚:当面付“不跳转”是正常的支付宝当面付(扫码付)不支持 return_url 同步跳转,用户付完不会自动跳回成功页,只能靠:- 前端轮询订单状态- 或支付宝异步通知 "notify_url" 把订单改成已支付 所以“页面一直转圈/不返回”本身不一定有毛病,关键看后台订单有没有变成已支付/已发货。二、钱扣了但订单不变 = 异步回调没进来(90% 情况)按这个顺序查:1. weburl 配没配对(最常见)ZFAKA 后台「系统设置 → 网站地址」必须是:- 有 HTTPS 就填"https://你的域名"- 没证书就填 "http://你的域名"- 结尾不要多斜杠notify 地址一般是:https://你的域名/product/notify/?paymethod=zfbf2f支付宝发通知时,是用你系统里的 weburl 拼出来的。weburl 写错 → 回调地址错 → 掉单。2. 支付宝公钥填错-"rsa_private_key":填应用私钥- "ali_public_key":填支付宝公钥(不是应用公钥)填成“应用公钥”会出现:能出码、能收款,但验签失败、回调不认。3. 服务器/宝塔把 notify 拦了- 宝塔「防火墙 / 防 CC / 5 秒盾」会把支付宝机器人请求拦掉- 白名单加:^/product/notify或至少放行"/notify" 路径 4. 伪静态 / Nginx 把 notify 打挂ZFAKA 依赖路由重写,Nginx 要有:location / {    if (!-e $request_filename){      rewrite ^/(.*)$ /index.php?$1 last;    }}否则"product/notify" 直接 404/500,支付宝收到非 success 就一直重试失败。5. PHP 环境缺东西当面付/支付宝 SDK 常依赖:-"curl"- "openssl"- "DOMDocument"- "fsockopen"禁用函数没开、Yaf 没装好,也会让回调脚本中断。6. 计划任务没配(ZFAKA 特有)ZFAKA 有些版本不是纯 notify 改单,还要 cli 定时任务跑订单/发邮件:php -q /项目路径/public/cli.php request_uri="/crontab/order/index"没配的话:个别版本会“通知到了但后续队列不跑”。三、30 秒自检清单1. 浏览器直接访问"https://你的域名/product/notify/?paymethod=zfbf2f"如果报 500/404 → 路由或环境坏了如果返回 "fail" → 验签/订单逻辑有问题2. 支付宝开放平台 → 当面付应用 → 看「异步通知日志 / 消息通知」支付宝有没有发?HTTP 状态码是多少?3. 服务器 access log 里搜 "product/notify"没记录 = 支付宝根本没打过来(weburl/防火墙问题)有 500 = 代码/环境问题有 200 但订单不变 = 验签或业务逻辑问题四、临时兜底(别让人白付钱)支付宝账单里拿到:- 商户订单号"out_trade_no"- 支付宝交易号 "trade_no"进 ZFAKA 后台手动把订单置为已支付 / 重新发卡。然后修 notify,比让用户退款强。如果你愿意,把下面信息发我,我可以直接帮你定位到哪一层:1. 宝塔还是 1Panel / 原生 Nginx2. HTTP 还是 HTTPS3. 访问 "/product/notify/?paymethod=zfbf2f" 返回什么4. 支付宝开放平台里“异步通知”是 200 / 500 / 无记录5. ZFAKA 版本(1.4.x / zlkb 版 / 其他 fork)要不要我给你一份ZFAKA 当面付 notify 排查用的日志开关 + 手动补单步骤?
页: [1]
查看完整版本: 个人发卡网-个人发卡系统_ZFAKA-个人发卡网对接支付宝当面...