Cost+Docs

Medusa.js

A Cost+ integrálása Medusa.js v2 áruházával a hivatalos costplus-medusa bővítmény segítségével

Medusa.js

Integrálja a Cost+-t fizetési szolgáltatóként Medusa.js v2 áruházába. A hivatalos costplus-medusa bővítmény minden Cost+ fizetési módhoz külön Medusa fizetési szolgáltatót regisztrál, a tárolt fizetési oldal folyamatát használja, és minden állapotváltozást a Cost+ API-n keresztül ellenőriz — teljes PCI DSS megfelelőséggel.

Előfeltételek

  • Aktív Cost+ kereskedői fiók
  • Medusa.js 2.14.2 vagy újabb
  • Node.js 22
  • PostgreSQL hozzáférés a Medusa DATABASE_URL változóján keresztül
  • Nyilvános HTTPS Medusa backend URL (a webhookokhoz szükséges)
  • Egy storefront pénztár, amely a fizetési munkamenet indításakor átadja a cart_id értéket

Támogatott fizetési módok

Pénztári megnevezésMedusa Provider IdCost+ azonosító
Credit / Debit Cardpp_costplus-credit-card_costpluscredit-card
Apple Paypp_costplus-apple-pay_costplusapple-pay
Google Paypp_costplus-google-pay_costplusgoogle-pay
Vipps MobilePaypp_costplus-vipps-mobilepay_costplusvipps-mobilepay

Minden szolgáltató pontosan egy fizetési módhoz hoz létre Cost+ rendelést, így a storefront pénztár opciói összhangban maradnak a Cost+ tárolt fizetési oldal átirányítási folyamatával.

1. A bővítmény telepítése

Telepítse a csomagot a Medusa backend projektjébe:

npm install costplus-medusa

Telepíthető címkézett Git kiadásból is: npm install git+ssh://git@github.com:NoPayn/costplus-medusa.git#vX.Y.Z

2. A bővítmény és szolgáltató regisztrálása

Adja hozzá a bővítményt és a fizetési szolgáltatót a medusa-config.ts fájlhoz:

import { defineConfig } from "@medusajs/framework/utils"

module.exports = defineConfig({
  plugins: [
    {
      resolve: "costplus-medusa",
      options: {},
    },
  ],
  modules: [
    {
      resolve: "@medusajs/medusa/payment",
      options: {
        providers: [
          {
            resolve: "costplus-medusa/providers/costplus",
            id: "costplus",
            options: {},
          },
        ],
      },
    },
  ],
})

Indítsa újra a Medusa backendet, hogy az új bővítmény és szolgáltató betöltődjön.

3. Konfigurálás az adminban

A Medusa Adminban nyissa meg a Cost+ menüpontot (/app/costplus útvonal), és konfigurálja:

  • API Key — a kereskedői API-kulcsa a kereskedői portálról (Websites → az ön weboldala → Integration)
  • Checkout Expiry — időtúllépés percekben (ISO-8601 időtartamként kerül elküldésre a Cost+ felé, pl. 5PT5M, alapértelmezett 5 perc)
  • Manual Capture — opcionális, kártyás fizetések engedélyezése azonnali zárolás nélkül
  • Debug Logging — opcionális, API kérések és válaszok naplózása hibaelhárításhoz

Ugyanazon a Cost+ Admin oldalon engedélyezze a fizetési módokat, amelyeket régiónként meg szeretne jeleníteni:

  • Cost+ Credit / Debit Card
  • Cost+ Apple Pay
  • Cost+ Google Pay
  • Cost+ Vipps MobilePay

Csak azokat a fizetési módokat aktiválja, amelyekre jóváhagyást kapott és megerősítést kapott.

A módszerek ki- vagy bekapcsolása ezen az oldalon frissíti a Medusa régiónkénti fizetésszolgáltató-kapcsolatait a Cost+ szolgáltatókhoz, így a Store API szabványos végpontja /store/payment-providers?region_id=... csak az engedélyezett Cost+ módszereket adja vissza. Ha egy régióhoz minden Cost+ módszer le van tiltva, a Store API egyetlen Cost+ szolgáltatót sem ad vissza arra a régióra.

