小程序获取用户手机号码_小程序绑定手机号安全吗[通俗易懂]

小程序 (71) 2023-09-08 10:12

Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说小程序获取用户手机号码_小程序绑定手机号安全吗[通俗易懂],希望能够帮助你!!!。

微信小程序接口在不断的更新,有些更新会让人摸不着头脑,这不,最近小编在更新小程序获取手机号的方法时,就遇到了个坑。 首先强调一下,获取用户手机号分为旧版本和新版本

旧版本:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/deprecatedGetPhoneNumber.html
新版本:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/getPhoneNumber.html

第一点要注意的是新旧版本,在获取方法上是有区别的,最主要的是:code,在官方文档有注释说明getPhoneNumber 返回的 code 与 wx.login 返回的 code 作用是不一样的,不能混用。

因为我是在旧的版本上直接修改的,所以,在code的使用上发生了混乱,导致我一直有错误提示:
["errcode"]=> int(41001) ["errmsg"]=> string(52) "access_token missing rid: 62d0ea65-2fdd2b07-1b906d1d"

第二点要注意的是:请求地址 access_token 一定要放在URL中,否则会一直提示你一个错误,

["errcode"]=> int(41001) ["errmsg"]=> string(52) "access_token missing rid: 62d0ff34-7ba62217-0247d6dc"以下是错误示例,请注意错误示例!!!

$url = 'https://api.weixin.qq.com/wxa/business/getuserphonenumber?';    //这样提交会一直提示错误
$postData=[
  'access_token' =>$Access_token,
  'code' => $post['code']
];
$result = posturl($url, json_encode($postData));
复制代码

正确的写法是把access_token 拼接在url上,让后在提交code参数。正确的代码应该是这样的。

public function bindPhone($post){
    $Access_token = $this->wxgetPhone($post['code']);
    $url = 'https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token='.$Access_token;
    $postData=[
        'code' => $post['code']
    ];
    $result = posturl($url, json_encode($postData));
    if (isset($result['errmsg']) && $result['errmsg'] !== 'ok' ) {
        $this->error = json_encode('网络错误,请重新授权手机号');
        return false;
    }
    return ['phoneNumber'=> $result['phone_info']['phoneNumber'] ];
}
复制代码

第三点要注意的是,你提交的数据格式,需要是json格式的,如果你不使用json_decode进行装格式的话,小程序仍然会报错。

以上就是我在重新开发小程序获取用户手机号的时候遇到的bug,踩过的坑,记录一下,进行总结,也希望能够帮助到后面遇到这个问题的朋友。

作者:沐道PHP
链接:https://juejin.cn/post/7120478284323749901/
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

发表回复