BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 21 июн 2025, 05:06

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Скрипт взаимодействия с QIWI
СообщениеДобавлено: 06 окт 2011, 11:27 
Не в сети
Клиент

Зарегистрирован: 02 дек 2009, 12:28
Сообщения: 93
Откуда: Ленинградская обл.
Карма: 5
Заключили договор с 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"
?>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Скрипт взаимодействия с QIWI
СообщениеДобавлено: 06 окт 2011, 11:34 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
а MPS модуль? :)

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Скрипт взаимодействия с QIWI
СообщениеДобавлено: 06 окт 2011, 11:51 
Не в сети
Клиент

Зарегистрирован: 02 дек 2009, 12:28
Сообщения: 93
Откуда: Ленинградская обл.
Карма: 5
А нету у нас такого модуля :shock:
Сейчас бегло просмотрел документацию по нему... Похоже, QIWI туда тоже можно прикрутить. Надо шефу заказать покупку, да попробовать :)

Кстати, ни на форуме, ни в wiki не нашел информации по платежам через QIWI, когда понадобилось стыковать, поэтому и стал выдумывать (велосипед) способ взаимодействия :)
Но скрипт работает :lol:


Последний раз редактировалось crez 06 окт 2011, 11:54, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Скрипт взаимодействия с QIWI
СообщениеДобавлено: 06 окт 2011, 11:52 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Вообще-то модуль MPS и отвечает за платежи через платежные системы :D
Сверки с ними и т.п.

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Скрипт взаимодействия с QIWI
СообщениеДобавлено: 06 окт 2011, 12:24 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
crez писал(а):
Кстати, ни на форуме, ни в wiki не нашел информации по платежам через QIWI, когда понадобилось стыковать, поэтому и стал выдумывать (велосипед) способ взаимодействия :)

http://www.bgbilling.ru/v5.1/doc/ch17s02s01.html
ЕМНИМС, QIWI есть ОСМП.
Один куплен другим. Ну или если быть точным - работает по протоколу osmp. Что-то вроде этого

777 сообщений :lol:

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Скрипт взаимодействия с QIWI
СообщениеДобавлено: 12 окт 2011, 20:36 
Не в сети

Зарегистрирован: 10 мар 2011, 13:10
Сообщения: 122
Откуда: Одинцово
Карма: 0
А работа с ОСМП и Киви кошельком это одно и то же?
У меня создалось впечатление, что для "новичков", которые заключили договор не с ОСМП (который шлёт данные в биллинг по определённому протоколу), а с Киви кошельком модуль MPS не подходит. Я во всяком случае так и не понял, как можно настроить это взаимодействие. Есть у кого-нибудь опыт прикручивания именно Киви кошелька к биллингу?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Скрипт взаимодействия с QIWI
СообщениеДобавлено: 07 ноя 2011, 13:17 
Не в сети

Зарегистрирован: 15 июн 2011, 13:33
Сообщения: 29
Карма: 0
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"
?>



А как это все работает?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Скрипт взаимодействия с QIWI
СообщениеДобавлено: 07 ноя 2011, 20:15 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
Используйте mps, т.к. скрипт - это бооольшой такой костыль, не в обиду автору будет сказано.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Скрипт взаимодействия с QIWI
СообщениеДобавлено: 08 ноя 2011, 12:29 
Не в сети
Клиент

Зарегистрирован: 02 дек 2009, 12:28
Сообщения: 93
Откуда: Ленинградская обл.
Карма: 5
А совсем и не в обиду :)
Сами уже модуль MPS купили и через него настроили - намного проще :)


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
POWERED_BY
Русская поддержка phpBB
[ Time : 0.064s | 35 Queries | GZIP : On ]