![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| RomanK |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 25.6.2005 Где: Россия, Выборг Репутация: 1 Всего: 2 |
Вот создаю проект. В принципе все готово, но есть вопрос, который меня мучает.
Вот, короче, у меня есть книжный магазин. Приходит человек, кидает книгу в корзину. Нажимает Buy, и отправляется на сайт E-Gold для оплаты книги. E-Gold предостовляет такую возомжность, чтобы можно было платить сразу с сайта. Там есть такая форма, куда можно написать, в hidden поля естественно, цену, которую должен заплатить юзер, URL1 - туда переходит человек с сайта E-Gold, если оплата прошла удачно, и URL2 - туда переходит человек с сайта E-Gold, если оплата прошла не удачно. Как делаю я: Есть таблица Paid. Эта таблица содержит временную информацию об оплате. Когда человек переходит в корзину, автоматически генерируется случайный md5 хешь. Этот хешь - это ID в таблице Paid. И в итоге E-Gold форма у меня содержит данные: Price: 10$ (например) URL1: http://site.ru/paid.php?paid_id= {тут этот md5 хешь} URL2: http://site.ru/nopaid.php?paid_id= {тут этот md5 хешь} Когда оплата прошла удачно юзер переходит на страницу http://site.ru/paid.php?paid_id= {тут этот md5 хешь}, где нужная книга добавляется в его профиль, и он сможет ее в дальнейшем читать. Когда оплата не прошла юзер переходит на страницу http://site.ru/nopaid.php?paid_id= {тут этот md5 хешь}, где информация из временной таблицы (Paid) удаляется. В итоге все отлично работает, если бы не одно НО. Если в корзине открыть HTML код страницы, и посмотреть эту форму, то можно увидеть: http://site.ru/paid.php?paid_id= {тут этот md5 хешь}. Тогда, если мы сразу же переходим по этой ссылке, то мы автоматом получаем эту книгу, без всякой оплаты. ВОТ В ЭТОМ ВСЯ И ПРОБЛЕМА Юзер, который хоть немного продвинут, ну хотя бы знает куда посмотреть, сможет легко "купить книгу" бесплатно. Вот вопрос: Что мне делать? Как поступить? Спасибо за внимание, и зарнее за помощь. P.S. Модераторы, извините, но вопрос толком не связан с PHP, но я не знал, куда его лучше запостить. Запостил сюда. Если не так, то перенесите в другой раздел пожалуйста. Это сообщение отредактировал(а) RomanK - 20.3.2006, 23:25 |
|||
|
||||
| mr.fox |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 298 Регистрация: 13.3.2005 Где: Ирландия Репутация: -1 Всего: 2 |
я что-то не пойму .. тебе хедерами передается статус оплаты .. тоесть переведены деньги или нет .. зачем тебе в урл сайта выдавать какую то инфу ? Ставь айди в сессию .. пихай его в базу и все.
|
|||
|
||||
| RomanK |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 25.6.2005 Где: Россия, Выборг Репутация: 1 Всего: 2 |
mr.fox, мне хеадерами ничего не передается, если конечно я не ошибаюсь, ибо с этими системами впервые столкнулся. Я могу только назначить ссылку, на которую переходит юзер, после удачного перевода денег, и не удачного.
Если ставить ID в сессию а не в адрес, то даже в HTML виде открывать не надо будет. Просто открываешь страницу http://site.ru/paid.php и все, книга тебе зачисляется как купленная. В этом то вся и проблема. Объясни пожалуйста, какие хеадеры ты имеешь ввиду? Я просто о них не слышал. |
|||
|
||||
| Ciber SLasH |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1813 Регистрация: 9.11.2004 Где: С.-Петербург Репутация: 3 Всего: 67 |
RomanK, по идеи должно быть так:
1) пользователь заходит на твою страницу, выбирает книги, жмёт "купить" и его перенаправляют в систему оплаты, где он оплачивает товар 2) после денежной операции, эта система перенаправляет пользователя на твою страницу и посылает ей мотодом POST данные о сделке 3) твой скрипт, который должен выполняться при удачной покупки, проверяет посланные ему данные, от магазина, о сделке 4) системы обычно пересылают некий CRC-сделки, который должен совпасть с твоим CRC (собирается из данных пользователя) К примеру ROBOXchange, при успешной оплате отсылает CRC, который собирается так: md5($out_summ.':'.$inv_id.':'.$mrh_pass1.':shp_id='.$shp_id), где: $out_summ — сумма оплаты; $inv_id — ID-сделки; $mrh_pass1 — пароль, который выдаёт ROBOXchange при регистрации; $shp_id — внутренний параметр магазина (необязательный) т.е. при покупки надо собрать такой CRC и записать в БД, а при проверки надо сравнить присланный CRC с CRC в БД. Добавлено @ 00:19 Поищи мануал по своей системе оплаты. |
|||
|
||||
| RomanK |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 25.6.2005 Где: Россия, Выборг Репутация: 1 Всего: 2 |
Ciber SLasH, в принципе, то, что ты написал - логично. Я догадывался, что все-таки, что-то, какие-то данные приходят с сайта платежной системы после оплаты, но до сих пор, не проверял, да и возможности пока не было.
Кто-нибудь из сдешних не знает что-нибудь типа этого про E-Gold? Если знаете, отпишите пожалуйста. Сам я тоже пошел искать на сайт E-Gold`a, только с английским у меня не очень... поэтому долго наверно искать буду. |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |