溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

微信jsapi開發(fā)獲取jsapi_ticket的示例

發(fā)布時(shí)間:2021-01-27 09:23:35 來源:億速云 閱讀:215 作者:小新 欄目:移動(dòng)開發(fā)

小編給大家分享一下微信jsapi開發(fā)獲取jsapi_ticket的示例,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

微信官方文檔給的代碼示例:

wx.config({

debug: true, // 開啟調(diào)試模式,調(diào)用的所有api的返回值會(huì)在客戶端alert出來,若要查看傳入的參數(shù),可以在pc端打開,參數(shù)信息會(huì)通過log打出,僅在pc端時(shí)才會(huì)打印。

appId: '', // 必填,公眾號(hào)的唯一標(biāo)識(shí)

timestamp: , // 必填,生成簽名的時(shí)間戳

nonceStr: '', // 必填,生成簽名的隨機(jī)串

signature: '',// 必填,簽名,見附錄1

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

});

timestamp,nonceStr,signature,尼瑪 這三個(gè)參數(shù)什么鬼,appid尚可知道,這三個(gè)參數(shù)好吧,讓我們看附錄1,那就看附錄1吧,請(qǐng)看下面微信官方文檔的附錄1說明

jsapi_ticket

生成簽名之前必須先了解一下jsapi_ticket,jsapi_ticket是公眾號(hào)用于調(diào)用微信JS接口的臨時(shí)票據(jù)。正常情況下,jsapi_ticket的有效期為7200秒,通過access_token來獲取。由于獲取jsapi_ticket的api調(diào)用次數(shù)非常有限,頻繁刷新jsapi_ticket會(huì)導(dǎo)致api調(diào)用受限,影響自身業(yè)務(wù),開發(fā)者必須在自己的服務(wù)全局緩存jsapi_ticket 。

1.參考以下文檔獲取access_token(有效期7200秒,開發(fā)者必須在自己的服務(wù)全局緩存access_token):../15/54ce45d8d30b6bf6758f68d2e95bc627.html

2.用第一步拿到的access_token 采用http GET方式請(qǐng)求獲得jsapi_ticket(有效期7200秒,開發(fā)者必須在自己的服務(wù)全局緩存jsapi_ticket):https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi

看到這里是不是蒙了,可以預(yù)先了解timestamp,nonceStr,signature,還必須獲取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 {

/***

* 模擬get請(qǐng)求

* @param url

* @param charset

* @param timeout

* @return

*/

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

{

String result = "";

try

{

URL u = new 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 = result + line;

}

in.close();

} catch (IOException e) {

return result;

}

}

catch (MalformedURLException e)

{

return result;

}

return result;

}

/***

* 獲取acess_token

*/

public static String getAccessToken(){

String appid="你公眾號(hào)基本設(shè)置里的應(yīng)用id";//應(yīng)用ID

String appSecret="你公眾號(hào)基本設(shè)置里的應(yīng)用密鑰";//(應(yīng)用密鑰)

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

*/

public static String getJSApiTicket(){

//獲取token

String acess_token= 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");

return  ticket;

}

public static void main(String[] args) {

String jsapiTicket = JsapiTicketUtil.getJSApiTicket();

System.out.println("調(diào)用微信jsapi的憑證票為:"+jsapiTicket);

}

}

把上面的代碼直接復(fù)制到Eclipse或者myeclipse中只想main方法即可,但是這里有個(gè)梗?

第58行到65行這段代碼是獲取access_token的方法,因?yàn)橐@取ticket需要這個(gè)參數(shù),但是這里有兩個(gè)參數(shù)需要讀者填寫,一個(gè)是appid,另一個(gè)是appSecret。

以上是“微信jsapi開發(fā)獲取jsapi_ticket的示例”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI