По робокассе, помогите с настройкой

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Аватара пользователя
Ghost_nsk
Сообщения: 825
Зарегистрирован: 2012.01.01, 00:45
Откуда: Новосибирск
Контактная информация:

По робокассе, помогите с настройкой

Сообщение Ghost_nsk »

товарищи, нашел на сайте замечательный компонент по подключению робокассы (автор RSol), находится здесь:
viewtopic.php?f=9&t=3696

малясь не врубаюсь, какие ссылки надо прописывать в настройках сервиса робокассы: Result URL, Success URL, Fail URL, чтобы нормально подвязаться с работой компонента. подскажите кто знает пжл :)
R3D3
Сообщения: 352
Зарегистрирован: 2010.04.11, 14:52

Re: По робокассе, помогите с настройкой

Сообщение R3D3 »

Если не ошибаюсь,

result url - это ссылка для апи сервиса робокассы, по которой происходит запрос с сервера робокассы, когда пользователь совершил платеж, с передачей контрольных параметров.

success url - это ссылка, по которой может (но не обязательно) перейти пользователь в случае успешного платежа.

fail url - ссылка по которой может перейти пользователь в случае ошибки при платеже.
Yii Jabber Conference: yii@conference.jabber.ru
Аватара пользователя
Ghost_nsk
Сообщения: 825
Зарегистрирован: 2012.01.01, 00:45
Откуда: Новосибирск
Контактная информация:

Re: По робокассе, помогите с настройкой

Сообщение Ghost_nsk »

R3D3 писал(а):Если не ошибаюсь,
result url - это ссылка для апи сервиса робокассы, по которой происходит запрос с сервера робокассы, когда пользователь совершил платеж, с передачей контрольных параметров.
success url - это ссылка, по которой может (но не обязательно) перейти пользователь в случае успешного платежа.
fail url - ссылка по которой может перейти пользователь в случае ошибки при платеже.
это я понял :), я не вкупаю как подвязать компонент к этим ссылкам :)
sck_v
Сообщения: 17
Зарегистрирован: 2012.02.02, 11:52

Re: По робокассе, помогите с настройкой

Сообщение sck_v »

В настройках робокассы(result, success, fail) прописываете пути к контроллеру расширения
Аватара пользователя
Ghost_nsk
Сообщения: 825
Зарегистрирован: 2012.01.01, 00:45
Откуда: Новосибирск
Контактная информация:

Re: По робокассе, помогите с настройкой

Сообщение Ghost_nsk »

sck_v писал(а):В настройках робокассы(result, success, fail) прописываете пути к контроллеру расширения
:) так я это и не могу понять как сделать, можно на примере
допустим, у нас робокасса лежит по адресу:
http://mysite.ru/user/pay

все 3 ссылки, должны быть http://mysite.ru/user/pay, или с каким-то параметром?
Аватара пользователя
RSol
Сообщения: 325
Зарегистрирован: 2010.05.07, 08:36
Откуда: Северодонецк, Украина
Контактная информация:

Re: По робокассе, помогите с настройкой

Сообщение RSol »

Привет!

Использование:
0. Копируем файлик в "ext.RC"

1. Подключаем его в конфиге:

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

'components'=>array(
...
'rc'=>array(
    'class'=>'ext.RC.RC',
    'sMerchantLogin'=>'',
    'sMerchantPass1'=>'',
    'sMerchantPass2'=>'',
    'sCulture' => 'ru',

    'resultMethod => 'post',
    'sIncCurrLabel' => 'QiwiR',
    'orderModel' => 'Order',
    'priceField'=>'price',
    'isTest' => false,

    'onSuccess'=>array('Order','Success'),
    'onFail'=>array('Order','Fail'),
),
...
),
2. Для перехода на платеж делаем

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

$amount = 100; //$
$orderId = 124;
$description = 'велосипед с зеркалом';
$clierntEmail = 'rewtrd@gmail.com';
Yii::app()->rc->pay($amount, $orderId,$description,$clierntEmail);
 
3. Для приема платежей в любом актионсе

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

Yii::app()->rc->result();
Yii::app()->end();
 
Именно этот актионс прописываем в конфиге робокассы.
При попадании на этот актионс срабатывают события, прописанные в конфиге.
Не забудьте, что:
- актионс должен быть доступен всем пользователям;
- конструкция Yii::app()->user->id не вернет в ваших событиях ничего хорошего.

4. The end.
Аватара пользователя
Ghost_nsk
Сообщения: 825
Зарегистрирован: 2012.01.01, 00:45
Откуда: Новосибирск
Контактная информация:

Re: По робокассе, помогите с настройкой

Сообщение Ghost_nsk »

RSol, кажись у Вас тут неточность:

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

    private function checkResultSignature($OutSum,$InvId,$SignatureValue)
    {
        $keys = array(
            $OutSum,
            $InvId,
            $this->sMerchantPass2,
        );

        $sign = strtoupper(md5(implode(':', $keys)));

        if($SignatureValue == $sign)
            return true;

        return false;
    }
 
у Вас сигнатура в верхний регистр не преобразуется, надо вот так видимо:

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

    private function checkResultSignature($OutSum, $InvId, $SignatureValue) {
        $keys = array(
            $OutSum,
            $InvId,
            $this->sMerchantPass2,
        );

        $sign = strtoupper(md5(implode(':', $keys)));
        if (strtoupper($SignatureValue) == $sign)
            return true;

        return false;
    }
 
Последний раз редактировалось Ghost_nsk 2013.08.06, 21:17, всего редактировалось 1 раз.
juniorspecialistphp
Сообщения: 58
Зарегистрирован: 2012.01.18, 13:03
Откуда: Украина. Запорожье
Контактная информация:

Re: По робокассе, помогите с настройкой

Сообщение juniorspecialistphp »

самому написать модель и контроллеры для работы с робокассой и всех делов ))
Я так сделал, сам написал и проблем нет, самому проще разбираться в своём коде.
Аватара пользователя
Ghost_nsk
Сообщения: 825
Зарегистрирован: 2012.01.01, 00:45
Откуда: Новосибирск
Контактная информация:

Re: По робокассе, помогите с настройкой

Сообщение Ghost_nsk »

juniorspecialistphp писал(а):самому написать модель и контроллеры для работы с робокассой и всех делов ))
Я так сделал, сам написал и проблем нет, самому проще разбираться в своём коде.
да не, код клевый,
RSol, спасибо, разобрался
там реально у тебя неточность :)

подключил, осталось дождаться активации и документов
Аватара пользователя
RSol
Сообщения: 325
Зарегистрирован: 2010.05.07, 08:36
Откуда: Северодонецк, Украина
Контактная информация:

Re: По робокассе, помогите с настройкой

Сообщение RSol »

Ghost_nsk писал(а): да не, код клевый,
RSol, спасибо, разобрался
там реально у тебя неточность :)
Спасибо. Неточность... хз... раньше работало. :-)
Аватара пользователя
Ghost_nsk
Сообщения: 825
Зарегистрирован: 2012.01.01, 00:45
Откуда: Новосибирск
Контактная информация:

Re: По робокассе, помогите с настройкой

Сообщение Ghost_nsk »

RSol писал(а): Не забудьте, что:
- актионс должен быть доступен всем пользователям;
проверено лично, что спокойно делается для только авторизированных юзеров, или для юзеров отдельной категории (а не только для всех гостей) :)
Последний раз редактировалось Ghost_nsk 2012.06.07, 18:54, всего редактировалось 1 раз.
Аватара пользователя
RSol
Сообщения: 325
Зарегистрирован: 2010.05.07, 08:36
Откуда: Северодонецк, Украина
Контактная информация:

Re: По робокассе, помогите с настройкой

Сообщение RSol »

Странно... Либо я что-то не так понимаю, либо неправильно объяснил.

Я тут когда-то писал статью (http://sed-story.ru/blog/saitostroenie/32.html) для приема платежей для другого сервиса. Там картинка вверху. Она показывает механизм работы платежных шлюзов.
Так вот запрос к этому актионсу делает платежный шлюз, а он не авторизирован.
Аватара пользователя
Ghost_nsk
Сообщения: 825
Зарегистрирован: 2012.01.01, 00:45
Откуда: Новосибирск
Контактная информация:

Re: По робокассе, помогите с настройкой

Сообщение Ghost_nsk »

каждый раз вылазиет вот эта штука:
"Не удалось установить связь с магазином для передачи ему информации об оплате. Через минуту будет произведена повторная попытка."

потом проходит минуты 2-5 и после повторных попыток обращения к серваку он наконец все пополняет

это с чем может быть связано?
Аватара пользователя
Ghost_nsk
Сообщения: 825
Зарегистрирован: 2012.01.01, 00:45
Откуда: Новосибирск
Контактная информация:

Re: По робокассе, помогите с настройкой

Сообщение Ghost_nsk »

никто не знает? :)
Аватара пользователя
kosenka
Сообщения: 677
Зарегистрирован: 2009.09.26, 12:41
Откуда: москва
Контактная информация:

Re: По робокассе, помогите с настройкой

Сообщение kosenka »

Вот и мне понадобилось прикрутить к сайту прием платежей.
У меня в таблице платежей есть поле "статус платежа", которое может быть "оплачено"/"ожидает оплаты".
Долго не мог никак разобраться с тем, а как же "обновлять" это поле.
И вот родилось решение.
В моделе, которую вы указываете в настройках этого компонента пишем такой код:

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

public function Success($event)
        {
                Yii::trace('success', 'UserPayments::model');
                $order=$event->sender->params['order'];//$order - содержит модель

                $result=UserPayments::model()->findByPk((int)$order->id);//ищем платеж по номеру
                if($result)//если нашли, меняем "статус платежа"
                {
                        $result->status=self::STATUS_PAYED;
                        $result->save();

                        //обновляем у юзера "оплачено до" (payed)
                        Yii::app()->db->createCommand("update {{UserDetails}} set status=:status, payed=DATE_ADD(payed, INTERVAL 1 YEAR) where uid=:uid")->execute(array(":status"=>UserDetails::STATUS_PAYED,":uid"=>(int)$order->uid));
                }
        }
alekso
Сообщения: 190
Зарегистрирован: 2012.09.15, 23:49

Re: По робокассе, помогите с настройкой

Сообщение alekso »

Наверное полезно бы заметить что

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

  
 'onSuccess'=>array('Order','Success'),
    'onFail'=>array('Order','Fail'),
это вызов статических методов модели Order которая указывается выше, ато я полдня сидел разбирался, думал это экшены в контролере:)
fantom103
Сообщения: 5
Зарегистрирован: 2013.06.06, 12:00

Re: По робокассе, помогите с настройкой

Сообщение fantom103 »

Использование:
0. Копируем файлик в "ext.RC"

Ребят помогите пожалуйста! Где находится этот ext.RC?

Я раз пятнадцать уже пересмотрел этот пост по РОБОКАССЕ, но так и не понял как подключить к моему framework-у.
Просто я только-только начал изучать Yii и пока мне сложно понять. А руководство требует подключить робокассу уже сегодня.
Если кому не сложно, опишите все действия по порядку(подробнее). Спасибо!
Аватара пользователя
RSol
Сообщения: 325
Зарегистрирован: 2010.05.07, 08:36
Откуда: Северодонецк, Украина
Контактная информация:

Re: По робокассе, помогите с настройкой

Сообщение RSol »

Из документации:

Корневой псевдоним

Для удобства Yii предопределяет следующие системные псевдонимы:
  • system: соответствует директории фреймворка;
  • zii: соответствует директории библиотеки расширений Zii;
  • application: соответствует базовой директории приложения;
  • webroot: соответствует директории, содержащей входной скрипт;
  • ext: соответствует директории, содержащей все сторонние расширения.
