راکت

صفحه سفید هنگام پرداخت در لاراول

17 پاسخ

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

ثبت پرسش جدید

پاسخ‌ها

17
علی فرمانی
علی فرمانی
@farmani

تخصص: فرانت اند

@mr.pangh
نسخه php سرور جدید رو بالا ببرید یا پایین بیارید چک کنید با ورژن های مختلف

حسین صادقی
حسین صادقی
@Hossein.sadeGHi

@ali.farmani
چک کردم حل نشد

شاید پاسخ شما همین‌جا باشد

mahdi khanzadi
mahdi khanzadi
@khanzadimahdi

تخصص: Software engineer

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

https://packagist.org/packages/shetabit/payment

دقت کنید که در روتر متدی که برای صفحه برگشت تنظیم کردین any باشه تا با صفحه سفید مواجه نشید. به صورت زیر

Route::any('path/to', 'controller@action');
ali salimi
ali salimi
@salim

اگه صفحه سفید میاد توی هاستتون ارور رو میزنه برین به اون پوشه که کدهای مربوطه توشه و فایل erorr رو که هاستتون به وجود آورده رو بخونین اونجا حتما حتما اررو رو نوشته.

arazsalmasi
arazsalmasi
@araz2salmasi

این مشکل رو دقیقا من هم دارم و نمیدونم چطور رفعش کنم
ممنون میشم اگر کسی بتونه کمکمون کنه

احسان
احسان
@khebkhah

تخصص: مدیر

سلام
من از shetabit/payment استفاده میکنم. وقتی به رندر کردن میرسه صفحه سفید نمایش میده و جلوتر نمیره. کسی میدونه چه باید کرد؟

$invoice = new Invoice;
$invoice->amount(1000);

$invoice->detail(['detailName' => 'test']);
$payment = Payment::purchase($invoice, function ($driver, $transactionId) {
    return;
});
return $payment->pay();

@farhadi @mehranmarandi90 @Alimotreb @mhyeganeh @mobinasattari7 @ali.bayat @gomnam @mehdi.mahdavi97 @hesammousavi @websaz @tehraniy

hussein
hussein
@husseinhashim1133

تخصص: طراحی وب

@khebkhah

بعد از pay باید رندر کنی اینجوری

return $payment->pay()->render();
احسان
احسان
@khebkhah

تخصص: مدیر

حسین جان ممنون از پاسخت،
در اون حالت هم باز صفحه سفید نشون میده بدون هیچ خطایی. حتی وقتی dd($payment->pay()->render()) هم میکنم همون اتفاق میوفته و میبینم که html رو نشون میده اما توی صفحه هیچ چیزی نیست. خیلی باهاش سر و کله زدم و هنوز موفق نشدم که از این مرحله جلوتر برم. ایده ای داری که چطور باید رندر بکنمش؟
دوستان دیگه هم اگر لطف کنن کمک بکنن ممنون میشم.

@mehdi.mahdavi97 @hesammousavi @ali.bayat

hussein
hussein
@husseinhashim1133

تخصص: طراحی وب

اون return; خط 6 پاک کن وdd نگیر بعد api key نوشتی ؟
@khebkhah

بعد این dd بگیر ببین لینک درگاه میده یانه

$payment->pay()->getAction();
احسان
احسان
@khebkhah

تخصص: مدیر

حسین عزیز،‌
بله apikey نوشتم. و با getAction() هم همچنان صفحه سفید بر میگردونه. dd هم گرفتم و لیتگ در گاه رو برمیگردونه. ممکنه مشکل از تنظیمات html یا شاید دسترسی فولدر ها باشه؟ واقعا چیز دیگه ای به ذهنم نمیرسه.

hussein
hussein
@husseinhashim1133

تخصص: طراحی وب

@khebkhah

Anydesk داری ؟

احسان
احسان
@khebkhah

تخصص: مدیر

الان متوجه شدم احتمالا مشکل از روتینگ هستش، زمانی که مستقیم از فایل روتز فراخوانی میکنمش میره به سمت درگاه اما زمانی که توی فایل blade قرارش میدم صفحه سفید میده. ایده ای داری از چی میتونه باشه ؟

در این حالت کار میکنه (فایل web.php)

Route::any('/pay', function () {
    return Payment::purchase(
        (new Invoice)->amount(1000),
        function ($driver, $transactionId) {
            // Store transactionId in database.
            // We need the transactionId to verify payment in the future.
        }
    )->pay()->render();
});

در این حالت کار نمیکنه :

Route::any('/pay', function () {
    return view('pay');
});
احسان
احسان
@khebkhah

تخصص: مدیر

اره حسین جان.

hussein
hussein
@husseinhashim1133

تخصص: طراحی وب

@khebkhah
خب دوست عزیز شما به کنترلر وصلش نکردی خب معلومه نشنون نمیده
باید روت post کنی وادرس کنترلر بدی بهش

hussein
hussein
@husseinhashim1133

تخصص: طراحی وب

@khebkhah
لطفا کد بهم بدید بیام درستش کنم

hussein
hussein
@husseinhashim1133

تخصص: طراحی وب

به موس وکیبورد نمیتونم تکون بدم چرا ؟
@khebkhah

احسان
احسان
@khebkhah

تخصص: مدیر

برای دوستانی که ممکنه در آینده با این مشکل مواجه بشن،
حسین جان لطف کرد و اومد درستش کرد. مشکل این بود که از کنترلر استفاده نکرده بودم.
اگر به این مشکل خوردید اول روت رو به این شکل تعریف بکنید:

Route::post('/pay', [\App\Http\Controllers\Order::class, 'payment'])->name('payment');

در فایل کنترلر به این صورت عمل بکنید :

use Shetabit\Multipay\Invoice;
use Shetabit\Payment\Facade\Payment;

class Order extends Controller
{

    public function payment()
    {
        $invoice = (new Invoice)->amount(1000);
        return Payment::purchase($invoice, function ($driver, $transactionId) {
            // Store transactionId in database as we need it to verify payment in the future.
        })->pay()->render();
    }
}

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

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