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