1、JS端php
一、绑定域名前端
先登陆微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。java
备注:登陆后可在“开发者中心”查看对应的接口权限。node
二、引入JS文件:http://res.wx.qq.com/open/js/jweixin-1.0.0.jspython
三、经过config接口注入配置web
wx.config({ debug: true, // 开启调试模式,调用的全部api的返回值会在客户端alert出来,若要查看传入的参数,能够在pc端打开,参数信息会经过log打出,仅在pc端时才会打印。 appId: '', // 必填,公众号的惟一标识 timestamp: '${timestamp}', // 必填,生成签名的时间戳(注意这里接受后台传来的参数,在Js中能够直接使用这种方式接受) nonceStr: '${nonceStr}', // 必填,生成签名的随机串 signature: '${signature}',// 必填,签名,见附录1 jsApiList: [] // 必填,须要使用的JS接口列表,全部JS接口列表见附录2 });
appId:公众号原始IDajax
timestamp:当前时间的时间戳spring
nonce_str:随机字符串api
signature:签名。缓存
一、首先经过https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=appId&secret=secret接口获得token
二、经过https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi获得ticket
三、经过这些参数指定方式进行签名,签名方式使用SHA1,获得signature(注意须要传递URL,URL是指访问当前页面的URL。不知道这里URL解释错了没用)
2、后台端调用接口获得相应参数,传递到前端(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);
三:使用微信官网提供的调试工具进行调试。http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=cardsign
注意:
一、获取验证参数接口,获得相应参数(php、java、nodejs以及python)
http://demo.open.weixin.qq.com/jssdk/sample.zip
2、分享接口并非只有认证号能用,如今测试号和未认证号到能够用。(以测试的)
3、测试分享接口须要注意的是,须要你主动去触发分享接口(好比分享到朋友圈,而后点击分享按钮触发Js代码)
4、使用图像和音频上传接口上传的图片和音频只有3天的有效期,若是图片和音频你想长期使用的话,你本地也要保存。
不理解:
一、连接中包含php、java、nodejs以及python的示例代码供第三方参考,第三方切记要对获取的accesstoken以及jsapi_ticket进行缓存以确保不会触发频率限制。
二、全部须要使用JS-SDK的页面必须先注入配置信息,不然将没法调用(同一个url仅需调用一次,对于变化url的SPA的web app可在每次url变化时进行调用,目前Android微信客户端不支持pushState的H5新特性,因此使用pushState来实现web app的页面会致使签名失败,此问题会在Android6.2中修复)。
三、不要尝试在trigger中使用ajax异步请求修改本次分享的内容,由于客户端分享操做是一个同步操做,这时候使用ajax的回包会尚未返回。
四、对于调用jssdk的时候,wx.ready须要注意,判断你的事件是不是页面加载的时候主动触发,仍是用户有操做的触发。若是页面加载的时候自动触发,你必需要用wx.ready包括对应的事件,不然不须要。