You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
go-library/service/wechatpayapiv3/transfer-detail.electronic-...

47 lines
3.3 KiB

package wechatpayapiv3
import (
"context"
1 year ago
"github.com/dtapps/go-library/utils/gojson"
"github.com/dtapps/go-library/utils/gorequest"
"net/http"
)
type TransferDetailElectronicReceiptsPostResponse struct {
AcceptType string `json:"accept_type"` // 电子回单受理类型BATCH_TRANSFER批量转账明细电子回单 TRANSFER_TO_POCKET企业付款至零钱电子回单 TRANSFER_TO_BANK企业付款至银行卡电子回单
OutBatchNo string `json:"out_batch_no"` // 需要电子回单的批量转账明细单所在的转账批次的单号该单号为商户申请转账时生成的商户单号。受理类型为BATCH_TRANSFER时该单号必填否则该单号留空。
OutDetailNo string `json:"out_detail_no"` // 该单号为商户申请转账时生成的商家转账明细单号。 1.受理类型为BATCH_TRANSFER时填写商家批量转账明细单号。2. 受理类型为TRANSFER_TO_POCKET或TRANSFER_TO_BANK时填写商家转账单号。
SignatureNo string `json:"signature_no"` // 电子回单受理单号,受理单据的唯一标识
SignatureStatus string `json:"signature_status"` // 枚举值: ACCEPTED:已受理,电子签章已受理成功 FINISHED:已完成。电子签章已处理完成
HashType string `json:"hash_type"` // 电子回单文件的hash方法回单状态为FINISHED时返回
HashValue string `json:"hash_value"` // 电子回单文件的hash值用于下载之后验证文件的完整、正确性回单状态为FINISHED时返回
DownloadUrl string `json:"download_url"` // 电子回单文件的下载地址回单状态为FINISHED时返回。URL有效时长为10分钟10分钟后需要重新去获取下载地址但不需要走受理
}
type TransferDetailElectronicReceiptsPostResult struct {
Result TransferDetailElectronicReceiptsPostResponse // 结果
Body []byte // 内容
Http gorequest.Response // 请求
Err error // 错误
}
func newTransferDetailElectronicReceiptsPostResult(result TransferDetailElectronicReceiptsPostResponse, body []byte, http gorequest.Response, err error) *TransferDetailElectronicReceiptsPostResult {
return &TransferDetailElectronicReceiptsPostResult{Result: result, Body: body, Http: http, Err: err}
}
// TransferDetailElectronicReceiptsPost 受理转账明细电子回单API
// https://pay.weixin.qq.com/docs/merchant/apis/batch-transfer-to-balance/electronic-receipt-api/create-electronic-receipt.html
func (c *Client) TransferDetailElectronicReceiptsPost(ctx context.Context, notMustParams ...gorequest.Params) *TransferDetailElectronicReceiptsPostResult {
// 参数
params := gorequest.NewParamsWith(notMustParams...)
// 请求
request, err := c.request(ctx, apiUrl+"/v3/transfer-detail/electronic-receipts", params, http.MethodPost, false)
if err != nil {
return newTransferDetailElectronicReceiptsPostResult(TransferDetailElectronicReceiptsPostResponse{}, request.ResponseBody, request, err)
}
// 定义
var response TransferDetailElectronicReceiptsPostResponse
1 year ago
err = gojson.Unmarshal(request.ResponseBody, &response)
return newTransferDetailElectronicReceiptsPostResult(response, request.ResponseBody, request, err)
}