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

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.2vagy újabb - Node.js
22 - PostgreSQL hozzáférés a Medusa
DATABASE_URLvá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és | Medusa Provider Id | Cost+ azonosító |
|---|---|---|
| Credit / Debit Card | pp_costplus-credit-card_costplus | credit-card |
| Apple Pay | pp_costplus-apple-pay_costplus | apple-pay |
| Google Pay | pp_costplus-google-pay_costplus | google-pay |
| Vipps MobilePay | pp_costplus-vipps-mobilepay_costplus | vipps-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-medusaTelepí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.
5→PT5M, 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 CardCost+ Apple PayCost+ Google PayCost+ 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-secretHa 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.