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://pay.costplus.online/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://pay.costplus.online/4851e31c.../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 øre/cent. For eksempel repræsenteres 12,95 EUR 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 | 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 til at modtage statusændringsnotifikationer |
expiration_period | Nej | ISO 8601-varighed for ordreudløb. Standard er PT30M (30 minutter) |
Feltet amount er altid i den mindste valutaenhed (øre/cent). At angive 1295 betyder 12,95 i den givne valuta. At angive 1295.00 eller 12.95 vil resultere i en fejl eller en forkert opkrævning.
Flere betalingsmetoder
For at tilbyde flere specifikke betalingsmetoder skal du tilføje flere poster i transactions-arrayet. Rækkefølgen på den hostede side svarer til array-rækkefølgen:
"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 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