Ready pay backend

This commit is contained in:
2025-02-16 20:55:56 +03:00
parent 19b8f0716b
commit 9e037a9c25
2 changed files with 17 additions and 15 deletions

View File

@@ -9,6 +9,7 @@ import (
"net/http"
"os"
"strconv"
"time"
"github.com/google/uuid"
"github.com/gorilla/handlers"
@@ -111,6 +112,7 @@ func payHandler(w http.ResponseWriter, r *http.Request) {
cookie = &http.Cookie{
Name: "uuid",
Value: newUUID,
Expires: time.Now().Add(30 * time.Minute),
}
http.SetCookie(w, cookie)
// Отправляем ответ в виде простого текста
@@ -120,17 +122,22 @@ func payHandler(w http.ResponseWriter, r *http.Request) {
}
func checkPayHandler(w http.ResponseWriter, r *http.Request) {
// Извлекаем uuid из запроса (например, из query-параметра)
uuid := r.URL.Query().Get("uuid")
// Извлекаем uuid из cookie
cookie, err := r.Cookie("uuid")
if err != nil {
http.Error(w, "Не найден cookie с uuid", http.StatusBadRequest)
return
}
uuid := cookie.Value
if uuid == "" {
http.Error(w, "Не указан uuid", http.StatusBadRequest)
http.Error(w, "Пустое значение uuid", http.StatusBadRequest)
return
}
// Проверяем существование uuid в базе данных
var exists bool
querySQL := `SELECT EXISTS(SELECT 1 FROM pay_urls WHERE id = ?)`
err := db.QueryRow(querySQL, uuid).Scan(&exists)
querySQL := `SELECT EXISTS(SELECT 1 FROM pay_urls WHERE uuid = ?)`
err = db.QueryRow(querySQL, uuid).Scan(&exists)
if err != nil {
http.Error(w, "Ошибка при проверке uuid в базе данных", http.StatusInternalServerError)
return
@@ -174,9 +181,9 @@ func checkPayHandler(w http.ResponseWriter, r *http.Request) {
// Формируем ответ клиенту в зависимости от полученного результата
var response string
if checkResponse.Mes == "OK" {
response = "Успешная оплата"
response = "OK"
} else {
response = "Ошибка при оплате"
response = "GTHO"
}
// Отправляем ответ в виде простого текста
@@ -185,10 +192,6 @@ func checkPayHandler(w http.ResponseWriter, r *http.Request) {
w.Write([]byte(response))
}
func TestHandler(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("Hello, World!"))
}
func main() {
initDB()
@@ -201,9 +204,8 @@ func main() {
)
// Register handlers
http.HandleFunc("/", TestHandler)
http.HandleFunc("/api/pay", payHandler)
http.HandleFunc("api/check_pay", checkPayHandler)
http.HandleFunc("/api/check_pay", checkPayHandler)
// Start server with CORS middleware
port := os.Getenv("PORT")

Binary file not shown.