Apple Pay fizetési folyamat
A fizetési folyamat leírását négy részre bontottuk a könnyebb átláthatóság miatt. Az elválasztás alapját a kereskedő boltjából indított négy 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 kétlépcsős tranzakció inicializálása
B. StartWallet - a fizetési token átadása és a kétlépcsős tranzakció indítása
C. Result - a kétlépcsős tranzakció eredményének lekérése rendszerünkből
D. Close - a kétlépcsős tranzakció lezárása
A. InitWallet - a kereskedői munkamenet hitelesítése és a kétlépcsős 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, kétlépcsős mobiltárcás fizetési tranzakciót kezdeményez rendszerünkben (
InitWallet), azAutoCommitparaméterfalseértékével.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ő szerveré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 kétlépcsős 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), majd megtörténik a tranzakció összegének befoglalása,
ezután rendszerünk megválaszolja a befoglalás eredményét a kereskedő szerverének.
A kereskedő szervere az eredményt 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ó 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ó stá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 kétlépcsős 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 befoglalás eredményét rendszerünkből.Rendszerünk ellenőrzi a tranzakció azonosítót,
ezután rendszerünk megválaszolja a befoglalás státuszát a kereskedő szerverének (sikeres ellenőrzés esetén).
A kereskedő szervere tárolja a befoglalás 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é.
D. Close - a kétlépcsős tranzakció lezárása
A kereskedő kezdeményezi a tranzakció lezárását a tranzakció azonosító segítségével (
TransactionId) és a lezárás módjának megadásával, mely lehet: • a teljes befoglalt összeg terhelése • a befoglalt összeg részterhelése (és a maradék összeg feloldása) • a teljes befoglalt összeg feloldásaRendszerünk hitelesíti a beérkezett kérést, majd továbbítja azt a fizetési szolgáltató felé, aki végrehajtja a tranzakció lezárását.
Ezután rendszerünk megválaszolja a lezárás eredményét a kereskedő szerverének (sikeres hitelesítés esetén).
A kereskedő szervere tárolja a kapott választ és értesíti a vásárlót a tranzakció eredményéről.
Utoljára frissítve:
Hasznos volt ez?

