• 一、微信接口文档
  • 二、access_token 的存储与更新
  • 三、PHP调微信小程序接口生成access_token
    • 1、代码
    • 2、打印

一、微信接口文档

  • 导航:微信官方文档 --> 服务端 --> 接口调用凭证 --> getAccessToken
  • 具体调用请前去官方文档查看

二、access_token 的存储与更新

接口文档里写了,请仔细阅读接口文档

  • access_token 的存储至少要保留 512 个字符空间;
  • access_token 的有效期目前为 2 个小时,需定时刷新,重复获取将导致上次获取的 access_token 失效;
  • 建议开发者使用中控服务器统一获取和刷新 access_token,其他业务逻辑服务器所使用的 access_token 均来自于该中控服务器,不应该各自去刷新,否则容易造成冲突,导致 access_token 覆盖而影响业务;
  • access_token 的有效期通过返回的 expires_in 来传达,目前是7200秒之内的值,中控服务器需要根据这个有效时间提前去刷新。在刷新过程中,中控服务器可对外继续输出的老 access_token,此时公众平台后台会保证在5分钟内,新老 access_token 都可用,这保证了第三方业务的平滑过渡;
  • access_token 的有效时间可能会在未来有调整,所以中控服务器不仅需要内部定时主动刷新,还需要提供被动刷新 access_token 的接口,这样便于业务服务器在API调用获知 access_token 已超时的情况下,可以触发 access_token 的刷新流程。

详情可参考微信公众平台文档 《获取access_token》

三、PHP调微信小程序接口生成access_token

1、代码

public function test() {$accessToken = self::getAccessToken();echo "access_token is {$accessToken}";
}public function getAccessToken() {$url = 'https://api.weixin.qq.com/cgi-bin/token';$data = ['grant_type' => 'client_credential', //填写 client_credential'appid' => 'wx523***********', //小程序唯一凭证:AppID 16位16进制(字母小写)'secret' => 'c4ca4238a0************9a6f75849b' //小程序唯一凭证:AppSecret 32位16进制(字母小写) => 类似于md5()];$apiUrl = self::getUrl($url, $data);$result =  json_decode(self::curlGet($apiUrl),true);$accessToken = isset($result['access_token']) ? $result['access_token'] : '';if (!$accessToken) {die(json_encode($result, JSON_UNESCAPED_UNICODE)); //输出错误}return $accessToken;
}//url生成器
public function getUrl($apiUrl, $param = []){$param = http_build_query($param);return $apiUrl . '?' . $param;
}public function curlGet($url, $header = []) {$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_HTTPGET, true);if ($header) {curl_setopt($ch, CURLOPT_HTTPHEADER, $header);}curl_setopt($ch, CURLOPT_TIMEOUT, 30); //设置超时时间:30scurl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); //忽略ssl检测curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //1 或 TRUE 将curl_exec()获取的信息以字符串返回,而不是直接输出。-curl_setopt($ch, CURLINFO_HEADER_OUT, true); //TRUE 时追踪句柄的请求字符串,从 PHP 5.1.3 开始可用。这个很关键,就是允许你查看请求header$output = curl_exec($ch);if (!$output) {//        echo "request $url fail:", (array)curl_error($ch); //记录日志}curl_close($ch);
//    echo "request $url success:" . json_encode(array($url, $header, $output), true); //记录日志return $output;
}

2、打印

  • 由于appidsecret不是真实有效的,所以打印如下
{"errcode":40013,"errmsg":"invalid appid rid: 609deb67-3288bef4-69fe5dee"}
  • 正常返回
{"access_token":"ACCESS_TOKEN","expires_in":7200}

