微信如何开通wx.getPhoneNumber权限

news/2025/10/20 23:13:53/文章来源:https://www.cnblogs.com/QuestionsZhang/p/19153896

 首先必须是企业认证账号,自己是个人认证账号,折腾了好半天没找到地方。代码测试来测试去都是授权失败。

其次才是按规矩文档配置好

要开通微信小程序的 `wx.getPhoneNumber` 权限(实际上是手机号快速验证组件),需要确保小程序满足相关前提条件,并进行相应的配置。以下是基于官方文档的详细步骤和要求:

### 1. **前提条件**
- 小程序必须是非个人开发者主体,且已完成微信认证(企业、组织等主体)。个人开发者无法开通此权限。境外主体目前仅限部分国家/地区开放。
- 该组件使用时,平台会基于中国三大运营商的底层能力验证号码,但不保证实时性。开发者需合理使用,避免强制要求用户提供手机号,否则可能违反平台规范导致小程序被处理。

### 2. **权限开通与付费配置**
- **微信认证**:在微信公众平台(mp.weixin.qq.com)登录小程序账号,进入“设置” > “基本设置” > “微信认证”,完成认证流程(需提供主体资质证明等)。未认证的小程序调用时会报错如 “getPhoneNumber:fail no permission”。
- **开通付费能力**:自 2023 年 8 月 28 日起,该组件需付费使用(标准单价每次调用成功收费 0.03 元)。在微信公众平台进入“付费管理”,购买资源包。每个小程序有 1000 次体验额度(正式版、体验版、开发版共用,超额后收费)。
- **免费规则**:如果小程序主体类型为政府、非营利组织、事业单位(政务民生类目)、公立医疗机构或学历教育(学校)类目,则使用不收费。查询方式:在公众平台查看“小程序信息” > “基本信息” > “微信认证主体类型”。
- **集采模式**:支持批量采购资源包后分配给多个小程序。
- **额度查询与扣费**:用户点击按钮时查询额度,若不足会返回错误码 1400001(可自定义提示)。扣费发生在成功回调时。

### 3. **代码配置(前端组件)**
- 在小程序页面中使用 `<button>` 组件:
- 设置 `open-type="getPhoneNumber"`。
- 绑定事件 `bindgetphonenumber`,用于处理回调。
- 示例代码:
```xml
<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">获取手机号</button>
```
在 Page 方法中处理:
```javascript
getPhoneNumber(e) {
if (e.detail.errMsg === "getPhoneNumber:ok") {
const code = e.detail.code; // 动态令牌,传给后端
} else {
// 处理失败,如权限不足
}
}
```
- 注意:如果额度不足,用户侧会提示“该功能使用次数已达当前小程序上限”,可通过 `phone-number-no-quota-toast` 属性自定义。

### 4. **后端配置(解密手机号)**
- 前端获取的 `code`(动态令牌,有效期 5 分钟,只能用一次)需传给服务器。
- 在服务器端调用微信的 `phonenumber.getPhoneNumber` 接口(HTTPS 或云调用):
- 接口地址:`POST https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token=ACCESS_TOKEN`。
- 请求参数:JSON 对象,包括 `code`(必填),可选 `openid`。
- 需要小程序的 `access_token`(通过 `appid` 和 `secret` 获取),且 `appid` 必须匹配获取 `code` 的小程序。
- 对于第三方开发:需获得权限集 ID 为 18 的授权,使用 `authorizer_access_token`。
- 示例返回:包含 `phone_info` 对象,如 `purePhoneNumber`(纯手机号)。

### 注意事项
- `getPhoneNumber` 返回的 `code` 与 `wx.login` 的 `code` 不同,不能混用。从基础库 2.21.2 开始,无需提前调用 `wx.login`。
- 测试时,确保小程序在开发版或体验版中已上线认证版本。
- 如果遇到权限问题,检查认证状态和付费额度。建议参考微信开发者社区或官方支持获取最新更新。

如果你的小程序主体不符合条件,可考虑切换主体或咨询微信客服。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/941702.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

日志|JAVAWEB|maven

maven安装步骤配置本地仓库配置阿里云私服系统变量更改idea配置mavenmaven坐标maven加入新依赖

推荐系统与机器学习在会员服务中的应用

本文深入探讨了如何利用机器学习、贝叶斯推荐系统和结构计量经济学等技术,为会员提供个性化服务推荐。内容包括推荐系统架构、多样性优化策略以及动态选择建模等核心技术实现方案。机器学习在会员服务中的科学应用 某…

ManySpeech.MoonshineAsr 使用指南

一、简介 ManySpeech.MoonshineAsr 是 ManySpeech 语音处理套件中一个专门用于moonshine 模型推理的语音识别组件,其使用 c# 开发,底层调用 Microsoft.ML.OnnxRuntime 对 onnx 模型进行解码。具备以下特点:环境兼容…

10.20 —— 2024icpc成都I,B

