账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    在做微信分享的签名时总是提示签名错误
    41
    0

    问题描述

    用微信的签名校验工具,结果是一致的。百度了一些相同的问题,很多都是说前端传过来的URL需要decode一下,但是我们的URL是前端只需要传一个path过来,然后我再拼接好给他传回去,所以不应该出现这种问题的啊

    相关代码

    // 请把代码文本粘贴到下方(请勿用图片代替代码)

    static function GetSign($path)
    {
        $appid = env('WECHAT_APPID');
        $secret = env('WECHAT_SECRET');
        $url = self::SIGN_URL . $path;
        //缓存内是否存在accessToken。
        $accessToken = Cache::remember('accessToken', 120, function () use ($appid, $secret) {
            //获取access_token的请求地址
            $accessTokenUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$secret";
            //请求地址获取access_token
            $accessTokenJson = self::Curl($accessTokenUrl);
            return $accessTokenJson['access_token'];
        });
        //获取jsapi_ticket的请求地址
        $jsapiTicket = Cache::remember('jsapiTicket', 120, function () use ($appid, $secret, $accessToken) {
            $ticketUrl = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=$accessToken&type=jsapi";
            $jsapiTicketObj = self::Curl($ticketUrl);
            return $jsapiTicketObj['ticket'];
        });
    
        //随机生成16位字符
        $noncestr = str_random(16);
        //时间戳
        $time = time();
        //拼接string1
        $jsapiTicketNew = "jsapi_ticket=$jsapiTicket&noncestr=$noncestr&timestamp=$time&url=$url";
        //对string1作sha1加密
        $signature = sha1($jsapiTicketNew);
        //存入数据
        $data = [
            'appid' => $appid,
            'timestamp' => $time,
            'nonceStr' => $noncestr,
            'signature' => $signature,
            'jsapiTicket' => $jsapiTicket,
            'url' => $url,
            'jsApiList' => [
                'onMenuShareTimeline',
                'onMenuShareAppMessage',
                'onMenuShareQQ',
                'onMenuShareWeibo',
                'onMenuShareQZone'
            ]
        ];
        //返回
        return $data;
    }
    
    
    
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 稚|琦┕ 普通会员 1楼
      502 Bad Gateway

      502 Bad Gateway


      nginx
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部