微信分享
Posted yanyanyanyanliu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信分享相关的知识,希望对你有一定的参考价值。
最近项目用tp3写的 整理了下一下微信分享,直接上代码。
var url = ":U(‘Index/share‘)",articleTitle = "$Activity.rules",articlePic= "$Activity.pay_img",articleBrief=" $Activity.title"; //调用方法 share(url,articleTitle,articlePic,articleBrief); /** * 分享 */ function share(url,articleTitle,articlePic,articleBrief) var url1 =location.href.split(‘#‘)[0]; $.ajax( url: url, async: false, data: "url": url1 , dataType: ‘text‘, success: function(data) var data1 = eval("(" + data + ")"); var timestamp = data1.timestamp; var nonceStr = data1.noncestr; var signature = data1.signature; wx.config( debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId: "wx9903dba5a4b35192", // 必填,公众号的唯一标识 timestamp: timestamp, // 必填,生成签名的时间戳 nonceStr: nonceStr, // 必填,生成签名的随机串 signature: signature,// 必填,签名 jsApiList: [‘onMenuShareAppMessage‘,‘onMenuShareTimeline‘] // 必填,需要使用的JS接口列表 ); wx.ready(function() wx.onMenuShareAppMessage( title: articleTitle, // 分享标题 desc: articleBrief, // 分享描述 link: data1.url, // 分享链接 imgUrl: articlePic, // 分享图标 type: ‘‘, // 分享类型,music、video或link,不填默认为link dataUrl: ‘‘, // 如果type是music或video,则要提供数据链接,默认为空 success: function () $(‘body‘).append(‘<div class="error-msg">分享成功!</div>‘); setTimeout(function () $(‘body‘).find(‘.error-msg‘).remove(); , 1500); , cancel: function () $(‘body‘).append(‘<div class="error-msg">分享失败!</div>‘); setTimeout(function () $(‘body‘).find(‘.error-msg‘).remove(); , 1500); ); wx.onMenuShareTimeline( title: articleTitle, // 分享标题 link: data1.url, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致 imgUrl: articlePic, // 分享图标 success: function () // 用户确认分享后执行的回调函数 $(‘body‘).append(‘<div class="error-msg">分享成功!</div>‘); setTimeout(function () $(‘body‘).find(‘.error-msg‘).remove(); , 1500); , cancel: function () // 用户取消分享后执行的回调函数 $(‘body‘).append(‘<div class="error-msg">分享失败!</div>‘); setTimeout(function () $(‘body‘).find(‘.error-msg‘).remove(); , 1500); ); ); );
/** * 分享 */ public function share() $time = time(); $str = ‘QWERTYUIOPASDFGHJKLZXVBNMqwertyuioplkjhgfdsamnbvcxz‘; for ($i=0;$i<32;$i++) $result .= $str[rand(0,48)]; $wxconfig[‘appid‘] = $this->appid; $wxconfig[‘noncestr‘] = $result; $wxconfig[‘timestamp‘] = "$time"; $jsapi_ticket = S(‘jsapi_ticket‘.session(‘shopid‘)); if(empty($jsapi_ticket)) $res = file_get_contents("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$this->appid."&secret=".$this->appsecret);// 获得token $ress = json_decode($res,True); $token = $ress[‘access_token‘];// 取出 至于存储代码就不列举了 $js = file_get_contents("https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=".$token."&type=jsapi"); $jss = json_decode($js,True); S(‘jsapi_ticket‘.session(‘shopid‘),$jss[‘ticket‘],7000); $jsapi_ticket = $jss[‘ticket‘];// 取出JS凭证, 至于存储代码就不列举了 $dataa[‘noncestr‘] = $wxconfig[‘noncestr‘]; $dataa[‘jsapi_ticket‘] = $jsapi_ticket; $dataa[‘timestamp‘] = $wxconfig[‘timestamp‘]; $dataa[‘url‘] = I(‘get.url‘); ksort($dataa); $signature = ‘‘; foreach($dataa as $k => $v) $signature .= $k.‘=‘.$v.‘&‘; $signature = substr($signature, 0, strlen($signature)-1); $wxconfig[‘signature‘] = sha1($signature); $wxconfig[‘url‘] = $dataa[‘url‘]; echo json_encode($wxconfig);die;
//我这边有点问题,需要过滤下链接,我用php来简单处理了下 $str = $_SERVER[‘HTTP_HOST‘].$_SERVER[‘REQUEST_URI‘]; $tourl = substr($str,0,strrpos($str,"?"));
以上是关于微信分享的主要内容,如果未能解决你的问题,请参考以下文章