使用Laravel 5的PayPal的IPN模拟器



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

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

很抱歉,这里有一个HTTP错误。请重试。

第一个想法- Paypal的服务是down -测试错误,因为如果我创建一个空白页面并发送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
        }
    }
}

In 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,所以请记住,它可能在较低的版本略有不同。

相关内容

  • 没有找到相关文章

最新更新