使用thinkPHP怎么实现一个微信自定义分享功能

  介绍

今天就跟大家聊聊有关使用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怎么实现一个微信自定义分享功能