關於微信網頁調用js-sdk相關接口注意事項目(一級域名與二級域名互相干擾!!!)

      不知道有沒有網友遇到過同一個web應用用不一樣的域名(一級或二級域名)在兩個公衆號中調用JSSDK相關接口實現功能,web

這種作法原本沒有問題,問題在於用二級域名(同屬一級域名下的二級域名)綁定另外一個web應用的ip在上面兩個公衆號中的其中一個作測試時,算法

問題就出現了。api

   咱們先理一下jssdk調用的流程,緩存

一、利用appId與appSecret獲得access_token;安全

二、利用access_token獲得jsapi_ticket臨時票據;微信

三、經過算法得到隨機字符串$nonceStrapp

四、利用jsapi_ticket=$jsapiTicket    &noncestr=$nonceStr    &timestamp=$timestamp    &url=$url獲取$signature簽名;測試

五、jsapi_ticket、url、$timestamp$nonceStr$signature、appId共同組合成微信配置參數。url

六、配置成功後可調用相關接口。spa

 

重點在於配置是否成功,

access_token與jsapi_ticket都時效性兩個小時,使用時必須緩存,以避免觸發頻率限制;

問題回來上面說的同一個衆號中有兩個應用在調用js接口,一個是生產的,已經上線的,一個測試的,專用測試用,兩個應用都是主域名下的二級域名,

這時會出現接口調用衝突。!!!!

緣由是若是安全域設置了一級域名,那它下面的二級域名一樣能夠調用js接口,也就是說一級域名與其下面的兩級如下的域名統一對應一個公衆號,

它們請求生成的access_token與jsapi_ticket具備惟一性,當一個域名請求後,另外一個域名下調用時所使用的緩存access_token與jsapi_ticket就會失效,

從而調用失敗。

 

簡單來講, 一個公衆號只能對應一個域名(包括其下面的二級以上域名),不管多少級域名調用接口,它們access_token與jsapi_ticket 是惟一的;

這真是折磨死人

相關文章
相關標籤/搜索