سلام من درگاه پرداخت زرین پال رو به سایتم متصل کردم الان پرداخت انجام میشه ولی کاربر به سایت هدایت نمیشه
این دو تا روت ام هست:
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 اصلا اجرا نشد
ممنون میشم راهنمایی کنین
سلام وقتتون بخیر!
برگشت اصلا به method دوم مربوط نیست
توی method اول گفتی که CallbackUrl هست فلان چیز!
اگر روی حالت sandbox باشید نباید مشکلی وجود داشته باشه.
ادرس Callback هم به صورت داینامیک کنید.
الان من گفتم بعد از خرید برگرده به url که بهش گفتم و به اون هم برمیگرده:
ادرسی که میره:
http://127.0.0.1:8000/zarinpalVerify?Authority=A00000000000000000000000000426127379&Status=OK
ولی الان مشکلم این که گفتم اگه به این روت منتقل شدی بیا فانکشن دوم رو اجرا کن
Route::get('/zarinpalVerify/{payment}',[PaymentController::class ,'zarinpalVerify']);
ولی وقتی var dump اول فانکشن گذاشتم دیدم اصلا این فانکشن اجرا نمیشه
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