分享到微信填坑之路

1、注册了公众平台测试账号,下载了jssdk。
而后开始了,生成自定义分享卡片之旅。

坑点一: 生成签名的url一定要是当前页面的url,所以 正确的姿势是:(url一定是从前端传过来的location.href)

     

public function getSignPackage(Request $request)
    {
        // return json_encode('suibian');die();
        $jsapiTicket = $this->getJsApiTicket();

        // 注意 URL 一定要动态获取,不能 hardcode.
        $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
        // $url = "$protocol$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
        $url = $request::get("url");
        
        Log::info("===========url=>".json_encode($url));
        $timestamp = time();
        $nonceStr  = $this->createNonceStr();

        // 这里参数的顺序要按照 key 值 ASCII 码升序排序
        $string = "jsapi_ticket=$jsapiTicket&noncestr=$nonceStr&timestamp=$timestamp&url=$url";

        $signature = sha1($string);

        $signPackage = array(
            "appId"     => $this->appId,
            "noncestr"  => $nonceStr,
            "timestamp" => $timestamp,
            "url"       => $url,
            "signature" => $signature,
            "rawString" => $string,
            "ticket" => $jsapiTicket
        );
        return json_encode($signPackage);
    }

 坑点二: 一定要关注测试号的公众号哦

 坑点三: 当前页面的传给后端一定要是正确的。

          我就在vue中犯下了错误,在app.vue中就向后端传送了 url ,结果 传送的url为:http://xxx/  本应该为: http://xxx/Home的。

         正解:

         

// 在Home.vue中调用

mounted(){
    this.getTk()
  },

坑点四:正式公众号认证过后才有这个功能哦!!!

猜你喜欢

转载自www.cnblogs.com/Mvloveyouforever/p/10074031.html