From c162a203127cdbc4cfcac7acee71286529062458 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 20 Oct 2020 17:24:30 +0800 Subject: [PATCH] mtmember --- platformapi/jdshopapi/store_test.go | 15 +---- platformapi/mtmemberapi/mtmemberapi.go | 65 +++++++++++++++++++++ platformapi/mtmemberapi/mtmemberapi_test.go | 28 +++++++++ 3 files changed, 96 insertions(+), 12 deletions(-) create mode 100644 platformapi/mtmemberapi/mtmemberapi.go create mode 100644 platformapi/mtmemberapi/mtmemberapi_test.go diff --git a/platformapi/jdshopapi/store_test.go b/platformapi/jdshopapi/store_test.go index a5ec9144..0167a1f2 100644 --- a/platformapi/jdshopapi/store_test.go +++ b/platformapi/jdshopapi/store_test.go @@ -3,6 +3,7 @@ package jdshopapi import ( "encoding/base64" "fmt" + "strings" "testing" "git.rosy.net.cn/baseapi/utils" @@ -96,16 +97,6 @@ func TestFindStoreInfoByExtStoreId(t *testing.T) { } func TestWIREHL(t *testing.T) { - list := []int{1, 2, 3, 4, 5} - index := 0 - for k, v := range list { - if v == 3 { - index = k - } - } - wsList := list - list = list[0:0] - list = append(list, wsList[0:index]...) - list = append(list, wsList[index+1:len(wsList)]...) - fmt.Println(list) + str := "https://51106.cn/c/22f06354336ca9" + fmt.Println(str[strings.LastIndex(str, "/")+1 : len(str)]) } diff --git a/platformapi/mtmemberapi/mtmemberapi.go b/platformapi/mtmemberapi/mtmemberapi.go new file mode 100644 index 00000000..e634d273 --- /dev/null +++ b/platformapi/mtmemberapi/mtmemberapi.go @@ -0,0 +1,65 @@ +package mtmemberapi + +import ( + "fmt" + "net/http" + "strings" + + "git.rosy.net.cn/baseapi" + "git.rosy.net.cn/baseapi/platformapi" + "git.rosy.net.cn/baseapi/utils" +) + +const ( + prodURL = "https://wechat.chengquan.cn" +) + +type API struct { + client *http.Client + config *platformapi.APIConfig +} + +func New(config ...*platformapi.APIConfig) *API { + curConfig := platformapi.DefAPIConfig + if len(config) > 0 { + curConfig = *config[0] + } + return &API{ + client: &http.Client{Timeout: curConfig.ClientTimeout}, + config: &curConfig, + } +} + +func (a *API) AccessAPI(action string, url string, bizParams map[string]interface{}) (retVal map[string]interface{}, err error) { + fullURL := utils.GenerateGetURL(url, action, nil) + err = platformapi.AccessPlatformAPIWithRetry(a.client, + func() *http.Request { + request, _ := http.NewRequest(http.MethodPost, fullURL, strings.NewReader(utils.Map2URLValues(bizParams).Encode())) + request.Header.Set("Content-Type", "application/x-www-form-urlencoded") + return request + }, + a.config, + func(response *http.Response, bodyStr string, jsonResult1 map[string]interface{}) (errLevel string, err error) { + if jsonResult1 == nil { + return platformapi.ErrLevelRecoverableErr, fmt.Errorf("mapData is nil") + } + if err == nil { + if utils.MustInterface2Int64(jsonResult1["errorCode"]) != http.StatusOK { + errLevel = platformapi.ErrLevelGeneralFail + err = utils.NewErrorCode(utils.Int64ToStr(utils.MustInterface2Int64(jsonResult1["errorMsg"])), utils.Int64ToStr(utils.MustInterface2Int64(jsonResult1["errorCode"]))) + baseapi.SugarLogger.Debugf("mtmember AccessAPI failed, jsonResult1:%s", utils.Format4Output(jsonResult1, true)) + } + retVal = jsonResult1 + } + return errLevel, err + }) + return retVal, err +} + +func (a *API) RechargeExchange(account int, shortLink string) (err error) { + _, err = a.AccessAPI("uniteExchange/rechargeExchange", prodURL, map[string]interface{}{ + "account": account, + "shortLink": shortLink, + }) + return err +} diff --git a/platformapi/mtmemberapi/mtmemberapi_test.go b/platformapi/mtmemberapi/mtmemberapi_test.go new file mode 100644 index 00000000..9c0b2531 --- /dev/null +++ b/platformapi/mtmemberapi/mtmemberapi_test.go @@ -0,0 +1,28 @@ +package mtmemberapi + +import ( + "testing" + + "git.rosy.net.cn/baseapi" + "go.uber.org/zap" +) + +var ( + api *API + sugarLogger *zap.SugaredLogger +) + +func init() { + logger, _ := zap.NewDevelopment() + sugarLogger = logger.Sugar() + baseapi.Init(sugarLogger) + api = New() //总店 +} + +func TestRechargeExchange(t *testing.T) { + err := api.RechargeExchange(15, "a") + if err != nil { + t.Fatal(err) + } + // t.Log(utils.Format4Output(result, false)) +}