محمد رضا
3 سال پیش توسط محمد رضا مطرح شد
21 پاسخ

خطای وجود نداشتن آدرس بازگشت در درگاه به پرداخت ملت

سلام خدمت همه راکتی های عزیز
من برای پرداخت از پکیج خوب شتابیت استفاده میکنم و قبلا با درایور زرین پالش کار کردم و مشکلی نداشتم تا به امروز
از نظر ارسال اطلاعات و دریافتش در مسیر call back تعریف شده در سامانه
اما با درگاه جدید که به پرداخت ملت هست مشکلی که دارم اینه که بعد از وارد شدن به صفحه ی بانک و انجام و یا لغو تراکنش مسیر بازگشتی که میخواد داده ارسال کنه برام خطای 404 رو نشون میده اما ادرس بار مرور گر روت دقیق و درستی رو نشون میده

در زرین پال درخواست به صورت get بود و به پرداخت post هست تغییر دادم (در مرحله ی اول تست به پرداخت خطا گرفتم که این روت get هست و نمیتونی به صورت post بازش کنی یعنی باز هم ادرس رو تشخیص میداد )و حتی any رو هم چک کردم و از نظر csrf هم این ادرس disable شده هست.
ممنون میشم اگر راهنمایی بفرمایید دلیل اینکه ادرس رو خطا میده و میگه وجود نداره چی هست.


ثبت پرسش جدید
محمد رضا
تخصص : Full Stack Developer
@salar.mohammad2013 3 سال پیش مطرح شد
0

@websaz
مشکل نام متغییر هایی بود که از سمت بانک میومد و متفاوت با چیزی بود که زرین پال میفرستاد برام و این تغییر نام باعث این خطا شده بود
با تغییر آدرس روت و تست متن ساده و برگشت ب روت قبلی و خروجی مقدار request دریافتی به این مشکل پی بردم
ولی نمیدونم چرا verify کردن یک پرداخت و بازگشتیش خطاش 404 بود ک ربطی ب پبدا نکردن صفحه نداشت
مشکل برطرف شد و من کلا دنبال مسیر اشتباهی برای حلش بودم


سبحان مولایی
تخصص : برنامه‌نویس وب: Python ::...
@websaz 3 سال پیش آپدیت شد
0

سلام کامند php artisan route:cache رو اجرا کنید ببینید تاثیری داره.


محمد رضا
تخصص : Full Stack Developer
@salar.mohammad2013 3 سال پیش مطرح شد
-2

@websaz خطای زیر رو بهم میده
توی سرور هم همینطور نشد

