Cost+Docs

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

  1. Din server opretter en ordre ved at kalde POST /v1/orders/.
  2. API'et returnerer en URL, der peger på den hostede betalingsside.
  3. Du omdirigerer kunden til betalingssiden.
  4. Kunden gennemfører betalingen på Cost+'s hostede side.
  5. Kunden omdirigeres tilbage til din return_url (eller failure_url ved fejlede betalinger).
  6. Cost+ sender en webhook-notifikation til din webhook_url med 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:

Request
{
  "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"
}
Response
{
  "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:

Request
{
  "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" }
  ]
}
Response
{
  "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

FeltPåkrævetBeskrivelse
currencyJaISO 4217-valutakode (f.eks. EUR, GBP, SEK)
amountJaBeløb i øre/cent. For eksempel repræsenteres 12,95 EUR som 1295
merchant_order_idNejDit eget reference-ID for ordren
return_urlNejURL til at omdirigere kunden efter betaling (standard for alle statusser)
failure_urlNejURL til at omdirigere kunden ved cancelled, expired eller error-status (se Retur-URL'er nedenfor)
localeNejSprog for betalingssiden. Understøttet: en-GB, de-DE, nl-NL, nl-BE, fr-BE, sv-SE, no-NO, da-DK
descriptionNejBeskrivelse af ordren, vist til kunden
payment_methodsNejFilter 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_urlNejURL til at modtage statusændringsnotifikationer
expiration_periodNejISO 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_url og failure_url er angivet:

    • cancelled, expired eller error → kunden omdirigeres til failure_url
    • Alle andre statusser → kunden omdirigeres til return_url
  • Når kun return_url er angivet:

    • Alle statusser → kunden omdirigeres til return_url

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

On this page