Heim  >  Artikel  >  Backend-Entwicklung  >  Informationen zum Abrufen von jsapi_ticket in der WeChat-Entwicklung

Informationen zum Abrufen von jsapi_ticket in der WeChat-Entwicklung

炎欲天舞
炎欲天舞Original
2017-08-04 16:21:144116Durchsuche

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn