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

微信开放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 }

 

你可能感兴趣的:(微信公众平台)