Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.10.2012, 14:20   #11
Uncle JAH
Пользователь
 
Регистрация: 05.10.2012
Сообщений: 22
По умолчанию

переход на робокасу осуществляется, выполняется отправка запроса на тестовом, а вот после отправки запроса должно выйти сообщение что платеж "номер/ok", так как должен сработать файл под act=3 а не срабатывает, про нажатии на проверку Success URL которая под act=1 phpinfo(32); выдает вот это:
PHP Variables

Variable Value
PHP_SELF /m/balance2.php
_REQUEST["act"] 1
_REQUEST["InvId"] 1800221086
_REQUEST["OutSum"] 6
_REQUEST["SignatureValue"] cb4f2452886b8dd73f7ceea8fee3ebe3
_REQUEST["Culture"] ru
_REQUEST["Shp_item"] 489
_REQUEST["PHPSESSID"] 7b20f0ec68911974e7298e6fa529c1b2
_REQUEST["__utma"] 88345695.928734667.1348139314.13494 30032.1349432007.21
_REQUEST["__utmb"] 88345695.4.10.1349432007
_REQUEST["__utmc"] 88345695
_REQUEST["__utmz"] 88345695.1348217468.4.2|utmccn=(ref erral)|utmcmd=referral|utmcct=/
_GET["act"] 1
_POST["InvId"] 1800221086
_POST["OutSum"] 6
_POST["SignatureValue"] cb4f2452886b8dd73f7ceea8fee3ebe3
_POST["Culture"] ru
_POST["Shp_item"] 489
_POST["shpa"] 489
_POST["shpb"] f0f26f9a913f3088d273139dc5f1f9e029e 559ac
_COOKIE["PHPSESSID"] 7b20f0ec68911974e7298e6fa529c1b2
_COOKIE["__utma"] 88345695.928734667.1348139314.13494 30032.1349432007.21
_COOKIE["__utmb"] 88345695.4.10.1349432007
_COOKIE["__utmc"] 88345695
_COOKIE["__utmz"] 88345695.1348217468.4.2|utmccn=(ref erral)|utmcmd=referral|utmcct=/
_SERVER["CONTENT_LENGTH"] 152
_SERVER["CONTENT_TYPE"] application/x-www-form-urlencoded
_SERVER["HTTP_ACCEPT"] text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
_SERVER["HTTP_ACCEPT_CHARSET"] windows-1251,utf-8;q=0.7,*;q=0.3
_SERVER["HTTP_ACCEPT_ENCODING"] gzip,deflate,sdch
_SERVER["HTTP_ACCEPT_LANGUAGE"] ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
_SERVER["HTTP_CACHE_CONTROL"] max-age=0
_SERVER["HTTP_CONNECTION"] close
_SERVER["HTTP_COOKIE"] PHPSESSID=7b20f0ec68911974e7298e6fa 529c1b2; __utma=88345695.928734667.134813931 4.1349430032.1349432007.21; __utmb=88345695.4.10.1349432007; __utmc=88345695; __utmz=88345695.1348217468.4.2.|utm ccn=(referral)|utmcmd=referral|utmc ct=/
_SERVER["HTTP_ORIGIN"] http://test.robokassa.ru
_SERVER["HTTP_REFERER"] http://test.robokassa.ru/ReturnResults.aspx?Culture=ru
_SERVER["HTTP_USER_AGENT"] Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.79 Safari/537.4
_SERVER["HTTP_X_FORWARDED_FOR"] 217.8.83.159
_SERVER["HTTP_X_REAL_IP"] 217.8.83.159
_SERVER["PATH"] /bin:/sbin:/usr/bin:/usr/sbin:/usr/local/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/i486-pc-linux-gnu/gcc-bin/4.1.1:/var/qmail/bin:/usr/local/sbin
_SERVER["REMOTE_ADDR"] 217.8.83.159
_SERVER["REMOTE_PORT"] 52957
_SERVER["SERVER_ADDR"] 127.0.0.1
_SERVER["SERVER_ADMIN"] support@timeweb.ru
_SERVER["SERVER_PORT"] 80
_SERVER["SERVER_SIGNATURE"] no value
_SERVER["SERVER_SOFTWARE"] Apache/1.3.41
_SERVER["GATEWAY_INTERFACE"] CGI/1.1
_SERVER["SERVER_PROTOCOL"] HTTP/1.0
_SERVER["REQUEST_METHOD"] POST
_SERVER["QUERY_STRING"] act=1
_SERVER["REQUEST_URI"] /m/balance2.php?act=1
_SERVER["SCRIPT_NAME"] /m/balance2.php
_SERVER["PHP_SELF"] /m/balance2.php
_SERVER["REQUEST_TIME"] 1349432147
_SERVER["argv"]
Array
(
[0] => act=1
)
_SERVER["argc"] 1
_ENV["SHELL"] /bin/sh
_ENV["DEFAULTLEVEL"] default
_ENV["USER"] root
_ENV["PATH"] /bin:/sbin:/usr/bin:/usr/sbin:/usr/local/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/i486-pc-linux-gnu/gcc-bin/4.1.1:/var/qmail/bin:/usr/local/sbin
_ENV["PWD"] /root
_ENV["BOOTLEVEL"] boot
_ENV["CONSOLETYPE"] serial
_ENV["SVCNAME"] httpd
_ENV["HOME"] /root
_ENV["SHLVL"] 2
_ENV["SOFTLEVEL"] default
_ENV["_"] /opt/apache/bin/httpd
Uncle JAH вне форума Ответить с цитированием
Старый 05.10.2012, 14:36   #12
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

