Visa Mobile on-site to integracja płatności Visa Mobile bezpośrednio na stronie sprzedawcy. Płatnik bez konieczności opuszczania strony sklepu, może sfinalizować transakcję poprzez Visa Mobile.

Implementacja

W celu wdrożenia tego rozwiązania nie jest wymagana żadna dodatkowa konfiguracja.

Jedynym wymogiem jest to, aby przy tworzeniu transakcji poprzez endpoint  https://openapi.tpay.com/#/transactions/post_transactions, zawrzeć dodatkowo odpowiednie informacje w następujących polach:

pay.groupId 

Należy przekazać wartość przypisaną do kanału płatności Visa Mobile, np.

"pay": {
 "groupId": 171
} 

Można sprawdzić, jaką wartość groupId posiada kanał Visa Mobile w endpoincie: https://openapi.tpay.com/#/transactions/get_transactions_bank_groups

payer.phone 

Należy przekazać numer telefonu płatnika, np.

"payer": {
        "email": "[email protected]",
        "name": "Jan Kowalski",
        "phone": "48123123123",
}

*pola email oraz name są polami obligatoryjnymi - tak jak przy wszystkich innych transakcjach tworzonych przez ten endpoint.

Wartość w polu phone ma następujące wymogi:

  • typ - string,
  • minimalna długość: 7 znaków,
  • maksymalna długość: 15 znaków,
  • wyłącznie znaki numeryczne bez żadnych przerw, myślników, liter etc.,
  • konieczne jest przekazanie numeru kierunkowego przed numerem płatnika tak, jak w podanym przykładzie.

 

Pole phone jest opcjonalne, choć niezbędne w celu zaimplementowania Visa Mobile on-site. W przypadku podania w request body odpowiedniego dla Visa Mobile groupId przy jednoczesnym pominięciu pola phone, w odpowiedzi zostanie wygenerowany URL do panelu transakcyjnego. Po otwarciu tego URL w przeglądarce, płatnik będzie miał możliwość samodzielnie wprowadzić dane telefonu, niezbędne dla Visa Mobile.

Przykłady odpowiedzi z API

Po przekazaniu w request body wszystkich niezbędnych informacji, mogą zostać zwrócone następujące statusy z API:

Status 400 Bad Request 

Taki status może zostać zwrócony m.in. w sytuacji, w której: 

  1. pole phone jest niewłaściwego typu,
  2. pole phone jest za krótkie lub za długie.

Status 200 OK 

Taki status zostaje zwrócony w momencie, w którym transakcja została założona. 

Ważne: nie jest to jednoznaczne z opłaconą lub zainicjowaną płatnością w aplikacji Visa Mobile.

W zależności od tego, czy przekazany numer jest faktyczne zarejestrowany w Visa Mobile, zostanie odpowiednio zwrócone w response body.

Jeśli telefon Płatnika jest zarejestrowany w Visa Mobile, w response body:

  • zostanie zwrócony m.in. obiekt “payments” posiadający "status": "pending",
  • nie zostanie zwrócone pole  "transactionPaymentUrl".

Po zainicjowaniu takiej transakcji w aplikacji płatnika (aplikacji Visa Mobile albo aplikacji banku, który wspiera ten rodzaj płatności) zostanie wysłana notyfikacja z prośbą o potwierdzenie płatności.

W momencie, w którym płatnik zaakceptuje płatność:

  • zostanie wysłana notyfikacja (tak jak przy wszystkich prawidłowo opłaconych transakcjach) - https://openapi.tpay.com/,
  • status transakcji zmieni się na  "status": "correct" - status transakcji można uzyskać wysyłając request na https://openapi.tpay.com/#/transactions/get_transactions__transactionId_.

Jeżeli telefon podany przez płatnika nie jest zarejestrowany w Visa Mobile, w response body zostanie zwrócony: 

  • obiekt “payments” posiadający "status": "declined",
  • URL do panelu transakcyjnego w polu  "transactionPaymentUrl". Płatnik za jego pomocą będzie mógł samodzielnie wpisać numer telefonu w panelu transakcyjnym.