PS C:\Users\lucifer\Desktop\restaurants> php artisan route:cache
Route cache cleared!

   LogicException 

  Unable to prepare route [api/user] for serialization. Uses Closure.

  at C:\Users\lucifer\Desktop\restaurants\vendor\laravel\framework\src\Illuminate\Routing\Route.php:1150
    1146|      */
    1147|     public function prepareForSerialization()
    1148|     {
    1149|         if ($this->action['uses'] instanceof Closure) {
  > 1150|             throw new LogicException("Unable to prepare route [{$this->uri}] for serialization. Uses Closure.");
    1151|         }
    1152| 
    1153|         $this->compileRoute();
    1154| 

  1   C:\Users\lucifer\Desktop\restaurants\vendor\laravel\framework\src\Illuminate\Foundation\Console\RouteCacheCommand.php:62
      Illuminate\Routing\Route::prepareForSerialization()

  2   C:\Users\lucifer\Desktop\restaurants\vendor\laravel\framework\src\Illuminate\Container\BoundMethod.php:36
      Illuminate\Foundation\Console\RouteCacheCommand::handle()

سبحان مولایی
تخصص : برنامه‌نویس وب: Python ::...
@websaz 3 سال پیش مطرح شد
0

توی api.php قسمت روت api/user رو پاک کنید ( البته اگر استفاده نمی کنید ) اگر استفاده می کنید به یک controller انتقالش بدید


محمد رضا
تخصص : Full Stack Developer
@salar.mohammad2013 3 سال پیش مطرح شد
0

@websaz
کاربرد این api چی هست؟


سبحان مولایی
تخصص : برنامه‌نویس وب: Python ::...
@websaz 3 سال پیش آپدیت شد
0

گرفتن اطلاعات کاربر لاگین شده در فرانت اند ( البته اگر با vue یا react باشه)


محمد رضا
تخصص : Full Stack Developer
@salar.mohammad2013 3 سال پیش مطرح شد
0

من با توابه auth توی فرانت کار کردم و اطلاعات کاربر رو نمایش میدم اما داخل blade لاراول و از react و vue استفاده نکردم
مشکلی که نداره؟
@websaz


سبحان مولایی
تخصص : برنامه‌نویس وب: Python ::...
@websaz 3 سال پیش آپدیت شد
0

مشکلی پیش نمیاد این یه api هست ( همین طور که از اسمش مشخصه ) برای اینکه جای دیگه بگیرید مثلا توی app موبایل ( لاراول به شکل sample این متد رو داره توی 99% پروژه های خود من استفاده نمیشه!!! )


سبحان مولایی
تخصص : برنامه‌نویس وب: Python ::...
@websaz 3 سال پیش مطرح شد
0

دوست عزیز این خودش یه سوال دیگه شد


محمد رضا
تخصص : Full Stack Developer
@salar.mohammad2013 3 سال پیش مطرح شد
0

توی api.php قسمت روت api/user رو پاک کنید

اگر لطف کنید آدرس فایلش رو دقیق بدید.


سبحان مولایی
تخصص : برنامه‌نویس وب: Python ::...
@websaz 3 سال پیش مطرح شد
0

routes/api.php یه قسمت هست به این شکل:

Route::middleware('auth:api')->get('/user', function (Request $request) {
    return $request->user();
});

کامنتش کنید


محمد رضا
تخصص : Full Stack Developer
@salar.mohammad2013 3 سال پیش مطرح شد
0

من کل اینو کامنت کردمcache:clear و route:cache زدم همون خطا رو داد بازم
دو سه تا route دارم که به controller وصل نیست و function خورده خطا میده
درستش کنم تست میکنم الان
@websaz


محمد رضا
تخصص : Full Stack Developer
@salar.mohammad2013 3 سال پیش مطرح شد
0

@websaz
اقا تست کردم route:cache رو باز هم خطای 404 میده بهم
قبلش cache:clear و route:clear هم انجام دادم

ادرس بار رو هم میبینم که درسته و همین ادرس و همه چیز وقتی get کنمش و با درایور زرین پال بخوام پرداخت کنم درست عمل میکنه و مشکلی نداره.


سبحان مولایی
تخصص : برنامه‌نویس وب: Python ::...
@websaz 3 سال پیش مطرح شد
0

فایل web.php داخل rotues و کنترلر تون رو قرار بدید


محمد رضا
تخصص : Full Stack Developer
@salar.mohammad2013 3 سال پیش آپدیت شد
0

@websaz

Route::post('/payment/callback','Shop\OrderController@callback')->name('payment.callback');
            $invoice = (new Invoice)->amount($order->payable/10);
            return shetabitPayment::callbackUrl(route('payment.callback'))->purchase($invoice, function($driver, $transactionId) use($order,$cart) {
                $order->resnumbers()->create(['resnumber'=>$transactionId]);
            })->pay()->render();
    public function callback(Request $request)
    {

        try {

        } catch (InvalidPaymentException $exception) {

        }

    }

اطلاعات اضاف رو پاک کردم.

یه بخشش که مربوط با درخواستیه که ارسال میکنم برای بانک که اوکیه
یکی روت بازگشت و دیگری تابعش هست
که میگم کاملا برای درایو دیگه ی همین پکیج که زرین پال باشه کار میکنه و خطایی نداره


سبحان مولایی
تخصص : برنامه‌نویس وب: Python ::...
@websaz 3 سال پیش مطرح شد
0

من زیاد با این پکیج کار نکردم مطمئن بشید که متد post هست و get یا put نیست. توصیه میکنم document خود درگاه رو بخونید


محمد رضا
تخصص : Full Stack Developer
@salar.mohammad2013 3 سال پیش مطرح شد
0

مرسی از وقتی ک گذاشتید
بازم بررسی میکنم
سپاس فراوان
@websaz


محمد رضا
تخصص : Full Stack Developer
@salar.mohammad2013 3 سال پیش مطرح شد
0

@websaz
مشکل نام متغییر هایی بود که از سمت بانک میومد و متفاوت با چیزی بود که زرین پال میفرستاد برام و این تغییر نام باعث این خطا شده بود
با تغییر آدرس روت و تست متن ساده و برگشت ب روت قبلی و خروجی مقدار request دریافتی به این مشکل پی بردم
ولی نمیدونم چرا verify کردن یک پرداخت و بازگشتیش خطاش 404 بود ک ربطی ب پبدا نکردن صفحه نداشت
مشکل برطرف شد و من کلا دنبال مسیر اشتباهی برای حلش بودم


سبحان مولایی
تخصص : برنامه‌نویس وب: Python ::...
@websaz 3 سال پیش مطرح شد
0

فکر کنم بر میگشت به قسمت InvalidPaymentException شما


محمد رضا
تخصص : Full Stack Developer
@salar.mohammad2013 3 سال پیش آپدیت شد
0

@websaz
متاسفانه کد بنده برای پیدا کردن اون resnumber از دیتا بیس با دستور firstOrFail() بوده و طبق مستندات لاراول خطاش به صورت 404 هست
من چون طبق کد خود مهندس موسوی این بخش رو کپی کرده بودم انتظار این خطا رو در پیدا نکردن چیزی از دیتابیس نداشتم

Not Found Exceptions#
If the ModelNotFoundException is not caught, a 404 HTTP response is automatically sent back to the client:


سبحان مولایی
تخصص : برنامه‌نویس وب: Python ::...
@websaz 3 سال پیش مطرح شد
0

گفتگو جالبی بود برای من هم تجربی شد


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام