This commit is contained in:
邹宗楠
2022-08-11 18:36:16 +08:00
parent 76bcab3f71
commit a0b5cbcbc3
2 changed files with 44 additions and 1 deletions

View File

@@ -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)