Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > скрипт отображения счета...


Автор: Sufius 22.6.2004, 17:23
Люди!
Помогите плиззз...
Нужен следующий скрипт!
Используется MySQL и php!
Человек регистрируется на сайте, создается его учетная запись...
Он покупает какой-то товар за e-gold...
Как сделать чтобы при оплате допустим 22.06.2004 суммы в 10$ это записалось в базу данных... на следующий день он заплатил еще 20$ и это число тоже записалось в базу данных...
Чтобы при входе в раздел покупки отображались все его затраты денежных средств... без указания, что он покупал, а только вывод даты|сумма...
Я не понимаю, откуда вытащить значения оплаченной суммы? butbut.gif
Если кто может объяснить буду рад...
Если кто может дать готовый пример - моё мыло [email protected]...

Ув. модеры, просьба не убивать топ! butbut.gif

Автор: Secandr 22.6.2004, 18:09
вот так это делается:
заводишь таблицу:
|id_записи|id_пользовател|время|сумма|оплатил или нет|
при попытке оплатить пихаешь данные в таблицу, "оплатил или нет" ставишь 0 (нет)
после подтверждения об оплате "оплатил или нет" ставишь 1 (да)
А уж выбрать записи с id_пользовател=$my_id and оплатил или нет=1 труда не составит

Автор: Sufius 22.6.2004, 18:49
а как я узнаю оплатил ли человек открывшееся окно и-голда, или нажал Кэнсел?

Автор: Secandr 22.6.2004, 19:09
насколько я знаю еголд в случае успешной транзакции перебросит его на необходимую тебе страницу.

Автор: Sufius 22.6.2004, 19:17
нет... он перебрасывает на страницу, где сообщается, что перевод сделан... а дальше если человек нажимает Continue его перебрасывает на мою страницу... но если он закрывает это окно, то не попадает на мою страницу, но платеж уже осуществлен...
как сделать так, чтобы даже если глупый пользователь не нажал Континуе я смог получить данные о платеже?

Автор: Secandr 22.6.2004, 19:27
Sufius
Это уже вопрос к еголду. Там должно быть описание. Я такое на вебмани читал.

Автор: Sufius 22.6.2004, 20:07
ладно... буду читать...
жаль только по-английски...
жаль в школе техперевода не было smile.gif

Автор: Secandr 22.6.2004, 21:51
если что умное будет скажи.

Автор: Sufius 23.6.2004, 00:13
оки

Автор: Sufius 26.6.2004, 15:16
Проблема вот в чем осталась...
На сайт ставится форма отправки данных на сайт обрботки запроса...
Код

<form action="https://www.e-gold.com/sci_asp/payments.asp" method="POST" target=_top>
<div align="center">
<input type="hidden" name="PAYEE_ACCOUNT" value="1226955">
<input type="hidden" name="PAYEE_NAME" value="e-gold SCI">
Enter Amount You'd like to Donate:<br>
<input type=text name="PAYMENT_AMOUNT" size=4>
<input type=hidden name="PAYMENT_UNITS" value=1>
USD worth of e-gold
<input type=hidden name="PAYMENT_METAL_ID" value=1>
<input type="hidden" name="STATUS_URL" value="mailto:[email protected]">
<input type="hidden" name="NOPAYMENT_URL"
value="http://localhost/no.php">
<input type="hidden" name="NOPAYMENT_URL_METHOD" value="LINK">
<input type="hidden" name="PAYMENT_URL"
value="http://localhost/yes.php">
<input type="hidden" name="PAYMENT_URL_METHOD" value="LINK">
<input type="hidden" name="BAGGAGE_FIELDS" value="CUSTOMERID">
<input type="hidden" name="CUSTOMERID" value="0">
<input type="hidden" name="SUGGESTED_MEMO" value='Thanks for the e-gold SCI!'>
<br>
<input type="submit" name="PAYMENT_METHOD" value="Donate Now">
</div></form>


Вот в эту строчку вводят сумму для оплаты
Код
<input type=text name="PAYMENT_AMOUNT" size=4>


Но потом идет несколько переходов по e-gold'овским страницам... В итоге при успешной оплате выдается моя страница...
Там я присваиваю переменным значения
Код

$login = 'valid_login';
$pay = "PAYMENT_AMOUNT";

И передаю их в БД
Код
$query = "insert into income values
('".$login."', '".$income."')";
$result = mysql_query($query);
if ($result)
echo mysql_affected_rows()."покупка сделана!";

Valid_login он в БД заносит как имя пользователя, а оплату нет!!! просто пустое место...
Как же это сделать-то??? notify.gif

Автор: Secandr 26.6.2004, 16:51
Sufius Вроде бы всё логично.
сделай echo $query и скажи ещё какого типа в таблице столбцы?

