PHP调微信小程序接口生成access_token
- 一、微信接口文档
- 二、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、打印
- 由于
appid
,secret
不是真实有效的,所以打印如下
{"errcode":40013,"errmsg":"invalid appid rid: 609deb67-3288bef4-69fe5dee"}
- 正常返回
{"access_token":"ACCESS_TOKEN","expires_in":7200}
PHP调微信小程序接口生成access_token相关推荐
- php access token缓存,微信小程序PHP 生成access_token存入缓存
每个小程序都会对应后台的一系列接口.access_token一天2000次,每个有效期为2小时.所以可以保存到缓存中,每隔一段时间去获取一次. 把appid和secret放在全局配置文件中,方便调用 ...
- 微信小程序接口实现加密
微信小程序接口实现加密教程: 场景 小程序请求的所有接口参数必须加密,后台返回数据也需要加密,并且增加Token验证 一.小程序端功能编写 1.下载一份Js版的aesUtil.js源码.[注:文章末尾 ...
- python写的小程序怎么封装_Promise实现微信小程序接口封装过程
Promise实现微信小程序接口封装过程 发布时间:2020-06-15 13:40:43 来源:亿速云 阅读:419 作者:鸽子 相信很多开发者都遇到过回调地狱的问题.由于微信小程序的API基本都是 ...
- 转载:在微信小程序中 生成二维码
目录 转载: weapp-qrcode-canvas-2d 仓库地址 测试环境 使用 安装方法1:直接引入 js 文件 安装方法2:npm安装 安装完成后调用 例子1:没有使用叠加图片 例子2:使用叠 ...
- 微信小程序实现生成分享海报案例
一.引入插件painter (1)克隆地址:https://gitcode.net/mirrors/Kujiale-Mobile/Painter (2)下载的painter放到小程序的componen ...
- 微信小程序Excel生成下载浏览分享
微信小程序Excel生成下载浏览分享 完整流程 遇到的小问题 完整流程 主要是为了实现小程序前端从后端下载excel文件并浏览和分享excel文件给其他用户 主要实现步骤:通过后端返回的字节流 : w ...
- uniapp使用高德地图微信小程序SDK生成地图轨迹
一文看懂微信小程序生成地图轨迹 一.开发准备 1.下载微信小程序SDK 2.高德控制台申请相关平台key 二.html页面展示地图标签 三.引入sdk及定义数据 四.相关方法(静态生成两个点之间的轨迹 ...
- 织梦微信小程序一键生成插件(资讯案例模板),整合织梦CMS一切数据信息
<织梦微信小程序一键生成插件(资讯模板)>是织梦58发布的便于生成微信小程序的插件,让用户更方便生成资讯类小程序. 版本:1.1(当前1.0版本,下载安装之后可以进行更新升级) 使用该插件 ...
- 微信小程序分享生成海报
本文转自:微信小程序实现生成海报并且保存本地 - 张正-博客园 - 博客园 html: <view><image src="{{img}}" class='bgI ...
- 微信小程序实现生成二维码功能并下载到本地
微信小程序实现生成二维码功能并下载到本地 背景 实现 备注 背景 有这样一个需求,后台返回了url地址,微信小程序将url地址转成二维码图片,展示在页面上,并且该二维码图片可下载到用户手机相册中 实现 ...
最新文章
- wap开发中取到真实的手机号码
- jvm诊断与优化(3)
- wordpress关闭更新提示
- redis-cluster集群单机搭建
- python毕业设计总结范文大全_毕业设计心得体会范文【优秀】
- 《如何搭建小微企业风控模型》第五节 特征工程(上)
- 搭建Nginx+PHP环境
- Python 3.x 中“HTTP Error 403: Forbidden“问题的解决方案
- jQuery 学习-DOM篇(三):jQuery 在 DOM 外部插入元素
- 一名网工对Linux运维的一次经历
- 2022蓝帽杯半决赛电子取证
- 找不到该项目,请确认该项目的位置的办法
- SQL 语句单引号、双引号的用法
- 绕过tp路由器管理密码_路由器管理员密码忘了怎么办 路由器管理员密码忘了解决方法【介绍】...
- rar压缩包解开加密在线,忘记rar压缩包密码如何找回?
- android u盘加载_[转] android 通过usb读取 U盘
- Win7无线网络共享教程:解决所有问题
- 无线电数字信号处理与软件无线电技术综述[图]
- 可能要用心学高并发核心编程,限流原理与实战,分布式令牌桶限流
- Java JVM参数调优配置
热门文章
- 计算机网络路由器是什么东西,路由器是什么
- mfsort shell语法_8.10 shell特殊符号cut命令 8.11 sort_wc_uniq命令 8.12 tee_tr_split命令 8.13 shell特殊符号下...
- 小蜜蜂(动态规划dp)
- 切片器可以设置日期格式?_Power BI之相对日期的设置
- 86 arduino 电机yl_Arduino 直流电机
- java Cannot find the class file for javax.servlet.http.HttpServletRequest.错误解决
- java 简介及环境搭建配置,jdk安装
- php list each搭配循环
- 当面试官要你介绍一下MQ时,该怎么回答?
- ReSharper2017.3的列对齐、排版格式、列对齐错误的修复