Кроме того, если приложение использует модули, то у каждого модуля имеется совпадающий с его ID корневой псевдоним, указывающий на корень модуля. К примеру, если приложение использует модуль users, то для него будет определён корневой псевдоним users.
Тебе нужна папка:
protected/extentions/RC
alekso
Сообщения: 190
Зарегистрирован: 2012.09.15, 23:49

Re: По робокассе, помогите с настройкой

Сообщение alekso »

fantom103 писал(а):Использование:
0. Копируем файлик в "ext.RC"

Ребят помогите пожалуйста! Где находится этот ext.RC?

Я раз пятнадцать уже пересмотрел этот пост по РОБОКАССЕ, но так и не понял как подключить к моему framework-у.
Просто я только-только начал изучать Yii и пока мне сложно понять. А руководство требует подключить робокассу уже сегодня.
Если кому не сложно, опишите все действия по порядку(подробнее). Спасибо!
знакомо), вот так рождается говнокод:).
События вообще не самая легкая для понимания тема, достаточно долго медетировал над ними, но до нирваны дойти не удалось:). А робокасса оч простая сама по себе. Опишу на пальцах.
1. Берешь любезно предоставленный Rsol*ом код. Копируешь его туда где у тебя в структуре фреймворка например экстеншены(может быть любая папка по сути).
2. Копируешь также предоставленный автором конфиг.
'rc'=>array(
'class'=>'ext.RC.RC', //путь к скаченному файлику текущая директория ...\protected\extensions\RC\RC.php
'sMerchantLogin'=>'',//Логин в робокасе
'sMerchantPass1'=>'', // этот пароль указывается в робокасе в разделе администрирование, по первому хеширует при отправке при втором при успешно завершенной транзакции
'sMerchantPass2'=>'',
'sCulture' => 'ru',

'resultMethod => 'post', // в робокасе в настройках указываешь ПОСТ хотя и ГЕТ тоже обрабатывает
'sIncCurrLabel' => 'QiwiR', // способ оплаты вроде
'orderModel' => 'Order', // модель твоей таблицы в бд которая отвечает за транзакции
'priceField'=>'price', // поле в этой же моделе в которой находиться сумма платежа
'isTest' => false, // если тестируешь укажи тру

'onSuccess'=>array('Order','Success'), // статические методы модели которая отвечает за транзакции в которых ты обрабатываешь успешную или неуспешную транзакцию
'onFail'=>array('Order','Fail'),
),
3. Читаешь что автор написал выше про использование.
4. Создаешь в контролере отвечающем за оплату 3 действия(помимо отвечающего за оплату с вызовом pay() ), result, success, fail, в первом вызываешь только

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

   Yii::app()->rc->result();
        Yii::app()->end();
в 2 и 3 рендеришь страницу об успешной и неуспешной оплате. Эти все действия указываешь в настройка робокасы в соответсвующих полях.
5. Рабочий день закончился раньше идешь пить пиво:) начальству говоришь что парился до ночи и просишь оплаты за доп. часы:)
upd: $order=$event->sender->params['order']; в методе success должен по идее возращать модель с которой работаешь, но у меня почемуто возвращает массив, пришлось пропустить через foreach, почему хз.
Спасибо автору прежде всего за хороший пример событий который собственно и помог мне с ними разобраться наконец:), если где ошибся поправте
fantom103
Сообщения: 5
Зарегистрирован: 2013.06.06, 12:00

Re: По робокассе, помогите с настройкой

Сообщение fantom103 »

alekso Спасибо за быстрый ответ.

У меня такая ситуация - есть личный кабинет,
В этом л/к выводится баланс для каждого пользователя
Нужно что бы пользователь смог пополнить свой баланс с помощью РОБОКАССЫ.

про таблицу в базе - 'orderModel' => 'Order' ничего не видел ранее. Получается что мне нужно в базе для каждого пользователя создать еще одну таблицу для транзакций?
Сколько и какие столбцы нужны для этой транзакции?
Ответить