diff --git a/platformapi/ebaiapi/order_test.go b/platformapi/ebaiapi/order_test.go index f9b73eb4..37a92dff 100644 --- a/platformapi/ebaiapi/order_test.go +++ b/platformapi/ebaiapi/order_test.go @@ -159,3 +159,9 @@ func TestAPI_OrderselfDeliveryStateSync(t *testing.T) { t.Fatal(err) } } +func TestAggrent(t *testing.T) { + err := api.OrderAgreeReturnGoods("4648176604190697145", "1483635799404794") + if err != nil { + t.Fatal(err) + } +} diff --git a/platformapi/weixinapi/sns.go b/platformapi/weixinapi/sns.go index fe602a8d..03b8a273 100644 --- a/platformapi/weixinapi/sns.go +++ b/platformapi/weixinapi/sns.go @@ -2,7 +2,7 @@ package weixinapi import ( "bytes" - + "errors" "git.rosy.net.cn/baseapi/utils" ) @@ -51,6 +51,25 @@ 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"` + 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 +144,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" + if a.token == "" { + a.CBRetrieveToken() + } + bodyJson := map[string]interface{}{ + "code": jsCode, + } + + result, err := a.AccessAPI(url, nil, string(utils.MustMarshal(bodyJson))) + if err != nil { + return "", err + } + var phoneInfo *GetUserPhone + if err := utils.Map2StructByJson(result, &phoneInfo, false); err != nil { + return "", err + } + + if phoneInfo.ErrCode != 0 { + return "", errors.New(phoneInfo.ErrMsg) + } + return phoneInfo.PhoneInfo.PhoneNumber, nil +} + // 待删除 func (a *API) SNSDecodeMiniProgramData(encryptedData, sessionKey, iv string) (decryptedData []byte, err error) { return SNSDecodeMiniProgramData(encryptedData, sessionKey, iv)