Skip to content

getPhoneInMiniapp

微信小程序端手机号授权结果解析适配器,showWxPhone 内部调用

本函数不主动调起授权 UI,而是解析 <button open-type="getPhoneNumber"> 事件中的 detail

前置依赖

typescript
interface PhoneInMiniappDeps {
  error: Console['error']
}
依赖说明
error错误日志(当前实现主要用于一致性,校验失败直接 reject)

getPhoneInMiniapp

函数签名

typescript
function getPhoneInMiniapp(
  request?: PhoneRequest,
  deps: PhoneInMiniappDeps
): Promise<PhoneResult>

参数

参数名类型必填说明
request.eventDetailany按钮 getphonenumber 事件的 detail
request.rawEvent.detailany完整事件对象的 detail
request.codestring新版手机号 code(与 encryptedData+iv 二选一)
request.encryptedDatastring加密数据(旧版)
request.ivstring加密算法初始向量(旧版)
request.cloudIDstring云开发 cloudID
depsPhoneInMiniappDeps环境依赖

返回值

类型说明
Promise<PhoneResult>codeencryptedData+iv;用户拒绝或缺参 reject

工作原理

  1. eventDetailrawEvent.detail 或顶层字段归一化出 detail
  2. detail.errMsg 存在且不含 'ok',视为用户拒绝,reject。
  3. 必须提供 新版 code旧版 encryptedData + iv,否则 reject 并提示需在 button 事件中传入 detail。
  4. 成功 resolve 统一 PhoneResult,由后端解密或换手机号;本层不做解密。