介绍
今天就跟大家聊聊有关使用thinkPHP怎么实现一个微信自定义分享功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
php代码(thinkPHP):
$ appid=& # 39; xxx # 39;; $ appsecret=& # 39; xxxx # 39;;=美元timestamp 拖延时间(); $ noncestr =, $ this→getRandStr (15);//,转储();=$ url & # 39; https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=& # 39;只$ this→get_token (appid, appsecret美元),强生的# 39;及类型=jsapi # 39;; $ ret_json =, $ this→curl_get_contents ($ url); $ ret =, json_decode ($ ret_json); $ ticket =, ret→美元,票;//var_dump (ret); strvalue 美元;=,& # 39;jsapi_ticket=& # 39;。美元票# 39;公司及noncestr=& # 39;。美元noncestr # 39;公司,时间戳=& # 39;。时间戳强生# 39;美元,url=http://& # 39;。$ _SERVER [& # 39; HTTP_HOST& # 39;]。$ _SERVER [& # 39; REQUEST_URI& # 39;]; $ signature =, sha1 ($ strvalue); $ this→分配(& # 39;时间戳# 39;,时间戳美元); $ this→分配(& # 39;nonceStr& # 39;, noncestr美元); $ this→分配(& # 39;签名# 39;,美元签名); function get_token (appid, appsecret美元){ ,如果(S (& # 39; access_token& # 39;)), return S (& # 39; access_token& # 39;);=,美元url “https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential& appid=$ appid&秘密=$ appsecret"; 美元,美元ret_json =,这→curl_get_contents ($ url); ,ret 美元;=,json_decode ($ ret_json); ,如果(ret 美元;→,access_token) { ,年代(& # 39;access_token& # 39;, ret 美元;→,access_token, 7200); ,return ret 美元;→,access_token; ,} } function is_weixin () { _SERVER if (大小写敏感([& # 39;HTTP_USER_AGENT& # 39;],, & # 39; MicroMessenger& # 39;), !==, false ), { return 真实; } return 假; } function getRandStr(长度){ ,str 美元;=,& # 39;abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ& # 39;; ,randString 美元;=,& # 39;& # 39;; ,len 美元;=,strlen (str) 1; ,($小姐:=,0;美元小姐:& lt;,长度;美元美元小姐:+ +){ ,num 美元;=,mt_rand (0, len美元); randString 美元。=,str美元(美元num); ,} ,return randString美元; } function curl_get_contents ($ url) { ,ch 美元;=,curl_init (); ,curl_setopt (CURLOPT_URL, ch,美元,美元url); ,curl_setopt (ch,美元,CURLOPT_TIMEOUT,, 1); ,curl_setopt (ch,美元,CURLOPT_MAXREDIRS,, 200); ,curl_setopt (ch,美元,CURLOPT_USERAGENT,, _USERAGENT_); ,curl_setopt (ch,美元,CURLOPT_REFERER,, _REFERER_); ,@curl_setopt (ch,美元,CURLOPT_FOLLOWLOCATION,, 1); ,curl_setopt (ch,美元,CURLOPT_RETURNTRANSFER,,真的); ,curl_setopt (ch,美元,CURLOPT_SSL_VERIFYPEER,,假); ,curl_setopt (ch,美元,CURLOPT_SSL_VERIFYHOST,,假); ,r 美元;=,curl_exec (ch); 美元,curl_close (ch); ,return $ r; }
js代码:需要引入:http://res.wx.qq.com/open/js/jweixin-1.0.0.js
wx.config ({ ,调试:假的,,//,开启调试模式,调用的所有api的返回值会在客户端提醒出来,若要查看传入的参数,可以在pc端打开,参数信息会通过日志打出,仅在pc端时才会打印。 ,appId: & # 39; wxae7c36a1349c5868& # 39;,,//,必填,公众号的唯一标识 时间戳:大敌;& # 39;{$时间戳}& # 39;,,//,必填,生成签名的时间戳 ,nonceStr: & # 39; {$ nonceStr} & # 39;,,//,必填,生成签名的随机串 ,签名:& # 39;{$签名}& # 39;//,必填,签的名,见附录1 ,jsApiList: [& # 39; onMenuShareTimeline& # 39; & # 39; onMenuShareAppMessage& # 39;],//,必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); wx.ready(函数(){ wx.onMenuShareTimeline ({ 标题:大敌;& # 39;{$ contentInfo.title} & # 39;,,//,分享标题 ,链接:window.location.href,,//,分享链接 ,imgUrl: & # 39; http://& # 39; + window.location.host + & # 39; {$ categoryInfo.image} & # 39;,,//,分享图标 ,成功:function (), { ,//用户确认分享后执行的回调函数 ,//警报(1111); ,//fxfunc (); }, ,取消:function (), { ,//用户取消分享后执行的回调函数 ,//警报(“您取消了分享“); ,} }); wx.onMenuShareAppMessage ({ 标题:大敌;& # 39;{$ contentInfo.title} & # 39;,,//,分享标题 描述:大敌;removeHTMLTag (& # 39; {$ contentInfo.content} & # 39;),,//,分享描述 ,链接:window.location.href,,//,分享链接 ,imgUrl: & # 39; http://& # 39; + window.location.host + & # 39; {$ categoryInfo.image} & # 39;,,//,分享图标 类型:大敌;& # 39;& # 39;,,//,分享类型,音乐、视频或链接,不填默认为链接 ,dataUrl: & # 39; & # 39;,,//,如果类型是音乐或视频,则要提供数据链接,默认为空 ,成功:function (), { ,//用户确认分享后执行的回调函数 ,//fxfunc (); }, ,取消:function (), { ,//警报(“您取消了分享“); ,//用户取消分享后执行的回调函数 ,} }); ,//配置信息验证后会执行现成的方法,所有接口调用都必须在配置接口获得结果之后,配置是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在准备函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在准备函数中。 }); function removeHTMLTag (str), {=,,str  str.replace (/& lt; \/?[^祝辞]*祝辞/g, & # 39; & # 39;);,//去除HTML 标记 null null null null null使用thinkPHP怎么实现一个微信自定义分享功能