假设您使用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的解决方案。
从Paypal的角度来看沟通如何工作?你是否向他们提交了详细信息,他们回复了一个URL来重定向用户? – 2011-04-02 16:58:46