php - 在VerifyCsrfMiddleware.php第16行laravel 5中出现TokenMismatchException

标签 php laravel-5 payment-gateway ccavenue

我正在使用 Laravel 5 制作电子商务 Web 应用程序。

现在我陷入了支付集成的困境。我使用 CCAvenue 作为我的支付集成,但 ccavenue 本身不为 Laravel 框架提供支持。

经过一番研究,我得到了这个名为 Indipay 的包。这个包工作得很好。但是,我得到了 TokenMismatchException。虽然交易成功并且我确实收到了收到付款的通知。

检查下面的图片:

enter image description here

routes.php

Route::post('/store/proceed-to-checkout', 'CheckoutController@proceedToCheckout');
Route::get('/store/thank-you', 'PagesController@getThankYou');

CheckoutController.php

public function proceedToCheckout(Request $request)
{
    $orderCode = Order::latest()->limit(1)->first();
    $newOrderCode = ($orderCode) ? ++$orderCode->order_code : 'ORD-000000001';

    $parameters = [
        'merchant_id' => $request->get('merchant_id'),
        'currency' => $request->get('currency'),
        'redirect_url' => $request->get('redirect_url'),
        'cancel_url' => $request->get('cancel_url'),
        'language' => 'EN',
        'order_id' => $newOrderCode,
        'actionId' => $request->get('actionID'),
        'TxnType' => $request->get('TxnType'),
        'amount' => $request->get('amount'),
        'tid' => time().rand(111,999)
    ];

    return Indipay::purchase($parameters);
}

PagesController.php

public function getThankYou(Request $request)
{
    $ordCode = Session::get('ordCode');

    $response = Indipay::response($request);

    dd($response);

    //return view('version-seven.pages.thank_you', compact('ordCode'));
}

内核.php

<?php namespace App\Http;

use Illuminate\Foundation\Http\Kernel as HttpKernel;

class Kernel extends HttpKernel {

    /**
     * The application's global HTTP middleware stack.
     *
     * @var array
     */
    protected $middleware = [
        'Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode',
        'Illuminate\Cookie\Middleware\EncryptCookies',
        'Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse',
        'Illuminate\Session\Middleware\StartSession',
        'Illuminate\View\Middleware\ShareErrorsFromSession',
        //'App\Http\Middleware\VerifyCsrfToken',
        'App\Http\Middleware\VerifyCsrfMiddleware',
    ];

    /**
     * The application's route middleware.
     *
     * @var array
     */
    protected $routeMiddleware = [
        'auth' => 'App\Http\Middleware\Authenticate',
        'auth.basic' => 'Illuminate\Auth\Middleware\AuthenticateWithBasicAuth',
        'guest' => 'App\Http\Middleware\RedirectIfAuthenticated',
        'admin' => 'App\Http\Middleware\AdminAuthentication',
    ];

}

可能的问题是什么?有人可以帮我解决这个问题吗?

非常感谢任何帮助。谢谢。

最佳答案

好吧...我就遇到过这样的情况。禁用 'App\Http\Middleware\VerifyCsrfToken' 并不是一个好的解决方案。 最好的方法是禁用 URL,特别是那些需要 token 的 URL。如下所示:

 protected $except = [
    'transaction-failed/*',
    'transaction-successful/*',
    'payment-notification/*',

];

注意:不要忘记在 URL 末尾添加“/*”。

关于php - 在VerifyCsrfMiddleware.php第16行laravel 5中出现TokenMismatchException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32009490/

相关文章:

javascript - Node.js 不连接 MySQL, PHPMyAdmin

php - 来自用户而不是 Nginx 反向代理服务器的 REMOTE_ADDR IP

express - Paypal Express Checkout 使用信用卡/借记卡定期付款的后续步骤

payment-gateway - 集成paypal支付专业版

php - Laravel 5.5 - 排队事件监听器的 Horizo​​n 自定义作业标签

c# - 无法处理带有引用代码 [xxx] 的订单,该标志无效 PayU

php - 使用php获取文件上传的剩余时间

php - php 中未声明的变量为什么会出错?

jQuery 单击一个按钮最终单击具有相同类的所有按钮

php - Laravel 5 中的加密与解密