PHP 获取微信小程序授权,并存于数据库 2小时更新一次,自行维护

文章描述了一个PHP函数,用于从数据库获取微信token,如果过期则从微信官方API刷新,并将结果存入数据库。同时,控制器中的其他方法通过这个函数获取token。
摘要由CSDN通过智能技术生成

PHP源码

public static function getwxtoken(){
    $appid="wxb************d0";
    $secu="6c************bdcb************e89a";
    
    $nowtime = time();
    
    $tk = Db::name('wxtoken')->where('id','1')->find();
    if($tk){
        if( ($tk['exptime']-10) >time() ){
            return $tk['token'];
        }
    }
    $url="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$appid}&secret={$secu}";
    $res = file_get_contents($url);
    $r='';
    if($res){
         $arr = json_decode($res,true);
         $up=['res'=>$res, 'gettime'=>date('Y-m-d H:i:s',$nowtime) ];
        if($arr && $arr['access_token']){
           $up['token']   = $arr['access_token'];
           $up['exptime'] = $nowtime+$arr['expires_in'];
           $r=$up['token'];
        }
        Db::name('wxtoken')->where('id','1')->update($up);
      
        
    } 
    return $r;
}

数据库表

CREATE TABLE `fa_wxtoken` (
  `id` int(11) NOT NULL,
  `token` text NOT NULL,
  `exptime` varchar(22) NOT NULL,
  `gettime` varchar(22) NOT NULL,
  `res` text NOT NULL COMMENT '返回'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='微信令牌';
ALTER TABLE `fa_wxtoken` ADD PRIMARY KEY (`id`);

在同一个控制器,别的方法中 直接使用

/ 有就直接从数据库返回, 没有就从官方提取
$ACCESS_TOKEN=$this->getwxtoken();
//

end!

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

世界方块

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值