I. Good Partitions 称位置 \(i\) 为断点,当且仅当 \(a_{i} > a_{i + 1}\)。考虑每个断点的影响:若段长 \(len\) 合法,则 \(a_{i}\) 与 \(a_{i + 1}\) 一定不会在段长为 \(len\) 的划分下出现在同一个段中。那么…

软工第二次编程作业

一、项目介绍项目成员 许潆之3223004863 李思淇3223004861GitHub地址 https://github.com/0919lyski/math_exercise.git这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/Class34Grade23ComputerScience这个…

wqs二分的无脑写法

我曾经被 wqs 二分的边界折磨死了。后面听说有种很无脑的写法,听说是 lhx 大神发明的,记录一下。 假设我们要求的是恰好 \(k\) 个的最大值,大概是这样的: int l = -1e6, r = 1e6; while (l + 1 < r) {int mid =…

2022 ICPC Hangzhou G and 2022 ICPC Jinan

2022 ICPC Hangzhou G and 2022 ICPC Jinan ICPC Hangzhou G 手玩可以发现合法的图中最多只有一个环。所以对于 \(m = n - 1\) 的情况直接判合法;对于 \(m > n\) 的情况直接判非法,此时图中肯定不知有一个环;需要…

C++在类定义内的函数包含static代表什么含义呢?

在类定义内的函数包含static代表什么含义呢? 在类定义内使用 static 关键字修饰成员函数有特殊的含义,它表示这是一个静态成员函数。 静态成员函数的特点 1. 不依赖于类的实例class MyClass { public:static void st…

2025/10/20~2025/?/? 做题笔记 - sb

2025/10/20 AT_arc181_d Prefix Bubble Sort 很显然的有每一次交换都会恰好减少一个逆序对,于是题目转化为每次会产生多少次交换。 那么考虑如何统计交换次数发现当前缀 max 变化时不会产生答案,但是这个折线非常困难…

10-20 Extra-Problem 总结

10-20 Extra-Problem 总结 AtCoder abc280_g 发现点 \((x,y)\) 的距离实际上是 \(\max(|x|,|y|,|x-y|)\)。由于坐标是可平移的,所以 \((x_1,y_1),(x_2,y_2)\) 的距离为 \(\max(|x_1-x_2|,|y_1-y_2|,|(x_1-x_2)-(y_1-y…

Rust 编译加速的最佳实践

Rust 编译慢是“老毛病”,但 2024-2025 年官方和社区集中发力,已经把“等 10 min”级别的大型项目干到了“秒级增量”。下面把当前(2025-10)验证有效的加速手段按“投入-收益”从高到低排序,全部可立刻落地;最后…

ansible底层文件传输机制中默认模式遇到权限拒绝后启用管道模式可以得到解决

为啥我在ansible.cf中加入这一配置后就可以ping通了 [ssh_connection] pipelining = True[student@master ansible]$ ansible all -m ping [WARNING]: sftp transfer mechanism failed on [node2]. Use ANSIBLE_DEBUG…

20232304 2025-2026-1 《网络与系统攻防技术》实验三实验报告

20232304 2025-2026-1 《网络与系统攻防技术》实验三实验报告 1.实验内容 1.1 实验内容 (1)使用msf编码器以及多种格式Payload生成,veil的evasion功能,利用C+Shellcode编程等技巧 (2)通过组合应用各种技术实现恶意代…

10月20日记

1.今天学习java 2.明天学习工程技艺 3.递归的终止条件怎么确定?会不会栈溢出?

笔记本 光驱 的内部结构及用法: 应急强大的系统启动 (恢复) 光盘 (DVD+R/RW)

笔记本 光驱 的内部结构及用法: 应急强大的系统启动 (恢复) 光盘 (DVD+R/RW)pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-fami…

20251020周一日记

20251020周一日记为什么上周五没写日记?因为在集中办公耶! 周五: 1.早上开项目启动大会,一群老总来,有点像誓师大会。开始干活,第一天还没啥人吃零食。 2.下午上课,本来说是要汇报?结果老师微笑着走了忘了这事…

WPF loading data asynchronously and contextmenu save as json in mvvm

Install-Package Prism.Wpf; Install-Package Prism.DryIOC; Install-Package System.Text.Json;<prism:PrismApplication x:Class="WpfApp36.App"xmlns="http://schemas.microsoft.com/winfx/2006/…

Android 源码解析系列1- Android init 进程启动流程

Android 源码解析系列1- Android init 进程启动流程Android 源码解析系列1- Android init 进程启动流程 init进程是用户空间的第一个进程.如下 g1930fua_g210_ai:/ $ ps -ef | grep init #uid pid ppid C…

英语_阅读_Start school_待读

When children start school for the first time, parents often feel a sense of excitement coupled with a touch of sadness at the end of an era. This is the start of a new adventure for children playing a…

2025.10.20总结

今天继续学软考相关内容,目前过完操作系统剩下的相关知识 上午上课的时候进行项目演示有很多的收获,与它们的项目相比我目前的开发而言还存在很多的不足 操作系统作为系统资源的管理者,当然也需要对内存进行管理,要…