微信开放平台 开发 的小程序 需要 微信登录 获取 session_key 和 openId ;
按照 官方开发文档API 先获取 Component_Verify_Ticket (微信平台每隔十分钟推送一次)
已经 存贮完毕 通过 Component_Verify_Ticket 获取 api_component_token
1,获取第三方平台access_token
http请求方式: POST(请使用https协议)
https://api.weixin.qq.com/cgi-bin/component/api_component_token
POST数据示例:
{
"component_appid":"appid_value" ,
"component_appsecret": "appsecret_value",
"component_verify_ticket": "ticket_value"
}
请求参数说明
参数 | 说明 |
---|---|
component_appid | 第三方平台appid |
component_appsecret | 第三方平台appsecret |
component_verify_ticket | 微信后台推送的ticket,此ticket会定时推送,具体请见本页末尾的推送说明 |
这个也获取到了 并且 可以保证 整个系统中 只有一个地方调用这个接口 , 而且是最新的 没有失效。。。
然后开始
code 换取 session_key
第三方平台开发者的服务器使用登录凭证 code 以及第三方平台的component_access_token 获取 session_key 和 openid。其中 session_key 是对用户数据进行加密签名的密钥。为了自身应用安全,session_key 不应该在网络上传输。
请求方式:
https://api.weixin.qq.com/sns/component/jscode2session?appid=APPID&js_code=JSCODE&grant_type=authorization_code&component_appid=COMPONENT_APPID&component_access_token=ACCESS_TOKEN |
参数说明:
参数 | 是否必须 | 说明 |
---|---|---|
appid | 是 | 小程序的AppID |
js_code | 是 | 登录时获取的 code |
grant_type | 是 | 填authorization_code |
component_appid | 是 | 第三方平台appid |
component_access_token | 是 | 第三方平台的component_access_token |
但是
获取Session_key以及OpenId 的 时候 却一直 报错
{"errcode":40001,"errmsg":"invalid credential, access_token is invalid or not latest, hints: [ req_id: MNHl9a0063th42 ]"}
这个问题怎么解决?难道 还需要别的证书 或者授权什么的吗????
求解答 在线等 急急急!!!
我附带上源码吧 :
这个是获取 token的源码
没有没有 这个错误不一样 CODE 失效 报错是
error:40163 code been used
肯定不是这个原因 另外 我这个 是从小程序里获取的code
应该是login换取的code失效或者已经被消费了,导致获取到了错误的access_token,请检查后端login的逻辑