api_orders.go 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. // Copyright 2021 Tencent Inc. All rights reserved.
  2. //
  3. // 爱心餐对外API
  4. //
  5. // 微信支付爱心餐公益计划旨在面向深圳市的市政一线环卫工人提供每周一餐的1分钱用餐公益服务。在受助端,微信支付联动上千家餐饮门店关爱特殊人群,通过微信支付数字化能力将人群身份认证与公益福利领用全流程线上化,实现公益福利精准到人。在捐赠端,微信支付发挥连接优势与平台能力,结合用户就餐场景通过爱心餐一块捐插件让用户可在点餐时顺手捐1元,带动更多社会力量致谢城市美容师。
  6. //
  7. // API version: 0.0.4
  8. // Code generated by WechatPay APIv3 Generator based on [OpenAPI Generator](https://openapi-generator.tech); DO NOT EDIT.
  9. package lovefeast
  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 OrdersApiService services.Service
  21. // GetByUser 查询用户捐赠单详情
  22. //
  23. // 接口介绍:商户根据商户订单号与用户标识查询捐赠单详情
  24. // 适用对象:服务商、直连商户
  25. func (a *OrdersApiService) GetByUser(ctx context.Context, req GetByUserRequest) (resp *OrdersEntity, result *core.APIResult, err error) {
  26. var (
  27. localVarHTTPMethod = nethttp.MethodGet
  28. localVarPostBody interface{}
  29. localVarQueryParams neturl.Values
  30. localVarHeaderParams = nethttp.Header{}
  31. )
  32. // Make sure Path Params are properly set
  33. if req.Openid == nil {
  34. return nil, nil, fmt.Errorf("field `Openid` is required and must be specified in GetByUserRequest")
  35. }
  36. if req.OutTradeNo == nil {
  37. return nil, nil, fmt.Errorf("field `OutTradeNo` is required and must be specified in GetByUserRequest")
  38. }
  39. localVarPath := consts.WechatPayAPIServer + "/v3/lovefeast/users/{openid}/orders/out-trade-no/{out_trade_no}"
  40. // Build Path with Path Params
  41. localVarPath = strings.Replace(localVarPath, "{"+"openid"+"}", neturl.PathEscape(core.ParameterToString(*req.Openid, "")), -1)
  42. localVarPath = strings.Replace(localVarPath, "{"+"out_trade_no"+"}", neturl.PathEscape(core.ParameterToString(*req.OutTradeNo, "")), -1)
  43. // Make sure All Required Params are properly set
  44. // Determine the Content-Type Header
  45. localVarHTTPContentTypes := []string{}
  46. // Setup Content-Type
  47. localVarHTTPContentType := core.SelectHeaderContentType(localVarHTTPContentTypes)
  48. // Perform Http Request
  49. result, err = a.Client.Request(ctx, localVarHTTPMethod, localVarPath, localVarHeaderParams, localVarQueryParams, localVarPostBody, localVarHTTPContentType)
  50. if err != nil {
  51. return nil, result, err
  52. }
  53. // Extract OrdersEntity from Http Response
  54. resp = new(OrdersEntity)
  55. err = core.UnMarshalResponse(result.Response, resp)
  56. if err != nil {
  57. return nil, result, err
  58. }
  59. return resp, result, nil
  60. }
  61. // ListByUser 查询用户捐赠单列表
  62. //
  63. // 接口介绍:商户可根据品牌ID与用户标识查询捐赠单列表
  64. // 适用对象:服务商、直连商户
  65. func (a *OrdersApiService) ListByUser(ctx context.Context, req ListByUserRequest) (resp *OrdersListByUserResponse, result *core.APIResult, err error) {
  66. var (
  67. localVarHTTPMethod = nethttp.MethodGet
  68. localVarPostBody interface{}
  69. localVarQueryParams neturl.Values
  70. localVarHeaderParams = nethttp.Header{}
  71. )
  72. // Make sure Path Params are properly set
  73. if req.Openid == nil {
  74. return nil, nil, fmt.Errorf("field `Openid` is required and must be specified in ListByUserRequest")
  75. }
  76. if req.BrandId == nil {
  77. return nil, nil, fmt.Errorf("field `BrandId` is required and must be specified in ListByUserRequest")
  78. }
  79. localVarPath := consts.WechatPayAPIServer + "/v3/lovefeast/users/{openid}/orders/brand-id/{brand_id}"
  80. // Build Path with Path Params
  81. localVarPath = strings.Replace(localVarPath, "{"+"openid"+"}", neturl.PathEscape(core.ParameterToString(*req.Openid, "")), -1)
  82. localVarPath = strings.Replace(localVarPath, "{"+"brand_id"+"}", neturl.PathEscape(core.ParameterToString(*req.BrandId, "")), -1)
  83. // Make sure All Required Params are properly set
  84. if req.Limit == nil {
  85. return nil, nil, fmt.Errorf("field `Limit` is required and must be specified in ListByUserRequest")
  86. }
  87. // Setup Query Params
  88. localVarQueryParams = neturl.Values{}
  89. localVarQueryParams.Add("limit", core.ParameterToString(*req.Limit, ""))
  90. if req.Offset != nil {
  91. localVarQueryParams.Add("offset", core.ParameterToString(*req.Offset, ""))
  92. }
  93. // Determine the Content-Type Header
  94. localVarHTTPContentTypes := []string{}
  95. // Setup Content-Type
  96. localVarHTTPContentType := core.SelectHeaderContentType(localVarHTTPContentTypes)
  97. // Perform Http Request
  98. result, err = a.Client.Request(ctx, localVarHTTPMethod, localVarPath, localVarHeaderParams, localVarQueryParams, localVarPostBody, localVarHTTPContentType)
  99. if err != nil {
  100. return nil, result, err
  101. }
  102. // Extract OrdersListByUserResponse from Http Response
  103. resp = new(OrdersListByUserResponse)
  104. err = core.UnMarshalResponse(result.Response, resp)
  105. if err != nil {
  106. return nil, result, err
  107. }
  108. return resp, result, nil
  109. }