You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Route::match(['GET', 'POST'], '/callback', function () {
dd('done');
});
ولی با خطا مواجه میشم و میگه این روتی که استفاده میکنی باید از نوع گت باشه نه پست ... ولی من هیچ روتی به درخواست پست واسش در نظر نگرفتم ... کسی میدونه مشکل کجاس؟؟؟
سلام. این خطا معمولا از فرم ریدایرکت میاد، نه از کد شما. اگه ویوهای پکیج رو publish کرده باشید (vendor:publish --tag=payment-views)، فایل resources/views/vendor/payment/redirectForm.blade.php جای فرم درایور local استفاده میشه. اون فرم خودکار با POST به آدرس همون صفحه (/pay) سابمیت میشه و چون /pay فقط GET هست، ارور میگیرید. این فایل رو پاک کنید (یا اسمش رو عوض کنید) و دوباره امتحان کنید.
یه نکتهی دیگه: via() تنظیمات درایور رو ریست میکنه، پس callbackUrl رو بعد از via() بذارید.
مثال کامل:
useShetabit\Multipay\Invoice;
useShetabit\Multipay\Exceptions\InvalidPaymentException;
useShetabit\Payment\Facade\Payment;
Route::get('/pay', function () {
$invoice = (newInvoice)->amount(1000);
return Payment::via('local')
->callbackUrl(url('/callback'))
->purchase($invoice, function ($driver, $transactionId) {
// transactionId رو ذخیره کنید
})
->pay()
->render();
});
// فرم درایور local با POST به این آدرس برمیگرده
Route::post('/callback', function () {
try {
$receipt = Payment::via('local')
->amount(1000)
->transactionId(request('transactionId'))
->verify();
return'پرداخت موفق: '.$receipt->getReferenceId();
} catch (InvalidPaymentException$e) {
return'پرداخت ناموفق: '.$e->getMessage(); // وقتی روی «پرداخت ناموفق» بزنید
}
});
اگه بعد از پاک کردن ویو هم ارور داشتید، متن کامل خطا (که اسم روتش رو میگه) و ورژن پکیج رو بذارید.
Activity
khanzadimahdi commentedon Oct 6, 2026
سلام. این خطا معمولا از فرم ریدایرکت میاد، نه از کد شما. اگه ویوهای پکیج رو publish کرده باشید (
vendor:publish --tag=payment-views)، فایلresources/views/vendor/payment/redirectForm.blade.phpجای فرم درایورlocalاستفاده میشه. اون فرم خودکار با POST به آدرس همون صفحه (/pay) سابمیت میشه و چون/payفقط GET هست، ارور میگیرید. این فایل رو پاک کنید (یا اسمش رو عوض کنید) و دوباره امتحان کنید.یه نکتهی دیگه:
via()تنظیمات درایور رو ریست میکنه، پسcallbackUrlرو بعد ازvia()بذارید.مثال کامل:
اگه بعد از پاک کردن ویو هم ارور داشتید، متن کامل خطا (که اسم روتش رو میگه) و ورژن پکیج رو بذارید.