2010-10-27 5 views
7

Я искал более 4 часов, чтобы узнать, как сделать обратный вызов с PayPal после того, как платеж был произведен.PayPal Payment Callback

Дело в том, что у меня есть сайт, который продает билеты на LAN-вечеринку, и единственный способ оплаты - с помощью PayPal.
Вот мой PayPal купить код кнопки:

<form target="paypal" action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post"> 
<input type="hidden" name="add" value="1"> 
<input type="hidden" name="cmd" value="_cart"> 
<input type="hidden" name="business" value="_MY_PAYPAL_EMAIL_"> 
<input type="hidden" name="item_number" value="<?php echo mktime(); ?>"> 
<input type="hidden" name="cn" value="<?php echo $_SESSION['userid']; ?>"> 
<input type="hidden" name="return" value="http://80.202.213.240/apps/tickets/buy/success/" /> 
<input type="hidden" name="cancel_return" value="http://80.202.213.240/apps/tickets/buy/cancelled/" /> 
<input type="hidden" name="notify_url" value="http://80.202.213.240/apps/tickets/buy/ipn/" /> 
<input type="hidden" name="lc" value="NO"> 
<input type="hidden" name="item_name" value="BitHack - Standard Ticket"> 
<input type="hidden" name="amount" value="100.00"> 
<input type="hidden" name="currency_code" value="NOK"> 
<input type="hidden" name="no_shipping" value="1"> 
<input type="hidden" name="button_subtype" value="Tickets"> 
<input type="hidden" name="add" value="1"> 
<input type="hidden" name="bn" value="PP-ShopCartBF:btn_cart_LG.gif:NonHostedGuest"> 
<input type="submit" value="Add to Cart" class="ticketShowButton submit" title="Payment via PayPal"> 

Информационный должен затем быть вставлен в базу данных, что часть я закончил. Просто нужна обратная связь для работы. Кто-нибудь знает хорошие примеры сценариев обратного вызова?

BTW, возможно ли использовать пользовательские входы?

ответ

10

Функция обратного вызова, указанная в возвращаемых и уведомляющих переменных URL, является ответственностью программиста. Зачем? Потому что каждый сайт имеет собственную структуру таблицы для заказов. Попробуйте это как руководство:

В вашем профиле Paypal настроено ваше перенаправление автоматически после заказа. Вам также потребуется установить возвращаемый URL-адрес по умолчанию. это будет использоваться, если вы забыли указать URL-адрес возврата в форме заказа или строке запроса, отправленной в Paypal.

Далее установите гт поле/переменную «2» (это покажет Paypal API для autoredirect для вашего возвращения URL после заказа и передать информацию заказа в формате POST)

Вы можете просмотреть ответ от Paypal, выполнив var_dump ($ _ POST) или print_r ($ _ POST).

Одна из важных переменных из ответа - $ _POST ['payment_status'], которая сообщит вам результат заказа. Успешная транзакция - «Завершено». Транзакция, требующая подтверждения от Paypal или со стороны продавца, - «Ожидание».

И наконец, не забудьте указать «счет-фактура» в поле/запрос Paypal, чтобы вы могли обновить статус своего заказа. Что-то вроде:

$status = $_POST['payment_status']; 
$invoice = $_POST['invoice']; 
mysql_query("UPDATE Orders SET status='$status' WHERE order_id='$invoice'"); 

Я знаю, что это плохо кодирование, но по крайней мере вы получите общее представление о том, в его простейшей форме.

Опять же, не полагайтесь на другие коды. Коды в сети существуют для справочных целей, а не как ручной работы Бога. Только у вас есть возможность создать свой собственный шедевр: D

Надеюсь, что это поможет. Проголосуйте, если вам это нравится. Игнорировать, если нет.

+0

является '$ _POST' безопасным? что происходит, когда человек, не платящий, посылает 'payment_status = 1' для обратного URL-адреса? – Cooper

1

коммерческое, но с низким экономным решением является сценарием LinkLokIPN по адресу:

http://www.vibralogix.com/linklokipn/

Нет связи, кроме как удовлетворенный клиент в PHP версии. Иногда намного проще купить (и, возможно, адаптировать) рабочее решение, чем изобретать велосипед.

+0

Спасибо, рассмотрим это. – NoobiCake

Смежные вопросы