微信民众平台JSSDK分享接口开辟(PHP完成)

近来做个挪动端的H5运用,要完成自定义微信分享功用,完成过程当中碰到一些小小的坑,这里分享一下。

之前微信官方是没有正式支撑微信分享的自定义接口(包含图片、题目、形貌)的,然则有一些大神找到了WeixinJSBridge这个壮大的“对象”,一个要领挪用就易如反掌地完成了分享功用。

厥后微信放出了JSSDK,最先对H5端供应雄厚、壮大的官方接口支撑,WeixinJSBridge也逐步淡出了开辟者的视野。

然则这个JSSDK的挪用要领,完成起来却并非太轻易。难点不在于技术上,而是营业流程上。虽然是一个前端的接口,然则为了平安性,微信请求开辟者举行服务端的考证,而这个考证居然还要分两步来举行……如此一来,关于仅仅是想要完成一个“分享到朋友圈”功用的人来讲,真是有点叫人吐血。

事实上呢,这个后端的两步考证,关于熟习微信开辟流程的人来讲,也是很合理的。由于第一步,猎取“AccessToken”,是一切微信营业的出发点;而第二步,猎取JSApi的署名,才是运用JSSDK对应的需求。如果说项目上本来就针对微信举行了一些开辟,这点需求应当是可以很快处理了。

好了,空话到此结束,下面说后端接口详细完成步骤。接口的完成是基于PHP言语的,PHP的语法简单明了,置信列位不熟习这门言语的同砚应当可以明白;代码已托管在OSChina上开源同享,可以下载运用;链接见文章末端。

第一步,官方文档是一定要细读的。然后你的微信民众号已经由过程认证,这点是不必提示的吧?

第二步,绑定平安域名。民众号背景左菜单 -> 设置 -> 民众号设置 -> 功用设置 -> JS接口平安域名。注重这里填写顶级域名的话,对其一切子域名都是有用的。所以为了有用应用三个名额,最好直接填写顶级域名。

第三步,写代码了。这里虚拟了一个项目,包含前端和服务端的完成。

代码:http://git.oschina.net/w2ex/snipets/tree/master/weixinapi
演示:http://snipets.willizm.cn/weixinapi/webapp/

项目目次构造:

/
/data     数据目次,用来寄存微信端猎取到的AccessToken和Ticket数据
/lib      
/lib/Weixin.class.php 微信接口类库
/webapp   前端示例
/webapp/index.html
/webapp/main.js
/api.php  服务端接口示例,这里演示了对jsonp的支撑
/config.php  配置文件,包含appId、appSecret、数据目次,顺带支撑SAE环境
/callback.php   微信回调接口,代码直接拷贝<a href="http://mp.weixin.qq.com/mpres/htmledition/res/wx_sample.20140819.zip" data-mce-href="http://mp.weixin.qq.com/mpres/htmledition/res/wx_sample.20140819.zip">微信文档中的Demo</a>

重点在于Weixin.class.php中三个要领的完成:getAccessToken、getTicket、createSignature。这三个要领各自有一些注重事项,前面两个都请求用户在服务端缓存微信接口返回的数据,因此在每次挪用时都要检查一下是不是已逾期;第三个要领则有两点轻易犯初级毛病:其一,前端传过来的url是不须要hash部份(就是#及其背面的一段)的,这个前端须要注重;其二,服务端署名算法中拼接字符串时nonceStr是悉数小写的,应写成noncestr,再就是要注重拼接的递次不能错。

前端部份,除了上面说的通报url时须要去掉hash外,还需注重,营业逻辑应尽能够wx.ready中挪用,以防止收集耽误带来的题目。开辟调试时记得开启调试选项,如许就可以依据弹出的毛病码来对比文档排查题目。

    原文作者:W2EX
    原文地址: https://segmentfault.com/a/1190000004004709
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