e_imzo 0.1.0 copy "e_imzo: ^0.1.0" to clipboard
e_imzo: ^0.1.0 copied to clipboard

E-imzo bilan ishlash uchun package

E-Imzo Flutter Package #

pub package

O'zbekiston E-Imzo (elektron raqamli imzo) bilan ishlash uchun sof Dart tilida yozilgan Flutter package.

Xususiyatlari #

  • ✅ Tashqi packagelarga bog'liq emas
  • ✅ QR code orqali autentifikatsiya
  • ✅ Deeplink orqali autentifikatsiya
  • ✅ Android va iOS qo'llab-quvvatlash
  • ✅ Fayl imzolash (kelajakda qo'shiladi)

O'rnatish #

dependencies:
  e_imzo: ^version
  url_launcher: ^version

Sozlash #

1. Backend tayyorlash #

Backend ishlab chiquvchi quyidagi API larni tayyorlab berishi kerak:

1.1. Autentifikatsiya sessiyasi yaratish

POST /api/eimzo/create-session

Response:
{
  "status": 1,
  "siteId": "0000",
  "documentId": "2944F1F2",
  "challange": "F8D2181DC6C02EA819B88FF3EF49BE0C"
}

1.2. Imzolash statusini tekshirish

GET /api/eimzo/check-status/{documentId}

Response:
{
  "status": 1, // 1 - imzolandi, 2 - kutilmoqda yoki boshqacha bo'lishi mumkin
}

1.3. Foydalanuvchi ma'lumotlarini olish

GET /api/eimzo/user-info/{documentId}

Response:
{
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  "user": {
    "pinfl": "12345678901234",
    "fullName": "Aliyev Ali Alijonovich",
    ...
  }
}

2. Soliq bilan shartnoma #

E-Imzo xizmatini ishlatish uchun O'zbekiston Soliq Qo'mitasi bilan shartnoma tuzish talab etiladi (pullik xizmat).

3. Mobil ilovalar #

Foydalanuvchilar qurilmalariga E-Imzo ilovasini o'rnatishi kerak:

4. url_launcher sozlash #

url_launcher package uchun platform konfiguratsiyalari:

Android (android/app/src/main/AndroidManifest.xml):

<queries>
  <intent>
    <action android:name="android.intent.action.VIEW" />
    <data android:scheme="eimzo" />
  </intent>
</queries>

iOS (ios/Runner/Info.plist):

<key>LSApplicationQueriesSchemes</key>
<array>
  <string>eimzo</string>
</array>

Ishlatish #

QR Code orqali autentifikatsiya #

import 'package:e_imzo/e_imzo.dart';
import 'package:qr_flutter/qr_flutter.dart';

// 1. Backenddan session yaratish
final response = await createSession(); // sizning API chaqiruvingiz

// 2. QR code uchun text generatsiya qilish
final qrText = EImzo.qrcodeAuth(
  challenge: response['challange'],
  siteId: response['siteId'],
  documentId: response['documentId'],
);

// 3. QR code ko'rsatish
QrImageView(
  data: qrText,
  version: QrVersions.auto,
  size: 200.0,
)

// 4. Status tekshirish (polling)
Timer.periodic(Duration(seconds: 2), (timer) async {
  final status = await checkStatus(response['documentId']);
  if (status['status']==1) {
    timer.cancel();
    final userInfo = await getUserInfo(response['documentId']);
    // Foydalanuvchi tizimga kirdi
  }
});
import 'package:e_imzo/e_imzo.dart';
import 'package:url_launcher/url_launcher.dart';

// 1. Backenddan session yaratish
final response = await createSession();

// 2. Deeplink generatsiya qilish
final deeplink = EImzo.qrcodeAuth(
  challenge: response['challange'],
  siteId: response['siteId'],
  documentId: response['documentId'],
).toDeeplink();

// 3. E-Imzo ilovasini ochish
if (await canLaunchUrl(Uri.parse(deeplink))) {
  await launchUrl(
    Uri.parse(deeplink),
    mode: LaunchMode.externalApplication,
  );
} else {
  // E-Imzo ilovasi o'rnatilmagan
  showDialog(...);
}

// 4. Ilovaga qaytgandan keyin status tekshirish
// (AppLifecycleState.resumed da)
final status = await checkStatus(response['documentId']);
if (status['status']==1) {
  final userInfo = await getUserInfo(response['documentId']);
  // Foydalanuvchi tizimga kirdi
}

Foydali havolalar #


3
likes
110
points
134
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

E-imzo bilan ishlash uchun package

Homepage
Repository (GitHub)
View/report issues

Topics

#e-imzo #imzo #soliq #one-id

Funding

Consider supporting this project:

github.com

License

unknown (license)

More

Packages that depend on e_imzo