http://robokassa.ru

Каждый топик здесь посвящен конкретной библиотеке или наработкам конкретного проекта

http://robokassa.ru

Сообщение evil63 » 11 май 2009, 18:54

http://robokassa.ru
Код: Выделить всё

<?php

class Robokassa
{
    //>Public Section
    public $login;
    
    function __construct
($login = null, $password1 = null, $password2 = null)
    {
        $this->init($login, $password1, $password2);
    }
    
    function init
($login, $password1, $password2)
    {
        $this->login = $login;
        $this->password1 = $password1;
        $this->password2 = $password2;
    }
    
    function getJsForm
($summa, $idOrder, $idItem, $itemDesc, $encoding = 'utf-8', $currency = 'PCR', $language = 'ru')
    {
        return
        
'<script language=JavaScript '.
        'src="https://www.roboxchange.com/mrh_summpreview.asp?'.
        'MrchLogin='.$this->login.
        '&OutSum='.$summa.
        '&InvId='.$idOrder.
        '&IncCurrLabel='.$currency.
        '&Desc='.$itemDesc.
        '&SignatureValue='.$this->createCrc($summa, $idOrder, $idItem).
        '&Shp_item='.$idItem.
        '&Culture='.$language.
        '&Encoding='.$encoding.
        '"></script>';
    }
    
    function createCrc
($summa, $idOrder, $idItem)
    {
        $crc = 
            $this
->login.':'.
            $summa.':'.
            $idOrder.':'.
            $this->password1.
            ':Shp_item='.$idItem;
        return md5($crc);
    }
    
    
// get status
    function is_payed()
    {
        return $this->_check_crc($this->password1);
    }
    function is_ordered()
    {
        return $this->_check_crc($this->password2);
    }
    
    
// get params
    function getSumma()
    {
        return @$_REQUEST["OutSum"];
    }
    function getIdOrder()
    {
        return @$_REQUEST["InvId"];
    }
    function getIdItem()
    {
        return @$_REQUEST["Shp_item"];
    }
    function getCrc()
    {
        return @$_REQUEST["SignatureValue"];
    }
    
    
//>Private Section
    private $password1;
    private $password2;
    
    private function _check_crc
($password)
    {
        $summa = $this->getSumma();
        $idOrder = $this->getIdOrder();
        $idItem = $this->getIdItem();
        $crc = $this->getCrc();

        $crc = strtoupper($crc);

        $my_crc = $summa.':'.$idOrder.':'.$password.':Shp_item='.$idItem;
        $my_crc = strtoupper(md5($my_crc));
        
        return 
($my_crc == $crc)?true:false;
    }
        
}

?>

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

<?php

class Paying extends Controller
{
    function Paying()
    {
        parent::Controller();
        $this->load->library('Robokassa');
        $this->robokassa->init('login', 'password1', 'password2');
    }

    function index()
    {
        $idItem = '19889'; // уникальный номер товарa
        $summa = '5.96'; // стоимость товара
        $itemDesc = 'Описание товара';
        // уникальный номер заказа
        $idOrder = $this->PayModel->createOrder($summa, $idItem); 

        echo $this
->robokassa->getJsForm($summa, $idOrder, $idItem, $itemDesc);
    }

    function order()
    {
        if (!$this->robokassa->is_ordered())
        {
            die("bad sign\n");
        }
        
$idOrder $this->robokassa->getIdOrder();
        echo "Заказ №: $idOrder оплачивается...\n";
    }

    function success()
    {
        if (!$this->robokassa->is_payed())
        {
            die("bad sign\n");
        }
        $idOrder = $this->robokassa->getIdOrder();
        $summa = $this->robokassa->getSumma();
        echo "Заказ №: $idOrder на сумму $summa успешно оплачен.\n";
    }

    function fail()
    {
        $idOrder = $this->robokassa->getIdOrder();
        echo "Вы отказались от оплаты. Заказ №: $idOrder\n";
    }
}

?>
evil63
 
Сообщения: 43
Зарегистрирован: 08 апр 2009, 09:15

Re: http://robokassa.ru

Сообщение sshz » 12 май 2009, 06:33

Молодец! Надо в wiki.
sshz
 
