一、微信公众号准备工作:
1、设置—公众号设置—功能设置里,填写『JS接口安全域名』
2、加入IP白名单
3、获取开发者ID和开发者密码,并添加到config.php中
到2019.5.19日,微信公众号只做以上准备工作,经测可以实现分享给朋友及朋友圈功能。
二、将官方示例代码下载:http://demo.open.weixin.qq.com/jssdk/sample.zip
三、将下载的php示例代码中的access_token.php、jsapi_ticket.php和jssdk.php放入到tp5框架的第三方接口扩展目录下,路径为extend/org/wechat/文件。
四、将jssdk.php文件重命名为Jssdk.php文件,设置命名空间,因为tp路由的关系,需要加上私有属性path,并在构造函数中设置 $this->path = __DIR__ . DS;
五、将get_php_file以及set_php_file函数返回值中的$filename改为 $this->path . $filename ,否则会报错。
六、在app的common文件中加入以下代码,以下为借鉴代码:
七、前端代码:
<script src="https://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>
<script type="text/javascript">
var imgUrl = "__PC____PUBLIC__/img/logo.jpg";
var link = "http://www.webqi.cn";
var descContent = "测试测试";
var shareTitle = "什么什么?";
wx.config({
debug: true,
appId: '{$appId}',
timestamp: '{$timestamp}',
nonceStr: '{$nonceStr}',
signature: '{$signature}',
jsApiList:[
'onMenuShareTimeline',
'onMenuShareAppMessage',
]
});
wx.ready(function(){
wx.onMenuShareTimeline({
title: shareTitle, // 分享标题
link: link, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
imgUrl: imgUrl, // 分享图标
success: function () {
// 用户点击了分享后执行的回调函数
}
})
wx.onMenuShareAppMessage({
title: shareTitle, // 分享标题
link: link, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
desc: descContent,
imgUrl: imgUrl, // 分享图标
success: function () {
}
})
});
</script>
七、在测试的过程中遇到的坑:
1、发现access_token.php中写入access_token没有写成功,需要做以下操作才能写成功(也就是第五点的操作):set_php_file函数返回值中的$filename改为 $this->path . $filename
2、onMenuShareTimeline中的line中的L应为小写,俺写成大写,结果好一顿测试。
3、将access_token.php等需要写入的文件赋予可写入的权限。
4、在thinkphp5上传文件时提示:请对上传接口返回JSON字符。经过测试发现是因为文件没有上传成功,而没有上传成功的原因也是相关的文件夹的权限不够。