微信小程序授权获取手机号,提示获取失败,该appId没有权限

博客围绕微信小程序展开,指出获取手机号按钮报错是因小程序账号未“微信认证”,认证后可解决。还介绍授权获取手机号接口注意点,如需用户主动触发、针对特定开发者开放、需后台解密等,此外提及小程序滚动块及web - view使用整理。
部署运行你感兴趣的模型镜像

一、获取手机号按钮报错:提示获取失败,该appId没有权限

<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">获取手机号 </button>

注:问题出现原因,当前小程序账号没有进行“微信认证

解决方案,点击微信认证详情,认证处理之后可以使用。

点击参考微信开发社区

二、微信小程序授权获取手机号接口注意点:

1.因为需要用户主动触发才能发起获取手机号接口,所以该功能不由 API 来调用,需用 <button> 组件的点击来触发。

注意:目前该接口针对非个人开发者,且完成了认证的小程序开放(不包含海外主体)。需谨慎使用,若用户举报较多或被发现在不必要场景下使用,微信有权永久回收该小程序的该接口权限。

2.使用获取手机号接口的小程序需要“微信认证”通过的可以使用

3.接口调用需要后台解密处理,详情参考官方文档

 

更多:

微信小程序实现纵向滚动块--scroll-view

微信小程序实现横向滚动块--scroll-view

微信小程序web-view使用整理

转载于:https://my.oschina.net/tianma3798/blog/1933905

您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

### 微信小程序2025用户手机号码授权登录实现方法 #### 设计概述 为了实现在微信小程序中通过手机号码授权完成用户登录功能,在2025年的背景下需考虑官方政策变化和技术更新。当前,获取用户手机号已涉及费用问题[^3]。 #### 前端uni-app配置 在前端部分采用uni-app框架构建界面并处理用户交互逻辑: 1. **引入必要的API接口** 需要调用微信开放平台提供的`wx.login()` 和 `getPhoneNumber` API 来发起请求。 2. **页面布局与事件绑定** 创建按钮触发获取手机号权限操作,并监听回调函数处理返回数据。 ```html <template> <view class="container"> <!-- 获取手机号 --> <button open-type="getPhoneNumber" @getphonenumber="bindGetPhone">点击授权</button> </view> </template> <script setup lang="ts"> import { ref } from 'vue'; const bindGetPhone = (e:any)=>{ console.log(e.detail.errMsg); console.log(e.detail.iv); console.log(e.detail.encryptedData); } </script> ``` #### 后端Spring Boot服务端设置 服务器侧负责解密来自客户端加密后的敏感资料以及验证身份合法性: 1. **依赖项管理** 添加WeChat Mini Program SDK到项目pom.xml文件以便于后续编码工作。 2. **编写控制器类** 定义接收参数的方法并将解析结果反馈给小程序端。 ```java @RestController @RequestMapping("/api/wechat") public class WeChatController { private final Logger logger = LoggerFactory.getLogger(this.getClass()); /** * 处理从前端传来的code换取session_key和openid */ @PostMapping("/login") public ResponseEntity<String> login(@RequestParam String code){ // 调用微信接口获得 session_key, openid 等信息... return new ResponseEntity<>("success", HttpStatus.OK); } /** * 解析由前端发送过来的 encryptedData 参数得到明文手机号 */ @PostMapping("/decryptMobile") public ResponseEntity<Map<String,Object>> decryptMobile( @RequestBody Map<String,String> param){ try{ WXBizDataCrypt wc = new WXBizDataCrypt(param.get("appid"),param.get("sessionKey")); String result = wc.decrypt(param.get("iv"),param.get("encryptedData")); JSONObject jsonObject = JSON.parseObject(result); HashMap<String,Object> resultMap=new HashMap<>(); resultMap.put("phoneNumber",jsonObject.getString("purePhoneNumber")); return new ResponseEntity<>(resultMap,HttpStatus.OK); } catch(Exception e){ logger.error("Error occurred while processing request.",e); throw new RuntimeException(); } } } ``` 考虑到未来可能存在的调整,建议开发者密切关注微信公众平台发布的最新文档指南以确保应用持续合规运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值