ugrás a tartalomhoz

Archívum - Jún 25, 2015

Paypal - Status lekérdezés (ExpressCheckout)

world-s · 2015. Jún. 25. (Cs), 20.18
Sziasztok!
Néztem, hogy 1-2 alkalommal volt már téma a paypal fizetés de nem kaptam választ a kérdésemre.
Egy összetettebb oldalra szeretnék paypal fizetést.
Nem simán egy gombos fizetés lenne, hanem Reference Transactions típusú.
Ugyanezt az OTP-nél már megcsináltuk, és elvileg félig meddig működik a paypal-nál is amit az SDK alapján csináltunk.

A folyamat ahol elakadtunk úgy néz ki (SDK példa):
1. SetExpressCheckout - itt beállítjuk a fizetés paramétereit és az egyebeket
2. a kapott URL-re eljut az ügyfél, ahol belép és elfogadja a fizetés és a szeződést
3. az ügyfél visszajut az oldalunkra
4. GetTransactionDetails - itt lekérdezzük az ügyfél adatait
5. DoExpressCheckoutPayment - itt ezzel jóváhagyjuk a fizetést mi is.
4.b. Ha cancelt nyomott akkor egy másik cím hívódik meg, és a 4. és 5. pont nem fut le.
(tehát a fizetés attól is függ, hogy az ügyfél hova jutott)

Az alapvető probléma, hogy a példa szerint sikeres fizetés esetén a returnURL hívódik meg. Egyéb esetben meg a CancelURL.
Nálunk az a baj, hogy a weboldal és a fizetési rendszer nem egy helyen van. Így az ügyfelet nem tudjuk a fizetési rendszer egy oldalára küldeni, és egyéb okok miatt nem is lenne nálunk szerencsés ha egy böngészőtől függne lezárul -e a tranzakció.

Az OTP esetén úgy kellett csinálni, hogy beállítottuk a fizetést, az ügyfél eljutott az OTP felületére, ott fizetett és valahova visszatért. A háttérben pedig a fizetési rendszerünk folyamatosan elkezdte a tranzakció állapotát lekérdezgetni. Tehát láttuk ha még az ügyfélre várunk, vagy befejezte a fizetést (akár sikeresen akár nem).

Hasonlót kellene itt is megvalósítanunk.
Az 1-3 pont az tejesíti is a dolgot. Sőt a 4-5 pont is jó lenne (GetTransactionDetails-el lekérdezgetjük a tranzakciót, és ha rendben van, akkor DoExpressCheckoutPayment-el lezárjuk).
Sajnos a GetTransactionDetails csak akkor arról ad választ nekünk, hogy sikeres volt -e a vásárlás. Ez sajnos kevés, mert amennyiben az ügyfél pl.