Hosted Payment Page (HPP)
Modtag betalinger via Cost+'s hosted payment page
Hosted Payment Page (HPP) er Cost+'s PCI DSS-kompatible betalingsformular. Den giver dig mulighed for at modtage betalinger uden at håndtere følsomme kortdata på dine egne servere. Du opretter en ordre via API'et, omdirigerer kunden til den hostede side, og de vender tilbage til dit site efter betaling.
Sådan fungerer det
- Din server opretter en ordre ved at kalde POST /v1/orders/.
- API'et returnerer en URL, der peger på den hostede betalingsside.
- Du omdirigerer kunden til betalingssiden.
- Kunden gennemfører betalingen på Cost+'s hostede side.
- Kunden omdirigeres tilbage til din
return_url(ellerfailure_urlved fejlede betalinger). - Cost+ sender en webhook-notifikation til din
webhook_urlmed ordrestatus.
Den hostede betalingsside er fuldt PCI DSS-kompatibel. Du behøver aldrig at håndtere rå kortnumre eller følsomme betalingsdata på dine servere.
Oprettelse af en ordre
Der er to tilgange til at bruge HPP'en:
Tilgang 1: Vis alle betalingsmetoder (enklest)
Opret en ordre uden at angive transactions. Svaret inkluderer en order_url — kunden omdirigeres dertil og ser alle betalingsmetoder, der er aktiveret for din konto:
{
"currency": "EUR",
"amount": 1295,
"merchant_order_id": "my-order-id-1",
"description": "My amazing order",
"return_url": "https://www.example.com",
"webhook_url": "https://www.example.com/webhook"
}{
"id": "43114fde-da30-4115-8004-b7f808f9b25c",
"status": "new",
"currency": "EUR",
"amount": 1295,
"order_url": "https://api.costplus.online/pay/43114fde.../select-payment-method/",
"return_url": "https://www.example.com",
"webhook_url": "https://www.example.com/webhook"
}Omdiriger kunden til order_url. På den hostede side vises alle aktiverede betalingsmetoder.
Tilgang 2: Forudvælg betalingsmetoder
Opret en ordre med et transactions-array for at styre, hvilke betalingsmetoder der vises og i hvilken rækkefølge. Hver transaktion inkluderer en payment_method, og svaret returnerer en payment_url i transaktionsobjektet:
{
"currency": "EUR",
"amount": 1295,
"merchant_order_id": "my-order-id-1",
"description": "My amazing order",
"return_url": "https://www.example.com",
"webhook_url": "https://www.example.com/webhook",
"transactions": [
{ "payment_method": "credit-card" }
]
}{
"id": "4851e31c-4137-4e91-95ef-1df945ee76a2",
"status": "new",
"currency": "EUR",
"amount": 1295,
"transactions": [
{
"id": "d291f03f-a406-428a-967a-4895a46e03fd",
"payment_method": "credit-card",
"status": "new",
"payment_url": "https://api.costplus.online/pay/4851e31c.../select-payment-method/credit-card/d291f03f.../"
}
]
}Omdiriger kunden til payment_url fra transaktionen.
Hvis du kun angiver en enkelt post i transactions-arrayet, sendes kunden direkte til den pågældende betalingsmetode uden at se en valgskærm. flags-arrayet indeholder "is-test", når du bruger en sandbox API-nøgle.
Anmodningsfelter
| Felt | Påkrævet | Beskrivelse |
|---|---|---|
currency | Ja | ISO 4217-valutakode (f.eks. EUR, GBP, SEK) |
amount | Ja | Beløb i valutaens ISO 4217 mindre enhed. For eksempel er 12,95 EUR repræsenteret som 1295 |
merchant_order_id | Nej | Dit eget reference-ID for ordren |
return_url | Nej | URL til at omdirigere kunden efter betaling (standard for alle statusser) |
failure_url | Nej | URL til at omdirigere kunden ved cancelled, expired eller error-status (se Retur-URL'er nedenfor) |
locale | Nej | Sprog for betalingssiden. Understøttet: en-GB, de-DE, nl-NL, nl-BE, fr-BE, sv-SE, no-NO, da-DK |
description | Nej | Beskrivelse af ordren, vist til kunden |
payment_methods | Ingen | Filtrer til en enkelt betalingsmetode (f.eks. ["credit-card"]). Udelad for at vise alle aktiverede metoder. For flere specifikke metoder skal du bruge transactions-arrayet i stedet |
webhook_url | Nej | URL til at modtage statusændringsnotifikationer |
expiration_period | Nej | ISO 8601-varighed for ordreudløb. Standard er PT30M (30 minutter) |
Feltet amount er altid et heltal i valutaens ISO 4217 mindre enhed. For EUR betyder 1295 12,95 EUR; nul- og tredecimalvalutaer bruger deres egen ISO 4217-eksponent. Passering af en decimalværdi såsom 1295.00 eller 12.95 vil resultere i en fejl eller en forkert debitering.
Flere betalingsmetoder
Der er to måder at kontrollere, hvilke betalingsmetoder der vises på den hostede side:
Valgmulighed A — payment_methods (enkelt filter). Send et enkelt-element-array for at begrænse ordren til én betalingsmetode. Udelad feltet helt for at vise alle metoder, der er aktiveret for din konto.
Mulighed B — transactions-array (anbefales til flere metoder). Tilføj én post pr. betalingsmetode. Hver transaktion får sin egen payment_url, og metoderne vises i rækkefølge på den hostede side:
"transactions": [
{ "payment_method": "credit-card" },
{ "payment_method": "apple-pay" }
]Feltet payment_methods på ordrer accepterer højst én værdi. For at tilbyde flere specifikke metoder skal du altid bruge transactions-arrayet. Hvis du har brug for et genanvendeligt link med flere betalingsmetoder, skal du overveje Betalingslinks, som understøtter et ægte payment_methods-array.
Retur-URL'er
Efter betaling omdirigeres kunden baseret på ordrestatus og hvilke URL'er du har angivet:
-
Når både
return_urlogfailure_urler angivet:cancelled,expiredellererror→ kunden omdirigeres tilfailure_url- Alle andre statusser → kunden omdirigeres til
return_url
-
Når kun
return_urler angivet:- Alle statusser → kunden omdirigeres til
return_url
- Alle statusser → kunden omdirigeres til
Brug failure_url til at vise en genforsøgs- eller supportside ved fejlede betalinger, mens return_url viser en ordrebekræftelse. Hvis du kun har brug for én destination, er return_url alene tilstrækkeligt.
Annulleringsknappens adfærd
Den hostede betalingsside indeholder en annulleringsknap. Når kunden klikker på den, omdirigeres de til failure_url (hvis angivet) eller return_url. Ordrestatus skifter til cancelled. Bekræft altid ordrestatus via API'et eller webhooks i stedet for at stole på omdirigeringen alene.
Relaterede endpoints
- Opret ordre — opret en betalingsordre og modtag
payment_url - Hent ordre — tjek ordrestatus efter betaling