>위챗 애플릿 >위챗 개발 >WeChat jsapi 개발에서 jsapi_ticket을 얻는 방법에 대한 자세한 설명

WeChat jsapi 개발에서 jsapi_ticket을 얻는 방법에 대한 자세한 설명

高洛峰
高洛峰원래의
2017-03-26 14:00:512437검색

WeChat jsapi 개발 문서를 살펴보던 중 WeChat jsapi를 사용하려면 등록된 도메인 이름을 바인딩해야 할 뿐만 아니라 인터페이스 주입 권한 확인도 많이 필요하다는 사실을 발견했습니다. 좀 귀찮긴 하지만 어떻게 할 수가 없네요. 누가 위챗을 그렇게 유명하게 만들었나요?

config 인터페이스를 통해 권한 확인 구성 삽입

JS-SDK를 사용해야 하는 모든 페이지는 먼저 구성 정보를 삽입해야 합니다. 그렇지 않으면 호출되지 않습니다(동일한 URL만 호출하면 됩니다). URL을 변경하려면 URL이 변경될 때마다 SPA 웹 앱을 호출할 수 있습니다. 현재 Android WeChat 클라이언트는 pushState의 새로운 H5 기능을 지원하지 않으므로 pushState를 사용하여 웹 앱 페이지를 구현하면 서명이 실패하게 됩니다. 이 문제는 Android 6.2에서 수정될 예정입니다.

위는 위챗 공식 문서에 대한 설명입니다. 원래는 위챗 개발에 즐겁게 접속하려고 했는데, 지금은 어이가 없습니다. 특히 완전히 혼란스러워하는 초보자들은 다음을 살펴보겠습니다. WeChat 공식 문서에서 제공한 코드입니다. 예:

wx.config({

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

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

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

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

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

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

});

wx.config({

debug: true, // 디버깅 모드가 켜지면 모든 API 호출의 반환 값이 클라이언트 측에 경고됩니다. 들어오는 매개변수를 보려면 PC 측에서 열 수 있습니다. 매개변수 정보는 로그를 통해 출력되며, PC측에서만 출력됩니다.

appId: '', // 필수, 공식 계정의 고유 식별자

timestamp : , // 필수, 서명 생성을 위한 타임스탬프

nonceStr: '', / / ​​필수, 임의의 서명 문자열 생성

서명: '', // 필수, 서명, 부록 1 참조

jsApiList: [] // 필수, 사용해야 하는 JS 인터페이스 목록, 모든 JS 인터페이스 목록은 부록 2 참조
});
timestamp, nonceStr, 서명, 이 세 가지 매개 변수는 무엇입니까? appid는 여전히 알 수 있습니다. 부록을 살펴보겠습니다. 1. 부록 1을 살펴보겠습니다. 아래 WeChat 공식 문서의 부록 1 설명을 참조하세요. jsapi_ticket 서명을 생성하기 전에 jsapi_ticket이 사용되는 임시 티켓이라는 점을 먼저 이해해야 합니다. 공개 계정으로 WeChat JS 인터페이스를 호출합니다. 일반적인 상황에서 jsapi_ticket의 유효 기간은 7200초이며 access_token을 통해 얻습니다. jsapi_ticket을 얻기 위한 API 호출 수는 매우 제한되어 있으므로 jsapi_ticket을 자주 새로 고치면 API 호출이 제한되고 개발자는 자신의 서비스에서 전역적으로 jsapi_ticket을 캐시해야 합니다. . 1. access_token을 얻으려면 다음 문서를 참조하세요(7200초 동안 유효하며 개발자는 자신의 서비스에서 전역적으로 access_token을 캐시해야 함). 첫 번째 단계 획득한 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;

java.io.IOException 가져오기;

java.io.InputStreamReader 가져오기;

java.net.MalformedURLException 가져오기;

java.net.URL 가져오기;

java.net.URLConnection 가져오기;

net.sf.json.JSONObject 가져오기;

com.test.weixin.TestAcessToken 가져오기;

공용 클래스 JsapiTicketUtil {

    /***

* 요청 받기 시뮬레이션

* @param url

* @param charset

* @param timeout

* @return

*/

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

      {

        문자열 결과 = "";

        시도해 보세요.

        {

          URL u = 새 URL(url);

         시도

          {

            URLConnection conn = u.openConnection() ;

            conn.connect();

           conn.setConnectTimeout(timeout);

           BufferedReader in = new BufferedReader(new InputStreamReader(conn.getIn) putStream(), 문자 집합)) ;

            String line="";

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

            {

              결과 = 결과 + line;

            }

           in.close();

          } catch(IOException e) {

            return res 궁극기;

}

        }

        catch (MalformedURLException e)

        {

          결과 반환;

        }

        결과 반환 ;

      }

     /***

* acess_token 받기

*/

     public static String getAccessToken(){

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

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

            문자열 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

*/

public static String getJSApiTicket(){

//토큰 가져오기

String access_to ken= JsapiTicketUtil.getAccessToken ( );

문자열 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")

티켓 반환

}

public static void main(String[] args) {

String jsapiTicket = JsapiTicketUtil.getJSApiTicket();

시스템. out .println("WeChat jsapi를 호출하기 위한 티켓은 "+jsapiTicket); 위 코드는 Eclipse나 myeclipse에 직접 복사할 수 있고 main 메소드만 있으면 되는데 여기에 트릭이 있는 걸까요?

58~65행의 이 코드는 access_token을 얻는 방법입니다. 이 매개변수는 티켓을 얻는 데 필요하기 때문입니다. 그러나 독자가 채워야 하는 두 개의 매개변수가 있습니다. 하나는 appid이고, 다른 하나는 appSecret입니다. 주석은 이미 매우 명확하게 설명되어 있으므로 여기서는 반복하지 않겠습니다.

위 내용은 WeChat jsapi 개발에서 jsapi_ticket을 얻는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.