отправка формы после успешной денежной транзакции PayPal с использованием php

Я сделал форму. В настоящее время эта форма выполняет следующие операции:

  1. клиент заполняет форму (создает заказ)
  2. нажимает кнопку «Отправить»
  3. все записи формы вводятся в базу данных.

Я хотел бы изменить его, чтобы выполнять следующие операции:

  1. клиент заполняет форму
  2. в конце формы есть текстовое поле, показывающее, сколько ему будет стоить этот заказ.
  3. нажимает кнопку «Отправить» (, если принимает цену)
  4. перенаправлено на PayPal
  5. если платеж прошел успешно -> все записи формы вносятся в базу данных. Еще -> эхо "транзакция не удалась".

Вот что я сделал до сих пор:

Содержимое "form.php"

Title
Choose an Item:
Item count:

"php -форма -процессор.php" содержимое


Форма намного больше, но я упростил ее версию stackoverflow. Цена ордера должна изменяться в соответствии со значением "varItem" и "varItemCount". В основном я хочу добавить опцию «Оплатить с помощью PayPal» перед записью заказа в базу данных. P.S. Я уже зарегистрировал учетную запись PayPal Sandbox и добавил «Покупателя» и «Продавца».

Что я должен делать дальше?

РЕДАКТИРОВАТЬ :Итак, вот небольшое руководство, как решить проблему. Вот несколько советов:

  • сначала загрузите оболочку прослушивателя IPN PayPal:https://github.com/Quixotix/PHP-PayPal-IPN
  • затем зарегистрируйте аккаунт SandBox плюс 1 покупатель и 1 продавец акк
  • Войдите в систему как продавец и создайте форму (с неразмещенной кнопкой -!)
  • поместите форму на свою страницу и проанализируйте идентификатор или любую другую необходимую информацию с помощью «настраиваемого» ввода (некоторые полезные советы можно найти здесь:http://www.devshed.com/c/a/PHP/Creating-a-Paypal-IPN-System-in-PHP-Part-Two/)
  • теперь размещайте перенаправление на эту страницу после отправки формы
  • не забудьте включить IPN в аккаунте продавца paypal и ввести ссылку IPNlistener в нужное поле адреса
  • отправьте форму PayPal и дождитесь ответа от слушателя
  • сделано

Весь процесс выглядит так:

  1. клиент заполняет форму
  2. после отправки формы -все записи записываются в базу данных + ID + 1 дополнительное поле под названием «оплачено», которое представляет :1 -, если клиент оплатил заказ, и 0 -, если нет
  3. используйте заголовок («URL-адрес местоположения :» )для перенаправления с формы _Processing на форму Paypal _
  4. используйте «сеанс» для записи идентификатора заказа в сеанс или используйте сообщение POST
  5. отправьте форму PaypalForm и используйте «настраиваемое» поле в качестве идентификатора нашего заказа
  6. настройте прослушиватель для обновления базы данных следующим образом :, если транзакция прошла успешно -> обновите столбец базы данных «оплачено» до 1 (сделано ). Используйте идентификатор из поля «Пользовательский», чтобы выбрать нужный заказ, т.е.:

$sql = "ОБНОВЛЕНИЕ paypal _test SET payed = '1' WHERE id = '".$ _POST['custom']."'";

Теперь у нас есть база данных с заполненными и -незаполненными формами. Дополнительно можно написать логику, которая будет удалять "старые" незавершенные заказы. По этой причине вы можете создать дополнительный столбец с именем «дата», а затем сравнить :, если (текущая _дата.дней -старая _дата.дней > 7)-> удалить из БД. Вот и все!

6
задан Alex 6 August 2012 в 20:50
поделиться