我们在第11章节就充分解释说明了微信硬件jsapi属于微信JS-SDK的一部分,所以硬件JSAPI的使用首先需要遵循微信JS-SDK的使用规范。微信JS-SDK的使用方法请参考公众平台微信JS-SDK说明文档。不过如果读者不是很了解官方文档关于微信js-sdk的使用,本作者也写了一个关于微信js-sdk的开发教程,地址https://www.vxzsk.com/4/cate.html,
只需要学习前5个章节就能开始开发微信硬件jsapi了。首先咱们看看官方文档的说明:
jsapi_ticket
生成签名之前必须先了解一下jsapi_ticket,jsapi_ticket是公众号用于调用微信JS接口的临时票据。正常情况下,jsapi_ticket的有效期为7200秒,通过access_token来获取。由于获取jsapi_ticket的api调用次数非常有限,频繁刷新jsapi_ticket会导致api调用受限,影响自身业务,开发者必须在自己的服务全局缓存jsapi_ticket 。
1.参考以下文档获取access_token(有效期7200秒,开发者必须在自己的服务全局缓存access_token):../15/54ce45d8d30b6bf6758f68d2e95bc627.html
2.用第一步拿到的access_token 采用http GET方式请求获得jsapi_ticket(有效期7200秒,开发者必须在自己的服务全局缓存jsapi_ticket):https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi
获得jsapi_ticket之后,就可以生成JS-SDK权限验证的签名了。
以上就是微信官方文档获取jsapi_ticket的步骤说明,咱们就根据官方文档来一步一步实现吧。
第一步:获取access_token
首先是sendGet方法
/*** * 模拟get请求 * @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; }
然后获取access_token
* 获取acess_token * 来源 www.vxzsk.com 原创 * @return */ public static String getAccessToken(){ String appid="你公众号基本设置里的应用id";//应用ID String appSecret="你公众号基本设置里的应用密钥";//(应用密钥) String url ="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="+appid+"&secret="+appSecret+""; String backData=sendGet(url, "utf-8", 10000); String accessToken = (String) JSONObject.fromObject(backData).get("access_token"); return accessToken; }
第6行和第7行代码分别为appid和appserect,关于这两个参数的获取请登录公众号平台,在左侧菜单点击基本配置即可查询得到。
第二步:获取jsapi_ticket
/*** * 获取jsapiTicket * 来源原创 www.vxzsk.com * @return */ public static String getJSApiTicket(String accessToken){ //获取token String acess_token= accessToken; String urlStr = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token="+acess_token+"&type=jsapi"; String backData=sendGet(urlStr, "utf-8", 10000); String ticket = (String) JSONObject.fromObject(backData).get("ticket"); return ticket; }
第8行代码的accessToken我们在第一步已经获取,第11行的sendGet方法也在上面已经分享。
把上述代码的方法复制到您的工程目录下,运行即可获取到jsapi_ticket,根据官方文档此参数值有效期为7200秒,所以大家记得要缓存起来,缓存到数据库中也可以,属性文件也可以。
感觉本站内容不错,读后有收获?小额赞助,鼓励网站分享出更好的教程