中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

微信JS-SDK簽名接口怎么用

發布時間:2021-12-24 11:02:26 來源:億速云 閱讀:152 作者:小新 欄目:大數據

這篇文章給大家分享的是有關微信JS-SDK簽名接口怎么用的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

首先我們看一下微信公眾號開發關于微信JS-SDK的使用說明,如圖:

微信JS-SDK簽名接口怎么用

一般來說,第一步由后端工程師完成,配置安全域名,微信規定只能在配置的域名下才能調用微信的JS-SDK,在哪里設置呢?

微信JS-SDK簽名接口怎么用

如圖:

微信JS-SDK簽名接口怎么用

注意:填寫的是域名而不是URL,URL是帶協議的也就是帶有http://,而域名則不需要。

之后是第二步,在頁面中引入微信的js-sdk,這個無需多說。

第三步,通過config接口注入權限驗證配置。

看起來很懵逼啊?什么是config接口,什么是注入權限,什么是驗證配置...懵逼狀態...,點開鏈接看到如圖信息:

微信JS-SDK簽名接口怎么用

通過仔細閱讀發現,當頁面中引入了微信的js-sdk后,會在全局有一個wx對象,類似頁面中引入了jquery會有一個$對象,道理一樣。這里的wx對象上有一個屬性為config,這個屬性的值為一個函數,這個config函數也可稱為接口。

那后面的注入權限驗證配置又是什么呢?

注入權限驗證配置指的是向config這個函數中傳遞上圖顯示的特定參數,然后調用這個函數,這個函數調用后會驗證當前頁面是否能使用微信的JS-SDK。

那我們來看看具體有哪些參數呢?如圖:

微信JS-SDK簽名接口怎么用

一共6個:

第一個是開啟調試開關的,開發環境一般設為true,上線后改為false;

第二個是微信公眾號的appId;

第三個生成簽名的時間戳,時間戳就是一串表示時間的數字,那這個簽名是什么鬼呢,先不用管繼續看

第四個生成簽名的隨機字串,隨機串就是隨機字符串,這里又提到了簽名

第五個簽名,問題來了簽名怎么來的呢???

第六個需要使用的js的接口列表,這是干什么的呢?簡單來說就是你需要使用微信js-sdk的那些功能,比方說調用掃一掃,相機,等等需要哪些功能就將代表其功能的字符串放進數組里面就可以了。

上面主要的疑問是簽名如何來的?接著看文檔,我們在查看第三步的時候,關于簽名的信息,其實是有一個連接的如圖:

微信JS-SDK簽名接口怎么用

仔細看附錄1,點開連接如圖:

微信JS-SDK簽名接口怎么用

微信JS-SDK簽名接口怎么用

微信JS-SDK簽名接口怎么用

文檔很長,大家可以不用看,我來用最簡短的話語來描述一下文檔的信息:

第一 要獲取簽名的話,需要先獲取jsapi_ticket,

第二 要獲取jsapi_ticket的話要先獲取access_token

以上兩步通常由后端工程師完成,完成后向前端工程師提供一個接口,前端工程師,通過請求接口可以得到jsapi_ticket,然后根據文檔的簽名算法計算出簽名。

但是為了方便,一般計算簽名這一步驟也由后端工程師來完成,前端工程師直接請求簽名接口從而獲取簽名、時間戳、隨機字符串、等一系列信息。

本片文章的標題為:微信JS-SDK簽名接口的使用與開發,前面主要講微信JS-SDK簽名接口的使用,如果只是使用的話前面的文章基本夠用了,那么下面將要講的就是微信JS-SDK簽名接口的開發了。

我們要設計三個接口:

第一個請求接口返回access_token;

第二個請求接口返回jsapi_ticket

第三個請求接口返回signature也就是簽名,當然還有一些列的其他信息,appid、時間戳、隨機字符串。

首先我們看關于獲取access_token的文檔:

微信JS-SDK簽名接口怎么用

微信JS-SDK簽名接口怎么用

微信JS-SDK簽名接口怎么用

寫的很詳細,但是也很啰嗦,這里我挑重點用大白話給大家解釋一下:獲取access_token需要用get請求方式請求一個url地址,并且需要傳遞三個參數:grant_type、appid、secret。grant_type是固定值"client_credential",appid和secret在微信公眾號后臺可以看到。

