whmcs 时不时有客户支付订单后出现未支付 只看楼主

whmcs 时不时有客户支付订单后出现未支付
支付宝企业  实际已经收到款
客户账号里提示 未支付,导致开不了机器
10笔 可能有 2笔会这样
我一般的解决方法是  叫客户重新支付该笔未支付的账单 就能成功
然后我把多支付的一次, 人工微信退给客户

但现在发现更不可思议的问题, 貌似过 100天的时候,没错 刚刚100天, 这种客户会在 whmcs 每天 cron执行的时候  给他又自动充值 失败那天时候的费用 到他账号的余额里,  这样会造成他账户里莫名其妙多了费用

也不是每个这种客户都 又自动给充值(10个中 有 ,1到 两2  个 )

支付一切顺利的客户 不会出现这种情况

(始终有人支付环节,要么没跳转完支付宝就x掉浏览器,或者跳转中又多刷新了几下,大概率就会出现)
  • 推荐 秋田
  • 2023-12-25 10:01:44
支付宝异步通知和你服务器通讯时可能无法访问,估计你的服务器位置或线路不太好,支付宝偶尔会不能访问
我最近几个月也遇到了同样的问题,不知道是什么原因。
引用: 景安代理 发表于 2023-12-24 23:56
我最近几个月也遇到了同样的问题,不知道是什么原因。

大哥也是遇到 又充值返给对方费用了,还是 出现未支付
怕的是 莫名其妙哪天 又充值返给对方一笔当时失败的费用
大佬你用爽爽版还是正版whmcs?
这个是你支付宝插件问题

支付宝回调有2个
一个是同步回调 一个是异步回调
同步回调 就是用户支付成功支付宝返回你的页面 订单支付成功了
异步回调 就是用户支付成功 支付宝收到钱就发起回调, 这个回调如果没返回success给支付宝
支付宝会间隔一段时间内一直通知

你的情况可能的原因是

你用的支付宝插件没做去重处理,就是订单已经支付成功了,再次通知就直接跳过 不在处理
你插件会重复处理了,导致用户余额增加

支付宝回调服务器到你服务器连接有问题
这个问题可能性比较复杂  例如 你的防火墙拦截了IP 或者WAF拦截了回调请求
  • 7# hfhfg
  • 2023-12-25 11:29:10
引用: IDCLAYER 发表于 2023-12-25 11:11
这个是你支付宝插件问题

支付宝回调有2个

正解。简单地说,就是支付宝服务器的IP访问不了楼主whmcs的回调URL,造成失败。
本帖最后由 ballpen 于 2023-12-25 11:51 编辑
引用: IDCLAYER 发表于 2023-12-25 11:11
这个是你支付宝插件问题

支付宝回调有2个


有可能是 一直使用着一个 小商家CDN的原因, 自从 12月后,直接使用CF 后,貌似最近一个月就没出现,这个有待继续观察

另外: 支付宝异步,是会在进行异步通知交互时,如果支付宝收到的应答不是 success ,支付宝会认为通知失败,会通过一定的策略定期重新发起通知。通知的间隔频率为:4m、10m、10m、1h、2h、6h、15h 貌似不超 25小时 官方说的

但现在最不可思议的是 ,100 天后 ,或者 准时100天, 目前发现2个这种客户,  100天的时候  在重复自动充值到了客户的余额

这时间为什么这么长,(难道100 天后  支付宝再重新发起通知?  )  时间太长 防不胜防,这样会造成 黑鸡 BUG 机,给这种订单自动补费用
引用: ballpen 发表于 2023-12-25 11:46
有可能是 一直使用着一个 小商家CDN的原因, 自从 12月后,直接使用CF 后,貌似最近一个月就没出现,这个 ...

这个和支付宝通知关系不大,插件逻辑问题

正确的逻辑是
你手工修改的订单为Paid已支付状态
支付宝无论何时发起通知 发起多次通知,回调页需要先检查订单状态,如果是Paid已支付状态 就应该中断处理,直接返回 die("success");

这样就不会出现余额异常的问题了

  • 10# ybbao
  • 2023-12-30 11:13:16
正解,支付宝插件去重的处理方式问题。