使用payumoney付款状态回复url时,在laravel中出现419页过期错误

问题描述

这是我的支付网关页面

<?PHP

    $MERCHANT_KEY = "WTLZQBOb"; // add your id
    $SALT = "6MyvUWk9pP"; // add your id

    //$PAYU_BASE_URL = "https://test.payu.in";
    $PAYU_BASE_URL = "https://secure.payu.in";
    $action = '';
    $txnid = substr(hash('sha256',mt_rand() . microtime()),20);
    $posted = array();
    $posted = array(
        'key' => $MERCHANT_KEY,'txnid' => $txnid,'amount' => 1,'firstname' => Auth::user()->name,'email' => Auth::user()->email,'productinfo' => 'PHP Project Subscribe','surl' => 'http://infohp.in/admin/callback-pay-u-money','furl' => 'http://infohp.in/admin/cancel-payment','service_provider' => 'payu_paisa',);

    if(empty($posted['txnid'])) {
        $txnid = substr(hash('sha256',20);
    } 
    else 
    {
        $txnid = $posted['txnid'];
    }

    $hash = '';
    $hashSequence = "key|txnid|amount|productinfo|firstname|email|udf1|udf2|udf3|udf4|udf5|udf6|udf7|udf8|udf9|udf10";
    
    if(empty($posted['hash']) && sizeof($posted) > 0) {
        $hashVaRSSeq = explode('|',$hashSequence);
        $hash_string = '';  
        foreach($hashVaRSSeq as $hash_var) {
            $hash_string .= isset($posted[$hash_var]) ? $posted[$hash_var] : '';
            $hash_string .= '|';
        }
        $hash_string .= $SALT;

        $hash = strtolower(hash('sha512',$hash_string));
        $action = $PAYU_BASE_URL . '/_payment';
    } 
    elseif(!empty($posted['hash'])) 
    {
        $hash = $posted['hash'];
        $action = $PAYU_BASE_URL . '/_payment';
    }

?>
<html>
  <head>
  <Meta name="csrf-token" content="{{ csrf_token() }}">
  <script>
    var hash = '<?PHP echo $hash ?>';
    function submitPayuForm() {
      if(hash == '') {
        return;
      }
      var payuForm = document.forms.payuForm;
           payuForm.submit();
    }
    $.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('Meta[name="csrf-token"]').attr('content')
    }
});
  </script>
  </head>
  <body onload="submitPayuForm()">
    Processing.....
        <form action="<?PHP echo $action; ?>" method="post" name="payuForm"><br />
           
            <input type="hidden" name="key" value="<?PHP echo $MERCHANT_KEY ?>" /><br />
            <input type="hidden" name="hash" value="<?PHP echo $hash ?>"/><br />
            <input type="hidden" name="txnid" value="<?PHP echo $txnid ?>" /><br />
            <input type="hidden" name="amount" value="1" /><br />
            <input type="hidden" name="firstname" id="firstname" value="<?=Auth::user()->name?>" /><br />
            <input type="hidden" name="email" id="email" value="<?=Auth::user()->email?>" /><br />
            <input type="hidden" name="productinfo" value="PHP Project Subscribe"><br />
            <input type="hidden" name="surl" value="http://infohp.in/admin/callback-pay-u-money" /><br />
            <input type="hidden" name="furl" value="http://infohp.in/admin/cancel-payment" /><br />
            <input type="hidden" name="service_provider" value="payu_paisa"  /><br />
            <?PHP
            if(!$hash) { ?>
                <input type="submit" value="Submit" />
            <?PHP } ?>
        </form>
  </body>
</html>

这是我的网址链接

<input type="hidden" name="surl" value="http://infohp.in/admin/callback-pay-u-money" /><br />
            <input type="hidden" name="furl" value="http://infohp.in/admin/cancel-payment" /><br />

我试图在我的 laravel 7 项目中使用 payUmoney,但出现错误

当我尝试在 laravel 7 的 URL 页面获取 payuMoney 付款响应状态并重定向时,请您帮我解决该问题。请尽快帮助我。

解决方法

app/Http/Middleware/VerifyCsrfToken.php 上的这条路由除外(数组除外)

$except = ['*cancel-payment*'];