laravel-5 - 使用 Laravel 5 的 Paypal 的 IPN 模拟器

标签 laravel-5 paypal-ipn paypal-sandbox

我正要解决这个问题,我正在我的应用程序中实现一个 IPN 系统,现在开始使用 Paypal 的 IPN 模拟器进行测试。

当我尝试发送 IPN 模拟时,它只给出以下错误:

We're sorry, but there's an HTTP error. Please try again.

第一个想法 - Paypal 的服务已关闭 - 测试错误,因为如果我创建一个空白页面并将 IPN 消息发送到 http://myDNS.com/blankpage.php 它能够发送它.

第二个想法 - 路线问题 - 我认为这也不是问题:

这是我在 PurchaseController.php 中的 IPN 监听器:

public function completed()
{
    //FAHIM's Paypal IPN Listener

    $ipn = new PaypalIPNListener();
    $ipn->use_sandbox = true;

    $verified = $ipn->processIpn();

    $report = $ipn->getTextReport();

    Log::info("-----new payment-----");

    Log::info($report);

    if ($verified) {
        if($_POST['address_status'] == 'confirmed'){
            //sucess
        }
    }
}

routes.php 中:

Route::post('purchase/completed/', array('as' => 'purchase.completed', 'uses' => 'PurchaseController@completed'));

IPN 模拟器和 Laravel 是否存在任何已知问题?

提前谢谢你。

最佳答案

看来我找到了答案! 问题是每当 Paypal 尝试发送 POST 信息时都会抛出 tokenMismatchException。

遇到同样问题的人,解决方法如下:

VerifyCsrfToken.php中间件中添加异常,这样异常URI就不需要CsrfToken验证了:

在我的例子中,它看起来像这样:

protected $except = [
    'purchase/completed'
];

我正在使用 Laravel 5,所以请记住它在较低版本中可能会略有不同。

关于laravel-5 - 使用 Laravel 5 的 Paypal 的 IPN 模拟器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31597048/

相关文章:

api - Paypal - PayFlow Pro,使用 'Transaction Id' 获取交易细节

php - Laravel 5.2 中特定路由的速率限制功能

mysql - Laravel 中的 WHERE 子句后加入

laravel - 如何在laravel中获取更新的记录ID?

php - 验证 PayPal IPN 的证书链

php - 在哪里可以找到结算协议(protocol) ID 然后在结帐时使用它

laravel - 在 Laravel 模型中定义表名

html - 当 PayPal 发送付款通知 (IPN)

paypal-ipn - Paypal 根本不在我的网络服务器上调用 IPN 脚本

php - Paypal 按钮不工作 - 我们很抱歉错误