api_receivers.go 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. // Copyright 2021 Tencent Inc. All rights reserved.
  2. //
  3. // 微信支付分账API
  4. //
  5. // 微信支付分账API
  6. //
  7. // API version: 0.0.3
  8. // Code generated by WechatPay APIv3 Generator based on [OpenAPI Generator](https://openapi-generator.tech); DO NOT EDIT.
  9. package profitsharing
  10. import (
  11. "context"
  12. "fmt"
  13. nethttp "net/http"
  14. neturl "net/url"
  15. "git.nanodreamtech.com/sg/wechatpay-go/core"
  16. "git.nanodreamtech.com/sg/wechatpay-go/core/consts"
  17. "git.nanodreamtech.com/sg/wechatpay-go/services"
  18. )
  19. type ReceiversApiService services.Service
  20. // AddReceiver 添加分账接收方API
  21. //
  22. // 商户发起添加分账接收方请求,建立分账接收方列表。后续可通过发起分账请求,将分账方商户结算后的资金,分到该分账接收方
  23. //
  24. //
  25. // 错误码列表
  26. // 名称|状态码|描述示例|原因|解决方案
  27. // |-|-|-|-|-|
  28. // SYSTEM_ERROR|500|系统错误|系统超时|系统异常,请使用相同参数稍后重新调用
  29. // PARAM_ERROR|400|参数格式不正确|请求参数不符合参数格式|请使用正确的参数重新调用
  30. // INVALID_REQUEST|400|无效请求|请确认分账接收方是否存在|请确认分账接收方是否存在
  31. // NO_AUTH|403|商户无权限|未开通分账权限|请开通商户号分账权限
  32. // RATELIMIT_EXCEED|429|添加接收方频率过高|接口有频率限制|请降低频率后重试
  33. func (a *ReceiversApiService) AddReceiver(ctx context.Context, req AddReceiverRequest) (resp *AddReceiverResponse, result *core.APIResult, err error) {
  34. var (
  35. localVarHTTPMethod = nethttp.MethodPost
  36. localVarPostBody interface{}
  37. localVarQueryParams neturl.Values
  38. localVarHeaderParams = nethttp.Header{}
  39. )
  40. // 对请求中敏感字段进行加密
  41. encReq := req.Clone()
  42. encryptCertificate, err := a.Client.EncryptRequest(ctx, encReq)
  43. if err != nil {
  44. return nil, nil, fmt.Errorf("encrypt request failed: %v", err)
  45. }
  46. if encryptCertificate != "" {
  47. localVarHeaderParams.Set(consts.WechatPaySerial, encryptCertificate)
  48. }
  49. req = *encReq
  50. localVarPath := consts.WechatPayAPIServer + "/v3/profitsharing/receivers/add"
  51. // Make sure All Required Params are properly set
  52. // Setup Body Params
  53. localVarPostBody = req
  54. // Determine the Content-Type Header
  55. localVarHTTPContentTypes := []string{"application/json"}
  56. // Setup Content-Type
  57. localVarHTTPContentType := core.SelectHeaderContentType(localVarHTTPContentTypes)
  58. // Perform Http Request
  59. result, err = a.Client.Request(ctx, localVarHTTPMethod, localVarPath, localVarHeaderParams, localVarQueryParams, localVarPostBody, localVarHTTPContentType)
  60. if err != nil {
  61. return nil, result, err
  62. }
  63. // Extract AddReceiverResponse from Http Response
  64. resp = new(AddReceiverResponse)
  65. err = core.UnMarshalResponse(result.Response, resp)
  66. if err != nil {
  67. return nil, result, err
  68. }
  69. // 对应答中隐私字段进行解密
  70. err = a.Client.DecryptResponse(ctx, resp)
  71. if err != nil {
  72. return resp, result, err
  73. }
  74. return resp, result, nil
  75. }
  76. // DeleteReceiver 删除分账接收方API
  77. //
  78. // 商户发起删除分账接收方请求。删除后,不支持将分账方商户结算后的资金,分到该分账接收方
  79. //
  80. //
  81. // 错误码列表
  82. // 名称|状态码|描述示例|原因|解决方案
  83. // |-|-|-|-|-|
  84. // SYSTEM_ERROR|500|系统错误|系统超时|系统异常,请使用相同参数稍后重新调用
  85. // PARAM_ERROR|400|参数格式不正确|请求参数不符合参数格式|请使用正确的参数重新调用
  86. // INVALID_REQUEST|400|无效请求|请确认分账接收方是否存在|请确认分账接收方是否存在
  87. // NO_AUTH|403|商户无权限|未开通分账权限|请开通商户号分账权限
  88. // RATELIMIT_EXCEED|429|删除接收方频率过高|接口有频率限制|请降低频率后重试
  89. func (a *ReceiversApiService) DeleteReceiver(ctx context.Context, req DeleteReceiverRequest) (resp *DeleteReceiverResponse, result *core.APIResult, err error) {
  90. var (
  91. localVarHTTPMethod = nethttp.MethodPost
  92. localVarPostBody interface{}
  93. localVarQueryParams neturl.Values
  94. localVarHeaderParams = nethttp.Header{}
  95. )
  96. localVarPath := consts.WechatPayAPIServer + "/v3/profitsharing/receivers/delete"
  97. // Make sure All Required Params are properly set
  98. // Setup Body Params
  99. localVarPostBody = req
  100. // Determine the Content-Type Header
  101. localVarHTTPContentTypes := []string{"application/json"}
  102. // Setup Content-Type
  103. localVarHTTPContentType := core.SelectHeaderContentType(localVarHTTPContentTypes)
  104. // Perform Http Request
  105. result, err = a.Client.Request(ctx, localVarHTTPMethod, localVarPath, localVarHeaderParams, localVarQueryParams, localVarPostBody, localVarHTTPContentType)
  106. if err != nil {
  107. return nil, result, err
  108. }
  109. // Extract DeleteReceiverResponse from Http Response
  110. resp = new(DeleteReceiverResponse)
  111. err = core.UnMarshalResponse(result.Response, resp)
  112. if err != nil {
  113. return nil, result, err
  114. }
  115. return resp, result, nil
  116. }