jianbs
jianbs - 认证专家
曾梦想仗剑走天涯,谁知后来剑被偷了...

注册于 4年前

回答
6
帖子
9
关注者
12

#FastAdmin框架xorpay支付插件3.13更新日志
这个问题已经更新了,看下这个文章,去下载一个新版本,替换提下文件!
替换这两个文件:

/controller/Api.php
/view/api/create.html

回调地址错误的情况下,已经生成的订单后台更新订单状态也是会提示状态更新失败,因为错误的回调地址已经更新到xorpay支付平台去了,所有你发起更新订单状态,xorpay依旧是给你错的地址通知。
修改好正确的回调地址,要重新下一单,并支付,再进行测试。

服务器没关系,只要域名是通的就行。
你在换了服务器,数据库前缀这些有没有变。
你到浏览器控制台检查一下
dqdl.net_FmHGl69wO399gi1gcrm6dHjz8gwj.png
查看query方法里返回的数据时什么,看有没有报错!
dqdl.net_FtkqZH4tB52fiVRy_8FlMTx2svEH.png

你贴上来的这两个控制器的代码是正常的,充值页面点微信和支付宝都提示创建订单失败,请重试! 吗?

百度上有这个解答,cal_days_in_month()是PHP内置的一个计算某个月当中天数的函数
由于PHP编译时没有加上--enable-calendar选项,就会报函数未定义。
用下面这个用法替代cal_days_in_month()涵数。
$dayCount = date("t",strtotime("2020-02"));//计算2月份有多少天
既然是fastadmin插件,我就直接把代码搬运上来吧。

需要修改/extend/fast/Date.php文件如下:
注释掉如下代码

$time = $position ? mktime(0, 0, 0, $month + $offset, 1, $year) : mktime(23, 59, 59, $month + $offset, cal_days_in_month(CAL_GREGORIAN, $month + $offset, $year), $year);

替换为

$time = $position ? mktime(0, 0, 0, $month + $offset, 1, $year) : mktime(23, 59, 59, $month + $offset, date("t",strtotime($year."-".($month + $offset))), $year);

注释掉如下代码

$time = $position ?
                    mktime(0, 0, 0, 1 + ((ceil(date('n', mktime(0, 0, 0, $month, $day, $year)) / 3) + $offset) - 1) * 3, 1, $year) :
                    mktime(23, 59, 59, (ceil(date('n', mktime(0, 0, 0, $month, $day, $year)) / 3) + $offset) * 3, cal_days_in_month(CAL_GREGORIAN, (ceil(date('n', mktime(0, 0, 0, $month, $day, $year)) / 3) + $offset) * 3, $year), $year);

替换为

$time = $position ?
                    mktime(0, 0, 0, 1 + ((ceil(date('n', mktime(0, 0, 0, $month, $day, $year)) / 3) + $offset) - 1) * 3, 1, $year) :
                    mktime(23, 59, 59, (ceil(date('n', mktime(0, 0, 0, $month, $day, $year)) / 3) + $offset) * 3, date("t",strtotime($year."-".(ceil(date('n', mktime(0, 0, 0, $month, $day, $year)) / 3) + $offset) * 3)), $year);

收工。

发布
问题