分享到微信填坑之路
阿新 • • 發佈:2018-12-05
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×tamp=$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() },
坑點四:正式公眾號認證過後才有這個功能哦!!!