Heim >WeChat-Applet >WeChat-Entwicklung >Detaillierte Erklärung, wie Sie jsapi_ticket in der WeChat-Jsapi-Entwicklung erhalten

Detaillierte Erklärung, wie Sie jsapi_ticket in der WeChat-Jsapi-Entwicklung erhalten

高洛峰
高洛峰Original
2017-03-26 14:00:512437Durchsuche

Wir haben uns die WeChat-jsapi-Entwicklungsdokumentation angesehen und festgestellt, dass Sie, wenn Sie WeChat-jsapi verwenden möchten, nicht nur einen registrierten Domänennamen binden müssen, sondern auch eine umfangreiche Überprüfung der Schnittstelleninjektionsberechtigungen benötigen. Ich finde es etwas mühsam, aber ich kann nichts dagegen tun. Wer macht WeChat so beliebt?

Injizieren Sie die Berechtigungsüberprüfungskonfiguration über die Konfigurationsschnittstelle.

Alle Seiten, die JS-SDK verwenden müssen, müssen zuerst Konfigurationsinformationen einfügen, andernfalls werden sie nicht aufgerufen (es muss nur dieselbe URL aufgerufen werden). einmalig, um die URL zu ändern. Die SPA-Web-App kann jedes Mal aufgerufen werden, wenn sich die URL ändert. Derzeit unterstützt der Android WeChat-Client die neue H5-Funktion von pushState nicht, sodass die Signatur bei Verwendung von pushState zum Implementieren der Web-App-Seite fehlschlägt . Dieses Problem wird in Android 6.2 behoben.

Das Obige ist die Beschreibung des offiziellen WeChat-Dokuments. Ich wollte mich ursprünglich gerne mit der WeChat-Entwicklung verbinden, aber jetzt bin ich sprachlos, insbesondere die Anfänger, die völlig verwirrt sind Code aus dem offiziellen WeChat-Dokument. Beispiel:

wx.config({

    debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。

    appId: '', // 必填,公众号的唯一标识

    timestamp: , // 必填,生成签名的时间戳

    nonceStr: '', // 必填,生成签名的随机串

    signature: '',// 必填,签名,见附录1

    jsApiList: [] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2

});

wx.config({

debug: true, // Wenn der Debugging-Modus aktiviert ist, werden die Rückgabewerte aller API-Aufrufe auf der Clientseite angezeigt. Wenn Sie die eingehenden Parameter anzeigen möchten, können Sie sie auf der PC-Seite öffnen. Die Parameterinformationen werden über das Protokoll gedruckt und nur auf der PC-Seite gedruckt. appId: '', // Erforderlich, die eindeutige Kennung des offiziellen Kontos

Zeitstempel : , // Erforderlich, der Zeitstempel zum Generieren der Signatur

nonceStr: '', / / ​​Erforderlich, eine zufällige Signaturzeichenfolge generieren

Signatur: '', // Erforderlich, Signatur, siehe Anhang 1

jsApiList: [] // Erforderlich, die zu verwendende JS-Schnittstelle Liste, siehe Anhang 2 für die Liste aller JS-Schnittstellen

});
Zeitstempel, NonceStr, Signatur, was zum Teufel sind die Parameter? Diese drei Parameter sind in Ordnung 1. Schauen wir uns Anhang 1 an. Bitte lesen Sie die Beschreibung von Anhang 1 des offiziellen WeChat-Dokuments unten jsapi_ticket Bevor Sie eine Signatur erstellen, müssen Sie zunächst verstehen, dass es sich bei jsapi_ticket um ein temporäres Ticket handelt über öffentliche Konten, um die WeChat JS-Schnittstelle aufzurufen. Unter normalen Umständen beträgt die Gültigkeitsdauer von jsapi_ticket 7200 Sekunden und wird über access_token abgerufen. Da die Anzahl der API-Aufrufe zum Abrufen von jsapi_ticket sehr begrenzt ist, führt eine häufige Aktualisierung von jsapi_ticket zu begrenzten API-Aufrufen und beeinträchtigt Ihr eigenes Geschäft. Entwickler müssen jsapi_ticket global in ihren eigenen Diensten zwischenspeichern. . 1. Lesen Sie das folgende Dokument, um access_token zu erhalten (gültig für 7200 Sekunden, Entwickler müssen access_token global in ihren eigenen Diensten zwischenspeichern): ../15/54ce45d8d30b6bf6758f68d2e95bc627.html2. Verwendung Der erste Schritt: Das erhaltene access_token verwendet die http-GET-Methode, um jsapi_ticket anzufordern (gültig für 7200 Sekunden, Entwickler müssen jsapi_ticket global in ihren eigenen Diensten zwischenspeichern): https://api.weixin.qq.com/cgi-bin/ticket/getticket ?access_token= ACCESS_TOKEN&type=jsapiSind Sie verwirrt, wenn Sie das sehen? Was zum Teufel, Sie müssen im Voraus Zeitstempel, NonceStr und Signatur kennen, und Sie müssen es auch bekommen jsapi_ticket Vergessen Sie es, da es sich um ein offizielles Dokument handelt sagt, ich solle jsapi_ticket bekommen, dann hol es mir hier. Ich zeige nur, wie Java jsapi_ticket bekommt. Der Code lautet wie folgt:

package com.test.util;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.net.MalformedURLException;

import java.net.URL;

import java.net.URLConnection;

import net.sf.json.JSONObject;

import com.test.weixin.TestAcessToken;

public class JsapiTicketUtil {

    /***

* Get-Anfrage simulieren

* @param url

* @param charset

* @param timeout

* @return

*/

     public static String sendGet(String url, String charset, int timeout)

      {

        String result = "";

        Versuchen Sie es

        {

          URL u = neue URL(URL);

          versuchen Sie es

          {

            URLConnection conn = u.openConnection() ;

            conn.connect();

            conn.setConnectTimeout(timeout);

            BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream (), charset)) ;

            String line="";

            while ((line = in.readLine()) != null)

            {

              Ergebnis = Ergebnis + line;

             🎜>

}

        }

        catch (MalformedURLException e)

        {

          return result;

        }

        Rückgabeergebnis ;

      }

     /***

* Access_token abrufen

*/

     public static String getAccessToken(){

            String appid="你公众号基本设置里的应用id";//应用ID

            String appSecret="你公众号基本设置里的应用密钥";//(应用密钥)

            String url ="https ://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="+appid+"&secret="+appSecret+"";

            String backData=TestAcessToken.sendGet(url, "utf -8", 10000);

            String accessToken = (String) JSONObject.fromObject(backData).get("access_token");  

            return accessToken;

     }

    /***

      * 获取jsapiTicket

      * 来源 www.vx zsk.com

* @return

*/

public static String getJSApiTicket(){

//Token abrufen

String access_to ken= JsapiTicketUtil.getAccessToken ( );

String urlStr = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token="+acess_token+"&type=jsapi"; String backData=TestAcessToken.sendGet(urlStr, "utf-8", 10000);

String ticket = (String) JSONObject.fromObject(backData).get("ticket"); Rückflugticket;

}

public static void main(String[] args) {

String jsapiTicket = JsapiTicketUtil.getJSApiTicket();

System. out .println("Das Ticket zum Aufrufen von WeChat jsapi lautet: "+jsapiTicket); Der obige Code kann direkt nach Eclipse oder Myeclipse kopiert werden und es ist nur die Hauptmethode erforderlich, aber gibt es hier einen Trick?

Dieser Code aus den Zeilen 58 bis 65 ist die Methode zum Abrufen von access_token, da dieser Parameter zum Erhalten des Tickets benötigt wird, aber es gibt zwei Parameter, die vom Leser ausgefüllt werden müssen, einer ist appid, der Das andere ist appSecret, der Code. Die Kommentare haben es bereits sehr deutlich gemacht, daher werde ich es hier nicht wiederholen.

Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung, wie Sie jsapi_ticket in der WeChat-Jsapi-Entwicklung erhalten. 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