Скрипты приема платежей - обмен :)

Технические вопросы по UTM 5.0
lknsfos
Сообщения: 24
Зарегистрирован: Чт дек 17, 2009 09:53

Сообщение lknsfos »

все работает через текущий функционал без дополнительных модулей. не знаю как с модулем за деньги, но для одного из осмпшных дилеров чуток совсем надо было переделать скрипт - другие коды xml и немного другие результаты. да и базу osmp надо создать отдельно с таблицей которая встречается в скрипте osmp. тут просто всплывал вопрос такой. отдельные настройки - метод платежа, логин и пароль, сервер, авто включение интернета после платежа прописываются в utm5_payment_tool.cfg

Аватара пользователя
Нафаня
Сообщения: 130
Зарегистрирован: Пн июн 09, 2008 11:12

Сообщение Нафаня »

Нахрена тогда базовый модуль за 3000 р ) ?
Если через этот скрипт будут поступать деньги то отчеты по платежам тоже самопальные делать?

Wishmaster
Сообщения: 309
Зарегистрирован: Сб апр 16, 2005 11:44

Сообщение Wishmaster »

Нафаня писал(а):Нахрена тогда базовый модуль за 3000 р ) ?
Если через этот скрипт будут поступать деньги то отчеты по платежам тоже самопальные делать?
Базовый модуль - это у них отдельное приложение, которое висит в памяти параллельно с биллингом. У него есть своя "особенная" админка. Чтобы все заработало, надо купить этот "базовый" модуль и к нему уже, собственно, модуль нужной платежной системы за 9000. Тогда все заработает. Без базового - не заработает.

Аватара пользователя
Нафаня
Сообщения: 130
Зарегистрирован: Пн июн 09, 2008 11:12

Сообщение Нафаня »

Базовый купили.
Я у тому если все через скрипт делается в примере выше. через базу osmp.temp зачем тогда этот модуль? я Имею в виду - Зачем моджуль если юзать эту граблю выше?
Что не будет работать утилита паймент туул?

Wishmaster
Сообщения: 309
Зарегистрирован: Сб апр 16, 2005 11:44

Сообщение Wishmaster »

Нафаня писал(а):Базовый купили.
Я у тому если все через скрипт делается в примере выше. через базу osmp.temp зачем тогда этот модуль? я Имею в виду - Зачем моджуль если юзать эту граблю выше?
Что не будет работать утилита паймент туул?
Если использовать скрипт, который выше, то вам ничего кроме него (скрипта) не нужно.

ledsky
Сообщения: 7
Зарегистрирован: Пт авг 31, 2007 10:03

Сообщение ledsky »

Добрый день всем.
Решили тоже подключить прием платежей, был выбран SprintNET
Оказалось что есть готовый скрипт, это отлично , большое спасибо за это автору "dAverk"
Но сейчас возникла проблема с его установкой. Может ли кто то пояснить куда скрипт нужно положить, что еще сделать , создать таблицы или БД, еще какие то манипуляции выполнить что бы все заработало.

dAverk
Сообщения: 43
Зарегистрирован: Сб июн 09, 2007 18:23

Сообщение dAverk »

Судя по дате ответа и тому, что больше не было вопросов - всё решилось :)
Я сейчас с UTM не связан, поэтому на форуме бываю редко. Если что от меня надо будет - писать на почту мой_ник/шавка/почта_гугель_точка_ком

Аватара пользователя
торопыга
Сообщения: 61
Зарегистрирован: Пн ноя 01, 2010 12:06

Сообщение торопыга »

Кто-нибудь ставил у себя скрипт для ОСМП, помогите настроить. Скрипт в apache закинул, все конфиги поправил, при вводе запроса типа:
http://stat.ёпрстнет.ru/payment/payment.php?command=pay&txn_id=osmp&account=385&sum=1.00
в браузере ошибка 500, в httpd-error.log :
Premature end of script headers: payment.php
(8)Exec format error: exec of '/usr/local/www/payment/payment.php' failed

Или если есть у кого рабочий скрипт для ОСМП с использованием payment_tool поделитесь если не жалко.

dAverk
Сообщения: 43
Зарегистрирован: Сб июн 09, 2007 18:23

Сообщение dAverk »

Первый скрипт полностью рабочий. Если ещё есть вопросы - пиши
ЗЫ некрофилия!

Аватара пользователя
торопыга
Сообщения: 61
Зарегистрирован: Пн ноя 01, 2010 12:06

Сообщение торопыга »

Да действительно все работает, как всегда кривые руки и спешка. Проблема была в не верно созданной таблице osmp.temp. Правда немного переделал скрипт под себя. Отдельное спасибо dAverk и gtk.

dAverk
Сообщения: 43
Зарегистрирован: Сб июн 09, 2007 18:23

Сообщение dAverk »

Код: Выделить всё

mysql> show create table osmp.temp;
+-------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                                                                                                                             |
+-------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| temp  | CREATE TABLE `temp` (
  `txn_id` varchar(20) default NULL,
  `account` varchar(20) default NULL,
  `sum` decimal(10,2) default NULL,
  `check` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 | 
+-------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.02 sec)
Да и просьба друзья: Если вы делали переделки (функционально расширенные, а не просто переименования переменных :D) на базе наших скриптов (при проверенной работоспособности :)) - выкладывайте их тоже с комментариями - может кому-то тоже пригодятся.

Point
Сообщения: 242
Зарегистрирован: Вт ноя 23, 2010 15:42

Сообщение Point »

Собственно тот же скрипт приема платежей ОСМП, account=login

Код: Выделить всё

<?
header&#40;"Content-type&#58; text/xml"&#41;;

$TEMPLATE&#91;"XML_CHECK"&#93; = <<<EOF
<?xml version="1.0" encoding="UTF-8"?>
<response>
<osmp_txn_id>&#91;OSMP_TXN_ID&#93;</osmp_txn_id>
<result>&#91;RESULT&#93;</result>
<comment>&#91;COMMENT&#93;</comment>
</response>
EOF;

$TEMPLATE&#91;"XML_PAY"&#93; = <<<EOF
<?xml version="1.0" encoding="UTF-8"?>
<response>
<osmp_txn_id>&#91;OSMP_TXN_ID&#93;</osmp_txn_id>
<prv_txn>&#91;PRV_TXN&#93;</prv_txn>
<sum>&#91;SUM&#93;</sum>
<result>&#91;RESULT&#93;</result>
<comment>&#91;COMMENT&#93;</comment>
</response>
EOF;

$mysql_hostname = "  ";
$mysql_user = "  ";
$mysql_password = "  ";
$mysql_database = "  ";

$datenow=date&#40;"d&#58;m&#58;y G&#58;i&#58;s"&#41;;

function fileopen&#40;$str&#41;
&#123;
  $file = fopen &#40;"/tmp/utm5_osmp.log","a-"&#41;;
  fputs &#40; $file, $str&#41;; fclose &#40;$file&#41;;
&#125;;

$command=$_GET&#91;"command"&#93;;

if &#40;$command == "check"&#41;&#123;
   $txn_id=$_GET&#91;"txn_id"&#93;;
   $user_account=$_GET&#91;"account"&#93;;
   $sum=$_GET&#91;"sum"&#93;;

   if &#40;eregi &#40;"&#40;^&#91;0-9&#93;&#123;1,20&#125;$&#41;", $txn_id&#41;&#41; &#123;
   if &#40;eregi &#40;"&#40;^&#91;_A-Za-z0-9-&#93;&#123;1,20&#125;$&#41;", $user_account&#41;&#41; &#123;
   if &#40;eregi &#40;"&#40;^&#91;0-9&#93;&#123;1,6&#125;&#41;&#40;&#91;.&#93;&#41;&#40;&#91;0-9&#93;&#123;1,6&#125;$&#41;", $sum&#41;&#41; &#123;
   $bd = @mysql_connect&#40;$mysql_hostname, $mysql_user, $mysql_password&#41;;

if &#40;$bd&#41;&#123;
   mysql_select_db&#40;$mysql_database, $bd&#41;;
   $sql_user1 = mysql_query&#40;"SELECT basic_account from users where login = '$user_account'"&#41;;
   $data_user1 = mysql_fetch_array&#40;$sql_user1, MYSQL_ASSOC&#41;;
   $account=$data_user1&#91;"basic_account"&#93;;
   $sql = mysql_query&#40;"SELECT users.basic_account, accounts.balance, accounts.credit, accounts.is_blocked FROM users LEFT JOIN accounts ON accounts.id=users.basic_account where users.basic_account = '$account' and users.is_deleted!=1"&#41;;
   $data = mysql_fetch_array&#40;$sql, MYSQL_ASSOC&#41;;
   $basic_account=$data&#91;"basic_account"&#93;;
   $balance=$data&#91;"balance"&#93;;
   $credit=$data&#91;"credit"&#93;;
   $is_blocked=$data&#91;"is_blocked"&#93;;

