Files
baseapi/platformapi/tiktok/refund.go
2022-06-08 18:16:57 +08:00

56 lines
1.7 KiB
Go

package tiktok
import (
"errors"
"git.rosy.net.cn/baseapi/utils"
)
// 抖音退款流程
type RefundOrderReq struct {
AppID string `json:"app_id"` // 小程序APPID
OutOrderNo string `json:"out_order_no"` // 商户分配支付单号,标识进行退款的订单
OutRefundNo string `json:"out_refund_no"` // 商户分配退款号,保证在商户中唯一
Reason string `json:"reason"` // 退款原因
RefundAmount int `json:"refund_amount"` // 退款金额,单位[分]
Sign string `json:"sign"` // 签名,详见
CpExtra string `json:"cp_extra"` // 开发者自定义字段,回调原样回传
NotifyURL string `json:"notify_url"` // 商户自定义回调地址
}
// 返回值
type RefundOrderRes struct {
ErrNo int64 `json:"err_no"` // 错误码
ErrTips string `json:"err_tips"` // 详情
RefundNo string `json:"refund_no"` // 担保交易服务端退款单号
}
// 抖音退款
func (a *API) RefundOrderTT(param *RefundOrderReq) (string, error) {
param.Sign = a.Sign(utils.Struct2FlatMap(param))
data, err := a.AccessAPI2(RefundUrl, utils.Struct2FlatMap(param))
if err != nil {
return "", err
}
result := &RefundOrderRes{}
if err := utils.Map2StructByJson(data, result, false); err != nil {
return "", err
}
if result.ErrNo != 0 {
return "", errors.New(result.ErrTips)
}
return result.RefundNo, nil
}
// 查询退款结果
func (a *API) QueryRefundMsg() (map[string]interface{}, error) {
param := map[string]interface{}{"app_id": a.GetAppID(), "out_refund_no": "7105943473253206285"}
param["sign"] = a.Sign(param)
data, err := a.AccessAPI2(QueryRefundUrl, param)
if err != nil {
return nil, err
}
return data, err
}