Подключение
Для подключения нашего сервиса для начала Вам необходимо пройти регистрацию на сайте.
После регистрации перейдите в "Кабинет", в раздел "Площадки"
Создайте свою площадку.
******Пояснение полей ввода*******
"Наименование" - название Вашего сервиса (отображается на странице оплаты)
"URL" - Адрес Вашего сайта (Главной страницы)
"URL Result" - Адрес скрипта-обработчика, который принимает ответы и обрабатывает платежи (Данный скрипт лучше спрятать поглубже, чтобы злоумышленники не имели доступа к скрипту)
"URL Success" - Адрес, куда перенаправлять клиента после успешной оплаты счёта
"URL Error" - Адрес, куда перенаправлять клиента в случае ошибки при оплате счёта
"Hash" - набор символов для проверки подлинности платежа, и обработки заявки "url result" (Ни кому не сообщайте данный код!!!)
**********************************
После добавления площадки следует подключить скрипт обработчик (URL Result) и создать три страницы (для вывода сообщения об оплате счёта, о возникших проблемах при оплате, и непосредственно сама страница начала оплаты (инициализации)).

******Файл начала оплаты**********
Инициализируем оплату на стороне WorldKassa
Для этого отправим GET запрос на адрес http://youkassa.ru/user/oplata.php?id_shop=ID площадки&summa=Сумма в руб&hash=Секретный hash
Необязательные поля
comment=base64_encode('свой комментарий к платежу')
Возвращается ID платежа или, в случае ошибки, текст.
И переадресовываем клиента непосредственно на страницу нашего интегратора для оплаты на адрес http://youkassa.ru/user/oplata2.php?uniq=ID платежа

Пример php:
<?
$data
=file_get_contents('http://youkassa.ru/user/oplata.php?id_shop=1&summa=100&hash=lskvm8v7dc5xs8hn8c7a7d2gvs');
if (
is_numeric($data))
{
header("Location: http://youkassa.ru/user/oplata.php?uniq=".$data);
exit();
}
else
{
echo 
'ошибочка!';
echo 
$data;
}
?>



============================
На этом страница инициализации платежа заканчивается.
(Нужно завести себе таблицу MylSAM для хранения статистики платежей у себя на сервере, и сохраняем ID платежа в БД для будущей сверки в обработчике (URL Result))

*******Обработчик приёма ответа********
Обработчик (URL Result) занимается приёмом ответов от youkassa и в случае успешной проверки - то зачисление баланса
На обработчик ответ отправляется один(!) раз.
Ответ идёт в POST данных.
Данные, которые отправляются на обработчик

<?
$_POST
['id_shop'];// - ID площадки
$_POST['id_bill'];// - ID платежа, который Вам выдала WorldKassa при инициализации платежа
$_POST['summa'];// - Сумма платежа
$_POST['hash'];// - Хеш для сверки подлинности запроса (состоит из hash('sha256',HASH площадкиID площадки'.$_POST['id_bill'].$_POST['summa']))
$_POST['test']; // - Тип платежа 0-реальный, 1 - тестовый
?>


Пример обработчика:

<?
if ($_SERVER['REMOTE_ADDR'] != '185.43.7.164') exit;
if (isset(
$_POST['id_shop']) && is_numeric($_POST['id_shop']) && isset($_POST['id_bill']) && is_numeric($_POST['id_bill']) && isset($_POST['summa']) && is_numeric($_POST['summa']) && isset($_POST['hash']))
    {
    
$sq $db->query("SELECT * FROM `youkassa` WHERE `id_bill` = '".$_POST['id_bill']."'")->fetch_row();
    
    if (
$sq[0] > 0)
        {
        
$data $db->query("SELECT * FROM `youkassa` WHERE `id_bill` = '".$_POST['id_bill']."'")->fetch_assoc();
        
        if (
$_POST['summa'] < $data['summa'])
            {
            
//Можно поставить уведомление на подмену суммы пополнения
            
echo '<div class="error">Подменена сумма для оплаты! </div>'
            }
            elseif(
$_POST['hash']!=hash('sha256',$hash.$id_shop.$_POST['id_bill'].$_POST['summa']))
            {
            
//Можно поставить уведомление, что не совпал хеш
            
echo '<div class="error">Хэш не совпадает! </div>'
            }
            else
            {

                          echo 
'SUCCESS';

                           if (
$_REQUEST['result'] == 'SUCCESS') {
               
//ЗДЕСЬ ЗАЧИСЛЕНИЕ ПЛАТЕЖА
                            
}
            }
        }
    }
?>
© youkassa.ru 2020