api_busi_favor.go 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417
  1. // Copyright 2021 Tencent Inc. All rights reserved.
  2. //
  3. // 营销商家券对外API
  4. //
  5. // No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
  6. //
  7. // API version: 0.0.11
  8. // Code generated by WechatPay APIv3 Generator based on [OpenAPI Generator](https://openapi-generator.tech); DO NOT EDIT.
  9. package merchantexclusivecoupon
  10. import (
  11. "context"
  12. "fmt"
  13. nethttp "net/http"
  14. neturl "net/url"
  15. "strings"
  16. "git.nanodreamtech.com/sg/wechatpay-go/core"
  17. "git.nanodreamtech.com/sg/wechatpay-go/core/consts"
  18. "git.nanodreamtech.com/sg/wechatpay-go/services"
  19. )
  20. type BusiFavorApiService services.Service
  21. // CouponCodeInfo 查询预存code详情
  22. //
  23. // 查询预存code详情
  24. func (a *BusiFavorApiService) CouponCodeInfo(ctx context.Context, req CouponCodeInfoRequest) (resp *CouponCodeInfoResponse, result *core.APIResult, err error) {
  25. var (
  26. localVarHTTPMethod = nethttp.MethodGet
  27. localVarPostBody interface{}
  28. localVarQueryParams neturl.Values
  29. localVarHeaderParams = nethttp.Header{}
  30. )
  31. // Make sure Path Params are properly set
  32. if req.StockId == nil {
  33. return nil, nil, fmt.Errorf("field `StockId` is required and must be specified in CouponCodeInfoRequest")
  34. }
  35. if req.CouponCode == nil {
  36. return nil, nil, fmt.Errorf("field `CouponCode` is required and must be specified in CouponCodeInfoRequest")
  37. }
  38. localVarPath := consts.WechatPayAPIServer + "/v3/marketing/busifavor/stocks/{stock_id}/couponcodes/{coupon_code}"
  39. // Build Path with Path Params
  40. localVarPath = strings.Replace(localVarPath, "{"+"stock_id"+"}", neturl.PathEscape(core.ParameterToString(*req.StockId, "")), -1)
  41. localVarPath = strings.Replace(localVarPath, "{"+"coupon_code"+"}", neturl.PathEscape(core.ParameterToString(*req.CouponCode, "")), -1)
  42. // Make sure All Required Params are properly set
  43. // Setup Query Params
  44. localVarQueryParams = neturl.Values{}
  45. if req.Appid != nil {
  46. localVarQueryParams.Add("appid", core.ParameterToString(*req.Appid, ""))
  47. }
  48. // Determine the Content-Type Header
  49. localVarHTTPContentTypes := []string{}
  50. // Setup Content-Type
  51. localVarHTTPContentType := core.SelectHeaderContentType(localVarHTTPContentTypes)
  52. // Perform Http Request
  53. result, err = a.Client.Request(ctx, localVarHTTPMethod, localVarPath, localVarHeaderParams, localVarQueryParams, localVarPostBody, localVarHTTPContentType)
  54. if err != nil {
  55. return nil, result, err
  56. }
  57. // Extract CouponCodeInfoResponse from Http Response
  58. resp = new(CouponCodeInfoResponse)
  59. err = core.UnMarshalResponse(result.Response, resp)
  60. if err != nil {
  61. return nil, result, err
  62. }
  63. return resp, result, nil
  64. }
  65. // CreateBusifavorStock 创建商家券
  66. //
  67. // 商户可以通过该接口创建商家券。微信支付生成商家券批次后并返回商家券批次号给到商户,商户可调用发券接口[【小程序发券】](https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter9_3_1.shtml)、[【H5发券】](https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter9_4_1.shtml)发放该批次商家券。
  68. // 频率限制:接口级限制1000/min
  69. func (a *BusiFavorApiService) CreateBusifavorStock(ctx context.Context, req CreateBusifavorStockRequest) (resp *CreateBusiFavorStockResponse, result *core.APIResult, err error) {
  70. var (
  71. localVarHTTPMethod = nethttp.MethodPost
  72. localVarPostBody interface{}
  73. localVarQueryParams neturl.Values
  74. localVarHeaderParams = nethttp.Header{}
  75. )
  76. localVarPath := consts.WechatPayAPIServer + "/v3/marketing/busifavor/stocks"
  77. // Make sure All Required Params are properly set
  78. // Setup Body Params
  79. localVarPostBody = req
  80. // Determine the Content-Type Header
  81. localVarHTTPContentTypes := []string{"application/json"}
  82. // Setup Content-Type
  83. localVarHTTPContentType := core.SelectHeaderContentType(localVarHTTPContentTypes)
  84. // Perform Http Request
  85. result, err = a.Client.Request(ctx, localVarHTTPMethod, localVarPath, localVarHeaderParams, localVarQueryParams, localVarPostBody, localVarHTTPContentType)
  86. if err != nil {
  87. return nil, result, err
  88. }
  89. // Extract CreateBusiFavorStockResponse from Http Response
  90. resp = new(CreateBusiFavorStockResponse)
  91. err = core.UnMarshalResponse(result.Response, resp)
  92. if err != nil {
  93. return nil, result, err
  94. }
  95. return resp, result, nil
  96. }
  97. // DeleteCouponCode 删除预存code
  98. //
  99. // 删除预存code
  100. func (a *BusiFavorApiService) DeleteCouponCode(ctx context.Context, req DeleteCouponCodeRequest) (resp *DeleteCouponCodeResponse, result *core.APIResult, err error) {
  101. var (
  102. localVarHTTPMethod = nethttp.MethodDelete
  103. localVarPostBody interface{}
  104. localVarQueryParams neturl.Values
  105. localVarHeaderParams = nethttp.Header{}
  106. )
  107. // Make sure Path Params are properly set
  108. if req.StockId == nil {
  109. return nil, nil, fmt.Errorf("field `StockId` is required and must be specified in DeleteCouponCodeRequest")
  110. }
  111. if req.CouponCode == nil {
  112. return nil, nil, fmt.Errorf("field `CouponCode` is required and must be specified in DeleteCouponCodeRequest")
  113. }
  114. localVarPath := consts.WechatPayAPIServer + "/v3/marketing/busifavor/stocks/{stock_id}/couponcodes/{coupon_code}"
  115. // Build Path with Path Params
  116. localVarPath = strings.Replace(localVarPath, "{"+"stock_id"+"}", neturl.PathEscape(core.ParameterToString(*req.StockId, "")), -1)
  117. localVarPath = strings.Replace(localVarPath, "{"+"coupon_code"+"}", neturl.PathEscape(core.ParameterToString(*req.CouponCode, "")), -1)
  118. // Make sure All Required Params are properly set
  119. if req.DeleteRequestNo == nil {
  120. return nil, nil, fmt.Errorf("field `DeleteRequestNo` is required and must be specified in DeleteCouponCodeRequest")
  121. }
  122. // Setup Query Params
  123. localVarQueryParams = neturl.Values{}
  124. localVarQueryParams.Add("delete_request_no", core.ParameterToString(*req.DeleteRequestNo, ""))
  125. // Determine the Content-Type Header
  126. localVarHTTPContentTypes := []string{}
  127. // Setup Content-Type
  128. localVarHTTPContentType := core.SelectHeaderContentType(localVarHTTPContentTypes)
  129. // Perform Http Request
  130. result, err = a.Client.Request(ctx, localVarHTTPMethod, localVarPath, localVarHeaderParams, localVarQueryParams, localVarPostBody, localVarHTTPContentType)
  131. if err != nil {
  132. return nil, result, err
  133. }
  134. // Extract DeleteCouponCodeResponse from Http Response
  135. resp = new(DeleteCouponCodeResponse)
  136. err = core.UnMarshalResponse(result.Response, resp)
  137. if err != nil {
  138. return nil, result, err
  139. }
  140. return resp, result, nil
  141. }
  142. // ModifyBudget 修改批次预算
  143. //
  144. // 商户可以通过该接口修改批次单天发放上限数量或者批次最大发放数量
  145. func (a *BusiFavorApiService) ModifyBudget(ctx context.Context, req ModifyBudgetRequest) (resp *ModifyBudgetResponse, result *core.APIResult, err error) {
  146. var (
  147. localVarHTTPMethod = nethttp.MethodPatch
  148. localVarPostBody interface{}
  149. localVarQueryParams neturl.Values
  150. localVarHeaderParams = nethttp.Header{}
  151. )
  152. // Make sure Path Params are properly set
  153. if req.StockId == nil {
  154. return nil, nil, fmt.Errorf("field `StockId` is required and must be specified in ModifyBudgetRequest")
  155. }
  156. localVarPath := consts.WechatPayAPIServer + "/v3/marketing/busifavor/stocks/{stock_id}/budget"
  157. // Build Path with Path Params
  158. localVarPath = strings.Replace(localVarPath, "{"+"stock_id"+"}", neturl.PathEscape(core.ParameterToString(*req.StockId, "")), -1)
  159. // Make sure All Required Params are properly set
  160. // Setup Body Params
  161. localVarPostBody = &ModifyBudgetBody{
  162. TargetMaxCoupons: req.TargetMaxCoupons,
  163. CurrentMaxCoupons: req.CurrentMaxCoupons,
  164. TargetMaxCouponsByDay: req.TargetMaxCouponsByDay,
  165. CurrentMaxCouponsByDay: req.CurrentMaxCouponsByDay,
  166. ModifyBudgetRequestNo: req.ModifyBudgetRequestNo,
  167. }
  168. // Determine the Content-Type Header
  169. localVarHTTPContentTypes := []string{"application/json"}
  170. // Setup Content-Type
  171. localVarHTTPContentType := core.SelectHeaderContentType(localVarHTTPContentTypes)
  172. // Perform Http Request
  173. result, err = a.Client.Request(ctx, localVarHTTPMethod, localVarPath, localVarHeaderParams, localVarQueryParams, localVarPostBody, localVarHTTPContentType)
  174. if err != nil {
  175. return nil, result, err
  176. }
  177. // Extract ModifyBudgetResponse from Http Response
  178. resp = new(ModifyBudgetResponse)
  179. err = core.UnMarshalResponse(result.Response, resp)
  180. if err != nil {
  181. return nil, result, err
  182. }
  183. return resp, result, nil
  184. }
  185. // ModifyStockInfo 修改商家券基本信息
  186. //
  187. // 商户可以通过该接口修改商家券基本信息
  188. // 前置条件: 已创建商家券批次,且修改时间位于有效期结束时间前
  189. func (a *BusiFavorApiService) ModifyStockInfo(ctx context.Context, req ModifyStockInfoRequest) (result *core.APIResult, err error) {
  190. var (
  191. localVarHTTPMethod = nethttp.MethodPatch
  192. localVarPostBody interface{}
  193. localVarQueryParams neturl.Values
  194. localVarHeaderParams = nethttp.Header{}
  195. )
  196. // Make sure Path Params are properly set
  197. if req.StockId == nil {
  198. return nil, fmt.Errorf("field `StockId` is required and must be specified in ModifyStockInfoRequest")
  199. }
  200. localVarPath := consts.WechatPayAPIServer + "/v3/marketing/busifavor/stocks/{stock_id}"
  201. // Build Path with Path Params
  202. localVarPath = strings.Replace(localVarPath, "{"+"stock_id"+"}", neturl.PathEscape(core.ParameterToString(*req.StockId, "")), -1)
  203. // Make sure All Required Params are properly set
  204. // Setup Body Params
  205. localVarPostBody = &ModifyStockInfoBody{
  206. CustomEntrance: req.CustomEntrance,
  207. StockName: req.StockName,
  208. Comment: req.Comment,
  209. GoodsName: req.GoodsName,
  210. OutRequestNo: req.OutRequestNo,
  211. DisplayPatternInfo: req.DisplayPatternInfo,
  212. CouponUseRule: req.CouponUseRule,
  213. StockSendRule: req.StockSendRule,
  214. NotifyConfig: req.NotifyConfig,
  215. Subsidy: req.Subsidy,
  216. }
  217. // Determine the Content-Type Header
  218. localVarHTTPContentTypes := []string{"application/json"}
  219. // Setup Content-Type
  220. localVarHTTPContentType := core.SelectHeaderContentType(localVarHTTPContentTypes)
  221. // Perform Http Request
  222. result, err = a.Client.Request(ctx, localVarHTTPMethod, localVarPath, localVarHeaderParams, localVarQueryParams, localVarPostBody, localVarHTTPContentType)
  223. if err != nil {
  224. return result, err
  225. }
  226. return result, nil
  227. }
  228. // QueryCouponCodeList 查询预存code列表
  229. //
  230. // 查询预存code列表
  231. func (a *BusiFavorApiService) QueryCouponCodeList(ctx context.Context, req QueryCouponCodeListRequest) (resp *CouponCodeListResponse, result *core.APIResult, err error) {
  232. var (
  233. localVarHTTPMethod = nethttp.MethodGet
  234. localVarPostBody interface{}
  235. localVarQueryParams neturl.Values
  236. localVarHeaderParams = nethttp.Header{}
  237. )
  238. // Make sure Path Params are properly set
  239. if req.StockId == nil {
  240. return nil, nil, fmt.Errorf("field `StockId` is required and must be specified in QueryCouponCodeListRequest")
  241. }
  242. localVarPath := consts.WechatPayAPIServer + "/v3/marketing/busifavor/stocks/{stock_id}/couponcodes"
  243. // Build Path with Path Params
  244. localVarPath = strings.Replace(localVarPath, "{"+"stock_id"+"}", neturl.PathEscape(core.ParameterToString(*req.StockId, "")), -1)
  245. // Make sure All Required Params are properly set
  246. // Setup Query Params
  247. localVarQueryParams = neturl.Values{}
  248. if req.Limit != nil {
  249. localVarQueryParams.Add("limit", core.ParameterToString(*req.Limit, ""))
  250. }
  251. if req.Offset != nil {
  252. localVarQueryParams.Add("offset", core.ParameterToString(*req.Offset, ""))
  253. }
  254. if req.Appid != nil {
  255. localVarQueryParams.Add("appid", core.ParameterToString(*req.Appid, ""))
  256. }
  257. if req.Status != nil {
  258. localVarQueryParams.Add("status", core.ParameterToString(*req.Status, ""))
  259. }
  260. // Determine the Content-Type Header
  261. localVarHTTPContentTypes := []string{}
  262. // Setup Content-Type
  263. localVarHTTPContentType := core.SelectHeaderContentType(localVarHTTPContentTypes)
  264. // Perform Http Request
  265. result, err = a.Client.Request(ctx, localVarHTTPMethod, localVarPath, localVarHeaderParams, localVarQueryParams, localVarPostBody, localVarHTTPContentType)
  266. if err != nil {
  267. return nil, result, err
  268. }
  269. // Extract CouponCodeListResponse from Http Response
  270. resp = new(CouponCodeListResponse)
  271. err = core.UnMarshalResponse(result.Response, resp)
  272. if err != nil {
  273. return nil, result, err
  274. }
  275. return resp, result, nil
  276. }
  277. // QueryStock 查询商家券批次详情
  278. //
  279. // 商户可通过该接口查询已创建的商家券批次详情信息。
  280. func (a *BusiFavorApiService) QueryStock(ctx context.Context, req QueryStockRequest) (resp *StockGetResponse, result *core.APIResult, err error) {
  281. var (
  282. localVarHTTPMethod = nethttp.MethodGet
  283. localVarPostBody interface{}
  284. localVarQueryParams neturl.Values
  285. localVarHeaderParams = nethttp.Header{}
  286. )
  287. // Make sure Path Params are properly set
  288. if req.StockId == nil {
  289. return nil, nil, fmt.Errorf("field `StockId` is required and must be specified in QueryStockRequest")
  290. }
  291. localVarPath := consts.WechatPayAPIServer + "/v3/marketing/busifavor/stocks/{stock_id}"
  292. // Build Path with Path Params
  293. localVarPath = strings.Replace(localVarPath, "{"+"stock_id"+"}", neturl.PathEscape(core.ParameterToString(*req.StockId, "")), -1)
  294. // Make sure All Required Params are properly set
  295. // Determine the Content-Type Header
  296. localVarHTTPContentTypes := []string{}
  297. // Setup Content-Type
  298. localVarHTTPContentType := core.SelectHeaderContentType(localVarHTTPContentTypes)
  299. // Perform Http Request
  300. result, err = a.Client.Request(ctx, localVarHTTPMethod, localVarPath, localVarHeaderParams, localVarQueryParams, localVarPostBody, localVarHTTPContentType)
  301. if err != nil {
  302. return nil, result, err
  303. }
  304. // Extract StockGetResponse from Http Response
  305. resp = new(StockGetResponse)
  306. err = core.UnMarshalResponse(result.Response, resp)
  307. if err != nil {
  308. return nil, result, err
  309. }
  310. return resp, result, nil
  311. }
  312. // UploadCouponCode 上传预存code
  313. //
  314. // 商家券的code码可由微信后台随机分配,同时支持商户自定义。如商家已有自己的优惠券系统,可直接使用自定义模式。即商家预先向微信支付上传券code,当券在发放时,微信支付自动从已导入的code中随机取值(不能指定),派发给用户。
  315. func (a *BusiFavorApiService) UploadCouponCode(ctx context.Context, req UploadCouponCodeRequest) (resp *UploadCouponCodeResponse, result *core.APIResult, err error) {
  316. var (
  317. localVarHTTPMethod = nethttp.MethodPost
  318. localVarPostBody interface{}
  319. localVarQueryParams neturl.Values
  320. localVarHeaderParams = nethttp.Header{}
  321. )
  322. // Make sure Path Params are properly set
  323. if req.StockId == nil {
  324. return nil, nil, fmt.Errorf("field `StockId` is required and must be specified in UploadCouponCodeRequest")
  325. }
  326. localVarPath := consts.WechatPayAPIServer + "/v3/marketing/busifavor/stocks/{stock_id}/couponcodes"
  327. // Build Path with Path Params
  328. localVarPath = strings.Replace(localVarPath, "{"+"stock_id"+"}", neturl.PathEscape(core.ParameterToString(*req.StockId, "")), -1)
  329. // Make sure All Required Params are properly set
  330. // Setup Body Params
  331. localVarPostBody = &UploadCouponCodeBody{
  332. CouponCodeList: req.CouponCodeList,
  333. UploadRequestNo: req.UploadRequestNo,
  334. }
  335. // Determine the Content-Type Header
  336. localVarHTTPContentTypes := []string{"application/json"}
  337. // Setup Content-Type
  338. localVarHTTPContentType := core.SelectHeaderContentType(localVarHTTPContentTypes)
  339. // Perform Http Request
  340. result, err = a.Client.Request(ctx, localVarHTTPMethod, localVarPath, localVarHeaderParams, localVarQueryParams, localVarPostBody, localVarHTTPContentType)
  341. if err != nil {
  342. return nil, result, err
  343. }
  344. // Extract UploadCouponCodeResponse from Http Response
  345. resp = new(UploadCouponCodeResponse)
  346. err = core.UnMarshalResponse(result.Response, resp)
  347. if err != nil {
  348. return nil, result, err
  349. }
  350. return resp, result, nil
  351. }