diff --git a/frontend/style/app/pay/pay.go b/frontend/style/app/pay/pay.go index 54be3f85..8302c690 100644 --- a/frontend/style/app/pay/pay.go +++ b/frontend/style/app/pay/pay.go @@ -9,6 +9,7 @@ import ( "net/http" "os" "strconv" + "time" "github.com/google/uuid" "github.com/gorilla/handlers" @@ -109,8 +110,9 @@ func payHandler(w http.ResponseWriter, r *http.Request) { // Set uuid cookie cookie = &http.Cookie{ - Name: "uuid", - Value: newUUID, + 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") diff --git a/frontend/style/app/pay/urls_pay.db b/frontend/style/app/pay/urls_pay.db index e21dde63..9787b2ba 100644 Binary files a/frontend/style/app/pay/urls_pay.db and b/frontend/style/app/pay/urls_pay.db differ