Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Внедрение Робокассы, Мануалов кучу изучил, но есть вопросы 
:(
    Опции темы
qpile
Дата 25.11.2012, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 12.8.2009

Репутация: нет
Всего: нет



Здравствуйте, уважаемые форумяне!
Чтобы сделать оплату на робокассу-сперва нужно сделать форму оплаты .
Сделал. Все понятно, кроме того как генерировать SignatureValue. Для его создания нужно знать InvID. То есть идентификатор транзации. А как его получить, если его нам возвращается сама робокасса.
Так же как нам подставить в эту форму сам сгенерированный signature? Как и когда его вызывать? Нашел php скрипт для генерации, но так и не понял как прикрутить. Помогите, пожалуйста, люди добрые smile

Код

<?php
    //Ваш логин в системе
    $login = "you_login";
    //Сумма платежа, с помощью точки можно указывать вещественное число, например 35.90
    $sum = 200;
    //Уникальный номер транзакции в вашем магазине, он может быть любым но состоять только //из цифр
    $id = 12345;
    //Описание товара
    $tovar = "Курс по ООП";      
    //Ваш пароль #1 который вы указывали в настройках
    $pass1 = pass1;
    //Теперь все это шифруем и передаем Робокассе, это своеобразный уникальный номер вашего магазина
    $signature = md5($login . ":" . $sum . ":" . $id . ":" . $pass1);
  ?>




Код

<form method="post" action="http://test.robokassa.ru/Index.aspx">
<input type="hidden" name="MrchLogin" value="" />
<input type="hidden" name="OutSum" value="1" />
<input type="hidden" name="InvId" value="0" />
<input type="hidden" name="Desc" value="desc" />
<input type="hidden" name="Culture" value="ru" />
<input type="hidden" name="SignatureValue" value="<?=$signature;?>" />
<input type="submit" value="Оплатить" />
</form>



PM MAIL   Вверх
Arantir
Дата 25.11.2012, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Рыбак без удочки
**


Профиль
Группа: Участник
Сообщений: 960
Регистрация: 18.11.2012

Репутация: 16
Всего: 55



Первый раз этим занимаетесь?
Потому, что после второго все начинают внимательнее читать документацию:
Цитата

nInvId
    - номер счета в магазине (должен быть уникальным для магазина). Может принимать значения от 1 до 2147483647 (2^31-1). Если содержит пустое значение, вовсе не указан, либо равен "0", то при создании операции ей будет автоматически присвоен уникальный номер счета. Рекомендуется использовать данную возможность только в очень простых магазинах, где не требуется какого-либо контроля.


Вы сами должны сформировать ID и обеспечивать его уникальность. 
Вы же ведете учет выставленных счетов, я надеюсь? Вот приравняйте этот invID  к своему ID счета и отправляйте робокассе.

Это сообщение отредактировал(а) Arantir - 25.11.2012, 16:16


--------------------
interface Жопа {
    // ATTENTION: has to be implemented by every class of the project for proper project work
}
PM   Вверх
qpile
Дата 1.12.2012, 09:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 12.8.2009

Репутация: нет
Всего: нет



Спасибо, разобрался почти с этим вопросом вот скрипт самодельный
Код

<?php

$user="";
$pas="";
$host="localhost";
$link=@mysql_connect($host, $user, $pas) or die ("<b>Ошибка при подключении к серверу MySQL!<b>");
mysql_select_db("", $link);
$a = mysql_query("SELECT COUNT(1) FROM orders");
$b  = mysql_fetch_array($a);
$c=$b[0]+1;
mysql_query("INSERT INTO orders (orderNumber)VALUES ('$c')");
mysql_close($link);

 //Ваш логин в системе
    $login = "";
    //Сумма платежа, с помощью точки можно указывать вещественное число, например 35.90
    $sum = 200;
    //Уникальный номер транзакции в вашем магазине, он может быть любым но состоять только //из цифр
    $id = $c;
    //Описание товара
    $tovar = "За программное обеспечение";      
    //Ваш пароль #1 который вы указывали в настройках
    $pass1 = "";
    //Теперь все это шифруем и передаем Робокассе, это своеобразный уникальный номер вашего магазина
    $signature = md5($login . ":" . $sum . ":" . $id . ":" . $pass1);
    
echo $signature;
?>


Но как теперь это значение передать на форму мою? 

Код

<form method="post" action="http://test.robokassa.ru/Index.aspx">
<input type="hidden" name="MrchLogin" value="" />
<input type="hidden" name="OutSum" value="1" />
<input type="hidden" name="InvId" value="0" />
<input type="hidden" name="Desc" value="desc" />
<input type="hidden" name="Culture" value="ru" />
<input type="hidden" name="SignatureValue" value=GetRowsInTable.php />
<input type="submit" value="Оплатить" />
</form>

PM MAIL   Вверх
Arantir
Дата 1.12.2012, 09:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Рыбак без удочки
**


Профиль
Группа: Участник
Сообщений: 960
Регистрация: 18.11.2012

Репутация: 16
Всего: 55



Меня смущают 2 вещи:
Код
SELECT COUNT(1) FROM orders
Код
<input type="hidden" name="SignatureValue" value=GetRowsInTable.php />



Цитата(qpile @  1.12.2012,  08:03 Найти цитируемый пост)
Но как теперь это значение передать на форму мою? 

Ну а страницы на сайте вы как генерируете? 
Берете все это в один файл или же в файл с формой делаете require('самопоисный_скипт.php') и потом просто
Код
<input type="hidden" name="OutSum" value="<?php echo $sum; ?>" />


Это сообщение отредактировал(а) Arantir - 1.12.2012, 18:03


--------------------
interface Жопа {
    // ATTENTION: has to be implemented by every class of the project for proper project work
}
PM   Вверх
qpile
Дата 2.12.2012, 09:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 12.8.2009

Репутация: нет
Всего: нет



Вот так нужно сделать? Что то не выходит 
Код

<form method="post" action="http://test.robokassa.ru/Index.aspx" require 'GetRowsInTable.php'>
<input type="hidden" name="MrchLogin" value="kbrobot.ru" />
<input type="hidden" name="OutSum" value="1" />
<input type="hidden" name="InvId" value="0" />
<input type="hidden" name="Desc" value="desc" />
<input type="hidden" name="Culture" value="ru" />
<input type="hidden" name="SignatureValue" value="<?php echo $signature; ?>" />
<input type="submit" value="Оплатить" />
</form>



Добавлено через 2 минуты и 29 секунд
Ворд пресс использую
PM MAIL   Вверх
Arantir
Дата 2.12.2012, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Рыбак без удочки
**


Профиль
Группа: Участник
Сообщений: 960
Регистрация: 18.11.2012

Репутация: 16
Всего: 55



Код

<form method="post" action="http://test.robokassa.ru/Index.aspx" require 'GetRowsInTable.php'>
Ну нельзя же так, в конце-то концов...

Все переменные, которые вы выводите через echo, должны быть объявлены в этом же скрипте. То есть либо в этом же файле, либо в файлах, подключенных через include/require.
Вордпресс вордпрессом. Это не мешает вам добавить чуть выше вашей формы кусочек php-кода.
Может вам стоит почитать что-то вроде "основы PHP"? Если у вас есть опыт программирования, разобраться будет легко.

Что у вас делает скрипт GetRowsInTable.php?

Вообще, у вас в первом посте этой темы оба куска кода вполне правильные. Вам просто надо было их поместить в один файл. Да и во втором вашем посте, где вы уникальность ID обеспечили, тоже все ОК, кроме лишнего echo.

Скрипт - это вам не картинка. Вы не можете сделать echo в конце скрипта и ожидать, что при подключении его в любое место, там вместо него появится то, что он выводит. include/require включают код скрипта в текущий файл точно так же, как если бы вы вместо строчки с require скопировали туда ведь код подключаемого скрипта вручную.

Это сообщение отредактировал(а) Arantir - 2.12.2012, 10:52


--------------------
interface Жопа {
    // ATTENTION: has to be implemented by every class of the project for proper project work
}
PM   Вверх
qpile
Дата 2.12.2012, 11:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 12.8.2009

Репутация: нет
Всего: нет



Все оказалось банально просто. Не позволяет wordpress напрямую устанавливать скрипты в посты.Поставил плагин Exec php и все заработало. Читаю мануал по робокассе дальше smile
Кому интересно: вот код.Но почему то он не дает ставить сгенерированый signature. Только четко определенный. Наверное, это ньюанс тестового сервера робокассы
Код

<?php

$user="";
$pas="";
$host="localhost";
$link=@mysql_connect($host, $user, $pas) or die ("<b>Ошибка при подключении к серверу MySQL!<b>");
mysql_select_db("", $link);
$a = mysql_query("SELECT COUNT(1) FROM orders");
$b  = mysql_fetch_array($a);
$c=$b[0]+1;
mysql_query("INSERT INTO orders (orderNumber)VALUES ('$c')");
mysql_close($link);

 //Ваш логин в системе
    $login = "";
    //Сумма платежа, с помощью точки можно указывать вещественное число, например 35.90
    $sum = 200;
    //Уникальный номер транзакции в вашем магазине, он может быть любым но состоять только //из цифр
    $id = $c;
    //Описание товара
    $tovar = "За программное обеспечение";      
    //Ваш пароль #1 который вы указывали в настройках
    $pass1 = "";
    //Теперь все это шифруем и передаем Робокассе, это своеобразный уникальный номер вашего магазина
    $signature = md5($login . ":" . $sum . ":" . $id . ":" . $pass1);
    $signature ="0e98c8fff0ee23e5ba1d6b723a18d673";
?>
<form method="post" action="http://test.robokassa.ru/Index.aspx" >
<input type="hidden" name="MrchLogin" value="" />
<input type="hidden" name="OutSum" value="1" />
<input type="hidden" name="InvId" value="0" />
<input type="hidden" name="Desc" value="desc" />
<input type="hidden" name="Culture" value="ru" />
<input type="hidden" name="SignatureValue" value="<?=$signature;?>" />
<input type="submit" value="Оплатить" />
</form>

PM MAIL   Вверх
qpile
Дата 2.12.2012, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 12.8.2009

Репутация: нет
Всего: нет



вроде все получилось у меня  с горем пополам. 
Если кто будет заниматься тем же, то вот в помощь
http://www.sdelaysite.com/seo-verstka-word...dpress-plugin-6
http://mzcoding.ru/?p=881
Вторая ссылка короче и проще, а первая основательнее разбирает все ньюансы
PM MAIL   Вверх
qpile
Дата 9.12.2012, 10:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 12.8.2009

Репутация: нет
Всего: нет



Разобрался но не полностью  smile 
Как сделать так, что бы при нажатии сначала считывалась OutSumm из Input, потом это значение передавалось в php скрипт, который генерирует Signature, а потом уже это значение шлется на сервер робокассы.
Код прикрепил
Код

?php

$user="";
$pas="";
$host="localhost";
$link=@mysql_connect($host, $user, $pas) or die ("<b>Ошибка при подключении к серверу MySQL!<b>");
mysql_select_db(", $link);
$a = mysql_query("SELECT COUNT(1) FROM orders");
$b  = mysql_fetch_array($a);
$c=$b[0]+1;
mysql_query("INSERT INTO orders (orderNumber)VALUES ('$c')");
mysql_close($link);

 //Ваш логин в системе
    $login = "";
    //Сумма платежа, с помощью точки можно указывать вещественное число, например 35.90
    $sum =1;
    //Уникальный номер транзакции в вашем магазине, он может быть любым но состоять только //из цифр
    $id =0;
    //Описание товара
    $tovar = "За программное обеспечение";      
    //Ваш пароль #1 который вы указывали в настройках
    $pass1 = "";
    //Теперь все это шифруем и передаем Робокассе, это своеобразный уникальный номер вашего магазина
    $signature = md5("$login:$sum:$id:$pass1");
    
?>

<center>
<form id=payment method="post" action="https://merchant.roboxchange.com/Index.aspx">
    <fieldset>
        <legend>Введите сумму</legend>
        <ol>
            <li>
                <input id=summ  name="OutSum" type="text" required>
            </li>
        </ol>
    </fieldset>
<input type="hidden" name="MrchLogin" value="" />
<input type="hidden" name="InvId" value="<?=$id;?>" />
<input type="hidden" name="Desc" value="За программное обеспечение" />
<input type="hidden" name="Culture" value="ru" />
<input type="hidden" name="SignatureValue" value="<?=$signature;?>" />
    <fieldset>
        <button type=submit>Купить сейчас!</button>
    </fieldset>
</form>
</center>


Добавлено через 3 минуты и 20 секунд
Просто в моей форме узверь сам вводит сумму для оплаты
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1291 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.