Sekcije
Lokacija: Početak Dokumentacija WebPay dokumentacija WebPay 3-D secure API

WebPay Direct 3-D secure API

— Kategorije: , ,

Ako koristite WebPay Direct, 3-D secure API na jednostavan način omogućuje procesiranje 3-D secure transakcija.

Što je 3-D secure?

Preduvjeti za 3-D secure implementaciju

Testno okružje

Za potrebe integracije 3D Secure poruka putem WebPay Direct načina spajanja potrebno je najaviti datum testiranja kako bismo vam osigurali testno okružje.

Tehnička podrška za vrijeme testiranja 3D Secure poruka je dostupna od 09:00-17:00, pon-pet.

 

Tijek procesiranja transakcije s 3-D secure podrškom

  • korisnička aplikacija šalje zahtjev za autorizaciju na isti način kao i kad nije aktivirana 3-D secure podrška
  • ukoliko kartica nije u 3-D secure programu proces autorizacije je potpuno isti kao i bez 3-D secure podrške
  • ako je kartica u programu, servis ne prosljeđuje transakciju na autorizaciju kartičarskoj kući već vraća odgovor korisničkoj aplikaciji koji sadrži 3-D secure parametre u slijedećem obliku:
<?xml version="1.0" encoding="UTF-8"?>
  <secure-message>
    <acs-url>https://visatest.3dsecure.com/mdpayacs/pareq</acs-url>
    <order-id type="integer">336</order-id>
    <pareq>eJxVUu1ugjAUfRXiA9DyocJybQJTo1k0zJks2b+u3ADb+LCUoW+...</pareq>
</secure-message>

Ovakav način razmjene informacija je jednostavan i jednoznačan, ukoliko dobijete uobičajeni XML ili YAML odgovor koji sadrži informacije o transakciji tada je autorizacija obavljena, tj, kartica nije u programu i proces je isti kao i u slučaju bez 3-D secure podrške (razlika je u tome da je transakcija označena kao 3-D secure). Ako dobijete odgovor koji sadrži 3-D secure parametre trebate kupca preusmjeriti na stranicu banke koja mu je izdala karticu i poslati na tu adresu HTTP POST zahtjevom podatke koje ste dobili u secure-message odgovoru:

  • acs-url: adresa web stranice banke koja je izdala karticu na kojoj će se kupac autenticirati
  • pareq: podatak koji prenosite na tu stranicu

Uobičajen način za preusmjeravanje kupca na tu adresu je pomoću forme koja radi automatski "submit" pomoću javascript-a:

<html>
  <head>
    <title>3-D Secure Verification</title>
    <script language="Javascript">function OnLoadEvent() { document.form.submit(); }</script>
  </head>
    <body OnLoad="OnLoadEvent();">
    <h1>invoking 3-D secure form ...</h1>
    <form name="form" action="acs_url VALUE" method="POST">
      <input type="hidden" name="PaReq" value="pareq VALUE">
      <input type="hidden" name="TermUrl" value="TermUrl VALUE">
      <input type="hidden" name="MD" value="MD VALUE">
      <noscript>
        <p>Please click to procede to your bank website</p>
        <input type="submit">
      </noscript>
    </form>
  </body>
</html>

NAPOMENA: imena varijabli moraju biti ista kao u ovom primjeru

TermUrl je URL na vašem serveru koji će prihvatiti i obraditi podatke koje HTTP POST metodom šalje stranica banke na kojoj je kupac potvrdio svoj identitet nakon što tamo klikne na submit gumb. MD parametar (merchant data) je vrijednost koju vraća servis i tu vrijednost koristite kao MD parametar za slanje prema banci izdavatelju kartice. Kada dobijete odgovor banke izdavatelja MD varijablu koristite kako biste uparili transakciju na strani WebPay servisa. Ukoliko varijablu promijenite WebPay servis neće moći nastaviti započetu transakciju. WebPay servis se brine za sva procesiranja vezana za 3-D secure, koristeći C lib-ove trećih strana ovlaštenih od strane VISA i MASTERCARD-a.

