mirror of
https://github.com/crmeb/CRMEB.git
synced 2026-10-28 13:31:04 +00:00
fix(会员): 修复余额购买付费会员 bcmul 参数类型错误
PHP 8 bcmath 函数要求字符串参数,会员支付链路 8 处传入 int 导致 TypeError:abs() 返回 int、86400/time() 为 int 字面量与返回值。 统一 (string) 强转,覆盖订单创建(checkPayMemberType)、支付成功 (setMemberOverdueTime)、到期时间接口(getOverdueTime)、卡密激活 (drawMemberCard)四条路径;postMore 的 type/price 默认值同步改为 字符串,防止漏传时命中同一严格类型声明。
This commit is contained in:
parent
91ef48d450
commit
1ab98d2c3e
@ -136,9 +136,9 @@ class MemberCardController
|
||||
$is_ever_level = 1;
|
||||
} else {
|
||||
if ($user_info['is_money_level'] == 0) {
|
||||
$overdue_time = bcadd(bcmul($vip_day, 86400, 0), time(), 0);
|
||||
$overdue_time = bcadd(bcmul((string)$vip_day, '86400', 0), (string)time(), 0);
|
||||
} else {
|
||||
$overdue_time = bcadd(bcmul($vip_day, 86400, 0), $user_info['overdue_time'], 0);
|
||||
$overdue_time = bcadd(bcmul((string)$vip_day, '86400', 0), (string)$user_info['overdue_time'], 0);
|
||||
}
|
||||
$is_ever_level = 0;
|
||||
}
|
||||
@ -166,11 +166,11 @@ class MemberCardController
|
||||
$userServices = app()->make(UserServices::class);
|
||||
[$payType, $type, $from, $memberType, $price, $money, $quitUrl, $mcId] = $request->postMore([
|
||||
['pay_type', 'yue'],
|
||||
['type', 1],
|
||||
['type', '1'],
|
||||
['from', 'weixin'],
|
||||
['member_type', ''],
|
||||
['price', 0.00],
|
||||
['money', 0.00],
|
||||
['price', '0.00'],
|
||||
['money', '0.00'],
|
||||
['quitUrl', ''],
|
||||
['mc_id', 0]
|
||||
], true);
|
||||
|
||||
@ -403,7 +403,7 @@ class MemberOrderServices extends BaseService
|
||||
$memberPrice = 0.00;
|
||||
$isFree = 1;
|
||||
$isPermanent = 0;
|
||||
$overdueTime = bcadd(bcmul(abs($newMemberRight[$mcId]['vip_day']), "86400", 0), time(), 0);
|
||||
$overdueTime = bcadd(bcmul((string)abs($newMemberRight[$mcId]['vip_day']), '86400', 0), (string)time(), 0);
|
||||
break;
|
||||
case "month":
|
||||
case "year":
|
||||
@ -412,7 +412,7 @@ class MemberOrderServices extends BaseService
|
||||
$memberPrice = $price;
|
||||
$isFree = 0;
|
||||
$isPermanent = 0;
|
||||
$overdueTime = bcadd(bcmul(abs($newMemberRight[$mcId]['vip_day']), '86400', 0), time(), 0);
|
||||
$overdueTime = bcadd(bcmul((string)abs($newMemberRight[$mcId]['vip_day']), '86400', 0), (string)time(), 0);
|
||||
break;
|
||||
case "ever":
|
||||
$memberPrice = $price;
|
||||
|
||||
@ -2034,9 +2034,9 @@ class UserServices extends BaseService
|
||||
$is_ever_level = 1;
|
||||
} else {
|
||||
if ($user_info['is_money_level'] == 0) {
|
||||
$overdue_time = bcadd(bcmul($vip_day, 86400, 0), time(), 0);
|
||||
$overdue_time = bcadd(bcmul((string)$vip_day, '86400', 0), (string)time(), 0);
|
||||
} else {
|
||||
$overdue_time = bcadd(bcmul($vip_day, 86400, 0), $user_info['overdue_time'], 0);
|
||||
$overdue_time = bcadd(bcmul((string)$vip_day, '86400', 0), (string)$user_info['overdue_time'], 0);
|
||||
}
|
||||
$is_ever_level = 0;
|
||||
}
|
||||
|
||||
@ -190,11 +190,11 @@ class MemberCardServices extends BaseService
|
||||
case 1:
|
||||
case 2:
|
||||
case 3:
|
||||
$overdue_time = bcadd(bcmul($batch_info->use_day, 86400, 0), $user_info->overdue_time, 0);
|
||||
$overdue_time = bcadd(bcmul((string)$batch_info->use_day, '86400', 0), (string)$user_info->overdue_time, 0);
|
||||
$overdue_time = mktime(date('H'), date('i'), date('s'), date('m', $overdue_time), date('d', $overdue_time), date('Y', $overdue_time));
|
||||
break;
|
||||
case 0:
|
||||
$overdue_time = bcadd(bcmul($batch_info->use_day, 86400, 0), time(), 0);
|
||||
$overdue_time = bcadd(bcmul((string)$batch_info->use_day, '86400', 0), (string)time(), 0);
|
||||
break;
|
||||
}
|
||||
$channel_type = $data['from'];
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user