标签:更新 params html conf 服务器端 密码 随机 工具包 官方文档
公司最近项目需要使用微信进行分享,对微信的jssdk研究了下,由于研究过程并不顺利,遇到的坑比较多,所以特意将研究结果记录下来,供大家批评和参考!
官方文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115
微信的jssdk是面向网页开发者提供的基于微信内的网页开发工具包,提供了诸如分享朋友圈,分享微信好友,分享QQ好友 and so on,具体支持的文档参考上述官方文档;
在进行微信jssdk开发之前,首先你得拥有一个微信公众号,并且具有对应功能的权限,注意一定要有对应开发的权限!!!(如下图所示).另外如果你没有微信的公众号或者仅为测试所用,那么可以去申请一个微信测试的账号(这个给腾讯点赞!).
如果你有了这些基础,那么就可以开始开发了,开发分为以下五个步骤
在html页面中引入js文件:http://res.wx.qq.com/open/js/jweixin-1.2.0.js
在进行jssdk接口调用之前,必须在html页面中进行config接口注入
wx.config({
debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印
appId: ‘‘, // 必填,公众号的唯一标识
timestamp: , // 必填,生成签名的时间戳
nonceStr: ‘‘, // 必填,生成签名的随机串
signature: ‘‘,// 必填,签名
jsApiList: [] // 必填,需要使用的JS接口列表,所有JS接口列表见微信官方文档
});
appid就不用说了,每个微信公众号唯一一个;
timestamp和nonceStr由开发者动态生成,一般在服务器端生成;
signature需要使用jsapi_ticket,url,noncestr,timestamp拼接成如下一个字符串,并对如下的求sha1的值,这个值即为signature,其中jsapi_ticket在上述官方文档中也可以找到;
例如:jsapi_ticket=sM4AOVdWfPE4DxkXGEs8VMCPGGVi4C3VM0P37wVUCFvkVAy_90u5h9nbSlYy3-Sl-HhTdfl2fzFy1AOcHKP7qg&noncestr=Wm3WZYTPz0wzccnW×tamp=1414587457&url=http://mp.weixin.qq.com?params=value
所有内容应该(并不是必须)通过ready接口来进行处理,在该方法内部对需要用到的接口进行处理,我觉得更像是一种注册绑定;
如分享到朋友圈的接口,link的链接的内容一定要在前面配置的安全域名之下的内容,其他内容也不太填敏感信息;
wx.onMenuShareTimeline({
title: ‘‘, // 分享标题
link: ‘‘, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
imgUrl: ‘‘, // 分享图标
success: function () {
// 用户确认分享后执行的回调函数
},
cancel: function () {
// 用户取消分享后执行的回调函数
}
});
wx.error(function(res){
// config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
});
笔记自己猜测的信息验证过程:
我们在进行接口配置的时候将我们从服务器拿到的noncestr,timestamp,signature写到config方法中,config向微信发出异步请求,将我们的配置信息传递到服务器,由服务器计算得出一个签名,和我们传给服务器的签名进行对比,当二者相同的时候说明验证信息无误,使用此方法保证分享的安全性!
那么说了这么多,你服务器端代码写好了,html网页代码也写好了,怎么分享呢?
在微信里面打开你的网页,在微信的右上角,点击进入分享,其实也就是微信官方的分享按钮,只能通过此方法进行分享!!!
在开发过程中可以考虑使用微信官方的微信web开发者工具进行开发调试,里面可以看到jssdk的信息,如果出现config:ok基本上是没有什么问题了,但是有的时候不要太相信这个结果了,还要到手机环境进行测试的,切记安卓和苹果都要测试!!!
如果你有任何批评或者疑问,可以在下面进行评论或者向此邮箱发邮件,Email:gebizhuifengren@aliyun.com
标签:更新 params html conf 服务器端 密码 随机 工具包 官方文档
原文地址:http://www.cnblogs.com/gebizhuifenren/p/7192384.html