56 lines
1.7 KiB
Go
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
|
|
}
|