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:
- pole phone jest niewłaściwego typu,
- 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.