if &#40;$basic_account == ""&#41; &#123; $result="5"; $comment="Personal account not found";
   fileopen&#40;"$datenow Account $account not found!\n"&#41;;
   &#125;

if &#40;$basic_account != ""&#41; &#123;
   $result="0"; $comment="Personal account found";
   fileopen&#40;"$datenow Account $account is found!\n"&#41;;&#125;

   &#125; elseif&#40;!$bd&#41; &#123;
      $result="1"; $comment="Database not accessed";
      fileopen&#40;"$datenow Database not accessed\n"&#41;;
         &#125;

   &#125; else &#123;$result="300"; $comment="Incorrent format of sum";
                fileopen&#40;"$datenow Incorrent format of sum\n"&#41;;&#125;
   &#125; else &#123;$result="300"; $comment="Incorrent format of account";
                fileopen&#40;"$datenow Incorrent format of account\n"&#41;;&#125;
   &#125; else &#123;$result="300"; $comment="Incorrent format of txn_id";
                fileopen&#40;"$datenow Incorrent format of txn_id\n"&#41;;&#125;
&#125;


if &#40;$command == "pay"&#41;&#123;
   $bd = @mysql_connect&#40;$mysql_hostname, $mysql_user, $mysql_password&#41;;
   $txn_id=$_GET&#91;"txn_id"&#93;;
   $txn_date=$_GET&#91;"txn_date"&#93;;
   $user_account=$_GET&#91;"account"&#93;;
   $sum=$_GET&#91;"sum"&#93;;

   if &#40;eregi &#40;"&#40;^&#91;0-9&#93;&#123;1,20&#125;$&#41;", $txn_id&#41;&#41; &#123;
   if &#40;eregi &#40;"&#40;^&#91;_A-Za-z0-9-&#93;&#123;1,20&#125;$&#41;", $user_account&#41;&#41; &#123;
   if &#40;eregi &#40;"&#40;^&#91;0-9&#93;&#123;1,6&#125;&#41;&#40;&#91;.&#93;&#41;&#40;&#91;0-9&#93;&#123;1,6&#125;$&#41;", $sum&#41;&#41; &#123;
   if &#40;ereg &#40;"^&#40;&#91;0-9&#93;&#123;4&#125;&#41;&#40;&#91;0-9&#93;&#123;2&#125;&#41;&#40;&#91;0-9&#93;&#123;2&#125;&#41;&#40;&#91;0-9&#93;&#123;2&#125;&#41;&#40;&#91;0-9&#93;&#123;2&#125;&#41;&#40;&#91;0-9&#93;&#123;2&#125;&#41;$", $txn_date, $regs&#41;&#41; &#123;

if &#40;$bd&#41;&#123;
mysql_select_db&#40;$mysql_database, $bd&#41;;

   $year=$regs&#91;1&#93;;
   $month=$regs&#91;2&#93;;
   $day=$regs&#91;3&#93;;
   $hour=$regs&#91;4&#93;;
   $min=$regs&#91;5&#93;;
   $sec=$regs&#91;6&#93;;
   $bdate=mktime&#40;$hour,$min,$sec,$month,$day,$year&#41;;

   $sqlchk = mysql_query&#40;"SELECT `txn_id` , `check` FROM osmp.temp WHERE txn_id = '$txn_id' and `check` != '1' LIMIT 1"&#41;;
   $datachk = mysql_fetch_array&#40;$sqlchk, MYSQL_ASSOC&#41;;
   $payment_ext_number=$datachk&#91;"txn_id"&#93;;

if &#40;$payment_ext_number != $txn_id&#41;&#123;
   $eedata = "OSMP$txn_id";
   $sql_user2 = mysql_query&#40;"SELECT basic_account from users where login = '$user_account'"&#41;;
   $data_user2 = mysql_fetch_array&#40;$sql_user2, MYSQL_ASSOC&#41;;
   $account=$data_user2&#91;"basic_account"&#93;;
   exec&#40;"/netup/utm5/bin/utm5_payment_tool -h 127.0.0.1 -P 11758 -l init -p init -b ".$sum." -a ".$account." -L 'Recieved from OSMP $sum' -k 'Recieved from OSMP $sum' -e ".$eedata." -t ".$bdate." -i"&#41;;
   $sqlchk2 = mysql_query&#40;"SELECT payment_ext_number FROM UTM5.payment_transactions WHERE payment_ext_number = '$eedata' and is_canceled != '1' LIMIT 1"&#41;;
   $datachk2 = mysql_fetch_array&#40;$sqlchk2, MYSQL_ASSOC&#41;;
   $payment_ext_number2=$datachk2&#91;"payment_ext_number"&#93;;

