mirror of
https://github.com/silenceper/wechat.git
synced 2026-02-04 12:52:27 +08:00
微信小程序新版获取手机号授权接口 (#528)
This commit is contained in:
@@ -13,6 +13,8 @@ const (
|
|||||||
code2SessionURL = "https://api.weixin.qq.com/sns/jscode2session?appid=%s&secret=%s&js_code=%s&grant_type=authorization_code"
|
code2SessionURL = "https://api.weixin.qq.com/sns/jscode2session?appid=%s&secret=%s&js_code=%s&grant_type=authorization_code"
|
||||||
|
|
||||||
checkEncryptedDataURL = "https://api.weixin.qq.com/wxa/business/checkencryptedmsg?access_token=%s"
|
checkEncryptedDataURL = "https://api.weixin.qq.com/wxa/business/checkencryptedmsg?access_token=%s"
|
||||||
|
|
||||||
|
getPhoneNumber = "https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token=%s"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Auth 登录/用户信息
|
// Auth 登录/用户信息
|
||||||
@@ -90,3 +92,42 @@ func (auth *Auth) CheckEncryptedDataContext(ctx context2.Context, encryptedMsgHa
|
|||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetPhoneNumberResponse 新版获取用户手机号响应结构体
|
||||||
|
type GetPhoneNumberResponse struct {
|
||||||
|
util.CommonError
|
||||||
|
|
||||||
|
PhoneInfo PhoneInfo `json:"phone_info"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// PhoneInfo 获取用户手机号内容
|
||||||
|
type PhoneInfo struct {
|
||||||
|
PhoneNumber string `json:"phoneNumber"` // 用户绑定的手机号
|
||||||
|
PurePhoneNumber string `json:"purePhoneNumber"` // 没有区号的手机号
|
||||||
|
CountryCode string `json:"countryCode"` // 区号
|
||||||
|
WaterMark struct {
|
||||||
|
Timestamp int64 `json:"timestamp"`
|
||||||
|
AppID string `json:"appid"`
|
||||||
|
} `json:"watermark"` // 数据水印
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetPhoneNumber 小程序通过code获取用户手机号
|
||||||
|
func (auth *Auth) GetPhoneNumber(code string) (result GetPhoneNumberResponse, err error) {
|
||||||
|
var response []byte
|
||||||
|
var (
|
||||||
|
at string
|
||||||
|
)
|
||||||
|
if at, err = auth.GetAccessToken(); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
body := map[string]interface{}{
|
||||||
|
"code": code,
|
||||||
|
}
|
||||||
|
if response, err = util.PostJSON(fmt.Sprintf(getPhoneNumber, at), body); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if err = util.DecodeWithError(response, &result, "phonenumber.getPhoneNumber"); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user