Заключили договор с QIWI на оплату абонентки.
Заказали кодеру php-скрипт, чтоб их сервер присылал данные о платежах сразу в БД биллинга. В результате денюжки через терминал почти мгновенно попадают в БД.
Абоненты довольны, мы тоже

Выкладываю скрипт, может кому-нибудь пригодится:
payment.phpКод:
<?php
# author: Max Tushewski
# email: danube55@mail.ru
require_once("config.php");
$connect = mysql_connect("$database_hostname:$database_port",
$database_username, $database_password) or
die("Could not connect: " . mysql_error());
mysql_select_db($database_name);
if (isset($_GET['command'],$_GET['txn_id'], $_GET['account'])) {
switch ($_GET['command']) {
case 'check':
echo check($_GET['txn_id'], $_GET['account'], $connect);
break;
case 'pay':
if (isset($_GET['sum'], $_GET['txn_date'])) {
echo pay($_GET['txn_id'],$_GET['account'], $_GET['sum'], $_GET['txn_date'], $pt, $connect);
};
break;
}
}
mysql_close();
function check($txn_id, $account, $connect){
$query = "SELECT COUNT(id) FROM contract WHERE title = '$account';";
$result = mysql_query($query, $connect);
$r = mysql_fetch_row($result);
switch ($r[0]) {
case 1:
return response($txn_id, 0);
case 0:
return response($txn_id, 5);
default:
return response($txn_id, 10);
}
}
function pay($txn_id, $account, $sum, $txn_date, $pt, $connect){
$query = "SELECT id FROM contract WHERE title = '$account';";
$result = mysql_query($query, $connect);
$cid = mysql_fetch_row($result);
if ($cid[0] == '') {
return response($txn_id, 5);
}
$querypay = "INSERT INTO contract_payment (cid, summa, dt, pt) VALUES ('$cid[0]', '$sum', '$txn_date', '$pt')";
if (!mysql_query($querypay, $connect)) {
return response($txn_id, 10);
} else {
return response($txn_id, 0);
}
}
function response($txn_id, $result){
$xml = new SimpleXMLElement('<response></response>');
$cxml1 = $xml->addChild('txn_id', $txn_id);
$cxml2 = $xml->addChild('result', $result);
header("Content-type: text/xml");
return $xml->asXML();
}
?>
config.phpКод:
<?php
$database_type = "mysql";
$database_name = "bgbilling";
$database_hostname = "xx.xx.xx.xx";
$database_username = "user";
$database_password = "password";
$database_port = "3306";
#ID типа платежа в справочнике биллинга
$pt = "11"
?>