From a0b5cbcbc35f9f5d0ebcb90f2dde6a7b8e854a5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Thu, 11 Aug 2022 18:36:16 +0800 Subject: [PATCH 1/5] 1 --- platformapi/ebaiapi/order_test.go | 6 +++++ platformapi/weixinapi/sns.go | 39 ++++++++++++++++++++++++++++++- 2 files changed, 44 insertions(+), 1 deletion(-) 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..6902737a 100644 --- a/platformapi/weixinapi/sns.go +++ b/platformapi/weixinapi/sns.go @@ -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) From 4e22a897308b122e638b629bef3344c01ea86367 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Thu, 11 Aug 2022 18:45:00 +0800 Subject: [PATCH 2/5] 1 --- platformapi/weixinapi/sns.go | 1 + 1 file changed, 1 insertion(+) diff --git a/platformapi/weixinapi/sns.go b/platformapi/weixinapi/sns.go index 6902737a..3d0081de 100644 --- a/platformapi/weixinapi/sns.go +++ b/platformapi/weixinapi/sns.go @@ -141,6 +141,7 @@ func (a *API) SNSCode2Session(jsCode string) (sessionInfo *SessionInfo, err erro func (a *API) SNSGetUserPhone(jsCode string) (string, error) { url := "wxa/business/getuserphonenumber?access_token=%s" if a.token == "" { + a.CBRetrieveToken() url = fmt.Sprintf(url, a.CBGetToken()) } else { url = fmt.Sprintf(url, a.token) From 3d7f18b857a6e74235e4f922c0285be22bad7dcb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Thu, 11 Aug 2022 18:48:39 +0800 Subject: [PATCH 3/5] 1 --- platformapi/weixinapi/sns.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platformapi/weixinapi/sns.go b/platformapi/weixinapi/sns.go index 3d0081de..05dfb7a6 100644 --- a/platformapi/weixinapi/sns.go +++ b/platformapi/weixinapi/sns.go @@ -148,7 +148,7 @@ func (a *API) SNSGetUserPhone(jsCode string) (string, error) { } result, err := a.AccessAPI(url, map[string]interface{}{ "js_code": jsCode, - }, "") + }, "1") if err != nil { return "", err } From a6ad2b629a68e2f71d76ab45ce21802b0f4114d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Fri, 12 Aug 2022 09:41:55 +0800 Subject: [PATCH 4/5] 1 --- platformapi/weixinapi/sns.go | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/platformapi/weixinapi/sns.go b/platformapi/weixinapi/sns.go index 05dfb7a6..44a4afb6 100644 --- a/platformapi/weixinapi/sns.go +++ b/platformapi/weixinapi/sns.go @@ -2,7 +2,6 @@ package weixinapi import ( "bytes" - "fmt" "git.rosy.net.cn/baseapi/utils" ) @@ -139,20 +138,19 @@ func (a *API) SNSCode2Session(jsCode string) (sessionInfo *SessionInfo, err erro } func (a *API) SNSGetUserPhone(jsCode string) (string, error) { - url := "wxa/business/getuserphonenumber?access_token=%s" + url := "wxa/business/getuserphonenumber" if a.token == "" { a.CBRetrieveToken() - url = fmt.Sprintf(url, a.CBGetToken()) - } else { - url = fmt.Sprintf(url, a.token) } - result, err := a.AccessAPI(url, map[string]interface{}{ - "js_code": jsCode, - }, "1") + bodyJson := map[string]interface{}{ + "code": jsCode, + } + + result, err := a.AccessAPI(url, nil, string(utils.MustMarshal(bodyJson))) if err != nil { return "", err } - if result["errcode"].(int) != 0 { + if result["errcode"].(string) != "" { return "", err } var phoneInfo *UserPhone From 8571169b86554d3da07c9af99b5ac349549435be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Fri, 12 Aug 2022 10:01:47 +0800 Subject: [PATCH 5/5] 1 --- platformapi/weixinapi/sns.go | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) 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 } // 待删除