api_transactions.go 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. // Copyright 2021 Tencent Inc. All rights reserved.
  2. //
  3. // 公共出行平台代扣服务对外API
  4. //
  5. // 公共出行平台代扣服务对外API
  6. //
  7. // API version: 1.0.0
  8. // Code generated by WechatPay APIv3 Generator based on [OpenAPI Generator](https://openapi-generator.tech); DO NOT EDIT.
  9. package weixinpayscanandride
  10. import (
  11. "context"
  12. "fmt"
  13. nethttp "net/http"
  14. neturl "net/url"
  15. "strings"
  16. "github.com/wechatpay-apiv3/wechatpay-go/core"
  17. "github.com/wechatpay-apiv3/wechatpay-go/core/consts"
  18. "github.com/wechatpay-apiv3/wechatpay-go/services"
  19. )
  20. type TransactionsApiService services.Service
  21. // CreateTransaction 扣费受理
  22. //
  23. // 商户请求扣费受理接口,会完成订单受理。微信支付进行异步扣款,支付完成后,会将订单支付结果发送给商户。
  24. func (a *TransactionsApiService) CreateTransaction(ctx context.Context, req CreateTransactionRequest) (resp *TransactionsEntity, result *core.APIResult, err error) {
  25. var (
  26. localVarHTTPMethod = nethttp.MethodPost
  27. localVarPostBody interface{}
  28. localVarQueryParams neturl.Values
  29. localVarHeaderParams = nethttp.Header{}
  30. )
  31. localVarPath := consts.WechatPayAPIServer + "/v3/qrcode/transactions"
  32. // Make sure All Required Params are properly set
  33. // Setup Body Params
  34. localVarPostBody = req
  35. // Determine the Content-Type Header
  36. localVarHTTPContentTypes := []string{"application/json"}
  37. // Setup Content-Type
  38. localVarHTTPContentType := core.SelectHeaderContentType(localVarHTTPContentTypes)
  39. // Perform Http Request
  40. result, err = a.Client.Request(ctx, localVarHTTPMethod, localVarPath, localVarHeaderParams, localVarQueryParams, localVarPostBody, localVarHTTPContentType)
  41. if err != nil {
  42. return nil, result, err
  43. }
  44. // Extract TransactionsEntity from Http Response
  45. resp = new(TransactionsEntity)
  46. err = core.UnMarshalResponse(result.Response, resp)
  47. if err != nil {
  48. return nil, result, err
  49. }
  50. return resp, result, nil
  51. }
  52. // QueryTransaction 查询订单
  53. //
  54. // 商户通过商户订单号,来查询订单信息
  55. func (a *TransactionsApiService) QueryTransaction(ctx context.Context, req QueryTransactionRequest) (resp *TransactionsEntity, result *core.APIResult, err error) {
  56. var (
  57. localVarHTTPMethod = nethttp.MethodGet
  58. localVarPostBody interface{}
  59. localVarQueryParams neturl.Values
  60. localVarHeaderParams = nethttp.Header{}
  61. )
  62. // Make sure Path Params are properly set
  63. if req.OutTradeNo == nil {
  64. return nil, nil, fmt.Errorf("field `OutTradeNo` is required and must be specified in QueryTransactionRequest")
  65. }
  66. localVarPath := consts.WechatPayAPIServer + "/v3/qrcode/transactions/out-trade-no/{out_trade_no}"
  67. // Build Path with Path Params
  68. localVarPath = strings.Replace(localVarPath, "{"+"out_trade_no"+"}", neturl.PathEscape(core.ParameterToString(*req.OutTradeNo, "")), -1)
  69. // Make sure All Required Params are properly set
  70. // Setup Query Params
  71. localVarQueryParams = neturl.Values{}
  72. if req.SubMchid != nil {
  73. localVarQueryParams.Add("sub_mchid", core.ParameterToString(*req.SubMchid, ""))
  74. }
  75. // Determine the Content-Type Header
  76. localVarHTTPContentTypes := []string{}
  77. // Setup Content-Type
  78. localVarHTTPContentType := core.SelectHeaderContentType(localVarHTTPContentTypes)
  79. // Perform Http Request
  80. result, err = a.Client.Request(ctx, localVarHTTPMethod, localVarPath, localVarHeaderParams, localVarQueryParams, localVarPostBody, localVarHTTPContentType)
  81. if err != nil {
  82. return nil, result, err
  83. }
  84. // Extract TransactionsEntity from Http Response
  85. resp = new(TransactionsEntity)
  86. err = core.UnMarshalResponse(result.Response, resp)
  87. if err != nil {
  88. return nil, result, err
  89. }
  90. return resp, result, nil
  91. }