init: 1.0.0
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
package notify
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net/http"
|
||||
|
||||
"github.com/perfect-panel/ppanel-server/pkg/constant"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/perfect-panel/ppanel-server/internal/logic/notify"
|
||||
"github.com/perfect-panel/ppanel-server/internal/svc"
|
||||
"github.com/perfect-panel/ppanel-server/internal/types"
|
||||
"github.com/perfect-panel/ppanel-server/pkg/logger"
|
||||
"github.com/perfect-panel/ppanel-server/pkg/payment"
|
||||
"github.com/perfect-panel/ppanel-server/pkg/result"
|
||||
)
|
||||
|
||||
// PaymentNotifyHandler Payment Notify
|
||||
func PaymentNotifyHandler(svcCtx *svc.ServiceContext) func(c *gin.Context) {
|
||||
return func(c *gin.Context) {
|
||||
platform, ok := c.Request.Context().Value(constant.CtxKeyPlatform).(string)
|
||||
if !ok {
|
||||
logger.WithContext(c.Request.Context()).Errorf("platform not found")
|
||||
result.HttpResult(c, nil, fmt.Errorf("platform not found"))
|
||||
return
|
||||
}
|
||||
|
||||
switch payment.ParsePlatform(platform) {
|
||||
case payment.EPay:
|
||||
req := &types.EPayNotifyRequest{}
|
||||
if err := c.ShouldBind(req); err != nil {
|
||||
result.HttpResult(c, nil, err)
|
||||
return
|
||||
}
|
||||
l := notify.NewEPayNotifyLogic(c, svcCtx)
|
||||
if err := l.EPayNotify(req); err != nil {
|
||||
logger.WithContext(c.Request.Context()).Errorf("EPayNotify failed: %v", err.Error())
|
||||
c.String(http.StatusBadRequest, err.Error())
|
||||
return
|
||||
}
|
||||
c.String(http.StatusOK, "%s", "success")
|
||||
case payment.Stripe:
|
||||
l := notify.NewStripeNotifyLogic(c.Request.Context(), svcCtx)
|
||||
if err := l.StripeNotify(c.Request, c.Writer); err != nil {
|
||||
result.HttpResult(c, nil, err)
|
||||
return
|
||||
}
|
||||
result.HttpResult(c, nil, nil)
|
||||
|
||||
case payment.AlipayF2F:
|
||||
l := notify.NewAlipayNotifyLogic(c.Request.Context(), svcCtx)
|
||||
if err := l.AlipayNotify(c.Request); err != nil {
|
||||
result.HttpResult(c, nil, err)
|
||||
return
|
||||
}
|
||||
// Return success to alipay
|
||||
c.String(http.StatusOK, "%s", "success")
|
||||
|
||||
default:
|
||||
logger.WithContext(c.Request.Context()).Errorf("platform %s not support", platform)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user