Apple Pay fizetési folyamat
A fizetési folyamat leírását három részre bontottuk a könnyebb átláthatóság miatt. Az elválasztás alapját a kereskedő boltjából indított három fő lépés adja, ezek a lépések a következők:
A. InitWallet - a kereskedői munkamenet hitelesítése és a tranzakció inicializálása
B. StartWallet - a fizetési token átadása és a tranzakció indítása
C. Result - a tranzakció eredményének lekérése rendszerünkből
A. InitWallet - a kereskedői munkamenet hitelesítése és a tranzakció inicializálása
A kereskedő oldala az Apple Pay elérhetőségének ellenőrzése után megjeleníti az Apple Pay gombot,
ezután a vásárló megnyomja a gombot.
A kereskedő oldala létrehozza az Apple Pay munkamenetet a rendelés összegével és devizanemével.
A munkamenet
onvalidatemerchanteseményének hatására a kereskedő oldala elküldi a kereskedő szerverének a fizetési oldal címét és az eseményvalidationURLértékét.A kereskedő szervere új mobiltárcás fizetési tranzakciót kezdeményez rendszerünkben (
InitWallet).Rendszerünk hitelesíti a beérkezett kérést (autentikáció),
ezután rendszerünk egy egyedi tranzakció azonosítót (
TransactionId) és az Apple Pay kereskedői munkamenetének adatait küldi vissza a kereskedőnek (sikeres hitelesítés esetén).A kereskedő szervere tárolja az egyedi tranzakció azonosítót, a munkamenet adatait pedig változatlanul visszaadja a kereskedő oldalának.
A kereskedő oldala a kapott munkamenet adatokkal lezárja a kereskedői munkamenet hitelesítését (
session.completeMerchantValidation()).
Az inicializálás során a natív fizetési módot a Wallet.Type paraméter (apple_pay), a kliens típusát a Wallet.Environment paraméter (web), a fizetési oldal címét pedig a Wallet.ShopUrl paraméter jelöli. Mindkét fizetési szolgáltatónál át kell adni az onvalidatemerchant esemény validationURL értékét is (Wallet.ValidationUrl).
Az inicializálásra és a tranzakció indítására a kereskedő szerver oldalán kerüljön sor. Biztonsági okokból a hitelesítési adatok nem kerülhetnek a böngészőbe, a rendelés összegét, devizanemét és a kiválasztott fizetési szolgáltatót pedig szerver oldalon ellenőrizze.
B. StartWallet - a fizetési token átadása és a tranzakció indítása
A vásárló jóváhagyja a fizetést az Apple Pay felületén,
ezután a kereskedő oldala az
onpaymentauthorizedeseményből kapott teljes fizetési tokent (event.payment.token) elküldi a kereskedő szerverének.A kereskedő szervere a tárolt tranzakció azonosítóval és a fizetési tokennel (
Wallet.Token) elindítja a tranzakciót rendszerünkben (StartWallet).Rendszerünk ellenőrzi a tranzakció azonosítót és továbbítja a fizetési tokent a fizetési szolgáltatónak (sikeres ellenőrzés esetén),
ezután rendszerünk megválaszolja a tranzakció indításának eredményét a kereskedő szerverének.
A kereskedő szervere a tranzakció indításának eredményét visszaadja a kereskedő oldalának.
A kereskedő oldala a kapott válasz alapján lezárja az Apple Pay felületét (
completePayment()), hiba esetén sikertelen eredményt jelezve a vásárlónak.Ha a válasz nem üres visszairányítási URL címet (
RedirectUrl) tartalmaz, a kereskedő oldala erre a címre irányítja a vásárló böngészőjét.Rendszerünk a fizetési szolgáltatótól kapott eredmény alapján beállítja a tranzakció végleges státuszát. Az eredmény a fizetési szolgáltatótól függően aszinkron módon is megérkezhet.
Rendszerünk a tranzakció végstátuszának beállítását követően aszinkron módon meghívja az inicializáció (
InitWallet) során átadottNotificationUrlcímet is.
A B.2. lépésben a teljes event.payment.token objektumot továbbítsa, ne csak annak paymentData mezőjét. A fizetési szolgáltató felé szükséges Base64-kódolást rendszerünk végzi el.
C. Result - a tranzakció eredményének lekérése rendszerünkből
A kereskedő szervere a
ResponseUrlésNotificationUrlhívás hatására egy tranzakció azonosítót tartalmazóResultkéréssel lekérdezi a tranzakció eredményét rendszerünkből.Rendszerünk ellenőrzi a tranzakció azonosítót,
ezután rendszerünk megválaszolja a tranzakció státuszát a kereskedő szerverének (sikeres ellenőrzés esetén).
A kereskedő szervere tárolja a tranzakció státuszát, majd a kereskedő oldala értesíti a vásárlót a tranzakció eredményéről.
Figyeljen arra, hogy minden NotificationUrl hívást követően is indítson egy Result kérést rendszerünk felé.
Utoljára frissítve:
Hasznos volt ez?

