微信JS-SDK怎樣使用
阿新 • • 發佈:2017-06-24
html cli net api entity auth sandbox nature wiki
wx對象提供了非常多方法調用,而這些方法的返回值能夠在config裏面設置。方便調試的時候觀察報錯信息。
前兩天要用到微信JS庫的的一句話——wx.closeWindow();可是整個調用過程有點兒淚奔了。。
。。
盡管開發人員平臺上說的清清楚楚,可是使用起來就是not ok!
一,綁定域名
登錄到微信公眾平臺:
在公眾號設置裏面:
找到功能設置,填入JS接口安全域名:
二,引入JS
<script type="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"> </script>
三。通過config接口註入權限驗證配置
感覺這裏的調用還是相當繁瑣的,希望微信能做個安全方便的接口來調用。
// wx.config({ // debug: false, // 開啟調試模式,調用的全部api的返回值會在clientalert出來,若要查看傳入的參數,能夠在pc端打開。參數信息會通過log打出,僅在pc端時才會打印。 // appId: ‘<%=appId%>‘, // 必填,公眾號的唯一標識 // timestamp: <%=timestamp%>, // 必填。生成簽名的時間戳 // nonceStr: ‘<%=nonceStr%>‘, // 必填,生成簽名的隨機串 // signature: ‘<%=Signature%>‘,// 必填。簽名。見附錄1 // jsApiList: [‘closeWindow‘] // 必填,須要使用的JS接口列表,全部JS接口列表見附錄2 // });
wx對象提供了非常多方法調用,而這些方法的返回值能夠在config裏面設置。方便調試的時候觀察報錯信息。
appid。timestamp,noncestr,jsApiList都是比較好填寫的參數。唯一比較麻煩的是簽名。
簽名步驟比較小復雜:http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html
/// <summary> /// 生成簽名 /// </summary> /// <param name="jsapi_ticket">The jsapi_ticket.</param> /// <param name="noncestr">The noncestr.</param> /// <param name="timestamp">The timestamp.</param> /// <param name="url">The URL.</param> /// <returns>System.String.</returns> /// <remarks>Editor:v-liuhch CreateTime:2015/6/1 18:20:43</remarks> private string GetSignature() { WxAccount wa = WxAccountAdapter.Instance.LoadByCode(PubAccCode);//獲取當前公眾號 WebClientBase wcb = new WebClientBase(); //獲取Access_token信息 string strAccess_token = wcb.RequestMyWebClient(EnumSubmitMethod.Get, "", "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + wa.AppID + "&secret=" + wa.AppSecret); access_tokenEntity at = WxAPITools.JSONUtil<access_tokenEntity>.FromJsonToObject<access_tokenEntity>(strAccess_token); string strJson = wcb.RequestMyWebClient(EnumSubmitMethod.Get, "", "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=" + at.access_token + "&type=jsapi"); jsapi_ticket jt = WxAPITools.JSONUtil<jsapi_ticket>.FromJsonToObject<jsapi_ticket>(strJson);//轉化為對象 string url = HttpContext.Current.Request.Url.ToString(); url = url.IndexOf("#") >= 0 ? url.Substring(0, url.IndexOf("#")) : url; string tmpStr = "jsapi_ticket=" + jt.ticket + "&noncestr=" + nonceStr + "×tamp=" + timestamp + "&url=" + url; return FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1"); } /// <summary> /// jsapi_ticket是公眾號用於調用微信JS接口的暫時票據 /// </summary> /// <remarks>Editor:v-liuhch CreateTime:2015/6/1 18:25:27</remarks> public class jsapi_ticket { public string errcode { get; set; } public string errmsg { get; set; } public string ticket { get; set; } public string expires_in { get; set; } } /// <summary> /// Class access_tokenEntity /// </summary> /// <remarks>Editor:v-liuhch CreateTime:2015/6/1 21:08:07</remarks> public class access_tokenEntity { public string access_token { get; set; } public string expires_in { get; set; } }
須要註意的是URL地址究竟取的是哪一部分。獲取數據的方式都是get。對全部待簽名參數依照字段名的ASCII 碼從小到大排序。
假設開啟debug後,返回一個config:ok就說明成功了。
PS:確認接口簽名的時候。能夠使用微信提供的這個網頁調試工具:http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign
微信JS-SDK怎樣使用