Asosiy kontentga o‘tish
Innovialabs

Mobil ilovada Payme va Click orqali to‘lov qabul qilish

Amaliyot3 daq

Qisqacha

Ilova faqat to‘lovni boshlaydi, buyurtmani esa Payme yoki Click serverdan callback yuborgandan keyin backend tasdiqlaydi. Veb-checkout eng tez start, SDK va karta tokenlari esa qulayroq UX beradi.

Qisqa javob

Mobil ilovada Payme va Click orqali to‘lov qabul qilish doim ikki qismdan iborat:

  • Mijoz qismi — ilova to‘lov sahifasini yoki SDK ekranini ochadi, foydalanuvchi to‘lovni tasdiqlaydi.
  • Server qismi — Payme yoki Click buyurtmani tekshirish va natijani xabar qilish uchun backendingizga murojaat qiladi. Haqiqat manbai faqat shu callback.

Ilova buyurtma to‘langan-to‘lanmaganini hech qachon o‘zi hal qilmaydi. U backendda buyurtma yaratadi, to‘lovni ishga tushiradi va keyin backenddan statusni so‘raydi.

Integratsiyaning uchta varianti

VariantQanday ishlaydiAfzalliklariKamchiliklari
Veb-checkoutIlova provayderning to‘lov sahifasini buyurtma parametrlari bilan ochadiTez ishga tushadi, native kod kerak emasFoydalanuvchi qisqa vaqtga ilovadan chiqadi
Mobil SDKProvayder kutubxonasi native to‘lov ekranini ko‘rsatadiQulayroq UX, hammasi ilova ichidaSDK yangilanishlariga bog‘liqlik, ko‘proq test
Karta tokenizatsiyasiFoydalanuvchi kartani bir marta saqlaydi, keyin backenddan token bo‘yicha yechasizBir bosishda to‘lov, obunalar, takroriy buyurtmalarAlohida shartnoma va puxta xavfsizlik kerak

Ko‘pchilik birinchi relizlar uchun veb-checkout yetarli. Tokenizatsiya yetkazib berish, taksi va tez-tez takroriy xarid qilinadigan servislar uchun o‘zini oqlaydi.

Server qismi qanday ishlaydi

Ikkala provayder ham serveringizga so‘rov yuboradi, lekin protokollar har xil:

  • Payme JSON-RPC asosidagi Merchant API dan foydalanadi: CheckPerformTransaction, CreateTransaction, PerformTransaction, CancelTransaction metodlari. Summalar tiyinda uzatiladi (so‘m × 100).
  • Click ikki bosqichli SHOP API dan foydalanadi — Prepare va Complete — har bir so‘rovda imzoni tekshirish shart.

Payme checkout uchun eng oddiy havola base64 dagi parametrlardan yig‘iladi:

const params = `m=${merchantId};ac.order_id=${orderId};a=${amountTiyin};c=${returnUrl}`;
const checkoutUrl = `https://checkout.paycom.uz/${Buffer.from(params).toString("base64")}`;

Ko‘p muammolardan saqlaydigan qoidalar:

  • Har bir callbackni tekshiring: Payme da avtorizatsiya sarlavhasi, Click da imzo. Mos kelmaganini rad eting.
  • Summa va buyurtmani ilova yuborgan ma’lumot bilan emas, o‘z bazangiz bilan solishtiring.
  • Handlerlarni idempotent qiling: bitta callback ikki marta kelishi mumkin. Provayder tranzaksiya ID sini saqlang va takroriy so‘rovga saqlangan natijani qaytaring.
  • Faqat muvaffaqiyatli to‘lovlarni emas, bekor qilish va qaytarishlarni ham qayta ishlang.

Foydalanuvchini ilovaga qaytarish

To‘lovdan so‘ng provayder siz bergan URL ga yo‘naltiradi. Redirekt ilovani darhol ochishi uchun iOS da Universal Link, Android da App Link dan foydalaning, zaxira sifatida esa o‘z URL sxemangizdan.

Keyin ilova:

  1. «To‘lov tekshirilmoqda» holatini ko‘rsatishi.
  2. Qisqa vaqt backenddan buyurtma statusini so‘rashi yoki push kutishi.
  3. Muvaffaqiyat, xato yoki «hali qayta ishlanmoqda» holatini keyinroq tekshirish imkoni bilan ko‘rsatishi kerak.

Redirektning o‘zini to‘lov isboti deb hisoblamang: foydalanuvchilar vkladkani yopadi, aloqani yo‘qotadi yoki umuman redirektsiz qaytadi.

Store qoidalari

Apple va Google tovarlarni turiga qarab ajratadi:

  • Jismoniy tovarlar va real hayotdagi xizmatlar (ovqat, yetkazib berish, taksi, chiptalar, oflayn kurslar) uchun Payme, Click yoki istalgan tashqi usul bilan to‘lash mumkin.
  • Ilova ichidagi raqamli kontent va funksiyalar (premium kirish, o‘yin valyutasi, kontentga obuna) odatda In-App Purchase yoki Google Play Billing orqali o‘tishi kerak.

Agar ilova raqamli tovarlarni Payme yoki Click orqali sotsa, review da rad etilishini kuting. Flowni loyihalashdan oldin App Review Guidelines va Google Play Payments siyosatidagi to‘lov bo‘limlarini o‘qing.

Sandboxda test qilish

  • Ikkala provayderdan test kirish so‘rang: Payme da test kartalari bilan test muhiti bor, Click esa merchant ulanishida test ma’lumotlarini beradi.
  • To‘liq siklni sinab ko‘ring: yaratish, to‘lash, bekor qilish, takroriy callback, noto‘g‘ri summa, muddati o‘tgan buyurtma.
  • Har bir kiruvchi so‘rov va javobingizni loglang — keyinchalik nizolarni hal qilishning eng tez yo‘li.
  • Production kalitlariga faqat konfiguratsiya orqali o‘ting, relizdan oldin kodni tahrirlab emas.

Ko‘p uchraydigan xatolar

  • Redirektdan keyin buyurtmani mijoz tomonida to‘langan deb belgilash.
  • Merchant kalitlarini ilova build ichida saqlash.
  • Payme summalarida so‘m va tiyinni adashtirish.
  • Buyurtma muddati tugagandan keyin kelgan to‘lovni qayta ishlamaslik.

Ko‘p beriladigan savollar

Shart emas, lekin O‘zbekistonda ko‘p foydalanuvchilarning sevimli hamyoni bor. Ikkalasini qo‘llab-quvvatlash odatda to‘lov bosqichidagi rad etishlarni kamaytiradi, server mantiqi esa umumiy buyurtma va to‘lov modelidan foydalanishi mumkin.

Bunda yordam beramiz

O‘zingiz shug‘ullanmasdan natija olishni istasangiz — biz har kuni shu bilan shug‘ullanamiz.

Loyihani muhokama qilish

Yana o‘qing

G‘oya yoki vazifangiz bormi? Bizga aytib bering

Ish kuni davomida javob beramiz va yechim taklif qilamiz. Konsultatsiya bepul.