微信小程序要求企业小程序获取用户的手机号码。 个人小程序无法获取手机号码。 我们先来看看官方的解释。
获取手机号码
获取微信用户绑定的手机号码,需要调用wx. 接口第一。
由于需要用户主动触发接口获取手机号码,因此该函数不是API调用的,需要通过点击组件来触发。
注:该接口目前对非个人开发者以及已完成认证的小程序开放(不包括海外实体)。 需要谨慎使用。 若用户举报过多或发现用于不必要的场景,微信有权永久撤销该小程序的接口权限。
指示
需要设置组件open-type的值。 当用户点击同意后,可以通过事件回调获取微信服务器返回的加密数据,然后在第三方服务器上进行组合解密,获取手机号码。
注意
在回调中调用wx.可能会刷新登录状态。 此时服务器使用了未用于加密的代码,导致解密失败。 建议开发者提前进行此操作; 或者在回调中首先使用登录状态检查,以避免刷新登录状态。
这个是写在前端页面上的,需要用一个按钮来触发这个功能。 点击后会得到2个数据:和iv,后面会用到。
返回参数说明
参数类型说明最低版本
包括敏感数据在内的完整用户信息的加密数据,查看详情
四号
加密算法初始向量,详见
那么首先使用wx. 获取代码和用户的有效凭证以换取用户的金额。 作为交换,开发人员需要调用 auth. 方法在自己的服务器上。
使用GET方法提交四个数据:
请求地址
重击
GET https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code
请求参数
属性类型 默认值 必填 描述
是的
小程序
是的
小程序
是的
登录时获取的code
是的
授权类型,这里填写即可
我们不需要担心它。 我们只需要填写小程序、小程序密钥以及wx获取到的代码即可。
一旦我们拿到了,我们就可以用它来兑换一个手机号码。 我们先来梳理一下我们获得了哪些数据,最终需要哪些数据来换取一个手机号。
首先点击按钮获取手机号码和iv,然后通过wx获取code。 (最后一步获取手机号码不需要),然后换取code,最后一步换手机号码就是这三个参数,编程就可以了。
交换手机号码需要在服务器端完成。 微信提供了示例demo,您可以点击下载。 我使用的是PHP版本。 只需要传入相应的数据即可。
如图所示:
一切完成后,就可以在小程序上获取用户的手机号码了。 如下所示:
是区号,是用户绑定的手机号码(国外手机号码会有区号),是不带区号的手机号码。