
Lipa kwa ombi ni mtiririko ambao kila mteja wa pesa za simu anaujua kwa mikono yake bila kuufikiria. Mfanyabiashara anaomba pesa, ombi linatokea kwenye simu ya mteja, anaweka PIN, na imekwisha. Ndiyo njia ya malipo inayotumika zaidi katika masoko yaliyokumbatia pesa za simu mapema, na inaonekana haina juhudi yoyote. Urahisi huo ni matunda ya kiasi cha kushangaza cha uhandisi kinachofanya kazi kwa bidii ili kisionekane. Ukikosea sehemu yoyote, uchawi unageuka kuwa kukatwa mara mbili, malipo yaliyokwama, au mfanyabiashara aliyetoa bidhaa kwa pesa ambazo hazikufika kamwe.
Hiki ndicho kinachotokea hasa nyuma ya ombi, na kinachohitajika ili liwe la papo hapo, salama na lisiloweza kukata mara mbili.
Njia mbili ombi linavyofika
Kuna mbinu mbili nyuma ya "ombi linatokea", na zina umuhimu kwa sababu zina ufikiaji tofauti na namna tofauti za kushindwa.
Mbinu ya zamani ni SIM Application Toolkit (STK): msimbo unaoendeshwa kwenye kadi ya SIM yenyewe, ndiyo sababu inaweza kuonyesha ombi salama la PIN kwenye simu ya kawaida isiyo na programu yoyote. Kwa STK ndivyo mifumo ya kwanza ya pesa za simu ilivyowafikia watu wote: menyu na uwekaji wa PIN vinaendeshwa kutoka kwenye SIM, kupitia mtandao, kwenye kifaa kisicho na kitu kingine. Mbinu ya kisasa ni arifa ya programu: arifa kwa programu ya simu janja inayofungua skrini ya uthibitisho. Zote mbili zinaishia mahali pamoja: mteja anaidhinisha, na malipo yanapita katika mzunguko wake wa maisha. Jukwaa linalostahili kujengwa linaunga mkono zote mbili, kwa sababu wateja wanatumia zote mbili.
Malipo ni mashine ya hali
Wazo muhimu zaidi katika lipa kwa ombi ni kwamba malipo si tukio: ni mashine ya hali yenye seti iliyo wazi na iliyofafanuliwa vizuri ya hali na mabadiliko. Kuyachukulia kama mwito wa "tuma na usahau" ndicho chanzo cha matukio mengi kwenye uendeshaji. Hali ni takriban:
- Inasubiri: mfanyabiashara ameomba malipo; ombi limetumwa; mfumo unamsubiri mteja.
- Imeidhinishwa: mteja ameweka PIN na kuthibitisha; mfumo umekagua salio na viwango na unarekodi muamala.
- Imekamilika: leja imerekodi maingizo yaliyosawazishwa; pesa zimehamia; mfanyabiashara anaweza kutoa bidhaa.
- Imekataliwa / Imeisha muda / Imeshindwa: mteja amekataa, muda wa ombi umeisha, au ukaguzi umeshindwa; hakuna pesa iliyohamia, na malipo yanafungwa kwa usafi.
Kila malipo yako katika hali moja tu kati ya hizi kwa wakati wowote, na yanaweza kuhamia tu kupitia mabadiliko yaliyofafanuliwa. Huu si urasimu: ndio unaofanya mtiririko ueleweke na urekebishike. Jambo likienda vibaya, swali daima ni "malipo haya yako katika hali gani, na badiliko gani limekwama?", swali lenye jibu, badala ya kuinua mabega.
Jinsi mfanyabiashara anavyojua matokeo
Mfumo wa mfanyabiashara unahitaji kujua kama malipo yamekamilika: ili kuchapisha risiti, kutoa bidhaa, kusasisha oda. Kuna njia mbili za kujua, na tofauti kati yake ni tofauti kati ya muunganisho wa kusuasua na muunganisho safi.
- Kuuliza mara kwa mara (polling). Mfanyabiashara anauliza sehemu ya hali tena na tena: "imekwisha?" Inafanya kazi, lakini ni upotevu na inachelewa: ukiuliza mara nyingi unalemea API; ukiuliza mara chache mteja anasimama kwenye kaunta akisubiri.
- Webhooks. Jukwaa linamtumia mfanyabiashara callback iliyosainiwa papo hapo malipo yanapobadilisha hali. Mfanyabiashara anajua ndani ya muda mfupi, bila miito iliyopotea, na anapata tukio safi la kulifanyia kazi. Hii ndiyo msingi sahihi, na jukwaa lililojengwa vizuri huifanya iwe chaguo-msingi huku kuuliza kukiwa njia mbadala.
Kinachofanya liaminike
Sifa tatu zinageuza onyesho linalofanya kazi kuwa mfumo ambao mfanyabiashara anaweza kujenga biashara juu yake.
Idempotency: muuaji wa kukatwa mara mbili
Mitandao hujaribu tena. Ikiwa ombi la mfanyabiashara la "unda malipo" litaisha muda naye akalituma tena, hupaswi kuunda malipo ya pili. Kila ombi la kuunda malipo linabeba ufunguo wa idempotency; jukwaa linauhifadhi, na kurudia kwa ufunguo uleule kunarudisha malipo ya awali badala ya kuanzisha mapya. Nidhamu hiyohiyo inalinda hatua ya uthibitisho. Uhakika anaouhisi mteja, "nimekatwa mara moja tu", ni sifa hii, inayotekelezwa mahali pesa zinapohamia, si ukaguzi wa matumaini ndani ya programu.
Webhooks zilizosainiwa
Webhook ni mwito wa HTTP usioombwa unaofika kwenye seva ya mfanyabiashara ukidai kwamba malipo yamekamilika. Kwa nini aamini? Kwa sababu kila callback imesainiwa: sahihi ya HMAC-SHA256 inayokokotolewa juu ya maudhui kwa siri ya pamoja ambayo jukwaa na mfanyabiashara pekee ndio wanaoijua. Mfanyabiashara anakokotoa sahihi upya na kukataa chochote kisicholingana, jambo linalofanya callback bandia za "umelipwa" zisiwe na faida kwa mshambuliaji. Na kwa sababu mitandao hushindwa, webhooks hutumwa tena kwa vipindi vinavyoongezeka hadi zikirikishwe, ili hitilafu ya muda mfupi kwa mfanyabiashara isipoteze tukio: linatumwa tena hadi seva yake ijibu kwa mafanikio.
Kuisha muda
Malipo yasiyothibitishwa hayawezi kubaki milele. Mteja akiondoka bila kuweka PIN, malipo lazima yaishe muda kwa usafi badala ya kubaki kama deni lililo wazi linaloweza kukamilika kwa njia ya ajabu saa moja baadaye. Dirisha la kuisha muda lenye kikomo na linalotabirika ndilo linaloweka mtazamo wa mfanyabiashara sawa na wa mteja.
Hali za pembeni zinazotofautisha mifumo halisi na maonyesho
Njia ya furaha (tuma, thibitisha, kamilisha) ni robo rahisi ya kazi. Makosa ya kuvutia yanaishi kwenye mapengo:
- Mteja anathibitisha, lakini mtandao unapoteza ujumbe wa kukiri. Malipo yako
completedkwenye jukwaa; mfanyabiashara hakusikia. Kutuma tena webhook kupo hasa kwa ajili ya hili. Mshughulikiaji wa mfanyabiashara naye lazima awe na idempotency, ili tukio la "imekamilika" lililotumwa tena lisisababishe bidhaa kutolewa mara mbili. - Uthibitisho miwili inashindana. Uthibitisho uliojaribiwa tena haupaswi kurekodiwa mara mbili. Ufunguo wa idempotency na mashine ya hali kwa pamoja huhakikisha uthibitisho wa pili unaona "tayari imekamilika" badala ya kuhamisha pesa tena.
- Malipo yanaisha muda wakati uleule mteja anapothibitisha. Mashine ya hali lazima ifafanue mshindi mmoja: badiliko ni la atomiki, kwa hivyo malipo ama yameidhinishwa ama yameisha muda, si yote mawili kamwe, na mteja anaambiwa wazi lipi.
- Ulinganishaji. Mwisho wa siku, kila malipo
completedlazima yalingane na seti iliyosawazishwa ya maingizo ya leja na rekodi ya malipo ya makubaliano. Kwa sababu mzunguko wa maisha wa malipo na leja vimefungamana, kukamilika ndiko kurekodi, ulinganishaji unatokana na muundo wenyewe badala ya uchunguzi.
Mfuatano wa muda kwa mfano
Hiki ndicho kinachotokea, sekunde kwa sekunde, mfanyabiashara anapomkata mteja 1,250 kwa mahitaji ya nyumbani. Muda ni wa kawaida, si wa uhakika.
| Muda | Kinachotokea | Hali ya malipo |
|---|---|---|
| 0.0 s | Mhudumu wa kaunta anaweka namba ya mteja na kiasi; kaunta inatuma ombi la kuunda malipo pamoja na ufunguo wa idempotency | Inasubiri |
| 0.3 s | Jukwaa linamthibitisha mfanyabiashara na mteja na kutuma ombi | Inasubiri |
| 2–20 s | Mteja anasoma jina la mfanyabiashara na kiasi na kuweka PIN | Inasubiri |
| +0.2 s | Kiini kinakagua PIN, salio na viwango, na kurekodi maingizo yaliyosawazishwa | Imekamilika |
| +0.5 s | Webhook iliyosainiwa inamfikia mfanyabiashara; mteja na mfanyabiashara wanapokea uthibitisho | Imekamilika |
| Baadaye | Salio la mfanyabiashara linalipwa benki kwa ratiba yake | Imekamilika, imelipwa |
Kusoma na kuandika kwa mteja ndiko kunakochukua muda mwingi. Kila kitu ambacho jukwaa linafanya huchukua chini ya sekunde moja, ndiyo sababu uzoefu unaonekana wa papo hapo unapofanya kazi, na hatua adimu ya polepole hugunduliwa mara moja.
Kujenga upande wa mfanyabiashara kwa usahihi
Nusu ya muunganisho wa kuaminika wa lipa kwa ombi uko kwenye mfumo wa mfanyabiashara. Mshughulikiaji mzuri wa webhook:
- Anathibitisha sahihi kabla ya kuamini chochote kwenye maudhui.
- Ana idempotency: uwasilishaji wa pili wa tukio lilelile haubadilishi chochote.
- Anajibu haraka na kufanya kazi nzito baadaye, ili jukwaa lisiishe muda na kujaribu tena bila sababu.
- Analinganisha kwa marejeo ya malipo, kamwe si kwa kiasi na namba ya simu pekee.
- Anarudi kwenye sehemu ya hali ikiwa hakuna tukio linalofika ndani ya dirisha linalotarajiwa, badala ya kudhani kushindwa.
- Anarekodi kila tukio analopokea, ili migogoro ijibiwe kutoka kwenye kumbukumbu.
Kuchagua dirisha la kuisha muda
Kuisha muda ni maafikiano. Likiwa fupi mno, wateja wanaotafuta simu zao wanaona malipo yakifa kabla ya kuthibitisha. Likiwa refu mno, wafanyabiashara wanasubiri huku bidhaa ziko kaunta, na maombi ya zamani yanafika baada ya mteja kuondoka. Waendeshaji wengi huchagua dakika moja hadi mbili kwa malipo ya ana kwa ana, na zaidi kwa maombi ya mbali kama ankara iliyotumwa kwa mteja nyumbani. Dirisha liwe lolote, lionyeshe: mhudumu anayejua ombi linadumu dakika moja anajua wakati wa kujaribu tena.
Maelezo ambayo wateja huyagundua
Machaguo madogo kwenye skrini ya ombi huamua kama wateja wanaliamini:
- Onyesha jina lililosajiliwa la mfanyabiashara, si msimbo wa ndani, ili wateja wajue nani anaomba.
- Onyesha kiasi na marejeo waziwazi kabla ya sehemu ya PIN.
- Toa chaguo wazi la kukataa, ili mteja ambaye hakutarajia ombi aweze kulikataa badala ya kulipuuza.
- Thibitisha kwa maneno na kwa ujumbe: risiti yenye mfanyabiashara, kiasi na marejeo, kwenye skrini na kwa SMS.
- Onya kuhusu maombi yasiyotarajiwa. Matapeli hutuma maombi wakitumaini mteja ataidhinisha bila kufikiri; mstari mfupi kama "Idhinisha tu ikiwa unamlipa mfanyabiashara huyu" hupunguza hatari hiyo.
Mzunguko mmoja wa maisha, kila njia
Kipande cha mwisho cha kufanya hili sawasawa ni kwamba lipa kwa ombi lisiwe hali maalum iliyounganishwa kando kwenye programu, kaunta na API. Liwe mzunguko mmoja wa maisha wa malipo unaoendeshwa na kila njia: mteja anayeskani QR ya mfanyabiashara, mfanyabiashara anayetuma malipo kutoka kwa mashine ya POS, na mshirika anayeita API ya wasanidi wote huunda aina ileile ya malipo, yanayopita katika hali zilezile, yakirekodiwa kwenye leja ileile, yakitoa webhooks zilezile zilizosainiwa. Lijenge mara moja, kwa usahihi, na kila njia inarithi uhakika huo.
Lipa kwa ombi, QR au namba ya till?
Lipa kwa ombi ni mojawapo ya njia tatu za kawaida za kupokea pesa kutoka kwa mteja. Kila moja inafaa hali tofauti:
| Njia | Nani anaianzisha | Inafanya kazi kwenye simu za kawaida | Inafaa zaidi kwa |
|---|---|---|---|
| Lipa kwa ombi | Mfanyabiashara | Ndiyo, kupitia maombi ya SIM | Kaunta na malipo ambapo mfanyabiashara anajua kiasi |
| Msimbo wa QR | Mteja anaskani | Hapana, inahitaji programu ya simu janja | Maduka yenye wateja wengi wa simu janja; misimbo isiyobadilika kwa wafanyabiashara wadogo |
| Namba ya till au Pay Bill | Mteja anaiweka | Ndiyo, kupitia USSD | Mfanyabiashara yeyote; njia mbadala ya wote |
Wafanyabiashara hufanya vizuri zaidi wanapoweza kupokea zote tatu, na jukwaa likizichukulia kama aina moja ya malipo inayofika kwa njia tofauti.
Udanganyifu kuhusu maombi
Kwa sababu ombi linamtaka mteja aidhinishe malipo, linavutia uhandisi wa kijamii. Mtindo wa kawaida ni tapeli anayeanzisha maombi kisha kumpigia mteja, akijifanya anatoka kwa mtoa huduma, na kumshawishi aidhinishe. Kinga hufanya kazi katika ngazi kadhaa: onyesha kwa uwazi jina lililothibitishwa la mfanyabiashara anayeomba; weka kikomo cha maombi ambayo mfanyabiashara anaweza kutuma kwa namba moja kwa muda mfupi; fuatilia wafanyabiashara ambao maombi yao mengi yanakataliwa au kuripotiwa; na waambie wateja mara kwa mara kwamba mtoa huduma hatawahi kuwaomba waidhinishe malipo kwa simu. Usajili wa wafanyabiashara pia ni muhimu, kwa sababu mfanyabiashara aliyethibitishwa mwenye utambulisho unaofuatilika ni chombo kibaya cha udanganyifu.
Kupima lipa kwa ombi
| Kipimo | Kwa nini ni muhimu |
|---|---|
| Kiwango cha idhini | Sehemu ya maombi ambayo wateja wanaidhinisha; kushuka ghafla kunaashiria matatizo ya uwasilishaji au mkanganyiko |
| Muda wa kuidhinisha | Muda ambao wateja wanachukua; muda mrefu unaashiria skrini zisizo wazi au uwasilishaji wa polepole |
| Kiwango cha kuisha muda | Maombi yanayokufa bila kujibiwa; rekebisha dirisha la kuisha muda na maelekezo kwa wahudumu |
| Mafanikio ya webhook kwa jaribio la kwanza | Jinsi wafanyabiashara wanavyopokea matokeo kwa uhakika bila kujaribu tena |
| Maombi yasiyotarajiwa yaliyoripotiwa | Ishara ya mapema ya majaribio ya udanganyifu |
Zaidi ya kaunta: maombi ya mbali
Mbinu ileile inafanya kazi mteja asipokuwa amesimama kwenye kaunta. Shule inaweza kutuma maombi ya ada kwa wazazi, kampuni ya huduma inaweza kuomba malipo ya bili, mpeleka mizigo anaweza kuomba malipo anapofika. Maombi ya mbali yanahitaji marekebisho machache: muda mrefu zaidi wa kuisha, maelezo wazi ya kinacholipiwa, jina lililothibitishwa la muombaji, na marejeo ambayo mteja anaweza kuyatambua kutoka kwenye ankara au ujumbe. Mashine ya hali, sahihi na idempotency vinabaki vilevile kabisa, ndiyo sababu mzunguko mmoja wa maisha wa malipo unahudumia kaunta, ankara na API kwa pamoja.
Kujaribu muunganisho wa lipa kwa ombi
Kabla mfanyabiashara hajaanza rasmi, endesha hali hizi kwenye mazingira ya majaribio:
- idhinisha, kataa na acha ombi liishe muda, na ukague kwamba mfumo wa mfanyabiashara unaonyesha matokeo sahihi kwa kila moja;
- tuma ombi lilelile la kuunda malipo mara mbili kwa ufunguo uleule wa idempotency na uthibitishe kwamba kuna malipo moja tu;
- fanya sehemu ya webhook ya mfanyabiashara ishindwe kwa dakika chache na uthibitishe kwamba matukio yanafika ikirejea;
- tuma webhook yenye sahihi isiyo sahihi na uthibitishe kwamba mfanyabiashara anaikataa;
- jaribu malipo yanayozidi kikomo cha mteja na uthibitishe kwamba yanakataliwa kwa usafi;
- kagua kwamba marejesho yanaunganishwa na malipo ya awali.
Muunganisho unaopita majaribio haya utafanya vizuri siku yake yenye shughuli nyingi zaidi.
Maswali yanayoulizwa mara kwa mara
Itakuwaje ikiwa mteja hana muunganisho wa data?
Maombi ya SIM hufanya kazi kupitia mtandao wa simu bila data. Kwa maombi ya programu, wateja wasio na data bado wanaweza kulipa kwa kuweka namba ya till ya mfanyabiashara kupitia USSD.
Je, mfanyabiashara anaweza kumkata mteja bila idhini yake?
Hapana. Malipo yanakamilika tu mteja anapoyaidhinisha kwa PIN yake. Mfanyabiashara anaweza kuomba; mteja pekee ndiye anayeweza kuidhinisha.
Marejesho yanashughulikiwaje?
Rejesho ni muamala mpya kutoka kwa mfanyabiashara kurudi kwa mteja, uliounganishwa na malipo ya awali. Ya awali yanabaki kwenye historia, ili pande zote mbili ziweze kuona kilicholipwa na kilichorudishwa.
Mhudumu afanye nini mteja akisema ameidhinisha lakini kaunta haionyeshi chochote?
Asubiri matokeo badala ya kupokea malipo mara mbili. Kaunta inapaswa kuuliza hali ya malipo kwa kutumia marejeo yake. Ikiwa malipo yamekamilika, matokeo yataonekana ndani ya muda mfupi; ikiwa yameisha muda, mhudumu anaweza kutuma ombi jipya kwa usalama. Usikubali kamwe picha ya skrini ya uthibitisho kama ushahidi wa malipo.
Je, lipa kwa ombi ni salama kwa kiasi kikubwa?
Viwango vya ngazi ya mteja vinatumika sawasawa kama kwa malipo mengine yoyote, na hatua ya PIN ni ileile. Kwa malipo makubwa ya kibiashara, mara nyingi wafanyabiashara huchanganya ombi na marejeo ya ankara ili pande zote mbili ziweze kulinganisha malipo na hati.
Likifanywa hivi, lipa kwa ombi linaonekana la papo hapo na haliwezi kukata mara mbili, si kwa sababu hakuna kinachoshindwa kamwe, bali kwa sababu kila kushindwa kuna hali iliyofafanuliwa, jaribio la marudio, na njia ya kurudi kwenye usawa. Hiki ndicho PesaBridge inachotoa, kwenye programu na kwenye API ya wasanidi, juu ya mzunguko mmoja wa maisha wa malipo.