Как получить информацию оплаты в реальном времени?

Здравствуйте, возникла идея о реализации оплаты с сайта. Сама оплата проходит в штатном режиме и в принципе работает. Но хочется сделать оплату "живой". При нажатии на кнопку клиента направляет на страницу оплаты в сервисе ЯндексДеньги, при успешной оплате они отправляют данные на PHP script, который проверяет статус оплаты. Но тут возникла другая проблема. По приходу статуса не производятся необходимые действия. в PHP скрипте имеется следующий код :
"<?
	$hash = sha1($_POST['notification_type'].'&'.
	$_POST['operation_id'].'&'.
	$_POST['amount'].'&'.
	$_POST['currency'].'&'.
	$_POST['datetime'].'&'.
	$_POST['sender'].'&'.
	$_POST['codepro'].'&'.
	'Мега-секретка'.'&'.
	$_POST['label']);
	if ( $_POST['sha1_hash'] != $hash or $_POST['codepro'] === true or $_POST['unaccepted'] === true ) exit('');
?>
<script type="text/javascript">
		$(document).ready(function() 
		{	$("#test").show("fast");});
	</script>"

вот год страницы, на которой происходит оплата
<div id="test"  style="display:none;">Тест</div>

<form method="POST" action="https://money.yandex.ru/quickpay/confirm.xml" target="_blank" class="confirm"> 
		<input type="hidden" name="receiver" value="номер кошелька">
		<input type="hidden" name="quickpay-form" value="shop">
		<input type="hidden" name="targets" value="покупка">
		<input type="hidden" name="paymentType" value="PC">
		<input type="hidden" name="successURL" value="ссылка на страницу в случае успеха">
		<input type="hidden" name="label" value="ID пользователя">
		<script type="text/javascript" src="/js/calc.js"></script>
		<table id="tableSelect" width="100%" cellpadding="0" cellspacing="0">
			<tr>
				<th>Опция</th>
				<th>Срок</th>
				<th>Сумма</th>
			</tr>
			<tr>
				<td class="vertical">
					<select id="status" name="type">
						<option value="1"> 1</option>
						<option value="2"> 2</option>
					</select>
				</td>
				<td>
					<input id="value" type="number" name="quantity" value="5" >
				</td>
				<td id="total"><input  id="summ" type="text" name="sum" value="1" data-type="number" required></td>
			</tr>
		</table>
		<input type="submit" value="Приобрести"> 
	</form>
<?
		require_once '../../../assets/includs/payscript.php';?>

Идея такова: Проходит оплата, перехватывается статус оплаты, и выводится сообщение. Всё это происходит без перезагрузки страницы. Была идея организовать через JS, но, как видите не сработало. Так же есть идея сделать это через AJAX, но как именно - не знаю.
  • Вопрос задан
  • 165 просмотров
Решения вопроса 1
Adamos
@Adamos
На оплату формируется уникальный ID - платежные системы его требуют.
Код, принимающий информацию об оплате, должен сохранять в базе отметку об оплате заказа.
На странице, где пользователь ждет прихода денег, каждые пару секунд делаете ajax-запрос к своему скрипту, проверяющему, не появилась ли отметка об оплате.
Все настолько просто, что и запутаться-то негде.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы