生成签名代码:
php
这里有一个很容易出错的地方就是 $curLink, 若是直接本身手动拼接,不采用系统$_SERVER,会出错。由于连接在微信打开的时候,微信会自动会自动加上 $_GET 参数, 若是你不把 link 拷贝出来看,不会发现。这点须要特别注意。api
若是你发现使用微信的工具生成的签名与本身生成的签名仍是报错的话,那么问题极可能就是link不对微信
$readyTime = time(); $curLink = "http://www.test.com{$_SERVER['REQUEST_URI']}"; $readyStr = "jsapi_ticket={$jsTicket}&noncestr=test×tamp={$readyTime}&url={$curLink}"; $signature = sha1($readyStr);
js代码app
须要注意 ide
1 curLink 须要保持一致工具
2 config 中的签名的属性 都是大驼峰命名,不要写错了url
var imgUrl = 'http://www.test.com/abc.jpg'; var curLink = location.href.split('#')[0]; var shareTitle = 'title'; var appid = 'yourappid'; wx.config({ debug: false, appId: appid, //你的appid timestamp: <?php echo $readyTime;?>, // 必填,生成签名的时间戳,直接使用php准备好的时间 nonceStr: 'test', //与php参与签名的串保持一致 signature: '<?php echo $signature;?>', //php生成的签名 jsApiList: ['onMenuShareTimeline', 'onMenuShareAppMessage'] // 必填,须要使用的JS接口列表,全部JS接口列表见附录2 }); wx.ready(function () { wx.onMenuShareTimeline({ title: shareTitle, // 分享标题 link: curLink , // 分享连接 imgUrl: imgUrl, // 分 success: function () { }, cancel: function () { } }); wx.onMenuShareAppMessage({ title: shareTitle, // 分享标题 desc: 'desc', // 分享描述 link: curLink , // 分享连接 imgUrl: imgUrl, // 分 type: '', // 分享类型,music、video或link,不填默认为link dataUrl: '', success: function () { }, cancel: function () { } }); });