Делаем систему проверки платежей от Qiwi.

Наш биллинг использует несколько платежных систем. Одна из них Qiwi. Время от времени платежи от абонентов не доходят до биллинга. Для выявления причин происходящего надо было придумать способ проверки Qiwi. Было два варианта либо все платежи не доходят и проблема масштабная, либо проблемы с одним-двумя платежами и не связано с работой самой системы.

На сайте Qiwi я нашел возможность оплаты наших услуг при помощи одной смс со счета Visa QIWI Wallet.

Наша система мониторинга — Nagios использует оповещение через специальное устройство в серверной комнате (шлюз) по смс. Первым делом я зарегистрировал номер нашего шлюза в qiwi. Управление приемом и отправкой смс производится пакетом smstools.

Для отправки СМС из консоли делаем так:

# sendsms s7494 '20314 2877 1 RUB'

s7494 — номер куда отправлять смс («s» используется для указания коротких номеров).
20314 — наш номер в системе qiwi.
2877 — номер лицевого счета в нашем биллинге.
1 RUB — сколько переводить.

Я положил на внутренний Apache файл для отправки тестовой СМС из Web GUI:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<html>
<head>
	<title>Test pay</title>
</head>
<body>
	<?php
	if (isset($_POST['check'])) {
 
		echo 'Message to QIWI (OSMP) send on l/s 2877!</br></br>';
		$text = "To: s7494
 
		21043 2877 1 RUB";
		$fp = fopen("/var/spool/sms/outgoing/sms_osmp", "w");
		fwrite($fp, $text);
		fclose($fp);
	}
	?>
 
	<form name="test" action="" method="post">
	<input type="submit" name="check" value="Test QIWI (OSMP)">
	</form>
</body>
</html>

Теперь, когда обращается абонент с жалобой, что не пришли деньги через qiwi оператор ТП заходит на мою страницу и нажимает заветную кнопочку. После этого, открывает тестовый лицевой счет в биллинге и смотрит платежи. Если есть — значит платежи в биллинг приходят и все ок, информацию передается бухгалтеру (дальше в ТП qiwi). Если нет платежа — значит проблема, скорее всего у нас. Подключается отдел системного администрирования.