文档管理中心
ASCF框架开发指南开放能力获取华为账号用户信息

获取华为账号用户信息

华为账号登录是基于OAuth 2.0协议标准OpenID Connect协议标准构建的OAuth2.0授权登录系统,元服务可以方便地获取华为账号用户的身份标识,快速建立用户体系。

用户打开元服务时,不需要用户点击登录/注册按钮,即可获取用户的身份标识UnionID/OpenID,完成静默登录。

如果您需要将用户与已注册账号关联,为用户同步历史数据资产,可以向用户申请获取手机号

获取openID

开发准备

  1. 配置签名和指纹

  2. 配置Client ID

has.login后可以获取到openID。也可以通过将has.login接口返回的code传入服务器端接口获取用户级凭证,再通过解析凭证获取openID。has.login返回的code即是获取用户级凭证接口中需要的授权码(Authorization Code)。

收起
自动换行
深色代码主题
复制
  1. has.login({
  2. success: (res) => {
  3. console.info('login success', res);
  4. },
  5. fail: (err) => {
  6. console.error('login fail', err);
  7. },
  8. complete: (res) => {
  9. console.info('login complete', res);
  10. }
  11. });

获取手机号

开发准备

  1. 配置签名和指纹

  2. 配置Client ID

  3. 配置scope权限

当元服务需要获取用户手机号时,可通过调用Button组件 open-type="getPhoneNumber" 引导用户完成手机号授权。

元服务满足《常见类型移动互联网应用程序必要个人信息范围规定》(对第三方网站的内容,华为不承担任何责任)中使用手机号的必要业务场景。

使用方法:

  1. 需要将button组件open-type的值设置为getPhoneNumber,当用户点击并同意之后,通过 bindgetphonenumber事件获取回调信息。

  2. 将bindgetphonenumber事件回调中的动态令牌code传到开发者后台,并在开发者后台调用服务器端接口消费该code来获取用户级凭证,再通过获取用户信息接口,来获取用户手机号。每个code有效期为5分钟,且只能消费一次。bindgetphonenumber中的动态令牌code即是获取用户级凭证接口中需要的授权码(Authorization Code)。

说明

getPhoneNumber 返回的 code 与 has.login 返回的 code 作用不同,不能混用。

示例代码

收起
自动换行
深色代码主题
复制
  1. <!--hxml文件-->
  2. <button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">"get phonenumber"</button>
收起
自动换行
深色代码主题
复制
  1. // js文件
  2. Page({
  3. getPhoneNumber(e) {
  4. // 动态令牌
  5. console.info(e.detail.code);
  6. // 回调信息(成功失败都会返回)
  7. console.info(e.detail.errMsg);
  8. // 错误码(失败时返回)
  9. console.error(e.detail.errno);
  10. }
  11. });

获取发票抬头

当元服务需要获取用户发票抬头时,可使用has.chooseInvoiceTitle,帮助用户打开发票抬头选择页面进行选择或管理发票抬头。

获取收货地址

当元服务需要获取用户收货地址时,可使用has.chooseAddress,引导用户添加或选择已有的收货地址,并最终获取用户的收货地址。

收起
自动换行
深色代码主题
复制
  1. has.chooseAddress({
  2. success: (res) => {
  3. console.info('chooseAddress success,res', res);
  4. },
  5. fail: (err) => {
  6. console.error('chooseAddress fail', err);
  7. },
  8. complete: (res) => {
  9. console.info('chooseAddress complete', res);
  10. }
  11. });
在 ASCF框架 中进行搜索
请输入您想要搜索的关键词