if &#40;$payment_ext_number2 == $eedata&#41;&#123;
   mysql_query&#40;"INSERT INTO osmp.temp &#40;`txn_id`, `account`, `sum`, `check`&#41; VALUES &#40;'$txn_id', '$account', '$sum', '0'&#41;"&#41;;
   $prv_txn=mysql_insert_id&#40;&#41;;
   $result="0"; $comment="Payment recieved";
   fileopen&#40;"$datenow Payment for $account recieved $sum roubles\n"&#41;;
      &#125; elseif &#40;$payment_ext_number2 != $txn_id&#41;&#123;
   $result="5"; $comment="Payment account not found";
   fileopen&#40;"$datenow Payment account $account not found\n"&#41;;
   &#125;
   &#125; elseif &#40;$payment_ext_number == $txn_id&#41;&#123;
   $sql2 = mysql_query&#40;"SELECT `id`, `txn_id`, `account`, `sum` FROM osmp.temp where txn_id = '$txn_id' and `check`!=1 LIMIT 1"&#41;;
   $data2=mysql_fetch_array&#40;$sql2, MYSQL_ASSOC&#41;;
   $prv_txn=$data2&#91;"id"&#93;;
   $result=$data2&#91;"txn_id"&#93;;
   $account=$data2&#91;"account"&#93;;
   $sum=$data2&#91;"sum"&#93;;
   $result="0"; $comment="Payment with this txn_id alredy recieved";
   fileopen&#40;"$datenow Payment with this txn_id alredy recieved\n"&#41;;
   &#125;
   &#125; elseif&#40;!$bd&#41; &#123;
                $result="1"; $comment="Database not accessed";
      fileopen&#40;"$datenow Database not accessed\n"&#41;;
                        &#125;

   &#125; else &#123; $result="300"; $comment="Incorrent format of txn_date";
      fileopen&#40;"$datenow Incorrent format of txn_date\n"&#41;;&#125;
   &#125; else &#123; $result="300"; $comment="Incorrent format of sum";
                fileopen&#40;"$datenow Incorrent format of sum\n"&#41;;&#125;
   &#125; else &#123; $result="300"; $comment="Incorrent format of account";
      fileopen&#40;"$datenow Incorrent format of account\n"&#41;;&#125;
   &#125; else &#123; $result="300"; $comment="Incorrent format of txn_id";
      fileopen&#40;"$datenow Incorrent format of txn_id\n"&#41;;&#125;
                &#125;

if&#40;$command != "check" && $command != "pay"&#41;&#123;
   $result="300"; $comment="Incorrect command request";
   fileopen&#40;"$datenow Incorrect request\n"&#41;;
                  &#125;

if &#40;$command == "check"&#41;&#123;
$replace = array&#40;"&#91;RESULT&#93;" => $result, "&#91;OSMP_TXN_ID&#93;" => $txn_id, "&#91;COMMENT&#93;" => $comment&#41;; echo strtr&#40;$TEMPLATE&#91;"XML_CHECK"&#93;,$replace&#41;;
         &#125;

if &#40;$command == "pay"&#41;&#123;
$replace = array&#40;"&#91;RESULT&#93;" => $result, "&#91;OSMP_TXN_ID&#93;" => $txn_id, "&#91;COMMENT&#93;" => $comment, "&#91;PRV_TXN&#93;" => $prv_txn, "&#91;SUM&#93;" => $sum&#41;; echo strtr&#40;$TEMPLATE&#91;"XML_PAY"&#93;,$replace&#41;;
                        &#125;

if &#40;$command != "pay" && $command != "check"&#41;&#123;


$replace = array&#40;"&#91;RESULT&#93;" => $result, "&#91;OSMP_TXN_ID&#93;" => $txn_id, "&#91;COMMENT&#93;" => $comment&#41;; echo strtr&#40;$TEMPLATE&#91;"XML_CHECK"&#93;,$replace&#41;;
                        &#125;

?>

WebTelecom
Сообщения: 29
Зарегистрирован: Пн янв 02, 2012 13:47

Сообщение WebTelecom »

Point доп. база нужна для этого скрипта?

Аватара пользователя
торопыга
Сообщения: 61
Зарегистрирован: Пн ноя 01, 2010 12:06

Сообщение торопыга »

Да, просто через этот скрипт платеж вносится не по лицевому счету, а по логину клиента.

playmp3
Сообщения: 11
Зарегистрирован: Пт июл 02, 2010 18:05

Сообщение playmp3 »

Если две системы приема платежи как реализовать ?

Ответить