错误记录

=========================================================== 

钉钉开发,同一个手机号(用户) 挂在多个企业下,userid是相同的,但是unionid不同;亲测。

 

=========================================================== 

微信jssdk 签名错误 invalid signature

    在帮助文档有这么一句话:签名用的url必须是调用JS接口页面的完整URL。

===========================================================



原先:
if ($redpacket['haspwd'] &&  $pwd != $redpacket['pwd']) {
     
    $openCount = Redis::incrMemberRedpacketOpencount($this->userid, $id);
    $leftCount = 10 - $openCount;

    if ($leftCount > 0) {
            $this->returnError(300, '口令错误,还剩' . $leftCount . "次机会");
    } else {
            $this->returnError(300, '口令错误');
    }
}

修正后
if ($redpacket['haspwd']) {
    if (Redis::getMemberRedpacketOpencount($this->userid, $id) >= 10) {
        $this->returnError(300, '打开次数已超过限制');
    }

    if ($pwd != $redpacket['pwd']) {
        $openCount = Redis::incrMemberRedpacketOpencount($this->userid, $id);
        $leftCount = 10 - $openCount;

        if ($leftCount > 0) {
            $this->returnError(300, '口令错误,还剩' . $leftCount . "次机会");
        } else {
            $this->returnError(300, '口令错误');
        }
    }
}

原先会造成 10次后 输入正确密码也能进入下面逻辑

 

php 在 两数相减的结果可能会有多位小数,

可以采用下面处理:

$money = floatval(number_format(($amount - $paybalance), 2, '.', ''));

 

二位数想减一定是二位数吗?

php 中:  2.01-2 = 0.0099999999999998 

2.21-2.2=0.0099999999999998

肉眼看来相减是0.01 并且小数点第二位是1  相减得出的是0.00999999


2.2-2.1=0.1
2.02-2=0.02

$price=69.1;
$count=100;
$total=$price*$count-6910;
echo $total;


$int = 0.58;
var_dump(intval($int * 100));
输出的是0.57

在浮点数里面 0.58是被视为.57999999999999999999999……9999无限接近0.58 

 

相除 的结果若是TP 带的dump方法是看不出精确度的。

 

另外在java spring boot 中: 

BigDecimal类型, 出现6.9到了app端变成6.8000000009

 

 

nginx: 配置php-fpm:

/dev/shm/php-cgi.sock

fastcgi_pass unix:/dev/shm/php-cgi.sock;

 

===========================

$tranAmount= 1985.76

$wallet['common_avail_money'] = 571.43

$wallet['mer_avail_money'] = 1414.33;

#修改前代码  
if (($wallet['common_avail_money'] + $wallet['mer_avail_money']) < $tranAmount) {

   echo "余额不足";

}

#修改后

$compRet = bccomp($wallet['common_avail_money'] + $wallet['mer_avail_money'], $tranAmount, 2);
if ($compRet == -1) {
      echo "余额不足";
}

 

 

==========================

 

 

 


 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值