PHP防止多次请求刷红包的方法

PHP防止多次请求刷红包的方法
       $signarray=array();
        $signarray['name']='wefwf';
        $time=time();
        $signarray['time']=$time;
        $signarray['phone']='wef';
        $signcreate=$this->str_encrypt($signarray);

       $this->assign('time', $time);
        $this->assign('signcreate', $signcreate);
        $this->display();
//测试是不是能重复请求接口
    public function signverifytest(){
        $issign=$this->verify($_POST);
        if(!$issign){
            echo json_encode(array('success'=>0,'msg'=>'签名验证失败','data'=>''));
            exit();
        }else{
            echo json_encode(array('success'=>0,'msg'=>'签名验证成功','data'=>''));
            exit();
        }
    }
    //签名验证
    public  function verify($parameters)
    {
        //如果sign不一致 签名失败

        if ($parameters['sign'] != $this->str_encrypt($parameters)) {
            return 0;
        } else {
            return 1;
        }
    }

    //新版加密
    public  function str_encrypt($parameters)
    {
        unset($parameters['sign']);
        $parameters['key']='mykey';
        ksort($parameters);
        $signPars = $this->url_build($parameters);
        $signPars=trim($signPars,'&');
        return strtolower(md5($signPars));
    }

    //新版字符串拼接
    public function url_build($parameters)
    {
        $signPars = '';
        foreach ($parameters as $k => $v) {
            if (isset($v)) {
                $signPars .= $k . '=' . $v . '&';
            }
        }
        return $signPars;
    }
ps:主要是利用 看不到PHP代码 所以自然看不到time和sign的生成算法 所以就防止了刷红包

查看原文:http://newmiracle.cn/?p=1085
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值