1<?php
2require_once 'engine/init.php';
3protect_page();
4
5if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
6 header('Location: buypoints.php');
7 exit;
8}
9
10if (!Token::isValid($_POST['token'] ?? null)) {
11 http_response_code(400);
12 theme_open();
13 $paymentMessage = array('title' => t('payment.invalid_request'), 'text' => t('payment.retry_hint'));
14 view('payment_message');
15 theme_close();
16 exit;
17}
18
19$provider = strtolower(trim((string)($_POST['provider'] ?? '')));
20$price = $_POST['price'] ?? '';
21
22try {
23 $checkout = payment_gateway_create_checkout($provider, (int)$session_user_id, $price);
24 header('Location: ' . $checkout['url']);
25 exit;
26} catch (Throwable $e) {
27 error_log('Payment checkout error: ' . $e->getMessage());
28 http_response_code(400);
29 theme_open();
30 $paymentMessage = array('title' => t('payment.unavailable'), 'text' => t('payment.start_failed'));
31 view('payment_message');
32 theme_close();
33}
34?>
35