2015-07-29 3 views
1

мне нужно интегрировать платежи с PayPal, и я использую форму интеграциюPaypal Форма оплата правильных рабочий

<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post"> 
    <input type="hidden" name="cmd" value="_cart"> 
    <input type="hidden" name="upload" value="1"> 
    ... 
    <input type="hidden" name="return" value="http://example.com/Thankyou.html"> 
    <input type="hidden" name="notify_url" value="http://example.com/IPN"> 
    <input type="image" name="submit" border="0" src="/img/logos_icons/paypal-btn.png" alt="PayPal - The safer, easier way to pay online"> 
</form> 

После этого момента я немного перепутал: когда пользователь нажимает на кнопке купить, перенаправляется на веб-сайт PayPal и когда транзакция завершена, перенаправляется по ссылке «перенастроить» (страница с благодарностью). В то же время PayPal отправляет уведомление (IPN) на «notify_url».

Это правильный рабочий процесс? если да, в методе уведомления я должен заказать приобретенные продукты, но как я могу понять, какая из них является исходной транзакцией, связанной с текущим уведомлением?

ответ

2

У вас есть правильный поток, хотя в зависимости от характера транзакции или пользовательского опыта, который вы пытаетесь предоставить, вы можете выполнять операцию выполнения «заказывать приобретенные продукты») в двух местах: обрабатываться страницей пользователя возвращается (если они действительно возвращаются, и вы хотите немедленно выполнить заказ, например, чтобы они могли перейти на подписанную страницу) и через IPN, чтобы поймать случаи, когда пользователь платит, но не сразу возвращается на ваш сайт.

Обычно вы отправляете уникальный уникальный идентификатор в PayPal в поле счета-фактуры кнопки; этот идентификатор связан с любым контекстом, который вам нужен (сведения о покупке/корзина покупок, учетная запись пользователя, что угодно) на вашей стороне.

+0

Спасибо, я нашел этот пример реализации IPN https://mvcsamples.svn.codeplex.com/svn/trunk/Kona.Web/Controllers/PayPalController.cs, но он снова отправляет запрос на paypal (в IPN-действие), как подтверждение, может быть ... так ли это правильный поток? и вы знаете, почему нам нужно отправить обратно на paypal? – DevT

+1

@DevT сообщение назад в PayPal должно проверить сообщение IPN, полученное вашим сервером, фактически отправлено PayPal. После отправки сообщения PayPal ответит «VERIFIED», если IPN-сообщение действительно и соответствует сообщению, отправленному PayPal. В противном случае он ответит «INVALID». [См. Здесь] (https://developer.paypal.com/docs/classic/ipn/integration-guide/IPNIntro/#protocol_and_arch) для получения дополнительной информации об этом процессе. –

+0

@JasonZ Спасибо за разъяснение – DevT

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