Testy inicjowania płatności (PIS)
ID | Krok | Test | Rezultat oczekiwany | Dodatkowe sprawdzenia | Komentarz |
1 | Utworzenie użytkownika APIHub | Wywołanie metody POST /##{{api_url}}/user z podaniem nowego unikalnego api-userId = userId | User zostaje dodany w LDS. Metoda GET/##{{api_url}}/user/userId gdzie {userId} to identyfikator podany w metodzie POST zwraca dane użytkownika (HTTP 200) | Sprawdzenie w bazie LDS SELECT * FROM aspnetusers WHERE ExternalUserId = userId zwraca 1 rekord | |
2 | Usunięcie użytkownika APIHub | Wywołanie metody DELETE /##{{api_url}}/user z podaniem api-userId = userId użytego w kroku 3 | User zostaje usunięty z LDS. Metoda GET/##{{api_url}}/user/userId gdzie userId to identyfikator podany w metodzie DELETE zwraca brak użytkownika (HTTP 200) i komunikat: { "data": null, "success": true } | Sprawdzenie w bazie LDS SELECT * FROM aspnetusers WHERE ExternalUserId = userId zwraca 0 rekordów | |
3 | Pobranie listy wspieranych metod płatności dla wskazanego ASPSPS | ||||
4 | Inicjacja pojedynczej płatności (single payment) | Wywołanie metody POST ##{{api_url}}/bank/swiftCode/##{{swiftCode}}/payment z podaniem api-userId= userId z kroku 1 | Płatność zostaje zainicjowana, w rezultacie otrzymujemy link do SCA z ASPSP, dla nowo stworzonej płatności | Sprawdzenie w bazie LDS SELECT * FROM payment.payment WHERE transactionId = transactionId zwraca 1 rekord | |
5 | SCA | - | callback od ASPSP o poprawnie wykonanym SCA | SELECT * FROM apisession WHERE id = sessionId zmiana statusu z Authentication na status = inProgress, | |
6 | Pobranie statusu płatności | GET ##{{api_url}}/bank/SwiftCode/##{{swiftCode}}/payment/##{{transactionId}} | Informacja o statusie danej płatności enum : Created | Sprawdzenie w bazie LDS SELECT [Status] FROM payment.Payment WHERE id = transactionId | Odpytywanie o status płatności może zadziać się też samoistnie poprzez heurystykę schedulera, gdzie każdy payment jest odświeżany o wcześniej zdefiniowane interwały czasowe [5s, 20s, 60s, 5min, 1h, 6h*]. |
7 | Pobranie listy zainicjowanych płatności | GET ##{{api_url}}/payment?PageNumber=1&PageSize=10 z podaniem api-userId= userId z kroku 1 | Zwrócone wszystkie płatności danego usera | Sprawdzenie w bazie LDS SELECT * FROM payment.Payment WHERE userId = (select id from aspnetusers where externalId = userId) |