Mida teha, kui klient naaseb returnURL'ile makse staatusega "Ootel"?
Montonio maksetega kohandatud integratsiooni arendamisel peab meie makse staatuseid nõuetekohaselt käsitlema. Lisaks webhook-teavitustele lisame makse staatuse order token'isse, kui suuname kliendi tagasi määratud returnURL'ile, nagu on kirjeldatud meie API-dokumentatsioonis. Tellimuse erinevate makse staatuste kohta saab rohkem lugeda meie API-dokumentatsiooni peatükist „Milline on tellimuse elutsükkel?".
Miks saan makse staatuse "Ootel"?
Kui klient otsustab makse tühistada või ei suuda maksevoogu lõpule viia, suuname ta tagasi määratud returnURL'ile. Kuna tellimuse eest ei ole tasutud, ei muuda me selle staatust. Staatus jääb olekusse "Ootel", kuni seame selle pärast määratud aegumist (vaikimisi 30 minutit) "Hüljatuks".
Me ei saada webhook'e staatusega "Ootel", sest staatus ei ole muutunud. Siiski on see lisatud token'is returnURL'is, juhul kui makse ei ole lõpule viidud.
Miks me ei muuda staatust kohe "Hüljatuks"?
Kui klient tühistab maksevoo, ei muuda me seda kohe staatuseks "Hüljatud", sest tehniliselt on endiselt võimalik, et pangad lõpetavad makset taustal. Kujuta ette stsenaariumit, kus klient alustab makset Swedbankiga ja jätkab allkirjastamist Smart-ID-ga. Smart-ID teatis aga viibib ja klient pöördub tagasi makseväravasse, et maksevoost väljuda. Seejärel ilmub teade ja klient kasutab võimalust makse lõpetamiseks. Meie süsteem tuvastab makse ja muudab staatuse "Ootel" ümber "Makstud" olekusse.
On veel paar juhtumit, kus makse töötlemine võib võtta kaua aega ja kuigi klient on maksevoost väljunud, töödeldakse makset endiselt taustal. Open Banking API-de olemuse tõttu ei saa me sageli selliseid protsesse peatada ja peame arvestama, et makse võib saada lõpule viidud ka pärast seda, kui klient on väljunud maksevoost. Andmete järjepidevuse tagamiseks hoiame makse olekus "Ootel", kuni oleme kindlad, et seda ei saa enam lõpule viia.
Pakume aga staatust "Hüljatud", kui makse on olnud pikemat aega ootel ja selle taustal lõpuleviimine pole enam tõenäoline. Vaikimisi määratakse tellimusele staatus "Hüljatud" 30 minutit pärast maksevoo alustamist. Seda saab seadistada, kasutades expiresIn parameetrit vastavalt meie API-dokumentatsioonile. Soovitame seda hoida 15 minutit või kauem.
Sellist „taustal lõpetamist“ juhtub väga harva ja sind teavitatakse staatuse muutumisest webhook'i kaudu.
Kuidas käsitleda staatust "Ootel"?
Kui klient naaseb staatusega "Ootel", võib kliendile julgelt näidata, et makse ei olnud lõpetatud ja lasta tal uuesti proovida.
Soovitame kasutada samade tellimuste üksikasjadega korduskatsete puhul sama merchantReference'i. Nii ei loo me oma süsteemides uut tellimust. Oluline on see, et juhul, kui sama merchantReference'i eelmine makse lõpetati taustal (eespool kirjeldatud äärmuslikud juhtumid), saame sujuvalt käsitleda kasutaja maksevoogu ja muuta tellimuse staatuseks "Makstud", vältides kliendi topeltmakset.
Kui aga tellimuse kogusumma muutub, tuleb luua uus tellimus täiesti uue merchantReference'iga. Vastasel juhul võidakse tellimus märkida "Makstuks" väiksema maksesummaga kui kogusumma.
Meie kogemuse kohaselt annab ülaltoodud voo rakendamine parima kasutajakogemuse, vältides äärmuslikke topeltmakseid. Meie WooCommerce'i plugin rakendab ka API-t täpselt sama loogikaga. Seda on põhjalikult testitud tuhandete kaupmeestega ja kasutajakogemus on osutunud esmaklassiliseks!
Kui sul on lisaküsimusi või vajad meie abi, võta julgelt ühendust meie klienditoega parempoolses alumises nurgas asuva vestlusakna kaudu.