前台js(前提是引入jweixin-1.2.0.js):
wx.config({ debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId: '__APPID__', // 必填,公众号的唯一标识 timestamp: '{$timestamp}', // 必填,生成签名的时间戳 nonceStr: '{$noncestr}', // 必填,生成签名的随机串 signature: '{$signature}',// 必填,签名,见附录1 jsApiList: [ 'onMenuShareTimeline', 'onMenuShareAppMessage', 'onMenuShareQQ', 'onMenuShareWeibo', 'onMenuShareQZone' ] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2}); wx.ready(function () { wx.checkJsApi({ jsApiList: [ 'onMenuShareTimeline', 'onMenuShareAppMessage' ] }); //分享到朋友圈 wx.onMenuShareTimeline({ title: '{$activity_data.activity_name}', link: 'http://sell.sgyunzhou.com/public/vote?activity_id={$_GET.activity_id}', imgUrl: 'http://sell.sgyunzhou.com{$activity_banner[0]}', /*trigger: function (res) { alert('用户点击分享到朋友圈'); },*/ success: function (res) { // alert('已分享'); }, cancel: function (res) { // alert('已取消'); }, fail: function (res) { // alert('wx.onMenuShareTimeline:fail: ' + JSON.stringify(res)); } }); //分享给朋友 wx.onMenuShareAppMessage({ title: '{$activity_data.activity_name}', // 分享标题 desc: '{$activity_data.share_text}', // 分享描述 link: 'http://sell.sgyunzhou.com/public/vote?activity_id={$_GET.activity_id}', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致 imgUrl: 'http://sell.sgyunzhou.com/{$activity_banner[0]}', // 分享图标 type: 'link', // 分享类型,music、video或link,不填默认为link dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空 success: function () { // 用户确认分享后执行的回调函数 }, cancel: function () { // 用户取消分享后执行的回调函数 } }); });
controller:
$jsapi_ticket_url = " $jsapi_ticket = getJson($jsapi_ticket_url); Cookie::set('jsapi_ticket', $jsapi_ticket["ticket"], 7200); $jsapi_ticket = Cookie::get('jsapi_ticket'); $noncestr = str_rand(16, '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ');//第二个参数是随机的,自己想写什么写什么,str_rand是一个方法,取随机字符串 $timestamp = time();$url = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER["REQUEST_URI"]; $signature = sha1('jsapi_ticket=' . $jsapi_ticket . '&noncestr=' . $noncestr . '×tamp=' . $timestamp . '&url=' . $url); $this->assign('noncestr', $noncestr); $this->assign('timestamp', $timestamp); $this->assign('signature', $signature);
有不懂的可以在下方留言或者加QQ:616234808