jafar
1 سال پیش توسط jafar مطرح شد
1 پاسخ

ارور هنگام ذخیره کردنtransactionid در پکیج شتابیت

با سلام
من موقع ذخیره کردن مقدار $transaction_id ارور زیر رو میگیرم :

Object of class Shetabit\Multipay\Drivers\Zarinpal\Zarinpal could not be converted to string

کدهام رو هم اینجا میزارم.

$userId = Auth::user()->id_user;
            $amount= intval($request->input('amount'));
            $transaction_user = TransactionUser::create([
                'user_id'=>$userId,
                'amount' =>$amount
            ]);
            $invoice=new Invoice();
            $invoice->amount($amount);
            $res = Payment::purchase($invoice,function ($transaction_id) use ($transaction_user){
                $transaction_user->update([
                    'transaction_id'=>$transaction_id
                ]);
            })->pay()->render();
            return $res;

ثبت پرسش جدید
مهدی نظری
تخصص : توسعه دهنده Front End
@mahdi.nazari 1 سال پیش مطرح شد
0

سلام دوست من 🖐
امیدوارم حالت خوب و عالی باشی✨

خطای "Object of class Shetabit\Multipay\Drivers\Zarinpal\Zarinpal could not be converted to string" معمولاً به دلیل تلاش برای تبدیل یک شیء به رشته (String) در جاهایی که انتظار نمیره این تبدیل انجام بشه، ایجاد می‌شه. در اینجا، مشکل به نظر می‌رسه مربوط به نحوه استفاده از کتابخانه Shetabit\Multipay برای انجام تراکنش پرداخت با درگاه Zarinpal هستش.

برای رفع این مشکل ، باید از نحوه استفاده صحیح از کتابخانه Multipay و تراکنش‌های پرداختی با Zarinpal اطمینان حاصل کنی. ابتدا مطمئن شو که متغیر $res حاوی یک شیء از نوع تراکنش Multipay باشه و بتونید اطلاعات لازم را از اون استخراج کنی.

به عنوان مثال، میتونی از متغیر $res استفاده کنید تا اطلاعات تراکنش (مانند شناسه تراکنش) را بدست بیاری و اونها رو به جدول transaction_users اضافه کنی . به طور تقریبی، کد زیر میتونه بهت کمک کنه

$res = Payment::purchase($invoice)->pay();

// بررسی موفقیت تراکنش
if ($res->isSuccessful()) {
    $transaction_id = $res->getReferenceId();

    $userId = Auth::user()->id_user;
    $amount = intval($request->input('amount'));

    $transaction_user = TransactionUser::create([
        'user_id' => $userId,
        'amount' => $amount,
        'transaction_id' => $transaction_id, // افزودن شناسه تراکنش به جدول
    ]);

    // ادامه کارهای دیگر
} else {
    // تراکنش ناموفق است، انجام کارهای مورد نیاز برای ناموفق بودن تراکنش
}

در اینجا، من از متد isSuccessful() برای بررسی موفقیت تراکنش استفاده میکنم و اگر تراکنش موفقیت‌آمیز باشه، شناسه تراکنش را از تراکنش Multipay دریافت میکنیم و به جدول transaction_users اضافه می‌کنیم. در غیر این صورت، میتونی اقدامات لازم برای مدیریت تراکنش ناموفق را انجام بدی.

امیدوارم پاسخم بهت کمک کرده باشه ❤️
موفق و پیروز باشی 🤘🌹


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

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