NAPOMENA: ukoliko se kupac iz bilo kojeg razloga sa stranice svoje banke ne vrati na stranice trgovca, WebPay servis ne primi 3-D Secure podatke od banke i ne može završiti sa procesiranjem transakcije stoga su takve transakcije označene kao odbijene - ne procesirane.

Nakon što vaša skripta na TermUrl adresi prihvati podatke potrebno ih je poslati natrag WebPay servisu HTTP POST metodom na https://secure.webteh.hr/ koristeći ista imena varijabli kakva ste dobili sa stranice banke koja je kupcu izdala karticu:

<form action="http://secure.webteh.hr/" method="POST">
  <input type="hidden" name="PaRes" value="eJzNWNmS4rgS/ZWOvo/EtHewJ+iKkHdjv8rnw+mjye2Hx9S/wt9pAEQ ...">
  <input type="hidden" name="MD" value="336">
  <input type="submit" value="Click to complete 3-D secured transaction!">
</form>

Ovaj dio je također automatiziran koristeći neki HTTP lib, npr. curl. Vrijednost MD varijable jednaka je vrijednosti order-id varijable iz prvog odgovora jer ta varijabla jednoznačno određuje broj transakcije na strani servisa. Razlog zašto koristimo MD varijablu je taj što WebPay Form koristi istu logiku na strani servisa za procesiranje 3-D secure transakcija (servis koristi MD pomoću kojeg određuje id transakcije da bi završio cijeli proces autorizacije).

Nakon što pošaljete ove parametre, servis odgovara s porukom koja sadrži informacije o transakciji koja je ista kao i u slučaju procesiranja bez 3-D secure podrške, razlika je što su sada popunjene i vrijednosti service_type_indicator i account_authentication_data koje označavaju 3-D secure transakciju.

Kada je transakcija označena kao 3-D secure transakcija tada je preduvjet za slanje takve transakcije na autorizaciju da je kupac uspješno potvrdio svoj identitet na stranici svoje banke, inače transakcija nikad neće biti poslana na autorizaciju. Ako se to dogodi, tj. kupac nije potvrdio svoj identitet polje response_code ima vrijednost 2010. Tada je transakcija nevažeća, tj. nikada i nije poslana na autorizaciju i kupcu se prikazuje poruka da je zbog toga transakcija obustavljena i eventualno mu se ponudi mogućnost da ponovi cijeli postupak. Također iz sigurnosnih razloga kupac ima 15 minuta za provjeru identiteta na strani svoje banke, ako se zadrži duže od tog vremena WebPay odbija takvu transakciju s porukom response_code = 2011. I u ovom slučaju potrebno je kupcu omogućiti ponovnu kupovinu. Primjer kako takav scenario može izgledati vidi se na slici.

3-D secure form expired.png

Cijeli proces integracije možete pogledati na demo dućanu na adresi https://test.webpay.cc/shop, u postavkama dućana odaberite WebPay Direkt način integracije i obavite kupnju. Sam dućan možete testirati kao administrator sa stranice https://test.webpay.cc/login.

  • Korisničko ime: demo
  • Zaporka: webtehdemo

NAPOMENA: U postavkama prodajnog mjesta opcija postback mora biti isključena, u protivnom će te dobiti u polju comment xml odziva "ERROR: postback URL not available", ova opcija koristi se samo za integraciju WebPay Form servisa

Djelovi koji su u produkciji automatizirani ovdje zahtjevaju vašu intervenciju pritiskom na gumb i dana su pojašnjena svih koraka koji su ovdje opisani da se stekne detaljan uvid u cijeli proces autorizacije. Preduvjet da biste mogli napraviti 3-D secure transakciju jest da imate testni broj VISA ili MASTERCARD kartice koja je u 3-D secure programu i njih možete dobiti upitom na email podrska@webteh.hr.