Heim > Artikel > Backend-Entwicklung > Informationen zum Abrufen von jsapi_ticket in der WeChat-Entwicklung
1. Beschaffungsprozess
Zugriffstoken gegen jsapi_ticket austauschen
Die Regeln zur Signaturerstellung sind wie folgt: Zu den an der Signatur beteiligten Feldern gehören Noncestr (zufällige Zeichenfolge), gültiges jsapi_ticket, Zeitstempel (Zeitstempel) und URL (URL der aktuellen Webseite, ausgenommen # und die folgenden Teile). Nachdem Sie alle zu signierenden Parameter entsprechend dem ASCII-Code des Feldnamens von klein nach groß (lexikografische Reihenfolge) sortiert haben, verwenden Sie das URL-Schlüssel-Wert-Paarformat (d. h. Schlüssel1=Wert1&Schlüssel2=Wert2...), um sie zu a zu verketten Zeichenfolge Zeichenfolge1. Dabei ist zu beachten, dass alle Parameternamen Kleinbuchstaben sind. Führen Sie die SHA1-Verschlüsselung für String1 durch, verwenden Sie Originalwerte für Feldnamen und Feldwerte und führen Sie kein URL-Escape durch.
2. Spezifische Implementierungsmethode
1. Erhalten Sie den Zugriffstoken
Die gültige Zeit des Zugriffstokens ist 7200s, Sie können es also per Dateispeicherung speichern, um mehrere Anfragen zu vermeiden.
/** * [getAccessToken description] 获取access_token * @return [type] [description] */private function getAccessToken() { $data = $this->getFile($this->accessTokenFile); if(time() - $data['time'] > 0){ $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$this->appID}&secret={$this->appsecret}"; $re = $this->httpGet($url); $access_token = $re['access_token']; if(isset($access_token)){ $data['access_token'] = $access_token; $data['time'] = time() + 7200; $this->setFile($this->accessTokenFile,json_encode($data)); } }else{ $access_token = $data['access_token']; } return $access_token; }Tauschen Sie über access_token aus und erhalten Sie jsapi_ticket. Die Gültigkeitsdauer beträgt ebenfalls 7200 Sekunden , Verwenden Sie das URL-Schlüssel-Wert-Paarformat (d. h. key1=value1&key2=value2...), um es in die Zeichenfolge string1 zu integrieren: Signieren Sie string1 mit sha1, um die Signatur zu erhalten:
Hinweis:
/** * [getJsapiTicket description] 获取jsapi_ticket * @return [type] [description] */private function getJsapiTicket() { $access_token = $this->getAccessToken(); $jsapi_ticket = $this->getFile($this->jsapiTicketFile); if(time() - $jsapi_ticket['time'] > 0) { $url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token={$access_token}&type=jsapi"; $re = $this->httpGet($url); $this->preArr($re); $jsapi_ticket = $re['ticket']; if(isset($jsapi_ticket)){ $data['jsapi_ticket'] = $jsapi_ticket; $data['time'] = time() + 7200; $this->setFile($this->jsapiTicketFile, json_encode($data)); } }else{ $jsapi_ticket = $jsapi_ticket['jsapi_ticket']; } return $jsapi_ticket; }1. Der für die Signatur verwendete Noncestr und Zeitstempel müssen mit dem NonceStr und dem Zeitstempel in wx.config identisch sein. 2. Die für die Signatur verwendete URL muss die vollständige URL der Seite sein, die die JS-Schnittstelle aufruft. 3. Aus Sicherheitsgründen müssen Entwickler die Signaturlogik serverseitig implementieren
Das obige ist der detaillierte Inhalt vonInformationen zum Abrufen von jsapi_ticket in der WeChat-Entwicklung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!