微信公众号没办法直接获取用户的手机号

微信公众号如何获取手机号,H5调用小程序,小程序调用H5:
https://blog.csdn.net/u010757785/article/details/100534023
微信开放社区讨论关于获取手机号:
https://developers.weixin.qq.com/community/develop/doc/f31a259b66db48ddd82fbee36b4bb157

总结就是:公众号直接获取不行 ,小程序才好获取手机号码。想用微信公众号直接获取手机号,要大公司才可以拿到授权,小公司没这个授权。

### 微信公众号 API 获取用户手机号方法 #### 前端页面设计 为了获取用户手机号,在前端页面上可以放置一个按钮供用户点击。此按钮应具有特定属性以便调用微信内置的 `getPhoneNumber` 接口。 ```html <button class='pop_btn' plain="true" open-type='getPhoneNumber' bindgetphonenumber="getPhoneNumber">获取用户手机号</button> ``` 当用户点击该按钮并同意授权时,微信将返回加密的数据包(encryptedData)以及初始化向量(iv),这些信息会被发送至后端服务器用于后续处理[^3]。 #### 后端逻辑实现 在后端部分,主要工作包括接收来自前端传递过来的参数、利用从微信公众平台获得的应用凭证(AppID, AppSecret)、先前保存下来的 session_key 对 received data 进行解码解析最终得到明文形式下的电话号码,并妥善保管这一敏感资料入数据库内。 ##### 解密过程概述 - **准备阶段**: 需要提前准备好 appid 和 secret 来换取 access_token;同时也要有之前缓存好的 session_key。 - **核心步骤**: - 使用官方提供的 decryptData 函数来解开由客户端传来的 encryptedData 字符串; - 提取其中包含的真实手机号字段。 以下是简化版伪代码表示整个流程: ```python def handle_phone_number_request(encrypted_data, iv): try: # Assume these functions are implemented elsewhere to fetch necessary keys and tokens. session_key = get_stored_session_key() decrypted_info = decrypt_data(session_key=session_key, encrypted_data=encrypted_data, iv=iv) phone_number = parse_decrypted_info_for_phone(decrypted_info) save_phone_to_db(phone_number) # Replace with actual DB storage logic return {"status": "success", "message": f"Phone number {phone_number} saved successfully."} except Exception as e: return {"status": "error", "message": str(e)} ``` 确保所有涉及个人信息的操作都遵循严格的安全措施,比如 HTTPS 协议下传输数据、合理设置 token 生命周期等,以此保护好每一位使用者的信息安全[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值