// Copyright 2021 Tencent Inc. All rights reserved. // // 营销加价购对外API // // 指定服务商可通过该接口报名加价购活动、查询某个区域内的加价购活动列表、锁定加价活动购资格以及解锁加价购活动资格。 // // API version: 1.4.0 // Code generated by WechatPay APIv3 Generator based on [OpenAPI Generator](https://openapi-generator.tech); DO NOT EDIT. package retailstore import ( "context" "fmt" nethttp "net/http" neturl "net/url" "strings" "git.nanodreamtech.com/sg/wechatpay-go/core" "git.nanodreamtech.com/sg/wechatpay-go/core/consts" "git.nanodreamtech.com/sg/wechatpay-go/services" ) type RetailStoreActApiService services.Service // AddRepresentative 添加零售小店活动业务代理 // // 该接口为服务商或商户给零售小店活动添加业务代理的专用接口。 使用对象:活动创建方商户号、活动归属品牌的品牌主商户号或品牌经营商户号。 func (a *RetailStoreActApiService) AddRepresentative(ctx context.Context, req AddRepresentativeRequest) (resp *AddRepresentativesResponse, result *core.APIResult, err error) { var ( localVarHTTPMethod = nethttp.MethodPut localVarPostBody interface{} localVarQueryParams neturl.Values localVarHeaderParams = nethttp.Header{} ) // Make sure Path Params are properly set if req.ActivityId == nil { return nil, nil, fmt.Errorf("field `ActivityId` is required and must be specified in AddRepresentativeRequest") } localVarPath := consts.WechatPayAPIServer + "/v3/marketing/goods-subsidy-activity/retail-store-act/{activity_id}/representative" // Build Path with Path Params localVarPath = strings.Replace(localVarPath, "{"+"activity_id"+"}", neturl.PathEscape(core.ParameterToString(*req.ActivityId, "")), -1) // Make sure All Required Params are properly set // Setup Body Params localVarPostBody = &AddRepresentativesRequest{ RepresentativeInfoList: req.RepresentativeInfoList, OutRequestNo: req.OutRequestNo, AddTime: req.AddTime, } // Determine the Content-Type Header localVarHTTPContentTypes := []string{"application/json"} // Setup Content-Type localVarHTTPContentType := core.SelectHeaderContentType(localVarHTTPContentTypes) // Perform Http Request result, err = a.Client.Request(ctx, localVarHTTPMethod, localVarPath, localVarHeaderParams, localVarQueryParams, localVarPostBody, localVarHTTPContentType) if err != nil { return nil, result, err } // Extract AddRepresentativesResponse from Http Response resp = new(AddRepresentativesResponse) err = core.UnMarshalResponse(result.Response, resp) if err != nil { return nil, result, err } return resp, result, nil } // AddStores 添加小店活动门店 // // 该接口为服务商或商户给零售小店活动添加门店专用接口。 使用对象:品牌的品牌主商户号或品牌服务商。 func (a *RetailStoreActApiService) AddStores(ctx context.Context, req AddStoresRequest) (resp *AddStoresResponse, result *core.APIResult, err error) { var ( localVarHTTPMethod = nethttp.MethodPost localVarPostBody interface{} localVarQueryParams neturl.Values localVarHeaderParams = nethttp.Header{} ) // Make sure Path Params are properly set if req.BrandId == nil { return nil, nil, fmt.Errorf("field `BrandId` is required and must be specified in AddStoresRequest") } localVarPath := consts.WechatPayAPIServer + "/v3/marketing/goods-subsidy-activity/retail-store-act/{brand_id}/stores" // Build Path with Path Params localVarPath = strings.Replace(localVarPath, "{"+"brand_id"+"}", neturl.PathEscape(core.ParameterToString(*req.BrandId, "")), -1) // Make sure All Required Params are properly set // Setup Body Params localVarPostBody = &AddStoresBody{ OutRequestNo: req.OutRequestNo, AddTime: req.AddTime, Stores: req.Stores, } // Determine the Content-Type Header localVarHTTPContentTypes := []string{"application/json"} // Setup Content-Type localVarHTTPContentType := core.SelectHeaderContentType(localVarHTTPContentTypes) // Perform Http Request result, err = a.Client.Request(ctx, localVarHTTPMethod, localVarPath, localVarHeaderParams, localVarQueryParams, localVarPostBody, localVarHTTPContentType) if err != nil { return nil, result, err } // Extract AddStoresResponse from Http Response resp = new(AddStoresResponse) err = core.UnMarshalResponse(result.Response, resp) if err != nil { return nil, result, err } return resp, result, nil } // CreateMaterials 生成小店活动物料码 // // 该接口为服务商或商户给零售小店活动申请物料码专用接口。 使用对象:品牌的品牌主商户号或品牌服务商。 func (a *RetailStoreActApiService) CreateMaterials(ctx context.Context, req CreateMaterialsRequest) (resp *Materials, result *core.APIResult, err error) { var ( localVarHTTPMethod = nethttp.MethodPost localVarPostBody interface{} localVarQueryParams neturl.Values localVarHeaderParams = nethttp.Header{} ) // Make sure Path Params are properly set if req.BrandId == nil { return nil, nil, fmt.Errorf("field `BrandId` is required and must be specified in CreateMaterialsRequest") } localVarPath := consts.WechatPayAPIServer + "/v3/marketing/goods-subsidy-activity/retail-store-act/{brand_id}/materials" // Build Path with Path Params localVarPath = strings.Replace(localVarPath, "{"+"brand_id"+"}", neturl.PathEscape(core.ParameterToString(*req.BrandId, "")), -1) // Make sure All Required Params are properly set // Setup Body Params localVarPostBody = &CreateMaterialsBody{ OutRequestNo: req.OutRequestNo, MaterialNum: req.MaterialNum, } // Determine the Content-Type Header localVarHTTPContentTypes := []string{"application/json"} // Setup Content-Type localVarHTTPContentType := core.SelectHeaderContentType(localVarHTTPContentTypes) // Perform Http Request result, err = a.Client.Request(ctx, localVarHTTPMethod, localVarPath, localVarHeaderParams, localVarQueryParams, localVarPostBody, localVarHTTPContentType) if err != nil { return nil, result, err } // Extract Materials from Http Response resp = new(Materials) err = core.UnMarshalResponse(result.Response, resp) if err != nil { return nil, result, err } return resp, result, nil } // DeleteRepresentative 删除零售小店活动业务代理 // // 该接口为服务商或商户给零售小店活动删除业务代理的专用接口。 使用对象:活动创建方商户号、活动归属品牌的品牌主商户号或品牌经营商户号。 func (a *RetailStoreActApiService) DeleteRepresentative(ctx context.Context, req DeleteRepresentativeRequest) (resp *DeleteRepresentativeResponse, result *core.APIResult, err error) { var ( localVarHTTPMethod = nethttp.MethodDelete localVarPostBody interface{} localVarQueryParams neturl.Values localVarHeaderParams = nethttp.Header{} ) // Make sure Path Params are properly set if req.ActivityId == nil { return nil, nil, fmt.Errorf("field `ActivityId` is required and must be specified in DeleteRepresentativeRequest") } localVarPath := consts.WechatPayAPIServer + "/v3/marketing/goods-subsidy-activity/retail-store-act/{activity_id}/representative" // Build Path with Path Params localVarPath = strings.Replace(localVarPath, "{"+"activity_id"+"}", neturl.PathEscape(core.ParameterToString(*req.ActivityId, "")), -1) // Make sure All Required Params are properly set // Setup Body Params localVarPostBody = &DeleteRepresentativeBody{ RepresentativeInfoList: req.RepresentativeInfoList, OutRequestNo: req.OutRequestNo, DeleteTime: req.DeleteTime, } // Determine the Content-Type Header localVarHTTPContentTypes := []string{"application/json"} // Setup Content-Type localVarHTTPContentType := core.SelectHeaderContentType(localVarHTTPContentTypes) // Perform Http Request result, err = a.Client.Request(ctx, localVarHTTPMethod, localVarPath, localVarHeaderParams, localVarQueryParams, localVarPostBody, localVarHTTPContentType) if err != nil { return nil, result, err } // Extract DeleteRepresentativeResponse from Http Response resp = new(DeleteRepresentativeResponse) err = core.UnMarshalResponse(result.Response, resp) if err != nil { return nil, result, err } return resp, result, nil } // DeleteStores 删除小店活动门店 // // 该接口为服务商或商户给零售小店活动删除门店专用接口。 使用对象:品牌的品牌主商户号或品牌服务商。 func (a *RetailStoreActApiService) DeleteStores(ctx context.Context, req DeleteStoresRequest) (resp *DeleteStoresResponse, result *core.APIResult, err error) { var ( localVarHTTPMethod = nethttp.MethodDelete localVarPostBody interface{} localVarQueryParams neturl.Values localVarHeaderParams = nethttp.Header{} ) // Make sure Path Params are properly set if req.BrandId == nil { return nil, nil, fmt.Errorf("field `BrandId` is required and must be specified in DeleteStoresRequest") } localVarPath := consts.WechatPayAPIServer + "/v3/marketing/goods-subsidy-activity/retail-store-act/{brand_id}/stores" // Build Path with Path Params localVarPath = strings.Replace(localVarPath, "{"+"brand_id"+"}", neturl.PathEscape(core.ParameterToString(*req.BrandId, "")), -1) // Make sure All Required Params are properly set // Setup Body Params localVarPostBody = &DeleteStoresBody{ OutRequestNo: req.OutRequestNo, DeleteTime: req.DeleteTime, Stores: req.Stores, } // Determine the Content-Type Header localVarHTTPContentTypes := []string{"application/json"} // Setup Content-Type localVarHTTPContentType := core.SelectHeaderContentType(localVarHTTPContentTypes) // Perform Http Request result, err = a.Client.Request(ctx, localVarHTTPMethod, localVarPath, localVarHeaderParams, localVarQueryParams, localVarPostBody, localVarHTTPContentType) if err != nil { return nil, result, err } // Extract DeleteStoresResponse from Http Response resp = new(DeleteStoresResponse) err = core.UnMarshalResponse(result.Response, resp) if err != nil { return nil, result, err } return resp, result, nil } // GetStore 查询小店活动门店详情 // // 该接口为服务商或商户给零售小店活动查询门店详情专用接口。 使用对象:品牌的品牌主商户号或品牌服务商。 func (a *RetailStoreActApiService) GetStore(ctx context.Context, req GetStoreRequest) (resp *RetailStoreInfo, result *core.APIResult, err error) { var ( localVarHTTPMethod = nethttp.MethodGet localVarPostBody interface{} localVarQueryParams neturl.Values localVarHeaderParams = nethttp.Header{} ) // Make sure Path Params are properly set if req.BrandId == nil { return nil, nil, fmt.Errorf("field `BrandId` is required and must be specified in GetStoreRequest") } if req.StoreCode == nil { return nil, nil, fmt.Errorf("field `StoreCode` is required and must be specified in GetStoreRequest") } localVarPath := consts.WechatPayAPIServer + "/v3/marketing/goods-subsidy-activity/retail-store-act/{brand_id}/stores/{store_code}" // Build Path with Path Params localVarPath = strings.Replace(localVarPath, "{"+"brand_id"+"}", neturl.PathEscape(core.ParameterToString(*req.BrandId, "")), -1) localVarPath = strings.Replace(localVarPath, "{"+"store_code"+"}", neturl.PathEscape(core.ParameterToString(*req.StoreCode, "")), -1) // Make sure All Required Params are properly set // Determine the Content-Type Header localVarHTTPContentTypes := []string{} // Setup Content-Type localVarHTTPContentType := core.SelectHeaderContentType(localVarHTTPContentTypes) // Perform Http Request result, err = a.Client.Request(ctx, localVarHTTPMethod, localVarPath, localVarHeaderParams, localVarQueryParams, localVarPostBody, localVarHTTPContentType) if err != nil { return nil, result, err } // Extract RetailStoreInfo from Http Response resp = new(RetailStoreInfo) err = core.UnMarshalResponse(result.Response, resp) if err != nil { return nil, result, err } return resp, result, nil } // ListRepresentative 查询零售小店活动业务代理 // // 该接口为服务商或商户给零售小店活动查询业务代理的专用接口。 使用对象:活动创建方商户号、活动归属品牌的品牌主商户号或品牌经营商户号。 func (a *RetailStoreActApiService) ListRepresentative(ctx context.Context, req ListRepresentativeRequest) (resp *ListRepresentativeResponse, result *core.APIResult, err error) { var ( localVarHTTPMethod = nethttp.MethodGet localVarPostBody interface{} localVarQueryParams neturl.Values localVarHeaderParams = nethttp.Header{} ) // Make sure Path Params are properly set if req.ActivityId == nil { return nil, nil, fmt.Errorf("field `ActivityId` is required and must be specified in ListRepresentativeRequest") } localVarPath := consts.WechatPayAPIServer + "/v3/marketing/goods-subsidy-activity/retail-store-act/{activity_id}/representatives" // Build Path with Path Params localVarPath = strings.Replace(localVarPath, "{"+"activity_id"+"}", neturl.PathEscape(core.ParameterToString(*req.ActivityId, "")), -1) // Make sure All Required Params are properly set if req.Offset == nil { return nil, nil, fmt.Errorf("field `Offset` is required and must be specified in ListRepresentativeRequest") } if req.Limit == nil { return nil, nil, fmt.Errorf("field `Limit` is required and must be specified in ListRepresentativeRequest") } // Setup Query Params localVarQueryParams = neturl.Values{} localVarQueryParams.Add("offset", core.ParameterToString(*req.Offset, "")) localVarQueryParams.Add("limit", core.ParameterToString(*req.Limit, "")) // Determine the Content-Type Header localVarHTTPContentTypes := []string{} // Setup Content-Type localVarHTTPContentType := core.SelectHeaderContentType(localVarHTTPContentTypes) // Perform Http Request result, err = a.Client.Request(ctx, localVarHTTPMethod, localVarPath, localVarHeaderParams, localVarQueryParams, localVarPostBody, localVarHTTPContentType) if err != nil { return nil, result, err } // Extract ListRepresentativeResponse from Http Response resp = new(ListRepresentativeResponse) err = core.UnMarshalResponse(result.Response, resp) if err != nil { return nil, result, err } return resp, result, nil } // ListStore 查询小店活动门店列表 // // 该接口为服务商或商户给零售小店活动查询门店列表专用接口。 使用对象:品牌的品牌主商户号或品牌服务商。 func (a *RetailStoreActApiService) ListStore(ctx context.Context, req ListStoreRequest) (resp *ListStoreResponse, result *core.APIResult, err error) { var ( localVarHTTPMethod = nethttp.MethodGet localVarPostBody interface{} localVarQueryParams neturl.Values localVarHeaderParams = nethttp.Header{} ) // Make sure Path Params are properly set if req.BrandId == nil { return nil, nil, fmt.Errorf("field `BrandId` is required and must be specified in ListStoreRequest") } localVarPath := consts.WechatPayAPIServer + "/v3/marketing/goods-subsidy-activity/retail-store-act/{brand_id}/stores" // Build Path with Path Params localVarPath = strings.Replace(localVarPath, "{"+"brand_id"+"}", neturl.PathEscape(core.ParameterToString(*req.BrandId, "")), -1) // Make sure All Required Params are properly set if req.Offset == nil { return nil, nil, fmt.Errorf("field `Offset` is required and must be specified in ListStoreRequest") } if req.Limit == nil { return nil, nil, fmt.Errorf("field `Limit` is required and must be specified in ListStoreRequest") } // Setup Query Params localVarQueryParams = neturl.Values{} localVarQueryParams.Add("offset", core.ParameterToString(*req.Offset, "")) localVarQueryParams.Add("limit", core.ParameterToString(*req.Limit, "")) // Determine the Content-Type Header localVarHTTPContentTypes := []string{} // Setup Content-Type localVarHTTPContentType := core.SelectHeaderContentType(localVarHTTPContentTypes) // Perform Http Request result, err = a.Client.Request(ctx, localVarHTTPMethod, localVarPath, localVarHeaderParams, localVarQueryParams, localVarPostBody, localVarHTTPContentType) if err != nil { return nil, result, err } // Extract ListStoreResponse from Http Response resp = new(ListStoreResponse) err = core.UnMarshalResponse(result.Response, resp) if err != nil { return nil, result, err } return resp, result, nil }