Files
baseapi/platformapi/tiktok/callback.go
邹宗楠 b29ec0efdf 1
2022-06-06 11:58:23 +08:00

58 lines
1.6 KiB
Go

package tiktok
import (
"encoding/json"
"fmt"
"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
}
fmt.Println("====================data", string(data))
fmt.Println("====================data", values)
fmt.Println("====================data", utils.URLValues2Map(values))
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
}