需要帮助Zend表单到Paypal网站

时间:2011-04-02 16:22:46

标签: zend-framework zend-form

我创建了一个Zend表单(用户可以指定他们想要存入我的后端系统的付款详细信息和金额),当他们提交验证功能的详细信息以确保所有数据都经过验证。但经过验证后,我想向paypal IPN网站提交必要的支付数据,并将用户转发到paypal网站(这样他们就可以输入他们的PayPal电子邮件和密码进行交易)。

但我不知道如何实现这一目标?我是否需要创建一个新的Zend Form对象并将数据发布到paypal网站,或者有一种简单的方法将数据提交给paypal并将用户转发到paypal网站?如果可能,你可以告诉我如何编码吗?

非常感谢。

2 个答案:

答案 0 :(得分:1)

假设您使用快速结账,最简单的方法是在验证后将用户重定向到另一个页面,说“重定向到贝宝...”。

在那个页面上你将有一个隐藏的表单(你可以使用Zend_Form或manuallly构建它,它并不重要),然后你可以添加一些javascript来提交该表单,并保持“提交”按钮可见,这样用户可以点击它,如果累了等待,直到javascript为他做。

或者这可以只是一个“谢谢”页面,例如:

  

感谢您的订购!   您的订单号是27335

     

[点击此处]完成付款。

付款完成后,paypal将返回您指定的IPN网址。然后你可以这样检查:

$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解决方案。

答案 1 :(得分:1)

如果您需要了解以下内容,请参阅我的博客中的Zend Framework Paypal NVP教程:http://www.alexventure.com/2011/02/28/zend-framework-and-the-paypal-api-part-1-of-2/

它涵盖了第一部分PayPal网站付款专业版的实施,以及第二部分的PayPal Express Checkout。它使用PayPal NVP API和Zend Framework Zend_Http_Client类完成。