جشنواره بهارانه راکت! ۳۵% تخفیف ویژه بر روی دورههای آموزشی
مشاهده دورههادوستان سلام
من وریفای درگاه ملت توی لاراول به مشکل خطای 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
چطوری میتونم این مشکل رو حل کنم
سلام آقای نصرتی راه چی شد ؟ اگه حل شد بی زحمت راه حل رو بنویسید اینجا. تشکر
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