Skip to content

微信快捷登录

作者:Yuan Tang
更新于:9 个月前
字数统计:645 字
阅读时长:2 分钟

获取令牌

组件 open-type 的值设置为 getPhoneNumber,当用户点击并同意之后,可以通过事件回调如 bindgetphonenumber 获取到动态令牌code,然后把code传到开发者后台,并在开发者后台调用微信后台提供的
phonenumber.getPhoneNumber
https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/phonenumber/phonenumber.getPhoneNumber.html
接口,通过code来换取用户手机号。每个code有效期为 5 分钟,且只能消费一次。

注:getPhoneNumber 返回的 codewx.login 返回的 code 作用是不一样的,不能混用。

代码示例

html
<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber"></button>
Page({ getPhoneNumber (e) { console.log(e.detail.code) // 调用登录接口 } })

返回参数说明

参数类型说明最低版本
codeString动态令牌。可通过动态令牌换取用户手机号。使用方法详情
phonenumber.getPhoneNumber
https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/phonenumber/phonenumber.getPhoneNumber.html
接口

bug

出现 getPhoneNumber:fail:access denied

因为该账号未认证,官方文档明确表明小程序要完成认证才可使用。

拓展:获取手机号

功能描述

该接口用于将 code 换取用户手机号。 说明,每个 code 只能使用一次,code 的有效期为 5min。

调用方式

HTTPS 调用

txt
POST https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token=ACCESS_TOKEN

第三方调用

请求参数

属性类型必填说明
access_tokenstring接口调用凭证,该参数为 URL 参数,非 Body 参数。使用
access_token
https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/mp-access-token/getAccessToken.html
或者
authorizer_access_token
https://developers.weixin.qq.com/doc/oplatform/openApi/OpenApiDoc/ticket-token/getAuthorizerAccessToken.html
codestring
手机号获取凭证
https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/getPhoneNumber.html

返回参数

属性类型说明
errcodenumber错误码
errmsgstring错误信息
phone_infoobject用户手机号信息
属性类型说明 phoneNumberstring 用户绑定的手机号(国外手机号会有区号)purePhoneNumberstring 没有区号的手机号 countryCodestring 区号 watermarkobject 数据水印属性类型说明 timestampnumber 用户获取手机号操作的时间戳 appidstring 小程序 appid

请求数据示例

json
{
  "code": "e31968a7f94cc5ee25fafc2aef2773f0bb8c3937b22520eb8ee345274d00c144"
}

返回数据示例

json
{
  "errcode": 0,
  "errmsg": "ok",
  "phone_info": {
    "phoneNumber": "xxxxxx",
    "purePhoneNumber": "xxxxxx",
    "countryCode": 86,
    "watermark": {
      "timestamp": 1637744274,
      "appid": "xxxx"
    }
  }
}

错误码

错误码错误码取值解决方案
-1system error系统繁忙,此时请开发者稍候再试
40029code 无效js_code 无效

Contributors

Yuan Tang