加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

php微信分享demo

发布时间:2020-05-25 02:54:20 所属栏目:PHP 来源:互联网
导读:本文章向大家介绍php微信分享demo,主要包括php微信分享demo使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。


php微信分享demo

//定义JSSDK类

<?php

class JSSDK

{

private $appId;

private $appSecret;

private $redis;

public function __construct($appId,$appSecret) {

$this->appId = $appId;

$this->appSecret = $appSecret;

$this->redis = new Redis();

}

public function getSignPackage() {

$jsapiTicket = $this->getJsApiTicket();

$url = "http://$_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;

}

private function getJsApiTicket() {

$data = $this->redis->get("wx_jsapi_ticket");

if ($data) {

$ticket = $data->jsapi_ticket;

} else {

$accessToken = $this->getAccessToken();

$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) {

$this->redis->setEx("wx_jsapi_ticket",7000,$ticket);

}

}

return $ticket;

}

private function getAccessToken() {

$data = $this->redis->get("wx_access_token");

if ($data) {

$access_token = $data->access_token;

} else {

$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) {

$this->redis->setEx("wx_access_token",$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_URL,$url);

$res = curl_exec($curl);

curl_close($curl);

return $res;

}

}

?>


js调用

//调用

<?php

require("jssdk.php");

$jssdk = new JSSDK($appid,$appSecret);

//返回签名基本信息

$signPackage = $jssdk->getSignPackage();

?>

//页面接受PHP传过来的签名参数 $signPackage

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

<script>

// 注意:所有的JS接口只能在公众号绑定的域名下调用,公众号开发者需要先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。

// 如果发现在 Android 不能分享自定义内容,请到官网下载最新的包覆盖安装,Android 自定义分享接口需升级至 6.0.2.58 版本及以上。

// 完整 JS-SDK 文档地址:http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html

wx.config({

appId: '<?php echo $signPackage["appId"];?>',

timestamp: <?php echo $signPackage["timestamp"];?>,

nonceStr: '<?php echo $signPackage["nonceStr"];?>',

signature: '<?php echo $signPackage["signature"];?>',

jsApiList: [

"onMenuShareTimeline",

"onMenuShareAppMessage",

"onMenuShareQQ",

"onMenuShareWeibo",

"onMenuShareQZone",

]

});

wx.ready(function () {

// 在这里调用 API

wx.checkJsApi({

jsApiList: ["onMenuShareTimeline",],// 需要检测的JS接口列表,所有JS接口列表见附录2,

success: function(res) {

alert(JSON.stringify(res));

if(res.errMsg !='checkJsApi:ok'){

alert('请升级您的微信版本');

return;

}

}

});

//分享Demo

//获取“分享到朋友圈”按钮点击状态及自定义分享内容接口

wx.onMenuShareTimeline({

title: '',// 分享标题

link: '',// 分享链接

imgUrl: '',// 分享图标

success: function () {

// 用户确认分享后执行的回调函数

},

cancel: function () {

// 用户取消分享后执行的回调函数

}

});

//获取“分享给朋友”按钮点击状态及自定义分享内容接口

wx.onMenuShareAppMessage({

title: '',// 分享标题

desc: '',// 分享描述

link: '',// 分享图标

type: '',// 分享类型,music、video或link,不填默认为link

dataUrl: '',// 如果type是music或video,则要提供数据链接,默认为空

success: function () {

// 用户确认分享后执行的回调函数

},

cancel: function () {

// 用户取消分享后执行的回调函数

}

});

//获取“分享到QQ”按钮点击状态及自定义分享内容接口

wx.onMenuShareQQ({

title: '',

cancel: function () {

// 用户取消分享后执行的回调函数

}

});

//获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口

wx.onMenuShareWeibo({

title: '',

cancel: function () {

// 用户取消分享后执行的回调函数

}

});

//获取“分享到QQ空间”按钮点击状态及自定义分享内容接口

wx.onMenuShareQZone({

title: '',

cancel: function () {

// 用户取消分享后执行的回调函数

}

});

});

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读