72家族网-手游源码论坛


6.9
查看:【54】 回复:【0】 发表于 2020-8-19 21:14
全站
4小时前
全站
3天前
全站
6天前
全站
10天前
全站
10天前
全站
10天前
全站
10天前
全站
11天前
全站
11天前
全站
12天前
全站
12天前
全站
12天前
全站
19天前
全站
19天前
全站
19天前
全站
24天前
全站
24天前
全站
25天前
全站
25天前
全站
29天前

战神引擎手游源码

2020网页链接分享到微信朋友圈带图标和摘要的完美解决方法

2020网页链接分享到微信朋友圈带图标和摘要的完美解决方法

步骤一:绑定域名


先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。

步骤二:引入JS文件


  1. <script src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>

  2. <script>
  3.     var  url=location.href;

  4.     $.ajax({
  5.         type : "get",
  6.         url : "http://这里改为你自己的网址.com/jssdk.php?url="+url,
  7.         dataType : "jsonp",
  8.         jsonp: "callback",
  9.         jsonpCallback:"success_jsonpCallback",
  10.         success : function(data){

  11.             wx.config({
  12.                 debug: false,
  13.                 appId: data.appId,
  14.                 timestamp: data.timestamp,
  15.                 nonceStr: data.nonceStr,
  16.                 signature: data.signature,
  17.                 jsApiList: [
  18.                     'onMenuShareTimeline',//
  19.                     'onMenuShareAppMessage',
  20.                     'onMenuShareQQ',
  21.                     'onMenuShareWeibo',
  22.                     'onMenuShareQZone'

  23.                 ]
  24.             });
  25.         },
  26.         error:function(data){
  27.             alert("连接失败!");
  28.         }
  29.     });

  30.     wx.ready(function () {
  31.         var shareData = {
  32.             title: '这是是分享标题',
  33.             desc: '这是是摘要',
  34.             link: url,
  35.             imgUrl: '这里改为你网站域名下的小图标文件的地址'
  36.         };

  37.         wx.onMenuShareAppMessage(shareData);//分享给好友
  38.         wx.onMenuShareTimeline(shareData);//分享到朋友圈
  39.         wx.onMenuShareQQ(shareData);//分享给手机QQ
  40.         wx.onMenuShareWeibo(shareData);//分享腾讯微博
  41.         wx.onMenuShareQZone(shareData);//分享到QQ空间



  42.     });
  43.     wx.error(function (res) {
  44.         //alert(res.errMsg);//错误提示

  45.     });
  46. </script>
复制代码
url : "http://这里改为你自己的网址.com/jssdk.php?url="+url,


这个网站不必须是目前的网址,如果你有多个网站,可以引用同一个jssdk.php文件。

PHP   jssdk.php


  1. <?php
  2. $url = $_GET['url'];
  3. class JSSDK {
  4.     private $appId;
  5.     private $appSecret;
  6.     private $url;
  7.     public function __construct($appId, $appSecret,$url) {
  8.         $this->appId = $appId;
  9.         $this->appSecret = $appSecret;
  10.         $this->url = $url;
  11.     }


  12.     public function getSignPackage() {
  13.         $jsapiTicket = $this->getJsApiTicket();
  14.         $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
  15.         // $url = "$protocol$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
  16.         $url =$this->url;
  17.         $timestamp = time();
  18.         $nonceStr = $this->createNonceStr();


  19.         // 这里参数的顺序要按照 key 值 ASCII 码升序排序
  20.         $string = "jsapi_ticket=$jsapiTicket&noncestr=$nonceStr×tamp=$timestamp&url=$url";


  21.         $signature = sha1($string);


  22.         $signPackage = array(
  23.             "appId"     => $this->appId,
  24.             "nonceStr"  => $nonceStr,
  25.             "timestamp" => $timestamp,
  26.             "url"       => $url,
  27.             "signature" => $signature,
  28.             "rawString" => $string
  29.         );
  30.         return $signPackage;
  31.     }


  32.     private function createNonceStr($length = 16) {
  33.         $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
  34.         $str = "";
  35.         for ($i = 0; $i < $length; $i++) {
  36.             $str .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);
  37.         }
  38.         return $str;
  39.     }


  40.     private function getJsApiTicket() {
  41.         // jsapi_ticket 应该全局存储与更新,以下代码以写入到文件中做示例
  42.         $data = json_decode(file_get_contents("jsapi_ticket.json"));
  43.         if ($data->expire_time < time()) {
  44.             $accessToken = $this->getAccessToken();
  45.             // 如果是企业号用以下 URL 获取 ticket
  46.             // $url = "https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket?access_token=$accessToken";
  47.             $url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi&access_token=$accessToken";
  48.             $res = json_decode($this->httpGet($url));
  49.             $ticket = $res->ticket;
  50.             if ($ticket) {
  51.                 $data->expire_time = time() + 7000;
  52.                 $data->jsapi_ticket = $ticket;
  53.                 $fp = fopen("jsapi_ticket.json", "w");
  54.                 fwrite($fp, json_encode($data));
  55.                 fclose($fp);
  56.             }
  57.         } else {
  58.             $ticket = $data->jsapi_ticket;
  59.         }


  60.         return $ticket;
  61.     }


  62.     private function getAccessToken() {
  63.         // access_token 应该全局存储与更新,以下代码以写入到文件中做示例
  64.         $data = json_decode(file_get_contents("access_token.json"));
  65.         if ($data->expire_time < time()) {
  66.             // 如果是企业号用以下URL获取access_token
  67.             // $url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$this->appId&corpsecret=$this->appSecret";
  68.             $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$this->appId&secret=$this->appSecret";
  69.             $res = json_decode($this->httpGet($url));
  70.             $access_token = $res->access_token;
  71.             if ($access_token) {
  72.                 $data->expire_time = time() + 7000;
  73.                 $data->access_token = $access_token;
  74.                 $fp = fopen("access_token.json", "w");
  75.                 fwrite($fp, json_encode($data));
  76.                 fclose($fp);
  77.             }
  78.         } else {
  79.             $access_token = $data->access_token;
  80.         }
  81.         return $access_token;
  82.     }

  83.     private function httpGet($url) {
  84.         $curl = curl_init();
  85.         curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
  86.         curl_setopt($curl, CURLOPT_TIMEOUT, 500);
  87.         curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
  88.         curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
  89.         curl_setopt($curl, CURLOPT_URL, $url);
  90.         $res = curl_exec($curl);
  91.         curl_close($curl);
  92.         return $res;
  93.     }
  94. }

  95. $jssdk = new JSSDK("wx********************a", "*************************",$url);
  96. $signPackage = $jssdk->GetSignPackage();
  97. $tmp=json_encode(array ('appId'=>$signPackage["appId"],'timestamp'=>$signPackage["timestamp"],'nonceStr'=>$signPackage["nonceStr"],'signature'=>$signPackage["signature"],'url'=>$signPackage["url"]));
  98. $callback = $_GET['callback'];
  99. echo $callback.'('.$tmp.')';
  100. exit;
  101. ?>
复制代码

只要改一下这一行为你自己的:

$jssdk = new JSSDK("wx********************", "*************************",$url);

最后,别忘了存放这个PHP的文件夹权限为可写。


转载来源:https://blog.csdn.net/running8/article/details/77017924



使用道具

关闭

72家族网 - 学习手游架设从这里开始上一条 /1 下一条


72家族网加速节点 72家族网加速节点

本站资源仅供本地电脑研究软件内含使用,禁止任何非研究设计思想和原理为目的用途,如需商用请支持正版!

本站仅提供相关网络软件应用代码技术开发学习与技术教材,禁止未经版权方授权允许私自运营软件或应用行为。

域名:72jz.com 年龄:9年 世界排名:1,091,577 日均访问[PV]:2W+  创建于2011年04月20日,过期时间为2029年04月20日[待续] 皖ICP备11014237号
本站资源来自互联网搜集,仅供本地电脑单机学习和交流,请勿用于商业用途,请自觉在24小时内删除。
若有侵权与文章中不妥之处,请联系邮箱:admjz@vip.qq.com(手机随时接收邮件)并出示相关证明以便删除。敬请谅解!

2011-2020 72家族网 版权所有 Powered by Discuz!