一、JS端
1、绑定域名
先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。
备注:登录后可在“开发者中心”查看对应的接口权限。
2、引入JS文件:http://res.wx.qq.com/open/js/jweixin-1.0.0.js
3、通过config接口注入配置
wx.config({ debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId: '', // 必填,公众号的唯一标识 timestamp: , // 必填,生成签名的时间戳 nonceStr: '', // 必填,生成签名的随机串 signature: '',// 必填,签名,见附录1 jsApiList: [] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 });
appId:公众号原始ID
timestamp:当前时间的时间戳
nonce_str:随机字符串
signature:签名。
1、首先通过https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=appId&secret=secret接口得到token
2、通过https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi得到ticket
3、通过这些参数指定方式进行签名,签名方式使用SHA1,得到signature(注意需要传递URL,URL是指访问当前页面的URL。不知道这里URL解释错了没用)
二、后台端调用接口得到相应参数,传递到前端(spring mvc /servlet/struts2都可以)
request.setAttribute("timestamp", data.get("timestamp"));
request.setAttribute("nonceStr", data.get("nonceStr"));
request.setAttribute("signature", data.get("signature"));
request.getServletContext().getRequestDispatcher("/wechat.jsp").forward(request,response);
注意:获取验证参数接口,得到相应参数(php、java、nodejs以及python)
http://demo.open.weixin.qq.com/jssdk/sample.zip
不理解:
1、链接中包含php、java、nodejs以及python的示例代码供第三方参考,第三方切记要对获取的accesstoken以及jsapi_ticket进行缓存以确保不会触发频率限制。
2、所有需要使用JS-SDK的页面必须先注入配置信息,否则将无法调用(同一个url仅需调用一次,对于变化url的SPA的web app可在每次url变化时进行调用,目前Android微信客户端不支持pushState的H5新特性,所以使用pushState来实现web app的页面会导致签名失败,此问题会在Android6.2中修复)。
3、不要尝试在trigger中使用ajax异步请求修改本次分享的内容,因为客户端分享操作是一个同步操作,这时候使用ajax的回包会还没有返回。