最近刚好需要做微信自定义分享,实践之后发现分享没问题,具体可以参考之前的文章
但是在之后的分享中,发现,总是报错,至少每天第一次是肯定报错的。
搜索了一下相关资料,总结如下:
微信JS-SDK说明文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115
在附录6-DEMO页面和示例代码:在JS-SDK说明文档中的附录6下载示例代码,下载链接:http://demo.open.weixin.qq.com/jssdk/sample.zip
Demo页面:http://demo.open.weixin.qq.com/jssdk,建议直接用微信扫其二维码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
<?php require_once "jssdk.php"; $jssdk = new JSSDK("your appid", "your key"); $signPackage = $jssdk->GetSignPackage(); ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body> </body> <script src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script> <script> /* * 注意: * 1. 所有的JS接口只能在公众号绑定的域名下调用,公众号开发者需要先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。 * 2. 如果发现在 Android 不能分享自定义内容,请到官网下载最新的包覆盖安装,Android 自定义分享接口需升级至 6.0.2.58 版本及以上。 * 3. 常见问题及完整 JS-SDK 文档地址:http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html * * 开发中遇到问题详见文档“附录5-常见错误及解决办法”解决,如仍未能解决可通过以下渠道反馈: * 邮箱地址:weixin-open@qq.com * 邮件主题:【微信JS-SDK反馈】具体问题 * 邮件内容说明:用简明的语言描述问题所在,并交代清楚遇到该问题的场景,可附上截屏图片,微信团队会尽快处理你的反馈。 */ wx.config({ debug: true, appId: '<?php echo $signPackage["appId"];?>', timestamp: <?php echo $signPackage["timestamp"];?>, nonceStr: '<?php echo $signPackage["nonceStr"];?>', signature: '<?php echo $signPackage["signature"];?>', jsApiList: [ // 所有要调用的 API 都要加到这个列表中 'checkJsApi', 'onMenuShareTimeline', 'onMenuShareAppMessage' ] }); var imgUrl = 'http://app.example.com/images/logo.jpg'; var lineLink = 'http://app.example.com/html/share.html'; var descContent = '我是副标题,我是小小地描述,分享好友才能看到我'; var shareTitle = '我是正标题,分享朋友圈和好友都能看到我'; wx.ready(function () { // 在这里调用 API wx.onMenuShareTimeline({ title: shareTitle, // 分享标题 link: lineLink, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致 imgUrl: imgUrl, // 分享图标 success: function () { // 用户确认分享后执行的回调函数 }, cancel: function () { // 用户取消分享后执行的回调函数 } }); wx.onMenuShareAppMessage({ title: shareTitle, // 分享标题 desc: descContent, // 分享描述 link: lineLink, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致 imgUrl: imgUrl, // 分享图标 type: '', // 分享类型,music、video或link,不填默认为link dataUrl:'' , // 如果type是music或video,则要提供数据链接,默认为空 success: function () { // 用户确认分享后执行的回调函数 }, cancel: function () { // 用户取消分享后执行的回调函数 } }); }); </script> </html> |
按照官方的实例,打开之后回报错如下:
1 |
Notice:curl_setopt():CURLOPT_SSL_VERIFYHOST no longer accepts the value1,value2 will be used instead in xxx_file_postion on line yyy; |
解决方法是按照文档提示,直接在http://curl.haxx.se/ca/cacert.pem下载证书,放在和jssdk.php同个目录下
就我而言,就是放在根目录下。
或者编辑jssdk.php
1 2 |
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); |
两个方法都能解决。
原创文章,作者:蓝洛水深,如若转载,请注明出处:https://blog.lanluo.cn/6301