api_bill_shipment.go 3.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  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. "github.com/wechatpay-apiv3/wechatpay-go/core"
  16. "github.com/wechatpay-apiv3/wechatpay-go/core/consts"
  17. "github.com/wechatpay-apiv3/wechatpay-go/services"
  18. )
  19. type BillShipmentApiService services.Service
  20. // SplitBill 获取分账账单文件下载地址
  21. //
  22. // 下载接口说明:
  23. // 微信支付按天提供分账账单文件,商户可以通过该接口获取账单文件的下载地址。文件内包含分账相关的金额、时间等信息,供商户核对到账等情况。
  24. // 注意:
  25. // - 微信侧未成功的分账单不会出现在对账单中。
  26. // - 对账单中涉及金额的字段单位为“元”;
  27. // - 对账单接口只能下载三个月以内的账单。
  28. //
  29. // 文件格式说明:
  30. // - 账单文件包括明细数据和汇总数据两部分,每一部分都包含一行表头和若干行具体数据。
  31. // - 明细数据每一行对应一笔分账或一笔回退,同时每一个数据前加入了字符`,以避免数据被Excel按科学计数法处理。如需汇总金额等数据,可以批量替换掉该字符。
  32. //
  33. // 错误码列表
  34. // |名称|状态码|描述示例|原因|解决方案
  35. // |-|-|-|-|-|
  36. // |SYSTEM_ERROR|500|系统错误|系统超时|系统异常,请使用相同参数稍后重新调用|
  37. // |PARAM_ERROR|400|日期格式不正确|请求参数不符合参数格式|请使用正确的参数重新调用|
  38. // |RATELIMIT_EXCEED|429|商户发起获取账单的频率过高|接口有频率限制|请降低频率后重试|
  39. // |INVALID_REQUEST|400|服务商和分账方无受理关系|服务商和分账方无受理关系|请检查子商户号是否正确
  40. // |INVALID_REQUEST|400|请求的账单日期已过期|请求的账单日期已过期|请调整账单日期
  41. // |INVALID_REQUEST|400|请求的账单正在生成中|账单尚未生成|请确认账单时间是否正确,当日的账单会在次日上午10点以后可供下载
  42. // |NO_STATEMENT_EXIST|400|账单文件不存在|账单尚未生成|请确认账单时间是否正确,当日的账单会在次日上午10点以后可供下载
  43. func (a *BillShipmentApiService) SplitBill(ctx context.Context, req SplitBillRequest) (resp *SplitBillResponse, result *core.APIResult, err error) {
  44. var (
  45. localVarHTTPMethod = nethttp.MethodGet
  46. localVarPostBody interface{}
  47. localVarQueryParams neturl.Values
  48. localVarHeaderParams = nethttp.Header{}
  49. )
  50. localVarPath := consts.WechatPayAPIServer + "/v3/profitsharing/bills"
  51. // Make sure All Required Params are properly set
  52. if req.BillDate == nil {
  53. return nil, nil, fmt.Errorf("field `BillDate` is required and must be specified in SplitBillRequest")
  54. }
  55. // Setup Query Params
  56. localVarQueryParams = neturl.Values{}
  57. if req.SubMchid != nil {
  58. localVarQueryParams.Add("sub_mchid", core.ParameterToString(*req.SubMchid, ""))
  59. }
  60. localVarQueryParams.Add("bill_date", core.ParameterToString(*req.BillDate, ""))
  61. if req.TarType != nil {
  62. localVarQueryParams.Add("tar_type", core.ParameterToString(*req.TarType, ""))
  63. }
  64. // Determine the Content-Type Header
  65. localVarHTTPContentTypes := []string{}
  66. // Setup Content-Type
  67. localVarHTTPContentType := core.SelectHeaderContentType(localVarHTTPContentTypes)
  68. // Perform Http Request
  69. result, err = a.Client.Request(ctx, localVarHTTPMethod, localVarPath, localVarHeaderParams, localVarQueryParams, localVarPostBody, localVarHTTPContentType)
  70. if err != nil {
  71. return nil, result, err
  72. }
  73. // Extract SplitBillResponse from Http Response
  74. resp = new(SplitBillResponse)
  75. err = core.UnMarshalResponse(result.Response, resp)
  76. if err != nil {
  77. return nil, result, err
  78. }
  79. return resp, result, nil
  80. }