微信开发三【获取access_token储存机制】

news/2025/2/25 16:16:33

为什么80%的码农都做不了架构师?>>>   hot3.png

/**
     * 获取acess_token
     */
    public function Access_Token($appid, $appsecret)
    {
//         $appid = "";
//         $appsecret = "";

        //检验是否存在有效的access
        $access_token_info = Trend_Model_Access_Token::instance()->fetchByPK(1);
        $access_token_info = current($access_token_info);
        $now_time = strtotime(date('Y-m-d H:i:s'));
        $ctime = strtotime($access_token_info['ctime']);
        $time_pass = ceil($now_time-$ctime);
        
        if ($time_pass >= $access_token_info['expires_in']) {
            $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$appsecret";
            $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);
            $jsoninfo = json_decode($output, true);
            $access_token = $jsoninfo["access_token"];
            
            //更新到数据库
            $new_data = array(
                    'access_token' => $jsoninfo["access_token"],
                    'expires_in' => $jsoninfo["expires_in"],
                    'ctime' => date('Y-m-d H:i:s')
            );
            Trend_Model_Access_Token::instance()->updateForEntity($new_data, 1);
        } else {
            $access_token = $access_token_info['access_token'];
        }
        
        return $access_token;
    }


转载于:https://my.oschina.net/hzfs/blog/491939


http://www.niftyadmin.cn/n/710571.html

相关文章

89 字符串压缩

89 字符串压缩 作者: 阮文灵时间限制: 1S章节: 字符串 问题描述 : 通过键盘输入字母(A-Z、a-z)组成的字符串,字符串长度不超过1000。首先将所有字母统一成小写字母,然后将字符串中连续出现的重复字母进行压缩,并输出压缩后的字符串。 压缩…

MySQL5.6 (5.7)数据库主从(Master/Slave)同步安装与配置详解

2019独角兽企业重金招聘Python工程师标准>>> 安装环境 操作系统 :CentOS 6.5 数据库版本:MySQL 5.6.27 主机A:192.168.1.1 (Master) 主机B:192.168.1.2 (Slave) 这里强调…

NoSql---MongoDB基本操作

MongoDB 最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语 言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。最后由于 MongoDB 可以支持复杂的数据结构,而且带有强大的数…

90 选票统计

90 选票统计 作者: Turbo时间限制: 1S章节: 结构体 问题描述 : 学生会主席投票选举工作正在举行。本次投票将采用电脑统计选票的方式,当投票选举正式开始后,同学们将排队一 一走到电脑前,投上自己神圣的一票:在电脑前输入一个姓…

Java技术体系 JDK与JRE

从广义上讲,Clojure、JRuby、Groovy等运行于Java虚拟机上的语言及其相关的程序都属于Java技术体系中的一员。如果仅从传统意义上来看,Sun官方所定义的Java技术体系包括以下几个组成部分: •Java程序设计语言 •各种硬件平台上的Java虚拟…

redhat5.4 www服务器配置实例(1)

redhat5.4 www服务器配置实例 要求 主站点:www.abc.com ip:192.168.1.106 任何人可见 市场部:mkt.abc.com ip:192.168.1.106 禁止192.168.1.115查看,并且只允许用户 : code,anys,可见 技术部:tec.abc.com ip:192.168.1.106 全部的人使用https连接 实例…

LeetCode Minimum Depth of Binary Tree

Given a binary tree, find its minimum depth.The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.思路分析:这题和Maximum Depth of Binary Tree相似,可是如今要返回最小深度,递归的…

大二上学期九月周总结报告二

这周我在慕课网上学习java的入门课程,重新回顾在暑假学习过的java的类的定义、对象的使用、静态和动态方法等,编写了一个简单的成绩信息管理系统, 并且安装好了mysql和配置好了环境。 下周继续学习java基础课程,学习建模语言基础知…