在小程序开发中,特别是一些电商平台,需要获取用户的手机号码.
前端是无法直接获取用户手机号码,前端需要用户点击同意授权后,把获取到用户的code传给后端.后端收到code后,要先获取一下token(获取token的代码,下次发).具体代码如下(我是用golang原生写的)
//获取微信手机号码
func GetPhoneNumber(wxCode string) interface{} {
//获取用户的token 明天发获取token的代码
accessToken := GetAccessToken()
httpData := make(map[string]interface{})
httpData["code"] = wxCode
httpDataCode, _ := json.Marshal(httpData)
httpUrl := "https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token=" + accessToken
client := &http.Client{}
req, _ := http.NewRequest("POST", httpUrl, bytes.NewReader(httpDataCode))
req.Header.Add("content-type", "application/json")
res, _ := client.Do(req)
defer func() {
_ = res.Body.Close()
}()
body, _ := ioutil.ReadAll(res.Body)
fmt.Print(string(body))
var bodyData map[string]interface{}
_ = json.Unmarshal(body, &bodyData)
return bodyData["phone_info"].(interface{}).(map[string]interface{})["purePhoneNumber"]
}
注意!!!
"https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token=" + accessToken
token一定要拼接到url后面,至于为啥,微信规定的哈.
微信小程序手机号授权功能验证码
这种情况就是默认可以拿到openid来标识用户的。同时还会为用户分配一个sessionkey,有效期只有5分钟,这也是一种身份校验的方式。避免单独拿到openid就可以获取其他信息的风险。此外,在解密用户信息和手机号等数据时,也会用到sessionkey。
小程序里的授权,具体表现是,弹窗请求允许使用某些功能,比如授权获取用户信息、授权获取手机号等,标题会显示“微信授权”
版权声明:【小程序获取手机号失败是什么原因,小程序无法获取手机号】版权归原作者所有,本文由作者:【王鹏(python工程师)】用户自发贡献上传,该文观点仅代表作者本人,本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任,如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至举报,一经查实,本站将立刻删除,如若转载,请注明出处:https://www.intostarry.com/jrzy/285.html