• 下载
  • 社区

用户授权 FAQ

小程序如何实现用户授权?

小程序 不支持 使用拼接授权链接进行授权,建议使用 my.getAuthCode 实现用户授权、用户登录等。


先调用my.getAuthCode,再调用my.getOpenUserInfo会出现两次授权窗口,是否有方法可以实现只出现一个授权弹框?

正常获取会员基础信息是需要弹窗两次进行授权确认的,一次是 my.getAuthCode 获取用户授权码的授权框, 一次是 my.getOpenUserInfo 中获取用户基础信息的授权框。


my.getAuthCode 使用静默授权方法(令 scopes 为 auth_base)即可实现只出现一个授权弹框。示例代码如下:

my.getAuthCode({
  scopes: ['auth_base'],
  success: (res) => {
    my.alert({
      content: res.authCode,
    });
  },
});


如何打印 my.getAuthCode 获取到的 authCode?

在 IDE 中使用 console.log,在 console 里打印即可。示例代码如下:


my.getAuthCode({
  scopes: 'auth_user',
  success: (res) => {
    console.log(res.authCode),
    my.alert({
      content: res.authCode, 
    });
  },
});


效果如下图所示:

用户授权FAQ IDE.png


为什么要使用用户授权 my.getAuthCode API?

开发者在支付宝开放平台上读写用户信息,均需经过用户许可。支付宝开放平台的用户授权基于国际标准的 OAuth2.0 授权机制。基于此机制,使用 my.getAuthCode API 得到用户授权后,方可进行获取用户信息、给用户发放会员卡等操作。


为什么不允许在小程序首屏使用用户授权 API?

为了创造更良好的支付宝小程序用户体验,在小程序的首屏引导用户授权是不被允许的。需要在用户充分了解小程序的业务内容后再引导用户授权,建议将小程序授权环节放在业务流程中。


用户的 userID 可以通过用户授权 API 获取吗?

不可以,userID 需要在服务器端调用 alipay.system.oauth.token 获取。


my.getAuthCode 可以在小程序 onload 的时候用吗?

可以,但是必须是静默授权。小程序审核禁止一进入就强制弹授权框。


my.getAuthCode 获取用户信息和手机号,为何报 isv.insufficient-isv-permissions?

报错描述:ISV权限不足,建议在开发者中心检查对应功能是否已经添加。

报错原因:此报错的含义就是没有对应接口权限。

解决方案:

1、配置的账户是否有当前接口权限或代理的商户是否有当前接口权限
详见 如何查看签约是否存在产品权限
若没有请先完成签约,签约相关问题可咨询商服服务热线:95188-1咨询!

2、是否在对应APPID下面添加应用功能,详见如何 添加应用功能

3、若是ISV,检查授权令牌(app_auth_token)是否有对应的接口权限。

4、如在沙箱调试出现,请确认请求网关为沙箱 openapi 网关:https://openapi.alipaydev.com/gateway.do,并且请求的 app_id 为沙箱的 app_id。

5、检查此应用 ID 是否已经上线,目前必须上线的应用才可以在正式环境调用接口。