Saytga toʻlov tizimini ulash: biznes tomonidan nima kerak
Payme yoki Click bilan shartnoma va saytdagi kod ikki xil ish. Ulanishdan oldin nima tayyor boʻlishi kerak, almashinuv qanday kechadi va uchta xato nega hammada takrorlanadi.
Mundarija
Saytga toʻlov tizimini ulash odatda bitta ish deb tasavvur qilinadi. Aslida bu ikkita ish. Birinchisi — Payme yoki Click bilan shartnoma, uni pul bilan hal qilasiz. Ikkinchisi sizning serveringizda yoziladigan kod, va uni hech kim sizning oʻrningizga qilib bermaydi.
Quyida ulanishdan oldin nima tayyor boʻlishi kerakligi, toʻlov xizmati bilan almashinuv aslida qanday kechishi va koʻpchilikda takrorlanadigan uchta xato yozilgan.
Shartnoma va kod: qaysi biri qancha vaqt oladi
Bank yoki toʻlov tashkiloti sizga ekvayringni beradi: xaridorning kartasidan pul sizning hisobingizga tushadi. Bu moliyaviy xizmat, texnik emas, va uni pul bilan olasiz.
Xizmatning oʻzi toʻlov sahifasini, merchant kabinetini, hujjatlarni va protokolni beradi. Buni ham olasiz.
Uchinchi qismni hech kim sotmaydi — u yoziladi. Saytingiz shu protokol boʻyicha gaplasha olishi kerak, va aynan shu qism ishga tushirish byudjetidan tez-tez tushib qoladi, chunki tarif sahifasida u koʻrinmaydi.
Toʻlov tizimini saytga ulashdan oldin nima tayyor boʻlishi kerak
- Xizmat bilan shartnoma. Kim imzolashi va qanday shartlar bilan, buni xizmatning oʻzidan soʻrang: talablar har birida boshqacha va oʻzgarib turadi.
- Saytda nima sotayotganingiz yozilgan sahifa, ommaviy oferta va qaytarish qoidalari. Ulanish paytida ularni oʻqishadi.
- Sizning tizimingizda qaysi buyurtma «toʻlangan» deb belgilanishi. Oddiy savolga oʻxshaydi, javob esa koʻpincha yoʻq.
- Sinov muhiti. Payme uni sandbox koʻrinishida beradi, boshqalarda oʻz varianti bor.
- Xizmat chaqiradigan manzil va u kechasi soat uchda ham ochiq turishiga kim javob berishi.
Agar bu roʻyxat chek-list emas, savollar roʻyxatidek oʻqilsa, uni sizning vazifangizda birga koʻrib chiqamiz. Integratsiya va API ishi doim bor narsani koʻrishdan boshlanadi.
Chaqiruvni xizmat boshlaydi, sayt emas
Sxema odatda shunday tasavvur qilinadi: xaridor «toʻlash» tugmasini bosadi, sayt xizmatga boradi va javob oladi. Hujjatlarda aksi yozilgan.
Payme Business Merchant API protokoli JSON-RPC 2.0 ustiga qurilgan va HTTPS orqali ishlaydi. Soʻrovlar POST usulida sizning serveringizga keladi, server esa 200 statusi bilan javob qaytarishi shart. Boshqa har qanday HTTP status protokol xatosi deb qabul qilinadi, «keyinroq kelaman» deb emas.
Toʻlov yoʻli toʻrtta metoddan yigʻiladi. CheckPerformTransaction shu summaga tranzaksiya yaratish mumkinmi deb soʻraydi. CreateTransaction uni yaratadi. PerformTransaction oʻtkazadi. CancelTransaction bekor qiladi. Yonida holatni tekshirish va operatsiyalar boʻyicha koʻchirma metodlari turadi.
Click hujjatlarida protokol boshqacha va qisqaroq: yetkazib beruvchining billing tizimi Prepare va Complete soʻrovlarini bajaradi, shundan keyin xizmatlar barcha toʻlov interfeyslarida koʻrinadi.
Ikkalasida ham asosiysi bitta: chaqiruvni sayt emas, toʻlov xizmati boshlaydi. Shundan kelib chiqadi, sizda doimo ochiq HTTPS manzil boʻlishi kerak, bazangiz esa «shu buyurtmani shu summaga hozir toʻlash mumkinmi» degan savolga narigi tomondagi taymaut tugagunicha javob bera olishi kerak.
Clickni saytga ulash: Prepare va Complete qanday oʻtadi
Clickda xaridor toʻlov sahifasiga saytingizdagi havola yoki forma orqali oʻtadi. Havolaga xizmat va yetkazib beruvchi identifikatorlari, summa va transaction_param qoʻyiladi. Oxirgisi sizning buyurtma raqamingiz: keyingi soʻrovlarda u merchant_trans_id nomi bilan qaytib keladi, va pul qaysi buyurtmaga tegishli ekanini sayt aynan shundan biladi.
Keyin Click serveringizga ikki marta murojaat qiladi. SHOP API hujjatiga koʻra, ikkala soʻrov ham POST usulida oddiy forma koʻrinishida (application/x-www-form-urlencoded) keladi, javob esa JSON boʻlishi kerak. Payme bilan farq shu yerdan boshlanadi: JSON-RPC yoʻq, bosqichni action maydoni ajratadi.
Prepare: pul yechilishidan oldingi tekshiruv
Birinchi soʻrov action = 0 bilan keladi. Unda sayt uchta narsani tekshiradi: buyurtma bormi va hali amaldami, summa buyurtmadagi bilan mos keladimi, tovar yoki xizmatni berish mumkinmi. Internet doʻkon uchun hujjatda alohida talab yozilgan: Prepare kelishi bilan tovar zaxiraga olinadi, toki u shu daqiqada boshqa xaridorga ham sotilib ketmasin. Javobda sayt oʻz tomonidagi toʻlov raqamini, merchant_prepare_idni qaytaradi.
Complete: pul yechilgandan keyin xato qaytarib boʻlmaydi
Ikkinchi soʻrov action = 1 bilan va Prepare bergan merchant_prepare_id bilan keladi. Clickning sharti qatʼiy: Prepare muvaffaqiyatli oʻtgan va kartadan pul yechilgan boʻlsa, Complete xato bilan javob olmasligi kerak. Istisno ikkita: toʻlov allaqachon tasdiqlangan (-4) yoki bekor qilingan toʻlov qayta tasdiqlanayotgan boʻlsa (-9).
Pul yechilgandan keyin tovarni berib boʻlmay qolsa ham, sayt Completega «muvaffaqiyatli» deb javob beradi, keyin esa toʻlovni alohida soʻrov bilan qaytaradi: buning uchun Merchant APIʼda payment/reversal metodi bor. Xato javob bir necha urinishda takrorlansa, Click toʻlovni oʻz qoʻllab-quvvatlash xizmatiga qoʻlda koʻrib chiqishga oʻtkazishi mumkin.
Imzo va maxfiy kalit
Har bir soʻrov bilan sign_string keladi. Bu soʻrov maydonlari va ulanishda sizga beriladigan SECRET_KEY kalitidan hisoblangan MD5 qatori. Prepare uchun formula: md5(click_trans_id + service_id + SECRET_KEY + merchant_trans_id + amount + action + sign_time). Completeda merchant_trans_iddan keyin merchant_prepare_id qoʻshiladi. Imzo mos kelmasa, sayt -1, summa mos kelmasa -2 qaytaradi. Imzoni tekshirmaydigan sayt manzilini bilgan har kim buyurtmani «toʻlangan» qilib qoʻya oladi.
Koʻpchilikda takrorlanadigan uchta xato
Takroriy chaqiruv
Aloqa uzilib qolsa, xizmat tasdiqni ikkinchi marta yuborishga haqli. Ikkinchi chaqiruvda tovarni ombordan yana bir marta yechadigan va xatni yana bir marta joʻnatadigan ishlov beruvchi tashqaridan soppa-sogʻ koʻrinadi va har qanday qoʻlda sinovdan oʻtadi.
Kelmay qolgan xabar
Pul yechilgan, buyurtma esa toʻlanmagan boʻlib turibdi, xaridor qoʻllab-quvvatlashga yozadi. Buni «qayta yuborish» tugmasi emas, tranzaksiya holatini jadval boʻyicha soʻrab turish davolaydi.
Summa
Summani xizmat yuboradi, siz esa uni oʻzingiznikiga solishtirishingiz kerak. Bitta nolga farq qiladigan ikkita raqam tekshiruvsiz bir xil oʻtib ketaveradi.
Bu roʻyxat nazariy emas. Biz qurgan merchant platforma doʻkonga bitta ulanish orqali 35+ xil toʻlov tizimini beradi, va har bir band oʻsha platformaning chekka holatlaridan oʻsib chiqqan: platforma qanday tuzilgan.
Solishtiruv, muddat va narx
Payme metodlari orasida GetStatement bor, bu merchant operatsiyalari boʻyicha koʻchirma. U bejiz turgani yoʻq: sizning bazangiz bilan xizmat bazasi orasidagi farq hammada paydo boʻladi, savol faqat kim uni birinchi boʻlib koʻrishida.
Biz ishlab turgan toʻlov tizimining bazasini tahlil qilganmiz, u yerda farqlar yillab yashab kelgan edi: bitta solishtiruvda 212 191 muhim operatsiya qatori, hamkorlar uchun dalolatnomalar qoʻlda yigʻilardi. Oʻsha ishning tahlili solishtiruvni nega ikkinchi emas, birinchi versiyaga qoʻyish kerakligini tushuntiradi.
Muddat xizmatga emas, saytda nima borligiga bogʻliq. Buyurtmalar tizimda hisobga olinadigan, holatlar mavjud va sinov muhiti bor boʻlsa, bitta xizmatni ulash bir necha kunlik ish. «Toʻlangan» degan holat hech qayerda saqlanmasa, avval buyurtmalar hisobini qurish kerak boʻladi, bu esa boshqa vazifa.
Aniq muddat va narx texnik topshiriq boʻyicha belgilanadi, biz ularni tahlildan keyin aytamiz. Xizmat allaqachon tanlangan boʻlsa va sizga oʻz tomoningizdagi ish hajmi kerak boʻlsa, toʻlov tizimlari integratsiyasi sahifasidan boshlang. Toʻlov saytdagi tugma emas, mahsulotingizning oʻzagi boʻlsa, onlayn toʻlovlar yoʻnalishiga qarang.
Toʻlov tizimini saytga ulash bir kunlik ish emas, lekin qoʻrqinchli ham emas. Butun murakkablik shartnomada emas, sizning tomoningizda. Saytingizga havolani va qaysi xizmat bilan gaplashayotganingizni yozing. Nima qilish kerakligini va u qancha vaqt olishini aytamiz.