Ограничение времени для оплаты
Если предложение ограничено по времени, например, продаются билеты на мероприятие, которые нельзя долго держать забронированными, можно ограничить время, в течение которого будет можно перейти к оплате. При работе с выставлением счетов (или генерацией ссылок на оплату ) через JSON API , POST-параметр expiry можно передать с точностью до секунды в формате YYYY-MM-DD hh:mm:ss (например, 2019-07-02 22:22:57 ). Ссылка на оплату будет действовать ровно до указанного момента. Момент времени нужно указывать по часам личного кабинета PayKeeper. В большинстве случаев это московское время.
HTML-форма тоже принимает POST-параметр expiry . Переход к оплате будет происходить, только если он указывает на момент времени в будущем.
Поскольку HTML-форма проходит через клиентскую сторону, этот параметр, как и все остальные, может быть модифицирован недобросовестным плательщиком. Поэтому HTML-форма должна работать в режиме проверки электронно-цифровой подписи. Если вы не уверены, что это так, обратитесь в нашу поддержку. Цифровая подпись HTML-формы с заполненным параметром expiry должна формироваться следующим образом:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<?php # Возьмём следующие параметры заказа для примера: $sum=100; $clientid="186"; $orderid="12331169"; # Те, что неизвестны, берутся пустыми строками $service_name=""; $client_phone=""; $client_email="ivanov.sergey@yandex.ru"; $expiry="2019-07-02 22:22:57" $to_hash = number_format($sum , 2 , '.' , '') . $clientid . $orderid . $service_name . $client_email . $client_phone . $expiry. $secret_seed; $sign = hash('sha256' , $to_hash); # Цифровая подпись ?> |
А сама HTML-форма будет выглядеть так:
1 2 3 4 5 6 7 8 9 10 11 |
<form method='POST' action='https://demo.rsb-processing.ru/create/' > <input name='clientid' value='<?=$clientid?>' /> <input name='sum' value='<?=$sum?>' /> <input name='orderid' value='<?=$orderid?>' /> <input name='service_name' value='<?=$service_name?>' /> <input name='client_email' value='<?=$client_email?>' /> <input name='client_phone' value='<?=$client_phone?>' /> <input name='expiry' value='<?=$expiry?>' /> <input name='sign' value='<?=$signature?>' /> <input type='submit' value='Оплатить'/> </form> |