Скрипты приема платежей - обмен :)
все работает через текущий функционал без дополнительных модулей. не знаю как с модулем за деньги, но для одного из осмпшных дилеров чуток совсем надо было переделать скрипт - другие коды xml и немного другие результаты. да и базу osmp надо создать отдельно с таблицей которая встречается в скрипте osmp. тут просто всплывал вопрос такой. отдельные настройки - метод платежа, логин и пароль, сервер, авто включение интернета после платежа прописываются в utm5_payment_tool.cfg
-
- Сообщения: 309
- Зарегистрирован: Сб апр 16, 2005 11:44
Базовый модуль - это у них отдельное приложение, которое висит в памяти параллельно с биллингом. У него есть своя "особенная" админка. Чтобы все заработало, надо купить этот "базовый" модуль и к нему уже, собственно, модуль нужной платежной системы за 9000. Тогда все заработает. Без базового - не заработает.Нафаня писал(а):Нахрена тогда базовый модуль за 3000 р ) ?
Если через этот скрипт будут поступать деньги то отчеты по платежам тоже самопальные делать?
-
- Сообщения: 309
- Зарегистрирован: Сб апр 16, 2005 11:44
Если использовать скрипт, который выше, то вам ничего кроме него (скрипта) не нужно.Нафаня писал(а):Базовый купили.
Я у тому если все через скрипт делается в примере выше. через базу osmp.temp зачем тогда этот модуль? я Имею в виду - Зачем моджуль если юзать эту граблю выше?
Что не будет работать утилита паймент туул?
Добрый день всем.
Решили тоже подключить прием платежей, был выбран SprintNET
Оказалось что есть готовый скрипт, это отлично , большое спасибо за это автору "dAverk"
Но сейчас возникла проблема с его установкой. Может ли кто то пояснить куда скрипт нужно положить, что еще сделать , создать таблицы или БД, еще какие то манипуляции выполнить что бы все заработало.
Решили тоже подключить прием платежей, был выбран SprintNET
Оказалось что есть готовый скрипт, это отлично , большое спасибо за это автору "dAverk"
Но сейчас возникла проблема с его установкой. Может ли кто то пояснить куда скрипт нужно положить, что еще сделать , создать таблицы или БД, еще какие то манипуляции выполнить что бы все заработало.
Кто-нибудь ставил у себя скрипт для ОСМП, помогите настроить. Скрипт в 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 поделитесь если не жалко.
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 поделитесь если не жалко.
Код: Выделить всё
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)


