1

我正在尝试在我的网站上实施贝宝支付系统。我有点卡在接收 IPN 上。该网站是用 PHP 开发的,基于 ZendFramework 和 Doctrine 1.2.3

我使用位于贝宝网站上的示例脚本来接收 IPN,但是它不起作用。出于调试目的,我留在了 IPN 页面代码上,该代码只是在我的 mysql 数据库中的表中插入一个新条目,所以每次我加载页面时,都会在数据库中插入一个新条目。

我再次尝试使用 PayPal 的即时付款通知 (IPN) 模拟器,并尝试向该页面发送一个新的 IPN,但是数据库中没有插入任何内容,所以我最好的猜测是,paypal 无法访问我的页面,即使它表示IPN成功发送。

ipn url 类似于: http: //mydomain.com/shop/paypal/ipn

4

2 回答 2

0

我终于明白了。看起来,paypal 不会将 IPN 数据发送到以下网址: domain.com/shop/ipn 。我创建了一个单独的 php 文件,与我使用的框架无关,因此 ipn url 看起来像:domain.com/ipn.php。现在一切正常。

于 2012-05-20T22:19:02.270 回答
0

我回来了一个正确的答案。它不起作用的原因不是任何 paypal ipn url-form 限制。我使用 Zend_Translate 进行多语言支持,并将访问者浏览器发回给我的默认语言用作默认语言。问题是当 paypal 向我发送它没有提供的 IPN 时任何默认语言,这会在我的代码中生成异常并导致应用程序崩溃,因此没有收到任何 IPN。

此外,如果有人需要在 Zend 中使用自定义 URL,他们可以使用 Zend_Controller_Router_Route_Regex,更多信息在这里:

http://framework.zend.com/manual/1.10/en/zend.controller.router.html#zend.controller.router.routes.regex

于 2013-05-22T08:58:28.283 回答