Cost+Docs

Karty (Visa i Mastercard)

Przyjmowanie płatności kartami kredytowymi i debetowymi

Przegląd

Przyjmuj płatności kartami kredytowymi i debetowymi przez API Cost+ przy użyciu metody płatności credit-card.

{
  "transactions": [
    {
      "payment_method": "credit-card"
    }
  ]
}

Obsługiwane marki kart

MarkaTyp
AmexKredytowa
MastercardKredytowa / Debetowa
MaestroDebetowa
VisaKredytowa / Debetowa
V PayDebetowa

Opcje konfiguracji

Dynamiczny deskryptor

Użyj pola dynamic_descriptor, aby ustawić niestandardowy tekst wyciągu, który pojawi się na wyciągu bankowym lub kartowym klienta.

{
  "transactions": [
    {
      "payment_method": "credit-card",
      "payment_method_details": {
        "dynamic_descriptor": "My Store Order 123"
      }
    }
  ]
}

Użycie nazwy klienta jako imienia posiadacza karty

Ustaw use_customer_name_as_cardholder_name na true, aby automatycznie użyć nazwy klienta z zamówienia jako imienia posiadacza karty.

{
  "transactions": [
    {
      "payment_method": "credit-card",
      "payment_method_details": {
        "use_customer_name_as_cardholder_name": true
      }
    }
  ]
}

Niestandardowy formularz wprowadzania danych karty

Jeśli chcesz zbudować własny formularz wprowadzania danych karty zamiast korzystać z hostowanej strony płatności, wykonaj następujące cztery kroki.

Krok 1: Utwórz zamówienie z tokenem konfiguracyjnym

Utwórz zamówienie i dołącz setup_token: true w payment_method_details transakcji. To informuje Cost+, aby wygenerował token konfiguracyjny, którego możesz użyć do bezpiecznej tokenizacji danych karty.

curl -X POST https://api.costplus.online/v1/orders \
  -u your-api-key: \
  -H "Content-Type: application/json" \
  -d '{
    "currency": "EUR",
    "amount": 5000,
    "merchant_order_id": "order-001",
    "transactions": [
      {
        "payment_method": "credit-card",
        "payment_method_details": {
          "setup_token": true
        }
      }
    ],
    "return_url": "https://example.com/return",
    "webhook_url": "https://example.com/webhook"
  }'

Odpowiedź będzie zawierać wartość setup_token w payment_method_details transakcji:

{
  "id": "order-uuid",
  "transactions": [
    {
      "id": "txn-uuid",
      "payment_method": "credit-card",
      "payment_method_details": {
        "setup_token": "st_abc123..."
      }
    }
  ]
}

Krok 2: Tokenizuj dane karty

Wyślij numer PAN karty, datę ważności i token konfiguracyjny do punktu końcowego tokenizacji. To bezpiecznie zapisuje kartę i zwraca vault_token.

curl -X POST https://api.costplus.online/v1/tokens/ \
  -H "Content-Type: application/json" \
  -d '{
    "pan": "4111111111111111",
    "expiry_date": "1228",
    "setup_token": "st_abc123..."
  }'

Odpowiedź:

{
  "vault_token": "vt_xyz789..."
}

Krok 3: Uwierzytelnij transakcję

Prześlij vault_token i cvc do punktu końcowego uwierzytelniania. Jeśli wymagane jest 3D Secure, otrzymasz redirect_url do przekierowania klienta na stronę uwierzytelniania jego banku.

curl -X POST https://api.costplus.online/v1/orders/{order_id}/transactions/{transaction_id}/authenticate/ \
  -u your-api-key: \
  -H "Content-Type: application/json" \
  -d '{
    "vault_token": "vt_xyz789...",
    "cvc": "123"
  }'

Odpowiedź:

{
  "redirect_url": "https://3ds.bank.example.com/auth?id=..."
}

Przekieruj klienta na redirect_url, aby ukończył uwierzytelnianie 3D Secure. Po zakończeniu (lub anulowaniu) uwierzytelniania klient zostanie przekierowany z powrotem na Twój return_url.

Krok 4: Odpytuj status zamówienia

Po powrocie klienta z 3D Secure odpytaj zamówienie, aby sprawdzić końcowy status.

curl -X GET https://api.costplus.online/v1/orders/{order_id} \
  -u your-api-key:

Status zamówienia zmieni się na jeden z:

StatusZnaczenie
completedPłatność zakończyła się sukcesem
cancelledKlient anulował lub uwierzytelnianie nie powiodło się
errorWystąpił błąd podczas przetwarzania
expiredZamówienie wygasło przed zakończeniem

Aby dowiedzieć się więcej o ręcznej autoryzacji i przechwytywaniu płatności kartą, zobacz przewodnik Autoryzacja / Przechwycenie / Anulowanie.

On this page