Cost+Docs

Autorizacijos, surinkimai ir anuliavimas

Valdykite mokėjimo autorizacijos, surinkimo ir anuliavimo procesus

Kai kurie mokėjimo būdai palaiko dviejų žingsnių procesą: pirmiausia autorizuoti (rezervuoti lėšas), tada surinkti (nuskaityti lėšas) arba anuliuoti (atšaukti rezervavimą).

Surinkimo režimai

Nustatykite capture_mode užsakyme, kad valdytumėte, kada lėšos surenkamos:

RežimasElgesys
manualSurenkate aiškiai, kai esate pasiruošę (pvz., po siuntimo). Jei nesurenkate iki užsakymo galiojimo pabaigos, autorizacija prarandama ir negali būti surinkta.
delayedLėšos automatiškai surenkamos, kai baigiasi expiration_period.
POST /v1/orders/ (manual capture)
{
  "currency": "EUR",
  "amount": 5000,
  "capture_mode": "manual",
  "return_url": "https://www.example.com",
  "webhook_url": "https://www.example.com/webhook",
  "transactions": [
    {
      "payment_method": "credit-card"
    }
  ]
}

Su manual surinkimu privalote surinkti prieš užsakymo galiojimo pabaigą. Pasibaigus galiojimui, autorizacija atšaukiama ir lėšų nebegalima surinkti. Nustatykite tinkamą expiration_period savo vykdymo laikotarpiui.

Galite nustatyti capture_mode užsakymo lygmeniu nenurodydami transactions. Mokėjimo puslapis tada rodys tik mokėjimo būdus, palaikančius nurodytą surinkimo režimą.

Surinkamų sumų tikrinimas

Prieš surinkimą galite patikrinti, kiek galima surinkti, užklausdami amount_details:

curl -u YOUR_API_KEY: \
  "https://api.costplus.online/v1/orders/{order_id}/?fields[]=amount_details"

Atsakyme pateikiamas amount_details objektas:

{
  "amount": 5000,
  "amount_details": {
    "capturable": 5000,
    "captured": 0,
    "refundable": 0,
    "refunded": 0,
    "voidable": 5000,
    "voided": 0
  }
}

Užsakymo eilutės

Naudojant surinkimus ir anuliavimus pagal užsakymo eilutę, naudokite šiuos tipus:

TipasAprašymas
physicalFizinė prekė
discountNuolaidos suma
shipping_feeSiuntimo kaina
sales_taxPardavimo mokestis
digitalSkaitmeninė prekė
gift_cardDovanų kortelė
store_creditParduotuvės kreditas
surchargePapildomas mokestis

Mokėjimų surinkimas

Surinkimas pagal užsakymo eilutę

POST /v1/orders/{id}/transactions/{transaction_id}/captures/orderlines
Request body
{
  "description": "Shipping item #1",
  "order_line": {
    "merchant_order_line_id": "item-001",
    "quantity": 1
  }
}

Surinkimas pagal sumą

POST /v1/orders/{id}/transactions/{transaction_id}/captures/amount
Request body
{
  "description": "Partial capture",
  "amount": 2500
}

Mokėjimų anuliavimas

Anuliavimas grąžina autorizuotas lėšas klientui.

Anuliavimas pagal užsakymo eilutę

POST /v1/orders/{id}/transactions/{transaction_id}/voids/orderlines
Request body
{
  "description": "Voiding item #2",
  "order_line": {
    "merchant_order_line_id": "item-002",
    "quantity": 1
  }
}

Anuliavimas pagal sumą

POST /v1/orders/{id}/transactions/{transaction_id}/voids/amount
Request body
{
  "description": "Partial void",
  "amount": 1500
}

Užklausos parametrai

Pridėkite užklausos parametrus, kad atsakyme būtų papildomos detalės:

ParametrasAprašymas
?fields[]=order_line_detailsĮtraukti užsakymo eilutės detalizaciją
?fields[]=amount_detailsĮtraukti sumos detalizaciją

Optimistinis užrakinimas

Surinkimo ir anuliavimo galiniai taškai palaiko ETag pagrįstą optimistinį užrakinimą per if-match antraštę. Tai apsaugo nuo lenktyniavimo situacijų, kai kelios sistemos bando surinkti tą pačią operaciją.

Capture with optimistic locking
curl -X POST https://api.costplus.online/v1/orders/{id}/transactions/{tid}/captures/amount \
  -u {api_key}: \
  -H "Content-Type: application/json" \
  -H "if-match: \"etag-value\"" \
  -d '{"description": "Capture", "amount": 2500}'

Jei ETag nesutampa (užsakymas buvo pakeistas nuo paskutinio gavimo), gausite 412 Precondition Failed atsakymą.

Cost+ palaiko vieną surinkimą per autorizaciją, o anuliavimus galima apdoroti tik prieš bet kokį surinkimą. Planuokite savo surinkimo strategiją atitinkamai.

Susiję galiniai taškai

On this page