Поможете дописать авто-редирект при успешной оплате?

190
05 января 2022, 11:20

В данный момент при любом статусе оплаты или ее стадии осуществляется редирект на нужную страницу и все ок, но только при клике на "вернуться в магазин". А нужно чтобы если оплата была успешной, то делать авто-редирект. Не могу пока догнать как это сделать, ценю любую помощь.

<?php session_start();
    // Включаем отображение ошибок
    // ini_set('display_errors', 1);
    // ini_set('display_startup_errors', 1);
    // ini_set('display_errors', 1);
    // error_reporting(-1);
    // Сохраняем форму в куки
    setcookie('user_email', ''. $_POST['email'] .'', time()+2678400, '/');
    setcookie('user_tell', ''. $_POST['tell'] .'', time()+2678400, '/');
    setcookie('user_name', ''. $_POST['name'] .'', time()+2678400, '/');
    // Генерация ссылки
    require $_SERVER['DOCUMENT_ROOT'] . '/yandex-checkout/autoload.php';
    use YandexCheckout\Client;
    $client = new Client();
        $client->setAuth('***', '***');
        $payment = $client->createPayment(
            array(
                'amount' => array(
                    'value' => 1.0,
                    'currency' => 'RUB',
                ),
                'confirmation' => array(
                    'type' => 'redirect',
                    'return_url' => 'https://mysite.ru/payment-page-success.html'
                ),
                'capture' => true,
                'description' => 'Новая покупка'
        ),
        uniqid('', true)
        );

$r_url = 'https://mysite.ru/payment-page-success.html';
      if(isset($payment['confirmation']['confirmation_url'])){
        setcookie('user_payment_id', ''. $payment['id'] .'', time()+2678400, '/');
        $return = ['success' => $payment['confirmation']['confirmation_url']];
      } else {
        $return = ['error' => 'Ссылка для оплаты не создана'];
      }
      echo json_encode($return);
?>
Answer 1
if(isset($payment['confirmation']['confirmation_url'])){
    setcookie('user_payment_id', ''. $payment['id'] .'', time()+2678400, '/');
    $return = ['success' => $payment['confirmation']['confirmation_url']];
    header("Location: $return_url");
    exit;
}   

Не забудьте объявить переменную $return_url;

Answer 2

Нужно было вмешательство менеджера яндекса, потратил столько сил и времени.

@V.March то, что для авто редиректа нужно было вмешательство с их стороны.

Видимо они вставили мою ссылку куда должна касса редиректить и расскоментировали строку)))

Единственный момент - в создании платежа должно быть это

'confirmation' => array(
    'type' => 'redirect',
    'return_url' => 'https://mysite.ru/payment-page-success.html'
),
READ ALSO
Как можно обезопасить метод удаления данных?

Как можно обезопасить метод удаления данных?

Есть следующий код, задача которого удалить данные из бдСейчас все данные удаляются при переходе по ссылке localhost/?id=666

237
Время полуночи текущей даты в секундах UnixTimestamp

Время полуночи текущей даты в секундах UnixTimestamp

Необходимо на получить время полуночи текущей даты (например, 1812

98
Как удалять изображения в функции delete?

Как удалять изображения в функции delete?

Мне нужно чтобы удалялись изображения из папки uploadНапример если у пользователя в бд сохранено имя изображения (Esfejih

176