AppID 和 AppSecret

AppID是微信平台为每个小程序分配的唯一标识符,类似于身份证号。在微信公众平台注册小程序账号后,系统自动分配一个 AppID,该ID不可修改。

AppSecret是账号使用后台API接口的小程序密钥,和AppID是对应的。生成AppSecret后,需妥善保管。

可以在微信开发者平台上管理AppSecret:

在这里插入图片描述

可见,对AppSecret只有“重置”和“冻结”两个选项,而无法查看已生成的AppSecret。所以,在生成AppSecret之后,需要找个地方妥善保管。一旦丢失,只能重新生成,而之前的AppSecret会失效。

access_token

AppSecret是永久性的,而access_token是调用微信API的临时令牌,有效期通常为 2小时(7200秒)。它的作用是替代AppSecret参与部分敏感操作,降低直接暴露AppSecret的风险。

下面是微信官方文档里对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

可以通过AppID和AppSecret来获取access_token。

具体说来,通过如下 GET 请求:

https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

请求参数:

  • grant_type :填写 client_credential
  • appid :小程序唯一凭证,即 AppID,可在「微信公众平台 - 设置 - 开发设置」页中获得。(需要已经成为开发者,且帐号没有异常状态)
  • secret :小程序唯一凭证密钥,即 AppSecret,获取方式同 appid

正常情况下,会返回如下JSON数据:

{"access_token":"ACCESS_TOKEN","expires_in":7200}

返回参数:

  • access_token :获取到的凭证
  • expires_in :凭证有效时间,单位:秒。目前是7200秒之内的值。

下面是不同平台下的例子:

  • Linux:
$ curl -w "%{http_code}\n" --silent -XGET "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$appsecret" | jq .
{
  "access_token": "92_KgXBkx9ViEFC5UOhts83zwt4FbUJHXvULiTF9iNHMnim0xYFI6iMaL8g9s3Oho9b_T7h_V79kuLIParTxIHE6kjrQ0iUhOcxo9mWK9FNAxD5m27Mf_fxmtibOPMXKLbACAERS",
  "expires_in": 7200
}
200
  • Windows(PowerShell + C:\windows\system32\curl.exe )
curl -w "%{http_code}\n" --silent -X GET "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$appsecret" | jq .
{
  "access_token": "92_pQv9uitGzm71sjVRiwUNkjNWK7Wc2bLFlXiQODOp0egiDIQ6_rJGzFXerjoTebE0ne0H7kuuc4opC0zot1uwh3MdGGfzQQC2sqjDU6hDzTKlR4w3-Zhf2emQWJoDDCcAFAYYX",
  "expires_in": 7200
}
200
  • Windows (CMD + C:\windows\system32\curl.exe )
curl -w "%{http_code}\n" --silent -X GET "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%appid%&secret=%appsecret%" | jq .
{
  "access_token": "92_hHC0nxLvOpR4ETIyUtjGZb2WBIAOKyWEBxLd9xaKi1OobUSugpbZfXoHdgUWzzT25f0uUVom7cRqWPCjhXhjulXhKVZgjaS33QOEWpFpyOSN53SCJjbViPgygZwTKGfAEAWNJ",
  "expires_in": 7200
}
200
  • Windows (PowerShell + Invoke-WebRequest )
 curl -Method GET "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$appsecret"


StatusCode        : 200
StatusDescription : OK
Content           : {"access_token":"92_HFI5SZICwY6qJIBA3V68WaQjWJRsLkt48wU6pLejpq1zKfMYQ9xyQPeoAfOw582JXTwZy-zjiQrSE_RamuEARjdA_Cry1GKKoSSqI-wezOcnkfVF1B-ih6kb_FgGDLbAAABYG","ex
                    pires_in":7200}
RawContent        : HTTP/1.1 200 OK
                    Connection: keep-alive
                    Content-Length: 173
                    Content-Type: application/json; encoding=utf-8
                    Date: Fri, 06 Jun 2025 02:40:03 GMT

                    {"access_token":"92_HFI5SZICwY6qJIBA3V68WaQjWJRsLkt...
Forms             : {}
Headers           : {[Connection, keep-alive], [Content-Length, 173], [Content-Type, application/json; encoding=utf-8], [Date, Fri, 06 Jun 2025 02:40:03 GMT]}
Images            : {}
InputFields       : {}
Links             : {}
ParsedHtml        : mshtml.HTMLDocumentClass
RawContentLength  : 173

如果发生错误,会返回 errcode 和 errmsg 。以Linux为例:

$ curl -w "%{http_code}\n" --silent -XGET "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$appsecret" | jq .
{
  "errcode": 40125,
  "errmsg": "invalid appsecret rid: 68425e48-72970e30-0b34ffc1"
}
200

参考

  • https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/mp-access-token/getAccessToken.html
  • https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Get_access_token.html
Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