Нужна помощь с формой Zend на сайт Paypal - PullRequest
0 голосов
/ 02 апреля 2011

Я создал форму Zend (пользователь может указать реквизиты платежа и сумму денег, которую он хотел внести в мою внутреннюю систему), когда они отправили детали, которые он проходит, в функцию проверки, чтобы убедиться, что все данные проверены.Но после проверки я захотел отправить необходимые платежные данные на сайт PayPal IPN и перенаправить пользователя на сайт PayPal (чтобы они могли ввести свой PayPal адрес электронной почты и пароль для транзакции).могу ли я достичь этого?Нужно ли создавать новый объект Zend Form и публиковать данные на веб-сайте PayPal, или существует простой способ отправки данных в PayPal и перенаправления пользователя на веб-сайт PayPal?Если можно, покажи мне, как я могу это написать?

Заранее большое спасибо.

Ответы [ 2 ]

1 голос
/ 07 июля 2011

Вот учебник Zend Framework PayPal NVP прямо из моего блога, если вам нужно знать: http://www.alexventure.com/2011/02/28/zend-framework-and-the-paypal-api-part-1-of-2/

Он охватывает реализацию PayPal Website Payments Pro в первой части и PayPal Express Checkout во второйчасть.Для этого используется API-интерфейс PayPal NVP и класс Zend Framework Zend_Http_Client.

1 голос
/ 03 апреля 2011

Если вы используете Express Checkout, самый простой способ сделать это - просто перенаправить пользователя на другую страницу с сообщением «перенаправление на paypal ...» после вашей проверки.

На этой странице у вас будет скрытая форма (вы можете создать ее с помощью Zend_Form или вручную, это не имеет особого значения), затем вы можете добавить некоторый javascript для отправки этой формы и также оставить кнопку «отправить»видимый, чтобы пользователь мог щелкнуть по нему, если устал ждать, пока javascript сделает это за него.

Или это может быть просто страница с благодарностью, например:

Спасибо за вашпорядок!Ваш номер заказа: 27335

[Нажмите здесь], чтобы завершить платеж.

После того, как платеж будет завершен, PayPal вернется к указанному вами IPN URL.Затем вы можете проверить это следующим образом:

$paypal_url = 'https://www.paypal.com/cgi-bin/webscr';
$client = new Zend_Http_Client($paypal_url);
$client->setMethod(Zend_Http_Client::POST);
$client->setParameterPost(array('cmd' => '_notify-validate')+$_POST);
$response = $client->request();

if ($response->getBody() !== 'VERIFIED') {
    //Not verified
    die("FAIL");
}

Этот кодекс просто гарантирует, что то, что вы получили от IPN, действительно исходит от PayPal.После этого вам также необходимо проверить переданные вам параметры в $ _POST (например, номер заказа, сумму, валюту и т. Д.).Вам также понадобится item_number, чтобы «связать» его с порядком #, который вы должны были добавить перед перенаправлением на PayPal.

Вы также можете проверить другие способы, делая заказ, который PayPal предлагает здесь https://cms.paypal.com/ca/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_api_WPGettingStarted

В качестве альтернативы, вы также можете попробовать решение PayPal NVP.

...