Files
baseapi/platformapi/tiktok/callback.go
邹宗楠 7de52d4ab3 100
2022-06-02 10:13:26 +08:00

54 lines
1.4 KiB
Go

package tiktok
import (
"encoding/json"
"git.rosy.net.cn/baseapi/utils"
"io/ioutil"
"net/http"
)
const (
PayStatus = "payment" // 回调类型标记,支付成功回调为"payment"
RefundStatus = "refund" // 回调类型标记,退款回调为"refund"
WxPayWay = "1" // 1-微信支付
ZfbPayWay = "2" // 2-支付宝支付
TtPayWay = "10" // 10-抖音支付
)
func (a *API) GetCallbackMsg(request *http.Request) (call *DetailCallBackMessage, refund *DetailCallBackMessage2Refund, payType string, err error) {
data, err := ioutil.ReadAll(request.Body)
if err != nil {
return nil, nil, "", err
}
values, err := utils.HTTPBody2Values(data, false)
if err != nil {
return nil, nil, "", err
}
payInfo := &CallBackResult{}
if err := utils.Map2StructByJson(utils.URLValues2Map(values), &payInfo, false); err != nil {
return nil, nil, "", err
}
// 支付回调
if payInfo.TypePay == PayStatus {
payDetailResult := &DetailCallBackMessage{}
if err := json.Unmarshal([]byte(payInfo.Msg), payDetailResult); err != nil {
return nil, nil, "", err
}
return payDetailResult, nil, payInfo.TypePay, err
}
// 退款回调
if payInfo.TypePay == RefundStatus {
refundDetailResult := &DetailCallBackMessage2Refund{}
if err := json.Unmarshal([]byte(payInfo.Msg), refundDetailResult); err != nil {
return nil, nil, "", err
}
return nil, refundDetailResult, payInfo.TypePay, err
}
return nil, nil, "", err
}