Автор: Sufius 26.6.2004, 22:27
Всего 2 таблицы...
в одной login, password, email, egold
в другой login, date, income...
Вот... единственный способ сейчас попробую
$pay = "PAYMENT_AMOUNT"
засунуть в session_register...
и тогда посмотрю что почучиться...
а так не знаю что делать... не понимаю...
ведь если зарегистрирована session то она должна сохраняться пока окно браузера не закрыто...
Да, кстати, вопрос, а если у меня зарегистрирована одна сессия для авторизации, можно ли мне зарегистрировать еще одну сессию?

Автор: Sufius 26.6.2004, 23:58
2 Secandr
смотри... есть код
Код
<?
session_start();
if (session_is_registered("valid_login"))
{
include('m_top.php');
$valid_income = $PAYMENT_AMOUNT;
session_register("valid_income");
?>
<form action="https://www.e-gold.com/sci_asp/payments.asp" method="POST" target=_top>
<div align="center">
<input type="hidden" name="PAYEE_ACCOUNT" value="1226955">
<input type="hidden" name="PAYEE_NAME" value="e-gold SCI">
Enter Amount You'd like to Donate:<br>
<input type=text name="PAYMENT_AMOUNT" size=4>
<input type=hidden name="PAYMENT_UNITS" value=1>
USD worth of e-gold
<input type=hidden name="PAYMENT_METAL_ID" value=1>
<input type="hidden" name="STATUS_URL" value="mailto:[email protected]">
<input type="hidden" name="NOPAYMENT_URL"
value="http://localhost/no.php">
<input type="hidden" name="NOPAYMENT_URL_METHOD" value="LINK">
<input type="hidden" name="PAYMENT_URL"
value="http://localhost/yes.php">
<input type="hidden" name="PAYMENT_URL_METHOD" value="LINK">
<input type="hidden" name="BAGGAGE_FIELDS" value="CUSTOMERID">
<input type="hidden" name="CUSTOMERID" value="0">
<input type="hidden" name="SUGGESTED_MEMO" value='Thanks for the e-gold SCI!'>
<br>
<input type="submit" name="PAYMENT_METHOD" value="Donate Now">
</div></form>
<?
include('bottom.php');
}
else
{
include('top.php');
echo "не зарегестрирован, брысь!";
include('bottom.php');
}
?>

после этого выполняется переход по нескольким страницам e-gold'а, затем на мою страницу после удачного перевода средств...
вот её код...
Код

<?
session_start();
if (session_is_registered("valid_login"))
{
include('m_top.php');
$login = $valid_login;
$income = $valid_income;

@ $db = mysql_connect("localhost", "admin", "localhost");
mysql_select_db("str");
if (!$db)
{
echo "Не возможно установить связь с базой данных";
exit;
}

$query = "insert into income values
('".$login."', '".$income."')";
$result = mysql_query($query);
if ($result)
echo mysql_affected_rows()."вклад сделан!";

include('bottom.php');
}
else
{
include('top.php');
echo "не зарегестрирован, брысь!";
include('bottom.php');
}
?>


В БД данные заносятся, но имя пользователя заносится правильно а в столбце income пишется PAYMENT_AMOUNT...
не понимаю в чем дело... там же должно сохраняться значение, введеное пользователем...
или я что-то не догоняю... sad.gif

Автор: Secandr 27.6.2004, 21:14
насколько понимаю при переходе с хоста на хост данный могут и потеряться.
Проверь это поставив
echo $query;

ещё попробуй $_SESSION['valid_login']

Автор: Druidik25 1.7.2005, 10:43
Цитата(Sufius @ 26.6.2004, 15:16)
Там я присваиваю переменным значения
Код

$login = 'valid_login';
$pay = "PAYMENT_AMOUNT";

И передаю их в БД
Код
$query = "insert into income values 
('".$login."', '".$income."')";
$result = mysql_query($query);
if ($result)
    echo mysql_affected_rows()."покупка сделана!";

Valid_login он в БД заносит как имя пользователя, а оплату нет!!! просто пустое место...
Как же это сделать-то??? smile

А не может быть что спутал переменные в одном варианте используется $pay в другом (в запросе) $income. ???

Автор: FX-Trend сис-админ IBank *CODE~M 4.9.2005, 02:57
Мдя, ты ведь в сессии задал, что у тебя переменная
_______________________________
$valid_income = $PAYMENT_AMOUNT;
session_register("valid_income");
_______________________________
далее идёт форма для воода мнформации для дальнейшей транзакции.
Вот вопрос:
"Как же будет присваиваться переменная если она не заданна????"
Просто убери эту часть!!!
Далее вставь в скрипт после удачной передачи средств
вот это
$query = "insert into, income values
('".$login."', '".$PAYMENT_AMOUNT."')";

*************************************************************
И ещё просто к слову у тебя нет ни какой защиты, надо создавать ещё
скрипты для проверки транзакции...
В Общем УЧИСЬ ;)
вот тебе инфа http://www.e-gold.com/docs/e-gold_sci.html

------------------------------------------------------------
RESPECTFULLY from CODE~Master
main programmer of FX-Trend.com.ru IBank

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)