2011-04-02 36 views
0

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

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

非常感谢。

+0

从Paypal的角度来看沟通如何工作?你是否向他们提交了详细信息,他们回复了一个URL来重定向用户? – 2011-04-02 16:58:46

回答

1

假设您使用Express Checkout,最简单的方法是在验证后将用户简单地重定向到另一个页面,说“重定向到paypal ...”。

在那个页面上你会看到一个隐藏的表单(你可以用Zend_Form来构建它,或者手动创建它并不重要),然后你可以添加一些javascript来提交该表单,同时也可以让“submit”按钮可见该用户可以点击它,如果累了等到JavaScript为他做。

或者,这可以简单地是“感谢您”页面,例如:

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

[点击此处]完成付款。

付款完成后,贝宝将返回到您指定的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之前添加的订单#“链接”。

您还可以检查其他的方式做结帐,这意味着贝宝在这里https://cms.paypal.com/ca/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_api_WPGettingStarted

或者,你也可以尝试的PayPal NVP的解决方案。