forum.bitel.ru http://forum.bitel.ru/ |
|
Скрипт взаимодействия с QIWI http://forum.bitel.ru/viewtopic.php?f=19&t=5969 |
Страница 1 из 1 |
Автор: | crez [ 06 окт 2011, 11:27 ] |
Заголовок сообщения: | Скрипт взаимодействия с QIWI |
Заключили договор с 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" ?> |
Автор: | Phricker [ 06 окт 2011, 11:34 ] |
Заголовок сообщения: | Re: Скрипт взаимодействия с QIWI |
а MPS модуль? ![]() |
Автор: | crez [ 06 окт 2011, 11:51 ] |
Заголовок сообщения: | Re: Скрипт взаимодействия с QIWI |
А нету у нас такого модуля ![]() Сейчас бегло просмотрел документацию по нему... Похоже, QIWI туда тоже можно прикрутить. Надо шефу заказать покупку, да попробовать ![]() Кстати, ни на форуме, ни в wiki не нашел информации по платежам через QIWI, когда понадобилось стыковать, поэтому и стал выдумывать (велосипед) способ взаимодействия ![]() Но скрипт работает ![]() |
Автор: | Phricker [ 06 окт 2011, 11:52 ] |
Заголовок сообщения: | Re: Скрипт взаимодействия с QIWI |
Вообще-то модуль MPS и отвечает за платежи через платежные системы ![]() Сверки с ними и т.п. |
Автор: | Phricker [ 06 окт 2011, 12:24 ] |
Заголовок сообщения: | Re: Скрипт взаимодействия с QIWI |
crez писал(а): Кстати, ни на форуме, ни в wiki не нашел информации по платежам через QIWI, когда понадобилось стыковать, поэтому и стал выдумывать (велосипед) способ взаимодействия ![]() http://www.bgbilling.ru/v5.1/doc/ch17s02s01.html ЕМНИМС, QIWI есть ОСМП. Один куплен другим. Ну или если быть точным - работает по протоколу osmp. Что-то вроде этого 777 сообщений ![]() |
Автор: | Khoma [ 12 окт 2011, 20:36 ] |
Заголовок сообщения: | Re: Скрипт взаимодействия с QIWI |
А работа с ОСМП и Киви кошельком это одно и то же? У меня создалось впечатление, что для "новичков", которые заключили договор не с ОСМП (который шлёт данные в биллинг по определённому протоколу), а с Киви кошельком модуль MPS не подходит. Я во всяком случае так и не понял, как можно настроить это взаимодействие. Есть у кого-нибудь опыт прикручивания именно Киви кошелька к биллингу? |
Автор: | romaniozi [ 07 ноя 2011, 13:17 ] |
Заголовок сообщения: | Re: Скрипт взаимодействия с QIWI |
crez писал(а): Заключили договор с 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" ?> А как это все работает? |
Автор: | snark [ 07 ноя 2011, 20:15 ] |
Заголовок сообщения: | Re: Скрипт взаимодействия с QIWI |
Используйте mps, т.к. скрипт - это бооольшой такой костыль, не в обиду автору будет сказано. |
Автор: | crez [ 08 ноя 2011, 12:29 ] |
Заголовок сообщения: | Re: Скрипт взаимодействия с QIWI |
А совсем и не в обиду ![]() Сами уже модуль MPS купили и через него настроили - намного проще ![]() |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |