tp6下保存微信公众号的access_token以及ticket

在做公众号开发的时候,无非就是用接口调用。首先是获取access_token,然后把它保存起来。之后就可以拿这个access_token做为参数来调用一些接口。

//以下两个方法是一样的,只是写法不一样而已。在实际开发中,任选一个即可//它的做用是用来curl请求(我的专业述语不好,暂且这样子称呼)//以下两个方法的代码也是来源于网上找的。public function https_request($url,$data = null){$curl = curl_init();curl_setopt($curl, CURLOPT_URL, $url);curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);if (!empty($data)){curl_setopt($curl, CURLOPT_POST, 1);curl_setopt($curl, CURLOPT_POSTFIELDS, $data);}curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);$output = curl_exec($curl);curl_close($curl);return $output;}public function https_request($url,$data = null){$curl = curl_init();curl_setopt($curl, CURLOPT_URL, $url);curl_setopt($curl, CURLOPT_RETURNTRANSFER , true);curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);curl_setopt($curl, CURLOPT_POST, 1);curl_setopt($curl, CURLOPT_POSTFIELDS, $data);$output = curl_exec($curl);curl_close($curl);return $output;}
?>
//注意,如果调用这些接口,第二个参数需要传入json的格式,不然会报错。
//例如 https_request($url,$json);
//json 格式如下 $json = '{"tag":{"name":"小冰"}}'
//或者直接将数组 利用 json_encode($arr,JSON_UNESCAPED_UNICODE); //也可以转换成带中文的json

获取access_token

public function getAccessToken(){$appid = '你的appid';$appsecret = '你的appsecret ';$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$appsecret";$weChatApi = new weChatApi;$output = $weChatApi->https_request($url);$output = json_decode( $output, true);Cache::set('access_token', $output['access_token'], 7200); //这儿 我把token保存在缓存}
?>
//当然,在实际中,如果需要使用access_token来调用接口的时候,我们还需要在调用之前做一个判断,
//判断当前的access_token是否会过期或不存在,如果是过期或者是不存在。
//那么,请重新发起一次请求,来获取最新的access_token//这儿,以获取ticket为例,来说明一下。
$access_token = Cache::get('access_token');if($access_token){$this->getAccessToken();}$url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=" . $access_token . "&type=jsapi";$output = $this->https_request($url);$output = json_decode( $output, true);Cache::set('ticket', $output['ticket'], 7200); //这儿 我把ticket保存在缓存
?>
//分享好友
//控制器
  namespace app\weChat\controller;use think\facade\Config;use think\facade\Cache;use app\BaseController;use think\facade\View;class GetApi extends BaseController{public function onMenuShareAppMessage(){if(request()->isAjax()){$noncestr = getRandStr(32); //随机数$jsapi_ticket = Cache::get('ticket');$timestamp = time();$url = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];$string1 = 'jsapi_ticket=' . $jsapi_ticket . '&' . 'noncestr=' . $noncestr . '&' . 'timestamp=' . $timestamp . '&' .  'url=' . $url;$signature = sha1($string1);$appid = Config('weChat')['appid'];$result = array('noncestr'	=> $noncestr,'jsapi_ticket'	=>	$jsapi_ticket,'timestamp'	=>	$timestamp,'signature'	=>	$signature,'appid' => $appid,'url'	=> $url,);return json($result);}return View();}}
?>


<html lang="en">
<head><meta charset="UTF-8"><title>Documenttitle>
head>
<body><script src="https://libs.baidu.com/jquery/2.0.0/jquery.min.js">script><script type="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js">script><script type="text/javascript">$(function(){(function(){var data;$.ajax({//url:'',//不填默认为当前页面type:'post',data:{},dataType:'json',async:false,success:function(res){data = res;}})function api(){var appId = data['appid'];var noncestr = data['noncestr'];var jsapi_ticket = data['jsapi_ticket'];var timestamp = data['timestamp'];var signature = data['signature'];var url = data['url'];wx.config({debug:false,appId:appId,timestamp:timestamp,nonceStr:noncestr,signature:signature,jsApiList:['onMenuShareAppMessage',],});wx.ready(function(){wx.onMenuShareAppMessage({title:'需要分享的标题',desc:'需要分享的简短描述',link:url,imgUrl:'',//图片路径type: '', // 分享类型,music、video或link,不填默认为linkdataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空success:function(success){alert('t');console.log('t');console.log(success);	},fail:function(fail){alert('f');console.log('f');console.log(fail);},complete:function(complete){alert('com');console.log(complete);}})});}api();})();})script>
body>
html>


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部