4. Storefront integráció

Egy Cost+ fizetési munkamenet indításakor adja át a Medusa cart_id értéket a data objektumban:

await sdk.store.payment.initiatePaymentSession(paymentCollection.id, {
  provider_id: "pp_costplus-credit-card_costplus",
  data: {
    cart_id: cart.id,
    return_url: `${origin}/${countryCode}/checkout/costplus/return?cart_id=${cart.id}`,
    failure_url: `${origin}/${countryCode}/checkout?step=payment&costplus_cancelled=1&cart_id=${cart.id}`,
  },
})

A munkamenet létrejötte után irányítsa át a vásárlót a payment_session.data.costplus_payment_url címre.

Az alapértelmezett sikerútvonal /checkout/costplus/return?cart_id={cart_id} — annak az oldalnak meg kell hívnia a Medusa kosárlezáró végpontját, majd meg kell jelenítenie a rendelés visszaigazoló oldalt. A hibaútvonal a vásárlót a fizetési lépéshez kell visszairányítania a kosár lezárása nélkül.

A visszatérés és webhook kezelés mindig ellenőrzi a Cost+ rendelést a GET /orders/{id}/ hívással, mielőtt a fizetési állapotot visszaképezné a Medusába.

Fizetési módok lekérdezése a Store API-ból

A fizetési módokat a Medusa Store API-jából kérje le, ne hardkódolja a Cost+ szolgáltatók azonosítóit a storefrontba. Ha a storefront cache-eli a /store/payment-providers hívást, használjon no-store beállítást, vagy érvénytelenítse a cache-t az Adminban végzett módszerváltások után, hogy a letiltott módszerek azonnal eltűnjenek a pénztárból.

Referenciaimplementációért lásd: examples/nextjs/costplus-return/ a costplus-medusa repóban — egy Next.js DTC starter visszatérési oldal, amely klienskezelőt párosít szerver akcióval, így a kosár befejezése a kép megjelenítésen kívül történik, és megbízhatóan átirányít a /order/{id}/confirmed címre.

5. Webhookok

A bővítmény automatikusan regisztrál egy webhook végpontot a /hooks/payment/{identifier}_costplus útvonalon. A Medusa backend URL-jét nyilvánosan elérhetővé kell tenni HTTPS-en keresztül, hogy a Cost+ aszinkron állapotfrissítéseket küldhessen.

Ha a rendelések sokáig függőben maradnak a konfigurált lejárat után, az inkább webhook kézbesítési vagy visszatérési problémára utal, mint magára a lejárati beállításra.

6. Biztonság és beállítások tárolása

Az API-kulcs titkosítva kerül a Medusa adatbázisba. Éles üzemben állítsa be a COSTPLUS_SETTINGS_SECRET változót:

COSTPLUS_SETTINGS_SECRET=your-strong-secret

Ha a COSTPLUS_SETTINGS_SECRET nincs beállítva, a bővítmény visszaesik a Medusa COOKIE_SECRET vagy JWT_SECRET változójára.

Állítsa be a COSTPLUS_API_KEY környezeti változót az API-kulcs forrásának rögzítéséhez — ha be van állítva, az Admin oldal nem írja felül. Hagyja üresen, ha a kereskedőknek az Adminban kell kezelniük a kulcsot.

7. Tesztelés és indítás

A Cost+ környezetet az API-kulcs határozza meg — egy sandbox weboldal-kulcs teszt módban fut, egy éles weboldal-kulcs élesben (nincs külön sandbox URL). Élesítés előtt végezzen néhány tesztügyletet a sikeres, megszakított és lejárt folyamatok ellenőrzésére.

Támogatás

Segítségre van szüksége? Vegye fel a kapcsolatot ügyfélszolgálatunkkal: support@costplus.io.

On this page