1
This commit is contained in:
@@ -2,7 +2,7 @@ package weixinapi
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
|
||||
"fmt"
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
)
|
||||
|
||||
@@ -51,6 +51,19 @@ type MiniUserInfo struct {
|
||||
} `json:"watermark"`
|
||||
}
|
||||
|
||||
// UserPhone 微信小程序解密后 用户手机号结构体
|
||||
type UserPhone struct {
|
||||
PhoneNumber string `json:"phoneNumber,omitempty"`
|
||||
PurePhoneNumber string `json:"purePhoneNumber,omitempty"`
|
||||
CountryCode string `json:"countryCode,omitempty"`
|
||||
Watermark *watermarkInfo `json:"watermark,omitempty"`
|
||||
}
|
||||
|
||||
type watermarkInfo struct {
|
||||
Appid string `json:"appid,omitempty"`
|
||||
Timestamp int `json:"timestamp,omitempty"`
|
||||
}
|
||||
|
||||
func mapData2SNSToken(result map[string]interface{}) *SNSTokenInfo {
|
||||
return &SNSTokenInfo{
|
||||
AccessToken: utils.Interface2String(result["access_token"]),
|
||||
@@ -125,6 +138,30 @@ func (a *API) SNSCode2Session(jsCode string) (sessionInfo *SessionInfo, err erro
|
||||
return nil, err
|
||||
}
|
||||
|
||||
func (a *API) SNSGetUserPhone(jsCode string) (string, error) {
|
||||
url := "wxa/business/getuserphonenumber?access_token=%s"
|
||||
if a.token == "" {
|
||||
url = fmt.Sprintf(url, a.CBGetToken())
|
||||
} else {
|
||||
url = fmt.Sprintf(url, a.token)
|
||||
}
|
||||
result, err := a.AccessAPI(url, map[string]interface{}{
|
||||
"js_code": jsCode,
|
||||
}, "")
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
if result["errcode"].(int) != 0 {
|
||||
return "", err
|
||||
}
|
||||
var phoneInfo *UserPhone
|
||||
if err := utils.Map2StructByJson(result, &phoneInfo, false); err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
return phoneInfo.PhoneNumber, nil
|
||||
}
|
||||
|
||||
// 待删除
|
||||
func (a *API) SNSDecodeMiniProgramData(encryptedData, sessionKey, iv string) (decryptedData []byte, err error) {
|
||||
return SNSDecodeMiniProgramData(encryptedData, sessionKey, iv)
|
||||
|
||||
Reference in New Issue
Block a user