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žimas | Elgesys |
|---|---|
manual | Surenkate aiškiai, kai esate pasiruošę (pvz., po siuntimo). Jei nesurenkate iki užsakymo galiojimo pabaigos, autorizacija prarandama ir negali būti surinkta. |
delayed | Lėšos automatiškai surenkamos, kai baigiasi expiration_period. |
{
"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:
| Tipas | Aprašymas |
|---|---|
physical | Fizinė prekė |
discount | Nuolaidos suma |
shipping_fee | Siuntimo kaina |
sales_tax | Pardavimo mokestis |
digital | Skaitmeninė prekė |
gift_card | Dovanų kortelė |
store_credit | Parduotuvės kreditas |
surcharge | Papildomas mokestis |
Mokėjimų surinkimas
Surinkimas pagal užsakymo eilutę
POST /v1/orders/{id}/transactions/{transaction_id}/captures/orderlines{
"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{
"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{
"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{
"description": "Partial void",
"amount": 1500
}Užklausos parametrai
Pridėkite užklausos parametrus, kad atsakyme būtų papildomos detalės:
| Parametras | Apraš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ą.
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
- Surinkti pagal sumą — surinkti konkrečią sumą iš autorizuoto užsakymo
- Surinkti pagal užsakymo eilutę — surinkti konkrečias užsakymo eilutes
- Anuliuoti pagal sumą — anuliuoti konkrečią sumą iš autorizuoto užsakymo
- Anuliuoti pagal užsakymo eilutę — anuliuoti konkrečias užsakymo eilutes