欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

关于微信的access_token和ticket的疑问

程序员文章站 2022-05-24 12:37:31
...
关于此,
1、目前我的做法是先将access_token和对应获取的时间存储到数据库,检验当下请求时间和数据库的时间差是否已超过一定时间(6000s),如是,则重新请求access_token,并重新存储token和时间,否则直接用数据库里已有的token去请求ticket;
2、疑问:1)多次请求ticket是否可行?是不是只要不多次请求token就可以?
2)相同的token去请求ticket会不同吗?token和ticket之间到底有什么联系?
谢谢!

回复内容:

关于此,
1、目前我的做法是先将access_token和对应获取的时间存储到数据库,检验当下请求时间和数据库的时间差是否已超过一定时间(6000s),如是,则重新请求access_token,并重新存储token和时间,否则直接用数据库里已有的token去请求ticket;
2、疑问:1)多次请求ticket是否可行?是不是只要不多次请求token就可以?
2)相同的token去请求ticket会不同吗?token和ticket之间到底有什么联系?
谢谢!

通过“微信公众平台接口调试工具”亲身经历,得出以下结论:
1、微信公众平台开发文档中写道:

关于微信的access_token和ticket的疑问

可见微信公众平台对jsapi_ticket的调用次数及频率作了限制,不建议频繁刷新jsapi_ticket,但不刷新也不行,其次ticket有用于调用微信卡券的api_ticket、jssdk配置时使用的jsapi_ticket,用于兑换二维码的ticket,规则都一致。
2、同一个access_token多次获取ticket结果一致。但微信建议是全局缓存access_token和ticket并设置对应的过期时间。至于两者的区别,我个人认为:
ticket是针对某一api的调用凭证,在一定程度上泄露也无所谓,只含有特定的权限。而access_token是公众号的全局唯一接口调用凭据,公众号调用各接口时都需使用access_token,需要妥善保管。ticket是token产生的临时凭据。如果重新获取,上一个凭据将失效。

如果总结有误,欢迎指出。

相关标签: 微信 php