سلام دوستان روز بخیر
من از درگاه زرین پال برای وبسایت استفاده میکنم
در یکی از وبسایت ها بدرستی کار میکنه بدون هیچ میشکلی ولی در سایت دیگر که از ی هاست دیگه استفاده کردم فقط صفحه سفید رو میاره بدون هیچ خطایی مشکل از کجا میتونه باشه
سواپ کلاینت هم فعال هست
@mr.pangh
نسخه php سرور جدید رو بالا ببرید یا پایین بیارید چک کنید با ورژن های مختلف
@ali.farmani
چک کردم حل نشد
شاید پاسخ شما همینجا باشد
سلام از پکیج زیر استفاده کنید درگاه های مختلف رو پشتیبانی میکنه و میتونید بین درگاه های مختلف بدون کدنویسی جابه جا بشید.
https://packagist.org/packages/shetabit/payment
دقت کنید که در روتر متدی که برای صفحه برگشت تنظیم کردین any باشه تا با صفحه سفید مواجه نشید. به صورت زیر
Route::any('path/to', 'controller@action');اگه صفحه سفید میاد توی هاستتون ارور رو میزنه برین به اون پوشه که کدهای مربوطه توشه و فایل erorr رو که هاستتون به وجود آورده رو بخونین اونجا حتما حتما اررو رو نوشته.
این مشکل رو دقیقا من هم دارم و نمیدونم چطور رفعش کنم
ممنون میشم اگر کسی بتونه کمکمون کنه
سلام
من از 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
حسین جان ممنون از پاسخت،
در اون حالت هم باز صفحه سفید نشون میده بدون هیچ خطایی. حتی وقتی dd($payment->pay()->render()) هم میکنم همون اتفاق میوفته و میبینم که html رو نشون میده اما توی صفحه هیچ چیزی نیست. خیلی باهاش سر و کله زدم و هنوز موفق نشدم که از این مرحله جلوتر برم. ایده ای داری که چطور باید رندر بکنمش؟
دوستان دیگه هم اگر لطف کنن کمک بکنن ممنون میشم.
اون return; خط 6 پاک کن وdd نگیر بعد api key نوشتی ؟
@khebkhah
بعد این dd بگیر ببین لینک درگاه میده یانه
$payment->pay()->getAction();حسین عزیز،
بله apikey نوشتم. و با getAction() هم همچنان صفحه سفید بر میگردونه. dd هم گرفتم و لیتگ در گاه رو برمیگردونه. ممکنه مشکل از تنظیمات html یا شاید دسترسی فولدر ها باشه؟ واقعا چیز دیگه ای به ذهنم نمیرسه.
الان متوجه شدم احتمالا مشکل از روتینگ هستش، زمانی که مستقیم از فایل روتز فراخوانی میکنمش میره به سمت درگاه اما زمانی که توی فایل 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
خب دوست عزیز شما به کنترلر وصلش نکردی خب معلومه نشنون نمیده
باید روت post کنی وادرس کنترلر بدی بهش
@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();
}
}