سلام من درگاه پرداخت زرین پال رو به سایتم متصل کردم الان پرداخت انجام میشه ولی کاربر به سایت هدایت نمیشه
این دو تا روت ام هست:
Route::get('/zarinpalpay', [PaymentController::class , 'zarinpalpay']);
Route::get('/zarinpalVerify/{payment}',[PaymentController::class ,'zarinpalVerify']);
این مربوط به controller هست...دو تا فانکشن توش نوشتم
اولی:
function zarinpalpay(User $user) {
$payment = Payment::create([
// "order_id"=>$order->id,
"bank"=>"zarinpal"
]);
$zarinpal = new zarinPal([
"merchantId" => "",
]);
try {
$request = $zarinpal->apiRequest([
"callbackurl" => "http://127.0.0.1:8000/zarinpalVerify/",
"amount" => 10000,
"description" => "خرید اشتراک",
"email" => auth()->user()->email,
"mobile" => "09120000000",
]);
$payment->requestInfo = $request;
$payment->save();
$requestDecoded = json_decode($request);
return redirect()->intended($requestDecoded->url);
} catch (\Exception $error) {
var_dump(json_decode($error->getMessage()));
}
}
دومین فانکشن برای بعد از پرداخت:
function zarinpalVerify(Payment $payment) {
var_dump('yes');
$zarinpal = new zarinPal([
"merchantId" => "",
]);
// $order = Order::find($payment->order_id);
$reqinfo = json_decode($payment->requestInfo);
try {
$verify = $zarinpal->verify([
"authority" => $reqinfo->authority,
"amount" => 10000
]);
$verifyDecoded = json_decode($verify);
if ($verifyDecoded->code == 100 || $verifyDecoded->code == 101) {
$payment->status = 1;
echo "پرداخت با موفقیت انجام شد.";
session()->flash('خرید اشتراک با موفقیت انجام شد.');
}
$payment->verifyinfo = $verify;
} catch (\Exception $err) {
$payment->verifyinfo = $err->getMessage();
// var_dump($err->getMessage());
session()->flash('خطایی صورت گرفت! پرداخت موفقیت آمیز نبود.');
}
$payment->save();
return view('account');
}
اتفاقی که میافته این که اصلا فانکشن دوم (که فک میکنم مربوط به برگشت از درگاه پرداخت هست) اجرا نمیشه
vardump اصلا اجرا نشد
ممنون میشم راهنمایی کنین
الان من گفتم بعد از خرید برگرده به url که بهش گفتم و به اون هم برمیگرده:
ادرسی که میره:
http://127.0.0.1:8000/zarinpalVerify?Authority=A00000000000000000000000000426127379&Status=OK
ولی الان مشکلم این که گفتم اگه به این روت منتقل شدی بیا فانکشن دوم رو اجرا کن
Route::get('/zarinpalVerify/{payment}',[PaymentController::class ,'zarinpalVerify']);
ولی وقتی var dump اول فانکشن گذاشتم دیدم اصلا این فانکشن اجرا نمیشه
شاید پاسخ شما همینجا باشد