Сообщения: 50
Зарегистрирован: 09 янв 2009, 08:59

Re: http://robokassa.ru

Сообщение kosenka » 12 май 2009, 07:58

а по qiwi будет интересно? хотя либу видел здесь: http://habrahabr.ru/blogs/eCommerce/52083/ , но там пример для cakephp.
p.s. у меня прием платежей с qiwi работает уже с января 2009
Аватара пользователя
kosenka
 
Сообщения: 59
Зарегистрирован: 07 ноя 2008, 04:13

Re: http://robokassa.ru

Сообщение evil63 » 12 май 2009, 10:25

kosenka писал(а):а по qiwi будет интересно? хотя либу видел здесь: http://habrahabr.ru/blogs/eCommerce/52083/ , но там пример для cakephp.
p.s. у меня прием платежей с qiwi работает уже с января 2009

В робокассе вроде qiwi без комиссии присутствует.
evil63
 
Сообщения: 43
Зарегистрирован: 08 апр 2009, 09:15

Re: http://robokassa.ru

Сообщение sshz » 12 май 2009, 11:16

Насколько я помню робокасса за любые платежи берет минимальную 5% комиссию.
sshz
 
Сообщения: 50
Зарегистрирован: 09 янв 2009, 08:59

Re: http://robokassa.ru

Сообщение evil63 » 12 май 2009, 17:01

sshz писал(а):Насколько я помню робокасса за любые платежи берет минимальную 5% комиссию.

>>
Какая комиссия удерживается с клиентов магазина?

Такие валюты как:

Webmoney (WMR, WMZ)
Яндекс.Деньги
Moneymail
INOCard

принимаются без комиссии.
Также без комиссии можно оплатить в терминалах QIWI и банковскими картами.

Покупатель оплачивает только цену покупки, указанную на сайте магазина. Остальные электронные деньги принимаются с комиссией за конвертацию (в среднем она составляет 4-5%). Актуальные курсы конвертации клиент увидит в форме оплаты перед совершением транзакции.
<<
Правда для юр. лиц. Крче надо закругляться, а то я тут прям как рекламный агент какой то.
evil63
 
Сообщения: 43
Зарегистрирован: 08 апр 2009, 09:15

Re: http://robokassa.ru

Сообщение seocoder » 14 май 2009, 21:46

а почему не проверяется реальная сумма которая оплачена? ;)
Аватара пользователя
seocoder
 
Сообщения: 65
Зарегистрирован: 02 фев 2009, 22:47

Re: http://robokassa.ru

Сообщение evil63 » 15 май 2009, 02:07

seocoder писал(а):а почему не проверяется реальная сумма которая оплачена? ;)

потому что пример. $this->robokassa->getSumma() и проверяй.
evil63
 
Сообщения: 43
Зарегистрирован: 08 апр 2009, 09:15

Re: http://robokassa.ru

Сообщение Nick0 » 29 сен 2009, 10:23

$idOrder = $this->PayModel->createOrder($summa, $idItem);
А вот это куда обращается а то он говрорит что не найдено , что это вообще такое ?
Fatal error: Call to a member function createOrder() on a non-object in C:\AppServ\www\cyber\system\application\controllers\Paying.php on line 17
Nick0
 
Сообщения: 31
Зарегистрирован: 29 сен 2009, 10:21

Re: http://robokassa.ru

Сообщение evil63 » 25 окт 2009, 08:55

Модель, которая отвечает за формирование и тд заказа. В данном случае создает заказ и возвращает его id.
evil63
 
Сообщения: 43
Зарегистрирован: 08 апр 2009, 09:15

Re: http://robokassa.ru

Сообщение Pr00f » 14 апр 2011, 16:08

Подскажите пожалуйста как ее установить. Мне нужно сделать пополнение баланса.

Возникли пара вопросов - что указывать в Result URL и Success URL?
Куда лучше поместить скрипт который будет добавлять баланс на счет в базе данных - в Result URL или Success URL? Или особой разницы нету?
И как проверить номера счетов если я их не устанавливаю вручную и они указываются автоматически?
Pr00f
 
Сообщения: 47
Зарегистрирован: 21 мар 2011, 18:04


Вернуться в Решения, авторский код и библиотеки

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

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