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>含 code 或 encryptedData+iv;用户拒绝或缺参 reject

工作原理 ​

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