Kriptovaliutų priėmimas pardavimo vietoje
Kriptovaliutų priėmimas pardavimo vietoje reiškia, kad prie jūsų kasos stovintis klientas moka skaitmeniniu turtu — stabiliąja moneta, pavyzdžiui, USDC, arba moneta, pavyzdžiui, BTC, — o jūs, prekybininkas, gaunate eurus. Turtas, kurį siunčia klientas, ir pinigai, kuriuos gaunate jūs, yra dvi skirtingos medžiagos, sujungtos kursu, nustatytu prisilietimo akimirką. Nei jūsų kasa, nei apskaita, nei banko sąskaita nesužino, kad dalyvavo kriptovaliutos. Terminalas rodo kainą eurais, klientas nuskenuoja kodą, ir po kelių sekundžių pardavimas uždaromas eurais — toje pačioje eilutėje, kaip ir kortele. Kriptovaliutos pardavimo vietoje yra mokėjimo būdas, o ne apskaitos pokytis, ir išlaikyti tai taip yra visas inžinerinis uždavinys.
Šią formuluotę verta nusakyti pirmiausia, nes dauguma painiavos dėl kriptovaliutų mokėjimų kyla sulipdžius du klausimus, kurie turėtų likti atskirti: kaip moka klientas ir kokia valiuta lieka prekybininkui. Atskirkite juos, ir visa kita išplaukia savaime.
Ką iš tiesų reikia išspręsti
Prekybininkas nori pardavimo, o ne svyravimų. Jis nenori dienos pabaigoje likti su turto krūva neaiškia verte ir nenori, kad jo buhalteris staiga kalbėtų dviem valiutomis. Jis nori, kad kaina būtų užfiksuota tarp prisilietimo ir kvito, pinigai būtų eurais, o suderinimas atrodytų kaip bet kuri kita kortelių diena. Parduotuvė, kuri kriptovaliutas priima naiviai, negauna nieko iš to: ji priima turtą, kurio kaina juda, kol klientas dar svarsto, padeda jį į piniginę ir paveldi antrą valiutą apskaitoje, kurią kažkam dabar reikia įvertinti ir konvertuoti rankiniu būdu. Todėl projektavimo tikslas siauras ir griežtas — kriptovaliutas padaryti matomas tik vienoje vietoje, mokėjimo akimirką, o visur kitur nematomas.
Vienas prisilietimas: QR, užfiksuotas kursas, eilutė eurais
Pereikime kasos eigą. Kasininkas suskaičiuoja €24.00 krepšelį. Terminalas parodo sumą eurais ir sugeneruoja QR kodą, koduojantį užklausą — sumą, paskirties adresą ar sąskaitą ir trumpai galiojantį kurso identifikatorių. Klientas nuskenuoja jį savo piniginėje, mato, ką tiksliai ruošiasi siųsti, ir patvirtina. Terminalas stebi tinklą ir, kai pervedimas patvirtinamas, atspausdina kvitą eurais. Kasininko požiūriu ritmas toks pat kaip su kortele: suma, pateikimas, patvirtinimas, kvitas. Niekas prie kasos neįveda adreso ir nemato likučio jokia kita valiuta nei eurais.
Užklausa, įdėta į QR, leidžia saugiai ją duoti svetimam telefonui. Suma ir paskirtis keliauja kode su kontroline suma, todėl klientas negali sumokėti neteisingu adresu ar neteisinga suma apsirikęs įvesdamas — tas pats principas kaip tapatybė pagal konstrukciją surinkimo pusėje, pritaikytas kasai. Kodas, kuris nuskenuojamas, yra teisingas kodas; nėra laisvo teksto lauko, kuriame būtų galima suklysti.
Atsiskaitymas eurais, kad apskaita nesužinotų apie kriptovaliutas
Tarp turto, kurį siunčia klientas, ir eurų, kuriuos pasilieka prekybininkas, yra konvertavimas, ir kur jis atliekamas — visas triukas. Klientas siunčia USDC ar BTC; platforma konvertuoja ir įskaito EUR į prekybininko sąskaitą. Prekybininko didžioji knyga mato tik kreditą eurais ir mokesčio eilutę eurais — tokios pat formos kaip kortelių atsiskaitymas, — nes turtas konvertuojamas platformoje, o ne paliekamas piniginėje, kurią prekybininkui dabar reikėtų valdyti. Dienos pabaigoje apskaita nuo pradžios iki galo yra eurais. Nėra monetų krepšelio, kurį reikėtų perkainoti, nėra antros valiutos sąskaitose ir nėra ko konvertuoti į grynuosius pirmadienio rytą.
Kliento darbas — mokėti tuo, ką jis turi. Prekybininko darbas — tvarkyti apskaitą viena valiuta. Pardavimo vieta, kuri kriptovaliutas paverčia eurais, yra tiesiog mašina, neleidžianti šiems dviem faktams niekada susitikti.
Kursas užfiksuojamas, o ne vejamas
Svyravimai kelia baimę, o užfiksuotas kursas su atgaliniu skaičiavimu yra atsakymas. Kai terminalas rodo kainą eurais, jis kartu nustato kursą, galiojantį nurodytą laiką — kelias sekundes. Klientas moka per tą langą pagal tą kursą, o eurai, kuriuos gauna prekybininkas, yra tie, kurie rodomi ekrane, o ne tai, ką rinka padarė, kol kraunasi piniginė. Jei langas pasibaigia prieš klientui patvirtinant, terminalas kursą nustato iš naujo: naujas kodas, naujas atgalinis skaičiavimas, aiškiai nauja kaina — niekada tylus nukrypimas. Prekybininkas niekada neatsiduria rizikoje dėl pokyčio tarp prisilietimo ir patvirtinimo; ta rizika tenka tam, kas nustatė kursą, o ne pardavėjui, kuris tiesiog norėjo parduoti kavą.
Kai klientas lėtas arba terminalas neturi ryšio
Tinklai stringa, o parduotuvės praranda ryšį, todėl veikimas be ryšio turi būti sąmoningai nuobodus. Du atvejai. Kai klientas lėtas, kursas tiesiog baigia galioti ir nustatomas iš naujo — mokėjimas arba patvirtinamas per langą, arba neįvyksta, todėl nėra nebaigto pardavimo, kurį reikėtų atšaukti. Kai pats terminalas netenka ryšio, jis vis dar gali rodyti užklausą žinomai sumai, bet negali nustatyti naujo kurso ar patvirtinti atsiskaitymo, todėl pardavimą laiko kaip laukiantį ir suderina, kai vėl prisijungia, o ne apsimeta, kad viskas pavyko. Pagrindinė taisyklė: kvitas spausdinamas po patvirtinimo, o ne iš vilties — kvitas eurais reiškia, kad eurai apskaityti, o pardavimas, kurio terminalas negalėjo patvirtinti, lieka atviras ir matomas operatoriaus konsolėje, užuot tyliai dingęs.
Kur terminalas susitinka su gateway
Kasa yra gyvas tos pačios priėmimo sistemos, veikiančios internete, veidas. Kriptovaliutų prisilietimas prie terminalo ir pay-by-link checkout iš esmės yra tas pats įvykis — užklausa, mokėjimas, atsiskaitymas eurais, kvitas, — tik pateiktas skirtinguose paviršiuose. Todėl prekybininkas parduotuvės kriptovaliutų mokėjimus ir internetinius užsakymus derina vienoje vietoje, eurais, su tomis pačiomis mokesčių eilutėmis ir tais pačiais eksportais, užuot vedęs dvi apskaitas, kurias mėnesio pabaigoje reikia susegti. Terminalas yra adresu /products/pos; internetinė tų pačių bėgių pusė — /products/gateway; o terminai — kursas, atsiskaitymas, įsigijėjas, suderinimas — apibrėžti skiltyje /glossary.
Atvira riba
Jei jūsų kasoje niekas nenori mokėti kriptovaliutomis, kriptovaliutų terminalas yra sprendimas problemai, kurios neturite — priimkite korteles ir judėkite toliau. Jis pasiteisina ten, kur didelė jūsų klientų dalis jau turi skaitmeninio turto ir verčiau jį išleistų, nei pirma keistų į grynuosius: tam tikruose kelionių koridoriuose, tarp tam tikrų internete gyvenančių auditorijų, tam tikruose regionuose, kur stabiliosios monetos tiesiog yra būdas laikyti išleidžiamus pinigus. Tokioje aplinkoje atsisakyti prisilietimo reiškia atsisakyti pardavimo. Pirmiau aprašyta mechanika — QR, užfiksuotas kursas, atsiskaitymas eurais, taisyklė „pirma patvirtinimas, paskui kvitas“ — leidžia priimti tokį pardavimą neprisiimant nei svyravimų, nei antros valiutos, nei apskaitos projekto. Kriptovaliutos lieka kliento rūpestis; eurai lieka jūsų.
Turite sistemą, kurią reikia sukurti?
Papasakokite apie problemą. Grįšime su architektūra ir planu.