共计 5255 个字符,预计需要花费 14 分钟才能阅读完成。
最近刚好需要做 微信 自定义分享,实践之后发现分享没问题,具体可以参考之前的文章
https://cdn.lanluo.cn/5954
但是在之后的分享中,发现,总是报错,至少每天第一次是肯定报错的。
搜索了一下相关资料,总结如下:
微信 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,建议直接用微信扫其二维码
PHP
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 - 常见错误及解决办法”解决,如仍未能解决可通过以下渠道反馈:
* 邮箱地址:[email protected]
* 邮件主题:【微信 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
PHP
1
2
|
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
|
两个方法都能解决。
正文完