然后再看響應參數:

微信JS-SDK簽名接口怎么用

access_token和expires_in,前者為獲得到的access_token,后者為此次獲取的access_token可以緩存的時間。啥意思呢,就是說,在第一次獲取access_token后,expires_in時間內不需要重新獲取access_token,可以直接使用緩存的access_token這說明咱們可以將access_token存儲起來,在需要使用access_token時,先判斷時間有沒有過期,沒過期直接取出存儲介質中的access_token,過期的話重新請求access_token,之后更新過期時間,更新存儲介質中的access_token,獲取access_token的流程圖如下:

微信JS-SDK簽名接口怎么用

這里代碼演示用的是存儲到本地json文件中,沒有使用數據庫,數據量很小,真實項目中,也可以使用本地文件存儲。首先實現兩個功能函數,讀取文件和寫入文件:

微信JS-SDK簽名接口怎么用

然后是獲取access_token的方法,這里將獲access_token分離成兩個函數,將直接從微信服務器獲取access_token抽離成getNewToken函數:

微信JS-SDK簽名接口怎么用

到這里access_token就獲取完成了,下面就是獲取jspai_ticket了,看官方文檔:

微信JS-SDK簽名接口怎么用

照樣很啰嗦,簡單來說就是向另一個url發送get請求,帶上參數access_token和type,type是固定的值"jsapi",access_token就是上面獲取的access_token;拼接完成的url如下:

微信JS-SDK簽名接口怎么用

返回來的參數為一個對象有四個屬性,如圖:

微信JS-SDK簽名接口怎么用

主要兩項:ticket和expires,ticket就是要獲取的jsapi_ticket,expires_in是緩存時間,這個ticket也可以緩存7200秒,所以ticket的獲取流程和access_token大體是一樣的,只不過,多了一個判斷,判斷access_token是否過期。因為ticket的獲取依賴access_token,所以ticket的獲取流程圖如下:

微信JS-SDK簽名接口怎么用

代碼實現如下:

微信JS-SDK簽名接口怎么用

微信JS-SDK簽名接口怎么用

和access_token的獲取方式一樣,也是分為了兩個函數,只不過在getTicket函數中多了一步請求access_token的異步操作。

到目前為止我們已經獲取了ticket,此ticket也可以以接口的形式返回給前端。

最后一步就是計算簽名了,看一下簽名的文檔:

微信JS-SDK簽名接口怎么用

微信JS-SDK簽名接口怎么用

這里大家先仔細讀一下,我就不帶著大家讀了,直接總結要點:計算簽名需要幾個參數:

1、noncestr(隨機字符串),

2、有效的jsapi_ticket,

3、timestamp(時間戳), 

4、url(當前網頁的URL,不包含#及其后面部分)

我們先實現獲取timestamp和noncestr的函數:

微信JS-SDK簽名接口怎么用

然后需要ticket,ticket上面的代碼中已經獲取到了,那url呢,這里就需要前端向后端傳遞數據了,這里是開發中獲取signature接口api的代碼:

微信JS-SDK簽名接口怎么用

首先獲取前端傳過來的url,而后獲取時間戳與隨機字符串,然后將以上幾項按照鍵值對的形式連接,注意順序是固定的的,然后對字符串進行sha1加密,這里加密用的是crypto這個庫,也可以直接用npm安裝sha1庫,直接調用sha1庫的方法加密,加密之后,獲得的就是簽名了,最后將簽名、時間戳、隨機字符串、appid以json的形式返回給前端。

下面是綜合前后端分離模式下,獲取ticket的流程圖:


微信JS-SDK簽名接口怎么用


感謝各位的閱讀!關于“微信JS-SDK簽名接口怎么用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

城步| 高雄县| 交城县| 淮阳县| 桐城市| 合作市| 射阳县| 定日县| 红桥区| 巢湖市| 绥宁县| 合山市| 澄迈县| 张北县| 绍兴县| 双鸭山市| 武汉市| 张家界市| 象州县| 聊城市| 桂平市| 化州市| 台州市| 清河县| 迭部县| 遂平县| 怀仁县| 饶平县| 平乡县| 星子县| 皮山县| 阜南县| 屯昌县| 忻州市| 建阳市| 留坝县| 丰镇市| 萝北县| 江永县| 壤塘县| 遂宁市|