Добрый вечер, есть вот такой код из документации Альфа-банка
define('USERNAME', '');
define('PASSWORD', '');
define('GATEWAY_URL', 'https://server/payment/rest/');
define('RETURN_URL', '');
/**
* ФУНКЦИЯ ДЛЯ ВЗАИМОДЕЙСТВИЯ С ПЛАТЕЖНЫМ ШЛЮЗОМ
*
* Для отправки POST запросов на платежный шлюз используется
* стандартная библиотека cURL.
*
* ПАРАМЕТРЫ
* method Метод из API.
* data Массив данных.
*
* ОТВЕТ
* response Ответ.
*/
function gateway($method, $data) {
$curl = curl_init(); // Инициализируем запрос
curl_setopt_array($curl, array(
CURLOPT_URL => GATEWAY_URL.$method, // Полный адрес метода
CURLOPT_RETURNTRANSFER => true, // Возвращать ответ
CURLOPT_POST => true, // Метод POST
CURLOPT_POSTFIELDS => http_build_query($data) // Данные в запросе
));
$response = curl_exec($curl); // Выполняем запрос
$response = json_decode($response, true); // Декодируем из JSON в массив
curl_close($curl); // Закрываем соединение
return $response; // Возвращаем ответ
}
/**
* ВЫВОД ФОРМЫ НА ЭКРАН
*/
if ($_SERVER['REQUEST_METHOD'] == 'GET' && !isset($_GET['orderId'])) {
echo '
<form method="post" action="/rest">
<label>Order number</label><br />
<input type="text" name="orderNumber" /><br />
<label>Amount</label><br />
<input type="text" name="amount" /><br />
<button type="submit">Submit</button>
</form>
';
}
/**
* ОБРАБОТКА ДАННЫХ ИЗ ФОРМЫ
*/
else if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$data = array(
'userName' => USERNAME,
'password' => PASSWORD,
'orderNumber' => urlencode($_POST['orderNumber']),
'amount' => urlencode($_POST['amount']),
'returnUrl' => RETURN_URL
);
$response = gateway('register.do', $data);
if (isset($response['errorCode'])) { // В случае ошибки вывести ее
echo 'Ошибка #' . $response['errorCode'] . ': ' . $response['errorMessage'];
} else { // В случае успеха перенаправить пользователя на платежную форму
header('Location: ' . $response['formUrl']);
die();
}
}
/**
* ОБРАБОТКА ДАННЫХ ПОСЛЕ ПЛАТЕЖНОЙ ФОРМЫ
*/
else if ($_SERVER['REQUEST_METHOD'] == 'GET' && isset($_GET['orderId'])){
$data = array(
'userName' => USERNAME,
'password' => PASSWORD,
'orderId' => $_GET['orderId']
);
$response = gateway('getOrderStatus.do', $data);
// Вывод кода ошибки и статус заказа
echo '
<b>Error code:</b> ' . $response['ErrorCode'] . '<br />
<b>Order status:</b> ' . $response['OrderStatus'] . '<br />
';
}
Но посоле отправки формы ничего не проиходит, хотя должно редиректить на ссылку указанную в $response['formUrl']
Пытался проверить переменную $respont, а она пустая.
Проверял работоспособность запроса с помощью сервиса от альфы, там все работало
Я так понимаю проблема в curl запросе, подскажите, пожалуйста, где именно