api_receivers.go 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  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. // SYSTEM_ERROR|500|系统错误|系统超时|系统异常,请使用相同参数稍后重新调用
  28. // PARAM_ERROR|400|参数格式不正确|请求参数不符合参数格式|请使用正确的参数重新调用
  29. // INVALID_REQUEST|400|无效请求|请确认分账接收方是否存在|请确认分账接收方是否存在
  30. // NO_AUTH|403|商户无权限|未开通分账权限|请开通商户号分账权限
  31. // RATELIMIT_EXCEED|429|添加接收方频率过高|接口有频率限制|请降低频率后重试
  32. func (a *ReceiversApiService) AddReceiver(ctx context.Context, req AddReceiverRequest) (resp *AddReceiverResponse, result *core.APIResult, err error) {
  33. var (
  34. localVarHTTPMethod = nethttp.MethodPost
  35. localVarPostBody interface{}
  36. localVarQueryParams neturl.Values
  37. localVarHeaderParams = nethttp.Header{}
  38. )
  39. // 对请求中敏感字段进行加密
  40. encReq := req.Clone()
  41. encryptCertificate, err := a.Client.EncryptRequest(ctx, encReq)
  42. if err != nil {
  43. return nil, nil, fmt.Errorf("encrypt request failed: %v", err)
  44. }
  45. if encryptCertificate != "" {
  46. localVarHeaderParams.Set(consts.WechatPaySerial, encryptCertificate)
  47. }
  48. req = *encReq
  49. localVarPath := consts.WechatPayAPIServer + "/v3/profitsharing/receivers/add"
  50. // Make sure All Required Params are properly set
  51. // Setup Body Params
  52. localVarPostBody = req
  53. // Determine the Content-Type Header
  54. localVarHTTPContentTypes := []string{"application/json"}
  55. // Setup Content-Type
  56. localVarHTTPContentType := core.SelectHeaderContentType(localVarHTTPContentTypes)
  57. // Perform Http Request
  58. result, err = a.Client.Request(ctx, localVarHTTPMethod, localVarPath, localVarHeaderParams, localVarQueryParams, localVarPostBody, localVarHTTPContentType)
  59. if err != nil {
  60. return nil, result, err
  61. }
  62. // Extract AddReceiverResponse from Http Response
  63. resp = new(AddReceiverResponse)
  64. err = core.UnMarshalResponse(result.Response, resp)
  65. if err != nil {
  66. return nil, result, err
  67. }
  68. // 对应答中隐私字段进行解密
  69. err = a.Client.DecryptResponse(ctx, resp)
  70. if err != nil {
  71. return resp, result, err
  72. }
  73. return resp, result, nil
  74. }
  75. // DeleteReceiver 删除分账接收方API
  76. //
  77. // 商户发起删除分账接收方请求。删除后,不支持将分账方商户结算后的资金,分到该分账接收方
  78. //
  79. // 错误码列表
  80. // 名称|状态码|描述示例|原因|解决方案
  81. // |-|-|-|-|-|
  82. // SYSTEM_ERROR|500|系统错误|系统超时|系统异常,请使用相同参数稍后重新调用
  83. // PARAM_ERROR|400|参数格式不正确|请求参数不符合参数格式|请使用正确的参数重新调用
  84. // INVALID_REQUEST|400|无效请求|请确认分账接收方是否存在|请确认分账接收方是否存在
  85. // NO_AUTH|403|商户无权限|未开通分账权限|请开通商户号分账权限
  86. // RATELIMIT_EXCEED|429|删除接收方频率过高|接口有频率限制|请降低频率后重试
  87. func (a *ReceiversApiService) DeleteReceiver(ctx context.Context, req DeleteReceiverRequest) (resp *DeleteReceiverResponse, result *core.APIResult, err error) {
  88. var (
  89. localVarHTTPMethod = nethttp.MethodPost
  90. localVarPostBody interface{}
  91. localVarQueryParams neturl.Values
  92. localVarHeaderParams = nethttp.Header{}
  93. )
  94. localVarPath := consts.WechatPayAPIServer + "/v3/profitsharing/receivers/delete"
  95. // Make sure All Required Params are properly set
  96. // Setup Body Params
  97. localVarPostBody = req
  98. // Determine the Content-Type Header
  99. localVarHTTPContentTypes := []string{"application/json"}
  100. // Setup Content-Type
  101. localVarHTTPContentType := core.SelectHeaderContentType(localVarHTTPContentTypes)
  102. // Perform Http Request
  103. result, err = a.Client.Request(ctx, localVarHTTPMethod, localVarPath, localVarHeaderParams, localVarQueryParams, localVarPostBody, localVarHTTPContentType)
  104. if err != nil {
  105. return nil, result, err
  106. }
  107. // Extract DeleteReceiverResponse from Http Response
  108. resp = new(DeleteReceiverResponse)
  109. err = core.UnMarshalResponse(result.Response, resp)
  110. if err != nil {
  111. return nil, result, err
  112. }
  113. return resp, result, nil
  114. }