diff --git a/platformapi/weixinapi/sns.go b/platformapi/weixinapi/sns.go index 44a4afb6..03b8a273 100644 --- a/platformapi/weixinapi/sns.go +++ b/platformapi/weixinapi/sns.go @@ -2,6 +2,7 @@ package weixinapi import ( "bytes" + "errors" "git.rosy.net.cn/baseapi/utils" ) @@ -50,6 +51,12 @@ type MiniUserInfo struct { } `json:"watermark"` } +type GetUserPhone struct { + ErrCode int64 `json:"errcode"` + ErrMsg string `json:"errmsg"` + PhoneInfo *UserPhone `json:"phone_info"` +} + // UserPhone 微信小程序解密后 用户手机号结构体 type UserPhone struct { PhoneNumber string `json:"phoneNumber,omitempty"` @@ -150,15 +157,15 @@ func (a *API) SNSGetUserPhone(jsCode string) (string, error) { if err != nil { return "", err } - if result["errcode"].(string) != "" { - return "", err - } - var phoneInfo *UserPhone + var phoneInfo *GetUserPhone if err := utils.Map2StructByJson(result, &phoneInfo, false); err != nil { return "", err } - return phoneInfo.PhoneNumber, nil + if phoneInfo.ErrCode != 0 { + return "", errors.New(phoneInfo.ErrMsg) + } + return phoneInfo.PhoneInfo.PhoneNumber, nil } // 待删除