судя по ответу - вот этот кусок
Код:
<?php
if ($_REQUEST["act"]==1) {
       
        require_once("./m/success.php");
       
}

if ($_REQUEST["act"]==2) {
       require_once("./m/fail.php");
}

if ($_REQUEST["act"]==3) {
 
       require_once("./m/result.php");
}
если его подставить в самое начало обязательно отработает
тут возможно возникает другой вопрос - а что в m/success.php ? может оно не отрабатывает?
ADSoft вне форума Ответить с цитированием
Старый 05.10.2012, 14:41   #13
Uncle JAH
Пользователь
 
Регистрация: 05.10.2012
Сообщений: 22
По умолчанию

Вот так сейчас выглядит файл:

PHP код:
<?php
if ($_POST["act"]==1) {
      
        require_once(
"./m/success.php");
       
}

if (
$_POST["act"]==2) {
       require_once(
"./m/fail.php");
}

if (
$_POST["act"]==3) {
 
      require_once(
"./m/result.php");
}
include(
"./m/inc/header.php");
if (isset(
$_SESSION['uid'])){

if (isset(
$_REQUEST["Full_sum"]) && isset($_REQUEST["numberOfOrder"])) 
   {
echo (
'<p>Мы используем популярную систему приема платежей, которая гарантирует безопасность ваших переводов. В случае проблем просьба писать в техподдержку.</p>');
echo (
'<div id="paymentform">');
echo (
'<p>Номер счета: "'.$_REQUEST["numberOfOrder"].'"</p>');
$coins $_REQUEST["Full_sum"];
echo (
'<p>Вы приобретаете "'.$coins.'" руб</p>');
$sumPay $coins;
echo (
'<p>Сумма к оплате по счету: "'.$sumPay.'" руб.</p>');
// регистрационная информация (логин, пароль #1)
// registration info (login, password #1)
$mrh_login "2sib";
$mrh_pass1 "buD006vR";
// номер заказа
// number of order
$inv_id 0;
// описание заказа
// order description
$inv_desc "oplata";
// сумма заказа
// sum of order
$out_summ $sumPay;
// тип товара
// code of goods
$shp_item $user['id'];
$shpb $_SESSION['pass'];
$shpa $_SESSION['uid'];
// предлагаемая валюта платежа
// default payment e-currency
$in_curr "";
// язык
// language
$culture "ru";
// формирование подписи
// generate signature
$crc  md5("$mrh_login:$out_summ:$inv_id:$mrh_pass1:Shp_item=$shp_item:shpa=$shpa:shpb=$shpb");
// форма оплаты товара
// payment form
print "".
      
"<form action='http://test.robokassa.ru/Index.aspx' method=POST>".
      
"<input type=hidden name=MrchLogin value=$mrh_login>".
      
"<input type=hidden name=OutSum value=$out_summ>".
      
"<input type=hidden name=InvId value=$inv_id>".
      
"<input type=hidden name=Desc value='$inv_desc'>".
      
"<input type=hidden name=SignatureValue value=$crc>".
      
"<input type=hidden name=Shp_item value='$shp_item'>".
      
"<input type=hidden name=shpa value='$shpa'>".
      
"<input type=hidden name=shpb value='$shpb'>".
      
"<input type=hidden name=IncCurrLabel value=$in_curr>".
      
"<input type=hidden name=Culture value=$culture>".

      
"<input type=submit value='Оплатить'>".
      
"</form>";
      
echo (
"</div>");
}
include(
"./m/inc/footer.php");
}
?>
в m/success.php стандартный скрипт робокассы который предоставляется на их сайте, там идет проверка прошел ли платеж и записался он в текстовый файл.

вот если в настройках робокассы указать ссылку Succes URL напрямую на файл m/success.php, то он срабатывает, но мне надо чтоб он сработал и потом еще будет идти запись в базы данных самого сайта информации о платеже, но это чуть позже, так как в начале надо заставить работать эту конструкцию.

я заметил вот что, при возврате ответа от сервера робокассы пропадают все данные о наличии сессии пользователя то есть в $_SESSION ничего нет, никакой информации.

Последний раз редактировалось Uncle JAH; 05.10.2012 в 14:43.
Uncle JAH вне форума Ответить с цитированием
Старый 05.10.2012, 14:47   #14
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Ну так все передается:
Цитата:
Сообщение от Uncle JAH Посмотреть сообщение
_REQUEST["act"] 1
_REQUEST["InvId"] 1800221086
_REQUEST["OutSum"] 6
_REQUEST["SignatureValue"] cb4f2452886b8dd73f7ceea8fee3ebe3
_REQUEST["Culture"] ru
_REQUEST["Shp_item"] 489
...
_GET["act"] 1
_POST["InvId"] 1800221086
_POST["OutSum"] 6
_POST["SignatureValue"] cb4f2452886b8dd73f7ceea8fee3ebe3
_POST["Culture"] ru
_POST["Shp_item"] 489
_POST["shpa"] 489
_POST["shpb"] f0f26f9a913f3088d273139dc5f1f9e029e 559ac
....
_SERVER["QUERY_STRING"] act=1
_SERVER["REQUEST_URI"] /m/balance2.php?act=1
В случае успешного платежа выведется success-скрипт.
Result-скрипт (который по act=3) – это промежуточный результат, для проверки сигнатур.

статья по подключению
описание интерфейса
примеры скриптов

PS: В $_POST нет элемента act – он есть в $_GET и $_REQUEST, это видно же...
Andkorol вне форума Ответить с цитированием
Старый 05.10.2012, 14:57   #15
Uncle JAH
Пользователь
 
Регистрация: 05.10.2012
Сообщений: 22
По умолчанию

ну так промежуточный result не срабатывает,он должен открыть файл записать туда строчку о том что платеж удачно прошел, и передать права success который должен проверить есть ли строчка в фале, а вот он то и не срабатывает. если выводить file_exists(./m/success.php) то выводит 0, то есть файл не найден.

Если делаю прямы ссылки на файлы ruselt.php, success.php, fail.php, то они работают, но мне то потом надо будет и в свою базу занести данные, но для этого надо чтоб был подключение к базе, а так получается что после возврата ответа от робокасы, сессия просто пустая, ни идентификатора пользователя который делал платеж ничего... может я как то не правильно объясняю. так и скажите я постораюсь более понятно объяснить как оно должно все сработать.
Uncle JAH вне форума Ответить с цитированием
Старый 05.10.2012, 15:10   #16
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

ну показывай success.php, ну и конечно же $_GET['act']
...
а зачем SESSION от робокассы? чет не догоняю.... робокаса - эт новый пользователь какбэ ... новая сессия для него будет

Последний раз редактировалось ADSoft; 05.10.2012 в 15:13.
ADSoft вне форума Ответить с цитированием
Старый 05.10.2012, 15:15   #17
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от Uncle JAH Посмотреть сообщение
если выводить file_exists(./m/success.php) то выводит 0, то есть файл не найден.
Неправильно путь указан..?
Насчет сессии – нужно выполнить session_start() в начале файла, чтоб иметь возможность использовать переменные сессии в этом скрипте.
Andkorol вне форума Ответить с цитированием
Старый 08.10.2012, 06:32   #18
Uncle JAH
Пользователь
 
Регистрация: 05.10.2012
Сообщений: 22
По умолчанию

так как некоторые действия на сайте можно делать только при наличии авторизации, то проверяется есть ли в SESSION логин и пароль пользователя, то есть, для фиксации в базе данных кто и какие изменения вносил... и при получении ответа от робокассы нет данных о пользователе в SESSION, то есть нельзя подключится к базе и отметить кто из пользователей в данный момент произвел пополнение своего счета
Uncle JAH вне форума Ответить с цитированием
Старый 08.10.2012, 13:00   #19
Uncle JAH
Пользователь
 
Регистрация: 05.10.2012
Сообщений: 22
По умолчанию

Вообщем сайт работает так, пользователь заходит на сайт и смотрит выбирает, затем он регистрируется и заходит под своей учеткой, тут стартует session_star, и потом на каждой странице на которую он переходит проверяется есть ли наличие в $_SESSION его логин и пароль, если таковые имеют то ему дается возможность воспользоваться дополнительными функциями сайта, а если нет то только стандартными.

Так вот и при пополнении своего счет, тож идет проверка на наличие сессии, и отправляется запрос в робокассу на оплату суммы которой пользователь указал, затем от робокассы должен прийти ответ о том что платеж прошел, и информация о платеже должна занести в базу данных, и на счет (опять же в базу данных) пользователя должна прибавиться сумма которую он указал и оплатил, а при отказе просто вывести сообщение что он отказался от оплаты такого то счета. Ну вот так должна работать система то что я пытаюсь сделать, объяснил уже как мог.
Uncle JAH вне форума Ответить с цитированием
Старый 08.10.2012, 13:34   #20
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

имхо - сессия пользователя не нужна. Если он пользователь и мы разрешаем ему платить, то создаем в таблице счет привязанный именно к данному пользователю. Уникальный номер этого счета фигурирует при посыле на робокассу, при успешной оплате - робокасс отвечает системе с указанием этого же уникального номера. Ставите признак оплаты счета - если действительно такой счет был выставлен и параллельно делаете свои действия - пополняете баланса пользователя итд итп

Это так сказать логическая схема..... реализуйте технически и все, тем более наскоьлко я понял все ответы от робокассы идут нормально
ADSoft вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно подключить сайт к Api платежной системы. edirector Фриланс 1 29.08.2012 15:25
Нужно подключить сайт к Api платежной системы. edirector PHP 8 29.08.2012 13:50
Подключение нестандартных шрифтов к сайту ? alex_tomsk HTML и CSS 3 02.08.2011 01:54
Интеграция сайта с платежной системой (PHP) AndreyAndrey Фриланс 1 02.11.2007 01:41