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 }