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

 

🚩 بروزرسانی

اگه خطای Use of undefined constant گرفتید، به مدل Transaction کدهای زیر رو اضافه کنین:

class Transaction extends Model
{
>>      const STATUS_SUCCESS = 2;
>>      const STATUS_PENDING = 1;
>>      const STATUS_FAILED = 0;

    // ...
    // ...

 

بعضی از نسخه‌های لاراول با خطای Serialization of 'Closure' is not allowed مواجه میشن که دلیل اون مشخص نیست. اگه با چنین خطایی مواجه شدین سعی کنین کش‌های برنامه رو پاک کنین:

php artisan config:clear
php artisan route:clear
php artisan cache:clear
php artisan view:clear

اگه باز هم مشکل وجود داشت، قسمت catch توی متد purchase رو به این صورت باز نویسی کنین:

catch (Exception|PurchaseFailedException|SoapFault $e) {
    $transaction->transaction_result = [
        'message' => $e->getMessage(),
        'code' => $e->getCode(),
    ];

    $transaction->save();
    // ...