WeChat jsapi 開発ドキュメントを調べていたところ、WeChat jsapi を使用したい場合は、登録されたドメイン名をバインドする必要があるだけでなく、多くのインターフェイス インジェクション許可の検証も必要であることがわかりました。ちょっと面倒だとは思いますが、仕方がありません。WeChat をこれほど普及させたのは誰ですか。
構成インターフェイスを介して権限検証構成を挿入します
JS-SDK を使用する必要があるすべてのページは、最初に構成情報を挿入する必要があります。そうしないと、構成情報は呼び出されません (同じ URL を呼び出す必要があるのは 1 回だけであり、SPA Web アプリは現在、Android WeChat クライアントは新しい H5 機能の PushState をサポートしていないため、Web アプリ ページを実装するために PushState を使用すると、この問題が発生します。 Android 6.2で修正されました)。
上記は WeChat の公式ドキュメントの説明です。私は当初喜んで WeChat に接続して開発するつもりでしたが、特に初心者は愕然としています。次に、WeChat の公式ドキュメントに記載されているコード例を見てみましょう。
wx.config({ debug: true, // デバッグ モードをオンにすると、すべての API 呼び出しの戻り値がクライアント側でアラートされます。受信パラメータを表示するには、PC 側で開くことができ、パラメーター情報はログを通じて再生され、PC 側でのみタイムスタンプが利用可能な場合にのみ出力されます。 nonceStr: '', // 必須、ランダムな署名文字列を生成します。 Signature: '', // 必須、署名、付録 1 を参照 jsApiList: [] // 必須、使用する必要がある JS インターフェースのリスト、すべての JS インターフェースのリストについては付録 2 を参照 }); | timestamp、nonceStr、signature、これら 3 つのパラメータは一体何ですか、appid はまだわかります、これら 3 つのパラメータは問題ありません、付録 1 を見てみましょう。付録 1 を見てみましょう。付録 1 の説明を参照してください。以下の WeChat 公式ドキュメント
署名を生成する前に、jsapi_ticket が WeChat JS インターフェイスを呼び出すためにパブリック アカウントによって使用される一時的なチケットであることを理解する必要があります。通常の状況では、access_token によって取得される jsapi_ticket の有効期間は 7200 秒です。 jsapi_ticket を取得するための API 呼び出しの数は非常に限られているため、jsapi_ticket を頻繁に更新すると API 呼び出しが制限され、開発者は jsapi_ticket を独自のサービスでグローバルにキャッシュする必要があります。 。
1. access_token を取得するには、次のドキュメントを参照してください (有効期間は 7200 秒、開発者は access_token を独自のサービスでグローバルにキャッシュする必要があります): ../15/54ce45d8d30b6bf6758f68d2e95bc627.html
2. 次の手順で取得した access_token を使用します。 http GET メソッド jsapi_ticket の取得リクエスト (7200 秒有効、開発者は jsapi_ticket を独自のサービスでグローバルにキャッシュする必要があります): https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi
ここを参照してください。混乱していますか? 事前にタイムスタンプ、nonceStr、署名を知る必要があり、jsapi_ticket も取得する必要があります。ここでは、jsapi_ticket を取得するだけです。 Javaを使用してjsapi_ticketを取得する方法。コードは次のとおりです:
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 { /*** */ public static sendGet(String url, String charset, int timeout) { String result = ""; try { URL u = 新しい URL(url); try { 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) { result = res ult + line; } in.close(); } catch (IOException e) { return result; } } catch (MalformedURLException e ) { return result; } return result; } /* ** */ 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.vxzsk.com * @return トークン(); String urlStr = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token="+acess_token+"&type=jsapi"; backData=TestAcessToken.sendGet(urlStr, "utf-8", 10000); .fromObject(backData).get("ticket"); } public static void main(String[] args) { String jsapiTicket = Jsapi TicketUtil.getJSApiTicket(); System.out .println ("WeChat JSAPI を呼び出すためのクーポンは:"+JSAPITICKET); 上記をコピーしますEclipse または MyEclipse に直接コードを書き込むのは冗談ですか? 58行目から65行目のコードは、access_tokenを取得するメソッドです。このパラメータはチケットを取得するために必要ですが、リーダーが入力する必要があるパラメータが2つあり、1つはappid、もう1つはappSecretです。 、コードのコメントはすでに述べています、それは非常に明確なので、ここでは繰り返しません。 |
以上がWeChat jsapi開発におけるjsapi_ticketの取得方法を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。