需求需要在小程序内调用开卡组件
公众号已经关联了小程序
已经在公众号后台创建了会员卡,并获取了card_id
公众号已获得卡券接口权限
调用会员卡获取开卡插件参数接口
https://api.weixin.qq.com/card/membercard/activate/geturl
access_token验证有通过
但是调用接口拿参数返回错误 这个错误码是什么意思?需要怎么解决呢?
返回结果:
200 OK
Connection: keep-alive
Date: Fri, 31 May 2019 06:22:54 GMT
Content-Type: application/json; encoding=utf-8
Content-Length: 68
{ "errcode": 48001, "errmsg": "api unauthorized hint: [ExMZWa07745146]"}
解决了。是我用错了token。
之前用了小程序的appid和secret,
实际上调的是公众号接口,应该用公众号的appid和secret。
问题再现
1 首次使用 scope=snsapi_base 进行网页授权
2 拿到 code 后调用接口 https://api.weixin.qq.com/sns/oauth2/access_token?appid={0}&secret={1}&code={2}&grant_type=authorization_code
3 根据上一步获取的 openid 和 access_token 调用接口 https://api.weixin.qq.com/sns/userinfo?access_token={0}&openid={1}&lang=zh_CN 获取用户基本信息
4 获取失败:返回 {"errcode":48001,"errmsg":"api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]"}
失败原因
scope=snsapi_base 时,只能用于获取openid,不能获取用户的基本信息(获取用户信息,需要用户同意。scope=snspai_base 授权时,并没有征求用户同意授权这一操作)
===
解决方案
使用 scope=snsapi_userinfo 进行一次网页授权,步骤跟上面【问题再现】一样,成功获取到用户的微信基本信息。
再使用 scope=snsapi_base 重复一遍【问题再现】