Files
jx-callback/controllers/kuaishou_callback.go
2023-06-08 09:26:31 +08:00

67 lines
1.4 KiB
Go

package controllers
import (
"git.rosy.net.cn/baseapi/platformapi/kuaishou_mini"
"git.rosy.net.cn/jx-callback/business/partner/purchase/jx/localjx"
"git.rosy.net.cn/jx-callback/globals/api"
"github.com/astaxie/beego/server/web"
)
type KuaiShouController struct {
web.Controller
}
// KuaiShouCallBack 快手回调
func (c *KuaiShouController) KuaiShouCallback() {
payOrder, refundOrder, payType, msgId, err := api.KuaiShouApi.KauiShouCallback(c.Ctx.Request)
if err != nil {
c.Data["json"] = CallBackFail(msgId)
c.ServeJSON()
return
}
switch payType {
case kuaishou_mini.CallbackTypePay:
err = localjx.OnKSPayCallback(payOrder, nil, payType)
case kuaishou_mini.CallbackTypeRefund:
err = localjx.OnKSPayCallback(nil, refundOrder, payType)
case kuaishou_mini.CallbackTypeSettle:
c.Data["json"] = CallBackFail(msgId)
c.ServeJSON()
return
default:
c.Data["json"] = CallBackFail(msgId)
c.ServeJSON()
return
}
if err != nil {
c.Data["json"] = CallBackFail(msgId)
c.ServeJSON()
return
}
c.Data["json"] = CallBackSuccess(msgId)
c.ServeJSON()
return
}
type CallBackResult struct {
Result string `json:"result"`
MessageId string `json:"message_id"`
}
func CallBackSuccess(msgId string) *CallBackResult {
return &CallBackResult{
Result: "1",
MessageId: msgId,
}
}
func CallBackFail(msgId string) *CallBackResult {
return &CallBackResult{
Result: "-1",
MessageId: msgId,
}
}