Skip to content

Wstępnie autoryzowane przechwytywanie

Użyj wstępnie autoryzowanego przechwytywania, gdy klient jest obciążany (całkowicie lub częściowo) dopiero po dostarczeniu towarów lub usług.

Przepływ ten przypomina przepływ „jednorazowego zakupu”, ale wymagany jest dodatkowy krok, aby faktycznie obciążyć klienta za towary lub usługi – Capture.

Przechwycenie może dotyczyć całkowitej kwoty zakupu lub jej części, w którym to przypadku akceptowanych jest wiele przechwyceń do pełnej kwoty autoryzacji.

Przed rozpoczęciem

Stwórz zamówienie z wymaganymi danymi i zagwarantować następujące informacje:

  • Uwzględnij typ płatności, kwotę, walutę i dozwolone metody płatności;
  • Jeśli jesteś już pewien, że wymagana jest tylko płatność kartą, wpisz tylko „CARD” w liście transaction.paymentMethod ;

Upewnij się, że transaction.paymentType posiada wartość „AUTH”.

Generowanie transakcji

Należy pamiętać, że poniższe żądanie wymaga Nagłówka Autoryzacji z transactionSignature zwróconego z operacji kasowania.

W zapytaniu, Bearer Token jest zastępowany odpowiedzią checkout’u transactionSignature.

Parametry nagłówka
Content-type

string

Mandatory

application/json

Show more
Authorization

string

Mandatory

Bearer Token. Based on OAuth2 authentication performed in a pre-step.

Show more
x-ibm-client-id

string

Mandatory

Token that identifies a client organization. It is provided during onboarding process and must be used in every call.

Show more
Parametry zapytania
cardInfo

object

Mandatory

Object that defines the payment operation request fields.

Show more
PAN

string <= 40 characters

Optional

The Primary Account Number (credit card number).

Show more
secureCode

string <= 40 characters

Optional

The security code (CVV/CVC) associated with the credit card.

Show more
validationDate

ISODateTime

Mandatory

The expiration date of the credit card.

Show more
cardholderName

string

Mandatory

The name of the cardholder as it appears on the credit card.

Show more
createToken

boolean

Mandatory

A flag indicating whether to create a token for future use or not (true/false).

Show more
Przykład:
{
 "cardInfo": {
 "PAN": "5236410030000927",
 "secureCode": "776",
 "validationDate": "2026-05-26T00:00:00.000Z",
 "cardholderName": "Jane Smith",
 "createToken": false
 }
}

Oczekiwana odpowiedź

Pomyślna odpowiedź techniczna składa się ze statusu HTTP-200 i wartości returnStatus.statusCode=”000″.

PaymentStatus w odpowiedzi informuje o tym, czy sama transakcja została zaakceptowana, odrzucona, nadal oczekuje na ostateczny wynik lub wymaga podjęcia dodatkowych działań.

  • Success: Autoryzacja została pomyślnie przetworzona, a środki klienta zostały zweryfikowane.
  • Pending: Ostateczny wynik autoryzacji nie jest jeszcze znany. Będziesz musiał sprawdzać status tej transakcji, dopóki nie osiągnie ona ostatecznego stanu lub nie zdecydujesz się jej anulować.
  • Declined: Zezwolenie zostało odrzucone.
  • Partial: Autoryzacja została częściowo zaakceptowana, ale wymaga wykonania dodatkowych czynności (np. uwierzytelnienia 3D-Secure). ActionResponse zawiera instrukcje dotyczące dalszego postępowania.

Dokonaj przyszłych przechwyceń:

Capture służy do żądania rozliczenia wcześniej autoryzowanych środków.

Żądanie Capture jest wykonywane przy użyciu poprzedniej płatności pre-autoryzacji (AUTH) poprzez odniesienie do jej transactionID i wysyłanie POST zapyania po HTTPS do /payments/{transactionID}/ endpoint’u przechwytywania.

Przechwytywanie może odbywać się na różne sposoby:

  • Pełną, pobrać pełną autoryzowaną kwotę i sfinalizować zakup.
  • Częściową, podzielenie przechwycenia na jedno lub kilka żądań przechwycenia, do łącznej autoryzowanej kwoty.
Opis przechwytywania:
OperacjaTyp operacjiMetoda Operacji & EndpointOpis Operacji
CardSynchronous CallPOST version-id/{original-tx-id}/captureŻąda przechwycenia środków finansowych (częściowej lub całkowitej kwoty) w związku z wcześniejszą autoryzacją.
Żądanie przechwycenia:
LokalizacjaElement danychTypWarunkowośćOpis
Pathoriginal-tx-idStringMandatoryOriginal Transaction Id (identyfikator transakcji oryginalnej autoryzacji).
Request HeaderContent-TypeStringMandatoryapplication/json.
Request HeaderauthorizationStringMandatoryBearer Token. W oparciu o uwierzytelnianie OAuth2 wykonywane w kroku wstępnym.
Request Headerx-ibm-client-idStringMandatoryToken identyfikujący organizację klienta. Jest on dostarczany podczas procesu wdrażania i musi być używany w każdym połączeniu.
Request BodymerchantMerchantMandatoryObiekt definiujący merchanta.
Request Body.merchantterminalIdMax10NumericTextIdentyfikacja Terminala merchanta.
Request Body.merchantchannelStringKanał używany w transakcji.
Request Body.merchantmerchantTransactionIdStringMandatoryUnikalny identyfikator transakcji z perspektywy merchanta.
Request BodytransactionTransactionMandatoryObiekt definiujący transakcję.
Request Body.transactiontransactionTimeStampISODateTimeMandatoryTransaction timestamp.
Request Body.transactiondescriptionStringMandatoryKrótki opis transakcji.
Request Body.transactionamountAmountMandatoryParametr z wartością i walutą transakcji.
Request Body.transaction.amountvalueNumber (double)MandatoryKwota w transakcji.
Request Body.transaction.amountcurrencyCurrency codeMandatoryWaluta użyta w transakcji. Alpha3
Request BodyoriginalTransactionOriginalTransactionMandatoryObiekt identyfikujący oryginalną transakcję.
Request Body.originalTransactionidStringMandatoryOryginalna identyfikacja transakcji.
Tutaj można zobaczyć przykład żądania przechwytywania:
{
 "merchant": {
 "terminalId": {{TerminalID}},
 "channel": "web",
 "merchantTransactionId": "BO_Order Id: "
 },
 "transaction": {
 "transactionTimestamp": "{{trxDatetime}}",
 "description": "Transaction short description",
 "amount": {
 "value": 1,
 "currency": "PLN"
 },
 "originalTransaction": {
 "id": "{{originalTransactionId}}"
 }
 }
}

Poniższa odpowiedź będzie zawierać identyfikator transakcji, którego można użyć do sprawdzenia statusu.

{
 "merchant": {
 "terminalId": "101776",
 "merchantTransactionId": "BO_Order Id: ",
 "merchantTransactionTimestamp": "2023-06-20T11:15:57.040Z"
 },
 "transactionTimestamp": "2023-06-20T11:16:14.988Z",
 "amount": {
 "value": "1",
 "currency": "PLN"
 },
 "transactionID": "RW5vBMHj4RhQWFRc0GvS",
 "execution": {
 "startTime": "2023-06-20T11:15:57.206Z",
 "endTime": "2023-06-20T11:16:15.100Z"
 },
 "paymentStatus": "Success",
 "returnStatus": {
 "statusCode": "000",
 "statusMsg": "Success",
 "statusDescription": "Success."
 }
}

Następnie, po przetworzeniu płatności, możesz sprawdzić status swojej transakcji, wykonując zapytanie GET .

Nagłówek HTTP autoryzacji jest ustawiony na Bearer Token, który został użyty w początkowym Checkout’cie.

Zapytanie URL:
https://stargate-cer.qly.site1.sibs.pt/api/v1/payments/{transactionID}/status
Nagłówki żądań:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6I (...)
X-IBM-Client-Id: b4480347-9fc8-4790-b359-100a99c60ea3
Content-Type: application/json

Pomyślna odpowiedź techniczna składa się ze statusu HTTP-200 i wartości returnStatus.statusCode=”000″.

Oto kilka przykładów możliwych kodów wyników: