Koszyk i płatności
Koszyk pozwala kupić kilka wariantów w jednej płatności. Możesz przekierować kupującego do strony SpaceIs albo rozpocząć płatność z własnego formularza. Oba endpointy wymagają autoryzacji kluczem licencji.
Pozycje koszyka
Każdy wariant może wystąpić na liście tylko raz. Większą liczbę sztuk zapisz w quantity. Wszystkie pozycje muszą należeć do jednej licencji. Łączenie serwerów wymaga włączenia tej możliwości w ustawieniach koszyka.
Nie przesyłaj ceny ani sumy zamówienia. SpaceIs wylicza je na podstawie aktualnej oferty i wybranej metody. API koszyka nie obsługuje SMS.
Link do strony płatności
POST /v4/cart/paymentUrl
Oprócz items możesz podać opcjonalne pole nick, aby uzupełnić nick gracza na stronie płatności. Utworzenie linku nie rozpoczyna płatności u operatora.
curl --request POST 'https://api.spaceis.pl/v4/cart/paymentUrl' \
--header "Authorization: Bearer $SPACEIS_API_KEY" \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{
"nick": "Gracz123",
"items": [
{
"variantId": "44444444-4444-4444-8444-444444444444",
"quantity": 2
},
{
"variantId": "55555555-5555-4555-8555-555555555555",
"quantity": 1
}
]
}'
Przy odpowiedzi 200 odczytaj data.paymentUrl i przekieruj na ten adres kupującego. Używaj pełnego zwróconego adresu, bez zmiany domeny, ścieżki ani parametrów. Link uwzględnia aktywną własną domenę płatności licencji.
Płatność z własnego formularza
POST /v4/transaction/cartPayment
Ten endpoint rozpoczyna płatność. Oprócz items przyjmuje:
Przykład dla metody paybylinkTransfer, jeśli jest skonfigurowana w Twoim sklepie i ma ceny dla obu wariantów:
curl --request POST 'https://api.spaceis.pl/v4/transaction/cartPayment' \
--header "Authorization: Bearer $SPACEIS_API_KEY" \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{
"nick": "Gracz123",
"method": "paybylinkTransfer",
"methodParameter": "[email protected]",
"clientIp": "192.0.2.10",
"items": [
{
"variantId": "44444444-4444-4444-8444-444444444444",
"quantity": 2
},
{
"variantId": "55555555-5555-4555-8555-555555555555",
"quantity": 1
}
]
}'
Przykładowa odpowiedź dla płatności z przekierowaniem:
{
"success": true,
"type": "response",
"data": {
"providerId": "przykladowa-platnosc-operatora",
"redirectUrl": "https://platnosci.example/checkout/przyklad",
"transactionId": "66666666-6666-4666-8666-666666666666",
"type": "redirectPayment"
}
}
Zapisz transactionId po stronie swojego serwera i powiąż go z zamówieniem. Dla redirectPayment skieruj kupującego na redirectUrl. Dla BLIK Level 0 odpowiedź ma typ blik0Payment; kupujący zatwierdza płatność w aplikacji banku. Status transakcji sprawdzaj przez API transakcji.
Ponowne rozpoczęcie płatności
Nie ponawiaj automatycznie żądania rozpoczynającego płatność po przekroczeniu czasu oczekiwania lub utracie połączenia. Pierwsze żądanie mogło zostać obsłużone. Jeśli otrzymałeś transactionId, sprawdź jego status. Jeśli go nie masz, sprawdź transakcje w panelu lub skontaktuj się z pomocą przed kolejną próbą.
Najczęstsze błędy
Błędy pól formularza mogą być zwracane w errors, np. przy powtórzeniu wariantu lub nieprawidłowej ilości. Nie zastępuj błędu API komunikatem o opłaceniu zamówienia.