微信JS SDK网页接口

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包括对应的事件,不然不须要。

相关文章
相关标签/搜索