package fnpsapi import ( "encoding/json" "fmt" "git.rosy.net.cn/baseapi/utils" "strings" ) const ( StoreNotExist = "门店信息不存在" StoreExist = "该门店已存在" ) // 获取access_token func (a *API) GetAccessToken() (tokenInfo *TokenInfo, err error) { a.grantType = "authorization_code" a.signature = a.signParam2() result, err := a.AccessAPI(TokenURL, "", RequestPost, nil) if err != nil { return nil, err } if err := utils.Map2StructByJson(result["data"], &tokenInfo, false); err != nil { return nil, err } return tokenInfo, err } // 创建门店. func (a *API) CreateStore(createStoreParam *CreateStoreBaseInfo) (err error) { requestHead := a.MakeFnRequestHead() params := utils.Struct2FlatMap(createStoreParam) requestHead["business_data"] = params _, err = a.AccessAPI(ApiURL, "chainstoreCreate", RequestPost, requestHead) return err } // 更新门店 func (a *API) UpdateStore(updateStore *UpdateStoreParam) (err error) { requestHead := a.MakeFnRequestHead() params := utils.Struct2FlatMap(updateStore) requestHead["business_data"] = params _, err = a.AccessAPI(ApiURL, "chainstoreUpdate", RequestPost, requestHead) return } // 获取门店(单个) func (a *API) GetStore(storeID string) (getStoreResult *GetOneStoreRespData, err error) { params := GetOneStoreParam{ BaseInfo: BaseInfo{ AccessToken: a.accessToken, Signature: a.signature, MerchantID: a.merchantId, Version: a.version, AppID: a.appID, Timestamp: a.timestamp, }, BusinessData: "", } // 序列化请求参数 data, err := json.Marshal(GetOneStore{MerchantID: a.merchantId, OutShopCode: storeID}) if err != nil { return nil, err } params.BusinessData = string(data) paramsMap := utils.Struct2FlatMap(params) result, err := a.AccessAPI(ApiURL, "chainstoreQuery", RequestGet, paramsMap) if err != nil { return nil, err } if result["code"] != "200" { return nil, fmt.Errorf("%s", result["msg"]) } if data, ok := result["business_data"].([]interface{}); ok { utils.Map2StructByJson(data[0], &getStoreResult, false) } else { err = fmt.Errorf(result["msg"].(string)) } return getStoreResult, err } func IsErrShopNotExist(err error) bool { if err != nil { if strings.Contains(err.Error(), StoreNotExist) { return true } } return false } func IsErrShopExist(err error) bool { if err != nil { if strings.Contains(err.Error(), StoreExist) { return true } } return false } //todo商户门店接口,图片上传接口