PHP调微信小程序接口生成access_token相关推荐

  1. php access token缓存,微信小程序PHP 生成access_token存入缓存

    每个小程序都会对应后台的一系列接口.access_token一天2000次,每个有效期为2小时.所以可以保存到缓存中,每隔一段时间去获取一次. 把appid和secret放在全局配置文件中,方便调用 ...

  2. 微信小程序接口实现加密

    微信小程序接口实现加密教程: 场景 小程序请求的所有接口参数必须加密,后台返回数据也需要加密,并且增加Token验证 一.小程序端功能编写 1.下载一份Js版的aesUtil.js源码.[注:文章末尾 ...

  3. python写的小程序怎么封装_Promise实现微信小程序接口封装过程

    Promise实现微信小程序接口封装过程 发布时间:2020-06-15 13:40:43 来源:亿速云 阅读:419 作者:鸽子 相信很多开发者都遇到过回调地狱的问题.由于微信小程序的API基本都是 ...

  4. 转载:在微信小程序中 生成二维码

    目录 转载: weapp-qrcode-canvas-2d 仓库地址 测试环境 使用 安装方法1:直接引入 js 文件 安装方法2:npm安装 安装完成后调用 例子1:没有使用叠加图片 例子2:使用叠 ...

  5. 微信小程序实现生成分享海报案例

    一.引入插件painter (1)克隆地址:https://gitcode.net/mirrors/Kujiale-Mobile/Painter (2)下载的painter放到小程序的componen ...

  6. 微信小程序Excel生成下载浏览分享

    微信小程序Excel生成下载浏览分享 完整流程 遇到的小问题 完整流程 主要是为了实现小程序前端从后端下载excel文件并浏览和分享excel文件给其他用户 主要实现步骤:通过后端返回的字节流 : w ...

  7. uniapp使用高德地图微信小程序SDK生成地图轨迹

    一文看懂微信小程序生成地图轨迹 一.开发准备 1.下载微信小程序SDK 2.高德控制台申请相关平台key 二.html页面展示地图标签 三.引入sdk及定义数据 四.相关方法(静态生成两个点之间的轨迹 ...

  8. 织梦微信小程序一键生成插件(资讯案例模板),整合织梦CMS一切数据信息

    <织梦微信小程序一键生成插件(资讯模板)>是织梦58发布的便于生成微信小程序的插件,让用户更方便生成资讯类小程序. 版本:1.1(当前1.0版本,下载安装之后可以进行更新升级) 使用该插件 ...

  9. 微信小程序分享生成海报

    本文转自:微信小程序实现生成海报并且保存本地 - 张正-博客园 - 博客园 html: <view><image src="{{img}}" class='bgI ...

  10. 微信小程序实现生成二维码功能并下载到本地

    微信小程序实现生成二维码功能并下载到本地 背景 实现 备注 背景 有这样一个需求,后台返回了url地址,微信小程序将url地址转成二维码图片,展示在页面上,并且该二维码图片可下载到用户手机相册中 实现 ...

最新文章

  1. wap开发中取到真实的手机号码
  2. jvm诊断与优化(3)
  3. wordpress关闭更新提示
  4. redis-cluster集群单机搭建
  5. python毕业设计总结范文大全_毕业设计心得体会范文【优秀】
  6. 《如何搭建小微企业风控模型》第五节 特征工程(上)
  7. 搭建Nginx+PHP环境
  8. Python 3.x 中“HTTP Error 403: Forbidden“问题的解决方案
  9. jQuery 学习-DOM篇(三):jQuery 在 DOM 外部插入元素
  10. 一名网工对Linux运维的一次经历
  11. 2022蓝帽杯半决赛电子取证
  12. 找不到该项目,请确认该项目的位置的办法
  13. SQL 语句单引号、双引号的用法
  14. 绕过tp路由器管理密码_路由器管理员密码忘了怎么办 路由器管理员密码忘了解决方法【介绍】...
  15. rar压缩包解开加密在线,忘记rar压缩包密码如何找回?
  16. android u盘加载_[转] android 通过usb读取 U盘
  17. Win7无线网络共享教程:解决所有问题
  18. 无线电数字信号处理与软件无线电技术综述[图]
  19. 可能要用心学高并发核心编程,限流原理与实战,分布式令牌桶限流
  20. Java JVM参数调优配置

热门文章

  1. 计算机网络路由器是什么东西,路由器是什么
  2. mfsort shell语法_8.10 shell特殊符号cut命令 8.11 sort_wc_uniq命令 8.12 tee_tr_split命令 8.13 shell特殊符号下...
  3. 小蜜蜂(动态规划dp)
  4. 切片器可以设置日期格式?_Power BI之相对日期的设置
  5. 86 arduino 电机yl_Arduino 直流电机
  6. java Cannot find the class file for javax.servlet.http.HttpServletRequest.错误解决
  7. java 简介及环境搭建配置,jdk安装
  8. php list each搭配循环
  9. 当面试官要你介绍一下MQ时,该怎么回答?
  10. ReSharper2017.3的列对齐、排版格式、列对齐错误的修复