دوستان سلام
من وریفای درگاه ملت توی لاراول به مشکل خطای 419 برخوردم میدونم که برای csrf هستش اما هر کاری میکنم رفع نمیشه و توی میلدلویر VerifyCsrfToken هم url  رو قرار دادم اما زمانی که اینجا قرار میدم تا خطا نده دیگه کلا به صفحه وریفای نمیاد و بعد از پرداخت و یا انصراف درخواست ورود میکنه و دوباره برگشت میخوره به درگاه خود به خود برای رفعش چکار کنم ؟
<?php
namespace App\Http\Middleware;
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware;
class VerifyCsrfToken extends Middleware
{
     protected $addHttpCookie = true;
    /**
     * The URIs that should be excluded from CSRF verification.
     *
     * @var array
     */
    protected $except = [
        '/checkout'
    ];
}این کد VerifyCsrfToken هست و برای متدی که وریفای رو انجام میده حتی اگه هیچ کدی هم ننویسم باز با اون خطا مواجه میشم
    public function payment($orderId)
    {
        $order = session()->get('order');
        $Amount = $order['priceTotalAll']*10;
        $dateTime = new Carbon();
        $localDate = $dateTime->format('Ymd');
        $localTime = $dateTime->format('His');
        $additionalData = "";
        $payerId = 0;
        $this->client = new nusoap_client('https://bpm.shaparak.ir/pgwchannel/services/pgw?wsdl');
        if($Amount && $Amount >= 1000 && $orderId ) {
            $parameters = [
                'terminalId' => $this->terminalId,
                'userName' => $this->userName,
                'userPassword' => $this->userPassword,
                'orderId' => $orderId.time(),
                'amount' => $Amount,
                'localDate' => $localDate,
                'localTime' => $localTime,
                'additionalData' => $additionalData,
                'callBackUrl' =>$this->callBackUrl,
                'payerId' => $payerId
            ];
            try {
                // Call the SOAP method
                $result = $this->client->call('bpPayRequest',$parameters,$this->namespace);
                // Display the result
                $res = explode(',', $result);
                if ($res[0] == "0") {
                    echo '<form action="https://bpm.shaparak.ir/pgwchannel/startpay.mellat" method="POST">
                     <input type="hidden" id="RefId" name="RefId" value="'. $res[1] .'">
                    '.csrf_field().'
                     </form>
                     <script type="text/javascript">window.onload = formSubmit; function formSubmit() { document.forms[0].submit(); }</script>';
                    exit;
                } else {
                    switch ($result[0]){
                        case 21:
                            alert()->error('خطای پرداخت',"پذیرنده نا معتبر است");
                            return redirect('/');
                            break;
                        case 25:
                            alert()->error('خطای پرداخت',"مبلغ نامعتبر است");
                            return redirect('/');
                            break;
                        case 43:
                            alert()->error('خطای پرداخت',"قبلا درخواست Verify داده شده است");
                            return redirect('/');
                            break;
                    }
                }
            } catch (Exception $e) {
                return $e->getMessage();
            }
 }  }
    public function checkOut(){
        return \request()->all();
        $this->client = new nusoap_client('https://bpm.shaparak.ir/pgwchannel/services/pgw?wsdl');
        $orderId = time();
        $parameters = [
            'terminalId' => $this->terminalId,
            'userName' => $this->userName,
            'userPassword' => $this->userPassword,
            'orderId' => $orderId,
            'saleOrderId' => \request()->SaleOrderId,
            'saleReferenceId' => \request()->RefId,
        ];
        $verify = $this->client->call('bpVerifyRequest',$parameters,$this->namespace);
        if ($verify == '0'){
            $settel = $this->client->call('bpSettleRequest',$parameters,$this->namespace);
            if ($settel == '0'){}
        }elseif($verify != '0' and !empty($verify)){
            $inquiry = $this->client->call('bpInquiryRequest',$parameters,$this->namespace);
            if ($inquiry == '0'){
                $settel = $this->client->call('bpSettleRequest',$parameters,$this->namespace);
                if ($settel == 0 ){
                }else{
                }
            }else{
                $reversal = $this->client->call('bpReversalRequest',$parameters,$this->namespace);
            }
        }
    }این کد های من هستش که برای اتصال و وریفای نوشتم
مشکلم اینه که زمانی که پرداخت انجام میشه و برمیگرده به سایت من سشنی که برای لاگین کاربر میپره و هردفعه همین اتفاق میفته
زمان انقضا سشن رو هم بیشتر کردم اما درست نشد.
@ghomi2018
@ghomi2018
چطوری میتونم این مشکل رو حل کنم ؟
از اونجایی که بانک ملت با متد post هم کار میکنه نیاز به csrf_token هست من این url رو توی کلاس VerifyCsrfToken  گذاشتم برای حل مشکل csrf اما به این مشکل بر میخورم. ممنون میشم راهنمایی کنید
@rabco
چطوری میتونم این مشکل رو حل کنم
سلام آقای نصرتی راه چی شد ؟ اگه حل شد بی زحمت راه حل رو بنویسید اینجا. تشکر
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