Собственно тот же скрипт приема платежей ОСМП, account=login
Код: Выделить всё
<?
header("Content-type: text/xml");
$TEMPLATE["XML_CHECK"] = <<<EOF
<?xml version="1.0" encoding="UTF-8"?>
<response>
<osmp_txn_id>[OSMP_TXN_ID]</osmp_txn_id>
<result>[RESULT]</result>
<comment>[COMMENT]</comment>
</response>
EOF;
$TEMPLATE["XML_PAY"] = <<<EOF
<?xml version="1.0" encoding="UTF-8"?>
<response>
<osmp_txn_id>[OSMP_TXN_ID]</osmp_txn_id>
<prv_txn>[PRV_TXN]</prv_txn>
<sum>[SUM]</sum>
<result>[RESULT]</result>
<comment>[COMMENT]</comment>
</response>
EOF;
$mysql_hostname = " ";
$mysql_user = " ";
$mysql_password = " ";
$mysql_database = " ";
$datenow=date("d:m:y G:i:s");
function fileopen($str)
{
$file = fopen ("/tmp/utm5_osmp.log","a-");
fputs ( $file, $str); fclose ($file);
};
$command=$_GET["command"];
if ($command == "check"){
$txn_id=$_GET["txn_id"];
$user_account=$_GET["account"];
$sum=$_GET["sum"];
if (eregi ("(^[0-9]{1,20}$)", $txn_id)) {
if (eregi ("(^[_A-Za-z0-9-]{1,20}$)", $user_account)) {
if (eregi ("(^[0-9]{1,6})([.])([0-9]{1,6}$)", $sum)) {
$bd = @mysql_connect($mysql_hostname, $mysql_user, $mysql_password);
if ($bd){
mysql_select_db($mysql_database, $bd);
$sql_user1 = mysql_query("SELECT basic_account from users where login = '$user_account'");
$data_user1 = mysql_fetch_array($sql_user1, MYSQL_ASSOC);
$account=$data_user1["basic_account"];
$sql = mysql_query("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");
$data = mysql_fetch_array($sql, MYSQL_ASSOC);
$basic_account=$data["basic_account"];
$balance=$data["balance"];
$credit=$data["credit"];
$is_blocked=$data["is_blocked"];
if ($basic_account == "") { $result="5"; $comment="Personal account not found";
fileopen("$datenow Account $account not found!\n");
}
if ($basic_account != "") {
$result="0"; $comment="Personal account found";
fileopen("$datenow Account $account is found!\n");}
} elseif(!$bd) {
$result="1"; $comment="Database not accessed";
fileopen("$datenow Database not accessed\n");
}
} else {$result="300"; $comment="Incorrent format of sum";
fileopen("$datenow Incorrent format of sum\n");}
} else {$result="300"; $comment="Incorrent format of account";
fileopen("$datenow Incorrent format of account\n");}
} else {$result="300"; $comment="Incorrent format of txn_id";
fileopen("$datenow Incorrent format of txn_id\n");}
}
if ($command == "pay"){
$bd = @mysql_connect($mysql_hostname, $mysql_user, $mysql_password);
$txn_id=$_GET["txn_id"];
$txn_date=$_GET["txn_date"];
$user_account=$_GET["account"];
$sum=$_GET["sum"];
if (eregi ("(^[0-9]{1,20}$)", $txn_id)) {
if (eregi ("(^[_A-Za-z0-9-]{1,20}$)", $user_account)) {
if (eregi ("(^[0-9]{1,6})([.])([0-9]{1,6}$)", $sum)) {
if (ereg ("^([0-9]{4})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})$", $txn_date, $regs)) {
if ($bd){
mysql_select_db($mysql_database, $bd);
$year=$regs[1];
$month=$regs[2];
$day=$regs[3];
$hour=$regs[4];
$min=$regs[5];
$sec=$regs[6];
$bdate=mktime($hour,$min,$sec,$month,$day,$year);
$sqlchk = mysql_query("SELECT `txn_id` , `check` FROM osmp.temp WHERE txn_id = '$txn_id' and `check` != '1' LIMIT 1");
$datachk = mysql_fetch_array($sqlchk, MYSQL_ASSOC);
$payment_ext_number=$datachk["txn_id"];
if ($payment_ext_number != $txn_id){
$eedata = "OSMP$txn_id";
$sql_user2 = mysql_query("SELECT basic_account from users where login = '$user_account'");
$data_user2 = mysql_fetch_array($sql_user2, MYSQL_ASSOC);
$account=$data_user2["basic_account"];
exec("/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");
$sqlchk2 = mysql_query("SELECT payment_ext_number FROM UTM5.payment_transactions WHERE payment_ext_number = '$eedata' and is_canceled != '1' LIMIT 1");
$datachk2 = mysql_fetch_array($sqlchk2, MYSQL_ASSOC);
$payment_ext_number2=$datachk2["payment_ext_number"];
if ($payment_ext_number2 == $eedata){
mysql_query("INSERT INTO osmp.temp (`txn_id`, `account`, `sum`, `check`) VALUES ('$txn_id', '$account', '$sum', '0')");
$prv_txn=mysql_insert_id();
$result="0"; $comment="Payment recieved";
fileopen("$datenow Payment for $account recieved $sum roubles\n");
} elseif ($payment_ext_number2 != $txn_id){
$result="5"; $comment="Payment account not found";
fileopen("$datenow Payment account $account not found\n");
}
} elseif ($payment_ext_number == $txn_id){
$sql2 = mysql_query("SELECT `id`, `txn_id`, `account`, `sum` FROM osmp.temp where txn_id = '$txn_id' and `check`!=1 LIMIT 1");
$data2=mysql_fetch_array($sql2, MYSQL_ASSOC);
$prv_txn=$data2["id"];
$result=$data2["txn_id"];
$account=$data2["account"];
$sum=$data2["sum"];
$result="0"; $comment="Payment with this txn_id alredy recieved";
fileopen("$datenow Payment with this txn_id alredy recieved\n");
}
} elseif(!$bd) {
$result="1"; $comment="Database not accessed";
fileopen("$datenow Database not accessed\n");
}
} else { $result="300"; $comment="Incorrent format of txn_date";
fileopen("$datenow Incorrent format of txn_date\n");}
} else { $result="300"; $comment="Incorrent format of sum";
fileopen("$datenow Incorrent format of sum\n");}
} else { $result="300"; $comment="Incorrent format of account";
fileopen("$datenow Incorrent format of account\n");}
} else { $result="300"; $comment="Incorrent format of txn_id";
fileopen("$datenow Incorrent format of txn_id\n");}
}
if($command != "check" && $command != "pay"){
$result="300"; $comment="Incorrect command request";
fileopen("$datenow Incorrect request\n");
}
if ($command == "check"){
$replace = array("[RESULT]" => $result, "[OSMP_TXN_ID]" => $txn_id, "[COMMENT]" => $comment); echo strtr($TEMPLATE["XML_CHECK"],$replace);
}
if ($command == "pay"){
$replace = array("[RESULT]" => $result, "[OSMP_TXN_ID]" => $txn_id, "[COMMENT]" => $comment, "[PRV_TXN]" => $prv_txn, "[SUM]" => $sum); echo strtr($TEMPLATE["XML_PAY"],$replace);
}
if ($command != "pay" && $command != "check"){
$replace = array("[RESULT]" => $result, "[OSMP_TXN_ID]" => $txn_id, "[COMMENT]" => $comment); echo strtr($TEMPLATE["XML_CHECK"],$replace);
}
?>
-
- Сообщения: 29
- Зарегистрирован: Пн янв 02, 2012 13:47