1. 程式人生 > >分享到微信填坑之路

分享到微信填坑之路

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()
  },

坑點四:正式公眾號認證過後才有這個功能哦!!!