65 lines
1.3 KiB
Go
Raw Normal View History

2024-10-27 19:48:10 +07:00
package linkqu
2024-10-15 14:03:20 +07:00
import (
2025-03-04 20:36:17 +07:00
"enaklo-pos-be/internal/entity"
"enaklo-pos-be/internal/handlers/request"
"enaklo-pos-be/internal/handlers/response"
"enaklo-pos-be/internal/services"
2024-10-27 19:48:10 +07:00
"encoding/json"
"fmt"
2024-10-15 14:03:20 +07:00
"github.com/gin-gonic/gin"
"net/http"
)
type Handler struct {
service services.Order
}
func (h *Handler) Route(group *gin.RouterGroup, jwt gin.HandlerFunc) {
2024-10-27 19:48:10 +07:00
route := group.Group("/linkqu")
2024-10-15 14:03:20 +07:00
route.POST("/callback", h.Callback)
}
func NewHandler(service services.Order) *Handler {
return &Handler{
service: service,
}
}
func (h *Handler) Callback(c *gin.Context) {
2024-10-27 19:48:10 +07:00
var callbackData request.LinQuCallback
2024-10-15 14:03:20 +07:00
if err := c.ShouldBindJSON(&callbackData); err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return
}
2024-10-27 19:48:10 +07:00
data, _ := json.Marshal(callbackData)
fmt.Println(string(data))
2024-10-15 14:03:20 +07:00
2024-10-27 19:48:10 +07:00
err := h.service.ProcessLinkQuCallback(c, &entity.LinkQuCallback{
PaymentReff: callbackData.PartnerReff2,
Status: callbackData.Status,
Signature: callbackData.Signature,
PartnerReff: callbackData.PartnerReff,
})
2024-10-15 14:03:20 +07:00
if err != nil {
2024-10-27 19:48:10 +07:00
c.JSON(http.StatusBadRequest, response.BaseResponse{
2024-10-15 14:03:20 +07:00
Success: false,
Status: http.StatusBadRequest,
Message: err.Error(),
Data: nil,
})
return
}
c.JSON(http.StatusOK, response.BaseResponse{
2024-10-27 19:48:10 +07:00
Success: true,
Status: http.StatusOK,
Message: "order",
Response: "00",
2024-10-15 14:03:20 +07:00
})
}