码迷,mamicode.com
首页 > 微信 > 详细

06微信公众平台开放JS-SDK

时间:2015-05-24 15:27:14      阅读:325      评论:0      收藏:0      [点我收藏+]

标签:

微信开放JS-SDK,助理网页开发

  微信公众平台面向开发者开放微信内网页开发工具包(微信JS-SDK)

  JS-SDK这个工具包提供了以下 11 类的接口集,开发者从今天开始可以调用以下功能,让基于微信的Web-App 提供更好的体验给用户。

  1. 分享类接口;
  2. 图像类接口;
  3. 音频类接口;
  4. 智能类接口;
  5. 设备信息类接口;
  6. 地理位置类接口;
  7. 界面操作类接口;
  8. 微信扫一扫接口;
  9. 微信小店接口;
  10. 微信卡券接口;
  11. 微信支付接口;

  这些接口中,除了图像类接口和地理位置类接口中的部分功能,其他大多数本身就是微信才有的功能,无法靠标准浏览器提供的接口获得。所以有了这个 JS-SDK,今后基于微信的 Web-App 能提供给用户的功能一下子变多了起来:语音聊天、识别语音转成文字、跳转到指定的微信小店商品页购买并和客服沟通、调起微信卡包等。这对舍弃原生 App,专注做基于微信的 H5 Web-App 的开发者来说是极大的利好。

  另外,这些接口集所提供的功能甚至足够开发者做出一个“只能在微信内使用的网页版微信”了

 微信开发JS-SDK的步骤

1.注册微信平台账号。

  需要注册微信平台账号,然后去获取相应的权限。

https://mp.weixin.qq.com/

  注册账号需要一个审核期,审核期过了之后可以继续使用。点击开发者中心,获得应用ID(AppID)应用秘钥(AppSecret)。这里会有不完全显示,如果想完全显示,点击“完整显示”,按照相应的提示进行操作即可。

2. 绑定域名。

   登陆进微信公众平台,点击"设置" -->"公众号设置" 下的 "功能设置" ,设置JS接口安全域名,可以填写3个域名,需要注意的是这个域名必须是备案过后的域名。

3.下载官方的JS-SDK。

   登陆进微信公众平台,点击"开发者文档", 选择微信公众平台开发者文档下的 “微信 JS-SDK” 。第一种引入方式 在需要调用JS接口的页面引入如下JS文件,(支持https):

http://res.wx.qq.com/open/js/jweixin-1.0.0.js

   第二种引入方式 打开以上的js文件,保存到本地。

 

  因为没有通过微信认证,这里没办法进行"分享内容到朋友","分享内容到朋友圈"等功能的讲解,这里讲解基本基础接口"判断当前客户端版本是否支持指定JS接口" , 可以根据需求获取相应的权限。

  微信验证代码入下。

 1 import java.util.UUID;
 2 import java.util.Map;
 3 import java.util.HashMap;
 4 import java.util.Formatter;
 5 import java.security.MessageDigest;
 6 import java.security.NoSuchAlgorithmException;
 7 import java.io.UnsupportedEncodingException;  
 8 
 9 class Sign {
10     public static void main(String[] args) {
11         String jsapi_ticket = "jsapi_ticket";
12 
13         // 注意 URL 一定要动态获取,不能 hardcode
14         String url = "http://example.com";
15         Map<String, String> ret = sign(jsapi_ticket, url);
16         for (Map.Entry entry : ret.entrySet()) {
17             System.out.println(entry.getKey() + ", " + entry.getValue());
18         }
19     };
20 
21     public static Map<String, String> sign(String jsapi_ticket, String url) {
22         Map<String, String> ret = new HashMap<String, String>();
23         String nonce_str = create_nonce_str();
24         String timestamp = create_timestamp();
25         String string1;
26         String signature = "";
27 
28         //注意这里参数名必须全部小写,且必须有序
29         string1 = "jsapi_ticket=" + jsapi_ticket +
30                   "&noncestr=" + nonce_str +
31                   "&timestamp=" + timestamp +
32                   "&url=" + url;
33         System.out.println(string1);
34 
35         try
36         {
37             MessageDigest crypt = MessageDigest.getInstance("SHA-1");
38             crypt.reset();
39             crypt.update(string1.getBytes("UTF-8"));
40             signature = byteToHex(crypt.digest());
41         }
42         catch (NoSuchAlgorithmException e)
43         {
44             e.printStackTrace();
45         }
46         catch (UnsupportedEncodingException e)
47         {
48             e.printStackTrace();
49         }
50 
51         ret.put("url", url);
52         ret.put("jsapi_ticket", jsapi_ticket);
53         ret.put("nonceStr", nonce_str);
54         ret.put("timestamp", timestamp);
55         ret.put("signature", signature);
56 
57         return ret;
58     }
59 
60     private static String byteToHex(final byte[] hash) {
61         Formatter formatter = new Formatter();
62         for (byte b : hash)
63         {
64             formatter.format("%02x", b);
65         }
66         String result = formatter.toString();
67         formatter.close();
68         return result;
69     }
70 
71     private static String create_nonce_str() {
72         return UUID.randomUUID().toString();
73     }
74 
75     private static String create_timestamp() {
76         return Long.toString(System.currentTimeMillis() / 1000);
77     }
78 }

 

06微信公众平台开放JS-SDK

标签:

原文地址:http://www.cnblogs.com/wangshuo1/p/4525791.html

(0)
(1)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!