<sup id="sjju3"><noscript id="sjju3"></noscript></sup>
    <big id="sjju3"></big>

  • <blockquote id="sjju3"></blockquote>
    <blockquote id="sjju3"></blockquote>

      <td id="sjju3"></td>

      <big id="sjju3"></big>
        <code id="sjju3"><strong id="sjju3"><dl id="sjju3"></dl></strong></code>
      1. php分享朋友圈的实现代码

         更新时间:2019年02月18日 11:57:05   作者:魔法程序媛   我要评论

        这篇文章主要为大家详细介绍了php分享朋友圈的实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参?#23478;?#19979;

        本文实例为大家分享了php实现分享朋友圈的具体代码,供大家参考,具体内容如下

        <?php
        class JSSDK {
         private $appId;
         private $appSecret;
         
         public function __construct($appId, $appSecret) {
         $this->appId = $appId;
         $this->appSecret = $appSecret;
         }
         
         public function getSignPackage() {
         $jsapiTicket = $this->getJsApiTicket();
         
         // 注意 URL 一定要动态获取,不能 hardcode.
         $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
         $url = "$protocol$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
         
         $timestamp = time();
         $nonceStr = $this->createNonceStr();
         
         // 这里参数的顺序要按照 key 值 ASCII 码升序排序
         $string = "jsapi_ticket=$jsapiTicket&noncestr=$nonceStr×tamp=$timestamp&url=$url";
         
         $signature = sha1($string);
         
         $signPackage = array(
          "appId"  => $this->appId,
          "nonceStr" => $nonceStr,
          "timestamp" => $timestamp,
          "url"  => $url,
          "signature" => $signature,
          "rawString" => $string
         );
         return $signPackage; 
         }
         
         private function createNonceStr($length = 16) {
         $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
         $str = "";
         for ($i = 0; $i < $length; $i++) {
          $str .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);
         }
         return $str;
         }
         
         private function getJsApiTicket() {
         // jsapi_ticket 应该全局存储与更新,以下代码以写入到文件中做示例
         $data = json_decode(file_get_contents("jsapi_ticket.json"));
         if ($data->expire_time < time()) {
          $accessToken = $this->getAccessToken();
          // 如果是企业号用以下 URL 获取 ticket
          // $url = "https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket?access_token=$accessToken";
          $url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi&access_token=$accessToken";
          $res = json_decode($this->httpGet($url));
          $ticket = $res->ticket;
          if ($ticket) {
          $data->expire_time = time() + 7000;
          $data->jsapi_ticket = $ticket;
          $fp = fopen("jsapi_ticket.json", "w");
          fwrite($fp, json_encode($data));
          fclose($fp);
          }
         } else {
          $ticket = $data->jsapi_ticket;
         }
         
         return $ticket;
         }
         
         private function getAccessToken() {
         // access_token 应该全局存储与更新,以下代码以写入到文件中做示例
         $data = json_decode(file_get_contents("access_token.json"));
         if ($data->expire_time < time()) {
          // 如果是企业号用以下URL获取access_token
          // $url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$this->appId&corpsecret=$this->appSecret";
          $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$this->appId&secret=$this->appSecret";
          $res = json_decode($this->httpGet($url));
          $access_token = $res->access_token;
          if ($access_token) {
          $data->expire_time = time() + 7000;
          $data->access_token = $access_token;
          $fp = fopen("access_token.json", "w");
          fwrite($fp, json_encode($data));
          fclose($fp);
          }
         } else {
          $access_token = $data->access_token;
         }
         return $access_token;
         }
         
         private function httpGet($url) {
         $curl = curl_init();
         curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
         curl_setopt($curl, CURLOPT_TIMEOUT, 500);
         curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
         curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
         curl_setopt($curl, CURLOPT_URL, $url);
         
         $res = curl_exec($curl);
         curl_close($curl);
         
         return $res;
         }
        }
        $jssdk = new JSSDK("wx6b3844d6802f74aa", "c8710c8f4e0afce7611f5cd0013c4573");
        $signPackage = $jssdk->GetSignPackage();
        ?>
        <script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
        <script>
         /*
         * 注意:
         * 1. 所有的JS接口只能在公众号绑定的域名下调用,公众号开发者需要先登录微信公众平台进入“公众号设置”的“功能设置”里填?#30784;癑S接口安全域名”。
         * 2. 如果发现在 Android 不能分享自定义内容,请到官网下载最新的包覆盖安装,Android 自定义分享接口需升级至 6.0.2.58 版本及以上。
         * 3. 常见问题及完整 JS-SDK 文档地址:http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html
         *
         * 开发中遇到问题详见文档“附录5-常见错误及解决办法”解决,如仍未能解决可通过以下渠道反馈:
         * 邮箱地址:[email protected]
         * 邮件主题:【微信JS-SDK反馈】具体问题
         * 邮件内容说明:用简明的语言描述问题所在,并交代清楚遇到该问题的场景,可附上截屏?#35745;?#24494;信团队会尽快处理你的反馈。
         */
         wx.config({
         debug: false,
         appId: '<?php echo $signPackage["appId"];?>',
         timestamp: <?php echo $signPackage["timestamp"];?>,
         nonceStr: '<?php echo $signPackage["nonceStr"];?>',
         signature: '<?php echo $signPackage["signature"];?>',
         jsApiList: ['onMenuShareTimeline',
         'onMenuShareAppMessage'
          // 所有要调用的 API ?#23478;?#21152;到这个列表中
         ]
         });
         wx.ready(function () {
        //分享朋友
         wx.onMenuShareAppMessage({ 
          title: '你的分享标题', // 分享标题
          desc: '你的分享描述', // 分享描述
          link: "你的链接?pid=<?php echo $userone['id']?>", // 分享链接
          imgUrl: '?#35745;?#22320;址', // 分享图标
          type: '', // 分享类型,music、video或link,不填默认为link
          dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空
          success: function () { 
           //alert('成功分享到您的朋友');
          },
          cancel: function () { 
         //alert('取消分享到您的朋友');
          // 用户取消分享后执行的回调函数
          }
         });
         
         //朋友圈
         wx.onMenuShareTimeline({
          title: '你的分享标题', // 分享标题
          desc: '你的分享描述', // 分享描述
          link: "你的链接?pid=<?php echo $userone['id']?>", // 分享链接
          imgUrl: '?#35745;?#22320;址', // 分享图标
          success: function () { 
          // 用户确认分享后执行的回调函数
          },
          cancel: function () { 
          // 用户取消分享后执行的回调函数
          }
         });
         
         });
        </script>
        

        以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

        相关文章

        • Smarty模板常见的简单应用分析

          Smarty模板常见的简单应用分析

          这篇文章主要介绍了Smarty模板常见的简单应用,结合实例形式分析了Smarty模板的引入、创建、设置及相关的常见使用技巧,需要的朋友可以参考下
          2016-11-11
        • PHP处理Ajax请求与Ajax跨域问题

          PHP处理Ajax请求与Ajax跨域问题

          这篇文章主要介绍了PHP处理Ajax请求与Ajax跨域问题的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
          2017-02-02
        • thinkphp5上传?#35745;?#21450;生成缩略图公共方法(分享)

          thinkphp5上传?#35745;?#21450;生成缩略图公共方法(分享)

          下面小编就为大家分享一篇thinkphp5上传?#35745;?#21450;生成缩略图公共方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
          2018-01-01
        • ThinkPHP表单令牌错误的相关解决方法分析

          ThinkPHP表单令牌错误的相关解决方法分析

          这篇文章主要介绍了ThinkPHP表单令牌错误的相关解决方法,分析了thinkPHP出现令牌错误的相关处理过程与解决方法,具有一定参考借鉴价值,需要的朋友可以参考下
          2016-05-05
        • yii实现级联下拉菜单的方法

          yii实现级联下拉菜单的方法

          这篇文章主要介绍了yii实现级联下拉菜单的方法,需要的朋友可以参考下
          2014-07-07
        • PHP连接access数据库

          PHP连接access数据库

          本文给大家介绍的是在php中使用ADO来链接ACCESS数据库的方法的示例,非常的的简单使用,推荐给有需要的小伙伴们参考下。
          2015-03-03
        • thinkphp,onethink和thinkox中验证码不显示的解决方法分析

          thinkphp,onethink和thinkox中验证码不显示的解决方法分析

          这篇文章主要介绍了thinkphp,onethink和thinkox中验证码不显示的解决方法,简单分析了thinkPHP验证码不显示的原因与相应的解决方法,具有一定参考借鉴价值,需要的朋友可以参考下
          2016-06-06
        • PHP中Restful api 错误提示返回值实现思路

          PHP中Restful api 错误提示返回值实现思路

          REST是Representational State Transfer的缩写,翻译为“表现层状态转化”。表现层其实就是资源,因此可以理解为“资源状态转化”。接下来通过本文给大家介绍Restful api 错误提示返回值实现思路,感兴趣的朋友一起学习吧
          2016-04-04
        • ?#31243;窹HP的数据库接口和技术

          ?#31243;窹HP的数据库接口和技术

          下面小编就为大家带来一篇?#31243;窹HP的数据库接口和技术。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
          2016-12-12
        • PHP将英文数字转换为阿拉伯数字实例讲解

          PHP将英文数字转换为阿拉伯数字实例讲解

          在本篇文章里小编给大家分享了关于PHP将英文数字转换为阿拉伯数字实例内容,有兴趣的朋友们可以参考学习下。
          2019-01-01

        最新评论

        2018白小姐一肖中特马
        <sup id="sjju3"><noscript id="sjju3"></noscript></sup>
        <big id="sjju3"></big>

      2. <blockquote id="sjju3"></blockquote>
        <blockquote id="sjju3"></blockquote>

          <td id="sjju3"></td>

          <big id="sjju3"></big>
            <code id="sjju3"><strong id="sjju3"><dl id="sjju3"></dl></strong></code>
          1. <sup id="sjju3"><noscript id="sjju3"></noscript></sup>
            <big id="sjju3"></big>

          2. <blockquote id="sjju3"></blockquote>
            <blockquote id="sjju3"></blockquote>

              <td id="sjju3"></td>

              <big id="sjju3"></big>
                <code id="sjju3"><strong id="sjju3"><dl id="sjju3"></dl></strong></code>