Mirpay to'lov tizimi uchun Laravel integratsiyasi.

v1.0.1 2025-07-03 04:17 UTC

This package is not auto-updated.

Last update: 2025-07-03 05:11:57 UTC


README

Laravel uchun Mirpay to‘lov tizimini qulay integratsiya qiluvchi SDK.

Packagist Version License Laravel

📦 O‘rnatish

composer require turgunboyevuz/mirpay

Paketni to‘liq o‘rnatish uchun quyidagi artisan komandani ishga tushiring:

php artisan mirpay:install

Bu quyidagilarni avtomatik bajaraydi:

  • routes/mirpay.php faylini yaratadi
  • config/mirpay.php faylini yaratadi
  • app/Payment/after_success.php va after_fail.php fayllarni yaratadi

Mirpay Tranzaksiyalari uchun tableni yarating

php artisan migrate

⚙️ Konfiguratsiya

.env faylingizga quyidagilarni yozing:

MIRPAY_MERCHANT_ID=your-merchant-id
MIRPAY_SECRET_KEY=your-secret-key

config/mirpay.php fayli quyidagicha ko‘rinadi:

return [
    'merchant_id' => env('MIRPAY_MERCHANT_ID', ''),
    'secret_key'  => env('MIRPAY_SECRET_KEY', ''),

    // Agar true bo‘lsa, paketdagi routes/mirpay.php fayli avtomatik ulanadi
    'routes' => true,
];

🧾 Marshrutlar (routes)

Agar routes konfiguratsiyasi true bo‘lsa, routes/mirpay.php fayli avtomatik yuklanadi.

Siz bu faylga Mirpay webhook routelarini joylashtirishingiz mumkin:

⚠️ Diqqat bilan o'qing

Mirpay to'lov tizimidan foydalanishning 2 ta turi bor:

  • Webhook (Mirpay to'lov statusini sizga yuboradi)
  • Long polling (Mirpaydan to'lov statusini so'rab olasiz).

Ushbu paketdan foydalanishda yuqoridagilardan faqat bittasidan foydalaning, aks holda to'lovni qabul qilish jarayonida turli xatolar kelib chiqishi mumkin.

use Illuminate\Support\Facades\Route;
use TurgunboyevUz\Mirpay\Controllers\MirpayController;

// webhook usuli
// quyidagi linklarni Mirpay Kassangizda ro'yxatdan o'tkazing
// https://localhost/api/mirpay/success
// https://localhost/api/mirpay/fail

Route::post('/mirpay/success', [MirpayController::class, 'success']);

Route::post('/mirpay/fail', [MirpayController::class, 'fail']);

💳 Foydalanish

Trait orqali modelga Mirpay to‘lovlarini ulash:

use TurgunboyevUz\Mirpay\Traits\HasMirpayTransactions;

class User extends Model
{
    use HasMirpayTransactions;
}

➕ To‘lov yaratish

$user = auth()->user();

$transaction = $user->createMirpayTransaction(25000, 'Pro subscription');

return redirect($transaction->redirect_url);

✅ To‘lovni tekshirish (Polling)

use TurgunboyevUz\Mirpay\Enums\MirpayState;

$user = auth()->user();
$status = $user->checkoutMirpayTransaction();

if ($status === MirpayState::PENDING) {
    // jarayonda
}

if ($status === MirpayState::SUCCESS) {
    // muvaffaqiyatli to‘lov
    // status "muvaffaqiyatli" bo'lsa avtomatik after_success.php chaqiriladi
}

if ($status === MirpayState::FAILED) {
    // bekor qilingan
    // status "bekor qilingan" bo'lsa avtomatik after_fail.php chaqiriladi
}

📁 Callback fayllar

Paket o‘rnatilgach, quyidagi fayllar yaratiladi:

  • app/Payment/after_success.php
  • app/Payment/after_fail.php

Ushbu fayllar $model nomli o‘zgaruvchiga ega bo‘lib, siz xohlagancha kod yozishingiz mumkin:

<?php
// after_success.php
// to'lovdan keyin model bilan bajariladigan ishlar

$model->update(['paid' => true]);
\Log::info("To‘lov muvaffaqiyatli: User #{$model->id}");
<?php
// after_fail.php
// to'lov bekor qilingandan keyin model bilan bajariladigan ishlar

\Log::warning("To‘lov bekor qilindi: User #{$model->id}");

🔐 Minimal talablar

PHP Laravel
^8.1 ^10.0, ^11.0, ^12.0

✅ Qo‘llab-quvvatlanadigan Laravel versiyalari

Laravel Qo‘llab-quvvatlanadi
10.x
11.x
12.x

📚 Muallif

📄 Litsenziya

MIT — LICENSE fayliga qarang.