微信jsapi_ticket的获取

2018年08月23日 08:43 | 176次浏览 作者原创 版权保护

我们在第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秒,所以大家记得要缓存起来,缓存到数据库中也可以,属性文件也可以。


此文章本站原创,地址 https://www.vxzsk.com/1869.html   转载请注明出处!谢谢!

感觉本站内容不错,读后有收获?小额赞助,鼓励网站分享出更好的教程