Hosted Payment Page (HPP)
Ta emot betalningar med Cost+ hosted payment page
Hosted Payment Page (HPP) är Cost+ PCI DSS-kompatibla betalningsformulär. Det låter dig ta emot betalningar utan att hantera känslig kortdata på dina egna servrar. Du skapar en order via API:et, omdirigerar kunden till den hostade sidan, och de återvänder till din webbplats efter betalningen.
Hur det fungerar
- Din server skapar en order genom att anropa POST /v1/orders/.
- API:et returnerar en URL som pekar till den hostade betalningssidan.
- Du omdirigerar kunden till betalningssidan.
- Kunden genomför betalningen på Cost+ hostade sida.
- Kunden omdirigeras tillbaka till din
return_url(ellerfailure_urlvid misslyckade betalningar). - Cost+ skickar en webhook-notifiering till din
webhook_urlmed orderstatus.
Den hostade betalningssidan är fullt PCI DSS-kompatibel. Du behöver aldrig hantera råa kortnummer eller känslig betalningsdata på dina servrar.
Skapa en order
Det finns två tillvägagångssätt för att använda HPP:
Metod 1: Visa alla betalningsmetoder (enklast)
Skapa en order utan att ange transactions. Svaret innehåller en order_url — kunden omdirigeras dit och ser alla betalningsmetoder som är aktiverade för ditt 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://pay.costplus.online/43114fde.../select-payment-method/",
"return_url": "https://www.example.com",
"webhook_url": "https://www.example.com/webhook"
}Omdirigera kunden till order_url. På den hostade sidan visas alla aktiverade betalningsmetoder.
Metod 2: Förval av betalningsmetoder
Skapa en order med en transactions-array för att styra vilka betalningsmetoder som visas och i vilken ordning. Varje transaktion inkluderar en payment_method, och svaret returnerar 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://pay.costplus.online/4851e31c.../credit-card/d291f03f.../"
}
]
}Omdirigera kunden till payment_url från transaktionen.
Om du bara anger en enda post i transactions-arrayen tas kunden direkt till den betalningsmetoden utan att se en valskärm. flags-arrayen innehåller "is-test" vid användning av en sandbox API-nyckel.
Förfrågningsfält
| Fält | Obligatoriskt | Beskrivning |
|---|---|---|
currency | Ja | ISO 4217-valutakod (t.ex. EUR, GBP, SEK) |
amount | Ja | Belopp i ören/cent. Till exempel representeras 12,95 EUR som 1295 |
merchant_order_id | Nej | Ditt eget referens-ID för ordern |
return_url | Nej | URL att omdirigera kunden till efter betalning (standard för alla statusar) |
failure_url | Nej | URL att omdirigera kunden till vid cancelled, expired eller error-status (se Retur-URL:er nedan) |
locale | Nej | Språk för betalningssidan. Stöds: en-GB, de-DE, nl-NL, nl-BE, fr-BE, sv-SE, no-NO, da-DK |
description | Nej | Beskrivning av ordern, visas för kunden |
payment_methods | Nej | Filter to a single payment method (e.g. ["credit-card"]). Omit to show all enabled methods. For multiple specific methods, use the transactions array instead |
webhook_url | Nej | URL för att ta emot statusändringsnotifieringar |
expiration_period | Nej | ISO 8601-duration för orderutgång. Standard är PT30M (30 minuter) |
Fältet amount är alltid i minsta valutaenhet (ören/cent). Att ange 1295 innebär 12,95 i den angivna valutan. Att ange 1295.00 eller 12.95 resulterar i ett fel eller en felaktig debitering.
Flera betalningsmetoder
För att erbjuda flera specifika betalningsmetoder, lägg till flera poster i transactions-arrayen. Ordningen på den hostade sidan matchar arrayns ordning:
"transactions": [
{ "payment_method": "credit-card" },
{ "payment_method": "apple-pay" }
]The payment_methods field on orders accepts at most one value. To offer multiple specific methods, always use the transactions array. If you need a reusable link with multiple payment methods, consider Payment Links instead, which support a true payment_methods array.
Retur-URL:er
Efter betalning omdirigeras kunden baserat på orderstatus och vilka URL:er du angett:
-
När både
return_urlochfailure_urlär satta:cancelled,expiredellererror→ kunden omdirigeras tillfailure_url- Alla andra statusar → kunden omdirigeras till
return_url
-
När bara
return_urlär satt:- Alla statusar → kunden omdirigeras till
return_url
- Alla statusar → kunden omdirigeras till
Använd failure_url för att visa en sida för nytt försök eller support vid misslyckade betalningar, medan return_url visar en orderbekräftelse. Om du bara behöver en destination räcker return_url ensamt.
Avbrytknappens beteende
Den hostade betalningssidan inkluderar en avbrytknapp. När kunden klickar på den omdirigeras de till failure_url (om angiven) eller return_url. Orderstatus övergår till cancelled. Verifiera alltid orderstatus via API:et eller webhooks istället för att förlita dig enbart på omdirigeringen.
Relaterade endpoints
- Skapa order — skapa en betalningsorder och ta emot
payment_url - Hämta order — kontrollera orderstatus efter betalning