当wx.config配置好后程序才会接着走下面的分享

时间:2019-09-26 14:23来源:快三平台下载编程
分享一个php微信端开辟的阅历,有时候当叁个种类或工程必要微信端分享之后做一多种事件那么大家就须要得到到微信共享那几个动作,也正是说大家早已清楚了当下以那件事物已经被

分享一个php微信端开辟的阅历,有时候当叁个种类或工程必要微信端分享之后做一多种事件那么大家就须要得到到微信共享那几个动作,也正是说大家早已清楚了当下以那件事物已经被分享了 ,那么走微信默许的分享显明是可怜的大家需求协和入手来配置微信分享,当顾客分享时走的是大家约定好的程序那么大家就能够轻便达成分享之后所做的事情。

在页面端首倘诺贰个js如下:

<script type="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script><script>wx.config({      debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。      appId: '{$appid}', // 必填,公众号的唯一标识      timestamp:{$timestamp} , // 必填,生成签名的时间戳      nonceStr: '{$nonceStr}', // 必填,生成签名的随机串      signature: '{$signature}',// 必填,签名,见附录1      jsApiList: ['onMenuShareAppMessage','onMenuShareTimeline'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2  }); wx.ready(function(){    //分享给朋友    wx.onMenuShareAppMessage({        title: {$title}, // 分享标题 此处$title可在控制器端传递也可在页面传递  页面传递讲解在下面哦        desc: {$desc},  //分享描述        link: {$link}, // 分享链接        imgUrl: {$imgurl}, // 分享图标        type: '', // 分享类型,music、video或link,不填默认为link        dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空        success: function () {              alert('分享成功');        },        cancel: function () {            // 用户取消分享后执行的回调函数            // alert;        }    });    //分享到朋友圈      wx.onMenuShareTimeline({        title: {$title}, // 分享标题        desc: {$desc}, // 分享描述        link: {$link}, // 分享链接        imgUrl: {$imgurl}, // 分享图标        success: function () {            // 用户确认分享后执行的回调函数        },        cancel: function () {            // 用户取消分享后执行的回调函数        }    });  });</script>

当wx.config配置好后前后相继才会随着走上面包车型大巴分享,此处调节和测量试验可将false改成true若配置好那么平常弹出ok等音讯若未配置好 那么这里改成true也不会有别的弹出效果

当wx.config配置好后程序才会接着走下面的分享。wx.config供给调控器传来多少个参数即appId、timestamp、nonceStr、signature;调整器代码如下:

<?php$jssdk = new HomeUtilJSSDK(C, C);//此处C里面的东西为你所使用的公众号的appid和secret,这俩个东西可在微信公众平台获取到 不详细解释 找不到追加评论 JSSDK文件代码在下$signPackage = $jssdk->GetSignPackage();$this->assign('appid',$signPackage["appId"]);$this->assign('timestamp',$signPackage["timestamp"]);$this->assign('nonceStr',$signPackage["nonceStr"]); $this->assign('signature',$signPackage["signature"]);

在这里就布局好了wx.config,仍可以够随着穿title等音讯 在那边举个例证

$this->assign('title',$title);

JSSDK文件代码:

<?phpnamespace HomeUtil;use ThinkController;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&timestamp=$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;  }  public function getJsApiTicket() {    // jsapi_ticket 应该全局存储与更新,以下代码以写入到文件中做示例    $data = json_decode($this->get_php_file("jsapi_ticket.php"));    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?access_token=$accessToken&type=jsapi";      $res = json_decode($this->httpGet($url));      $ticket = $res->ticket;      // var_dump;      if ($ticket) {        $data->expire_time = time() + 7000;        $data->jsapi_ticket = $ticket;        $this->set_php_file("jsapi_ticket.php", json_encode($data));      }    } else {      $ticket = $data->jsapi_ticket;    }    return $ticket;  }  public function getAccessToken() {    // access_token 应该全局存储与更新,以下代码以写入到文件中做示例    $data = json_decode($this->get_php_file("access_token.php"));     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 = $this->getJson($url);      $access_token = $res['access_token'];      // var_dump;      if ($access_token) {        $data->expire_time = time() + 7000;        $data->access_token = $access_token;        $this->set_php_file("access_token.php", json_encode($data));      }    } else {      $access_token = $data->access_token;    }    return $access_token;    // $aa = $access_token;    // var_dump;  }  //获取access_token  public function getJson($url){      $ch = curl_init();      curl_setopt($ch, CURLOPT_URL, $url);      curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);      curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);      $output = curl_exec($ch);      curl_close($ch);      // var_dump(json_decode($output, true));      return json_decode($output, true);  }  //获取ticket  private function httpGet($url) {    $curl = curl_init();    curl_setopt($curl, CURLOPT_URL, $url);    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);    // curl_setopt($curl, CURLOPT_TIMEOUT, 500);    // 为保证第三方服务器与微信服务器之间数据传输的安全性,所有微信接口采用https方式调用,必须使用下面2行代码打开ssl安全校验。    // 如果在部署过程中代码在此处验证失败,请到 http://curl.haxx.se/ca/cacert.pem 下载新的证书判别文件。    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);    $res = curl_exec($curl);    // var_dump;    curl_close($curl);       return $res;  }  private function get_php_file($filename) {    return trim(substr(file_get_contents($filename), 15));    // echo trim(substr(file_get_contents($filename), 15));die;    // $aa = trim(substr(file_get_contents($filename), 15));  }  private function set_php_file($filename, $content) {    $fp = fopen($filename, "w");    fwrite($fp, "<?php exit();?>" . $content);    fclose($fp);  }}

讲到这里微信共享就停下了 不过不不荒谬哦 假若大家想动态传递参数如何是好相当于说当页面消息wx.config配置好后大家陡然又想重新赋值给$title等变量信息怎么做?

笔者们能够这么 讲分享写在贰个方式里面 如下:

<script>var zl= function (title,link,imgurl,desc){  wx.ready(function(){    //分享给朋友    wx.onMenuShareAppMessage({        title: title, // 分享标题        desc: desc,  //分享描述        link: link, // 分享链接        imgUrl: imgurl, // 分享图标        type: '', // 分享类型,music、video或link,不填默认为link        dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空        success: function () {              alert('分享成功');        },        cancel: function () {            // 用户取消分享后执行的回调函数            // alert;        }    });    //分享到朋友圈      wx.onMenuShareTimeline({        title: title, // 分享标题        desc: desc, // 分享描述        link: link, // 分享链接        imgUrl: imgurl, // 分享图标        success: function () {            // 用户确认分享后执行的回调函数        },        cancel: function () {            // 用户取消分享后执行的回调函数            // alert;        }    });  });};</script>

解释一下啊 从调节器步入页面已经安插好了分享内的title等消息那么在配备好之后小编又想在页面重新给title值 那么就是这些艺术了 页面复制代码如下

<script>

zl(title,link,imgurl,desc);

</script>

easy吧 小友大家 如想详细摸底微信端此成效和其他职能可仿效手册

链接地址: 右面就足以见到了)

假设对您有用 那么小同伙 点赞批评吧!!!

编辑:快三平台下载编程 本文来源:当wx.config配置好后程序才会接着走下面的分享

关键词:

  • 上一篇:没有了
  • 下一篇:没有了