Регистрация
Регистрируясь, вы подтверждаете свое согласие с соглашением об использовании персональных данных.
Восстановление пароля

Внедрение платежной системы Robokassa в netcat

25.01.2012, 10:12
sparton
Шекера Евгений

Зарегистрирован:
2010-03-16
Сообщений: 141

Реально ли интегрировать?
Откуда начать?
25.01.2012, 11:35
resident
Веб-группа «Дабл Ю»

Зарегистрирован:
2005-01-10
Сообщений: 336

создать компонент платежи
пользователь указывает сумму, добавляет объект в базу
в действии после добавления форма для оплаты на робокассе с параметрами платежа (Message_ID в вашем компоненте)
создаете, например, макет для обработки платежей, ставите его в какой-либо раздел
настраиваете в robox адреса куда отправлять запросы, напимер,
/robox/?act=Success
/robox/?act=Fail
/robox/?act=Result
Код:

получение информации об оплате
if($_GET[act]=='Result') {
if(strtolower($_POST[SignatureValue])==md5("$_POST[OutSum]:$_POST[InvId]:$roboxkey2")) {
$db->query("UPDATE Message111 SET Status=6 WHERE FinalCost='".mysql_real_escape_string($_POST[OutSum])."' AND Message_ID=".($_POST[InvId]+0)."");
if($db->rows_affected) {
echo "OK".($_POST[InvId]+0)."";
//отправка письма менеджеру
$mailer = new CMIMEMail();
$from = $system_env['SpamFromEmail'];
$fromname = $system_env['SpamFromName'];
$manager_email = $system_env['SpamFromEmail'];

$mailinfo[body]="Заказ #".($_POST[InvId]+0)." оплачен ";
$mailinfo[subject]="Заказ #".($_POST[InvId]+0)." оплачен ";
$mailer->mailbody( strip_tags($mailinfo['body']), $mailinfo['html'] ? $mailinfo['body'] : "");
$mailer->send($manager_email, $from, $from, $mailinfo['subject'], $fromname);
}
}
die();
}

// информация для пользователя что платеж прошел
if($_GET[act]=='Success') {
if(strtolower($_POST[SignatureValue])==md5("$_POST[OutSum]:$_POST[InvId]:$roboxkey1")) {
$Status=$db->get_var("SELECT Status FROM Message111 WHERE Message_ID=".($_POST[InvId]+0)." ");
if($Status==6) {
echo "<h3>Заказ #".($_POST[InvId]+0)." на сумму ".($_POST[OutSum]+0)." рублей оплачен</h3>";
echo $nc_minishop->get_afterorder_text($_POST[InvId]+0);
}
else echo "<h3>Заказ #".($_POST[InvId]+0)." не оплачен, обратитесь к администратору</h3>";
}
}

// пользователь отказался от оплаты
if($_GET[act]=='Fail') {
if(strtolower($_POST[SignatureValue])==md5("$_POST[OutSum]:$_POST[InvId]:$roboxkey1")) {
$db->get_var("UPDATE Message111 SET Status=4 WHERE Message_ID=".($_POST[InvId]+0)." ");
echo "<h3>Отказ от оплаты заказа #".($_POST[InvId]+0)."</h3>";
}
}
25.01.2012, 11:39
resident
Веб-группа «Дабл Ю»

Зарегистрирован:
2005-01-10
Сообщений: 336

действие после добавления компонента с платежами

$mrh_login = "login";
$mrh_pass1 = "pass1";
$mrh_pass2 = "pass2";
$inv_id = $msgID; // номер заказа number of order
$inv_desc = urlencode("Oplata zakaza #$msgID na saite $_SERVER[HTTP_HOST]"); // описание заказа order description
$out_summ = listQuery("SELECT FinalCost FROM Message$classID WHERE Message_ID=$msgID","\$data[FinalCost]"); // сумма заказа sum of order
$encoding = "utf-8"; // кодировка encoding
$crc = md5("$mrh_login:$out_summ:$inv_id:$mrh_pass1"); // формирование подписи generate signature


<h3>Выберите способ оплаты</h3>
<script src=https://merchant.roboxchange.com/Handler/MrchSumPreview.ashx?MrchLogin=$mrh_login&OutSum=$out_summ&InvId=$inv_id&Desc=$inv_desc&SignatureValue=$crc></script>
28.01.2012, 02:42
sparton
Шекера Евгений

Зарегистрирован:
2010-03-16
Сообщений: 141

Спасибо за развернутый ответ!
198 196 2012-01-28 02:42:01 11852
Описание проекта