Medusa

So bindest du zahls.ch als Payment Provider in Medusa v2 ein – mit dem offiziellen npm-Plugin @zahls/medusa-plugin.

Allgemein

Medusa ist ein Open-Source-Commerce-Framework für Headless-Shops. Mit dem zahls.ch-Plugin akzeptierst du TWINT, Kredit- und Debitkarten, PostFinance und weitere Methoden über den gehosteten Checkout.

Funktionen

  • ✅ Gehosteter Checkout (Redirect zur zahls.ch-Zahlungsseite)
  • ✅ Captures für autorisierte / reservierte Transaktionen
  • ✅ Rückerstattungen über zahls.ch-Transaktionen
  • ✅ Webhooks für asynchrone Statusupdates
  • ✅ Optionale HMAC-Signaturprüfung
  • ✅ Keine Rohkartendaten im Medusa-Backend

Kompatibilität

  • Medusa v2.18.x
  • zahls.ch Gateway API

Setup

1. Plugin installieren

npm install @zahls/medusa-plugin

2. Zahlungsarten in zahls.ch aktivieren

  1. Navigiere im Dashboard zu Zahlungsanbieter.
  2. Aktiviere Payrexx Pay und/oder Payrexx Pay Plus sowie die gewünschten Zahlungsarten.
  3. Wir empfehlen mindestens TWINT, Mastercard, Visa, Apple Pay, Google Pay und PostFinance.

Details: Aktivierung der Bezahldienste.

3. API-Schlüssel erstellen

  1. Navigiere im Dashboard zu API und Integrationen.
  2. Klicke auf API-Schlüssel hinzufügen.
  3. Vergib einen Namen (z. B. «Medusa») und klicke auf Hinzufügen.
  4. Kopiere den API-Schlüssel — du brauchst ihn im nächsten Schritt.

Weitere Informationen: API und Integrationen.

4. Medusa konfigurieren

Registriere das Plugin und den Payment Provider in medusa-config.ts:

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

export default defineConfig({
  plugins: [
    {
      resolve: "@zahls/medusa-plugin",
      options: {},
    },
  ],
  modules: [
    {
      resolve: "@medusajs/medusa/payment",
      options: {
        providers: [
          {
            resolve: "@zahls/medusa-plugin/providers/zahls",
            id: "zahls",
            options: {
              apiKey: process.env.ZAHLS_API_KEY,
              instance: process.env.ZAHLS_INSTANCE,
              webhookSecret: process.env.ZAHLS_WEBHOOK_SECRET,
              successRedirectUrl: process.env.ZAHLS_SUCCESS_URL,
              failedRedirectUrl: process.env.ZAHLS_FAILED_URL,
              cancelRedirectUrl: process.env.ZAHLS_CANCEL_URL,
            },
          },
        ],
      },
    },
  ],
})

Setze die Umgebungsvariablen in deinem Medusa-Backend:

VariablePflichtBeschreibung
ZAHLS_API_KEYJaInstanz-API-Schlüssel aus API & Integrationen
ZAHLS_INSTANCEJaInstanzname (beispiel für beispiel.zahls.ch)
ZAHLS_WEBHOOK_SECRETNeinGeheimnis für die HMAC-Prüfung
ZAHLS_SUCCESS_URLNeinRedirect nach erfolgreicher Zahlung
ZAHLS_FAILED_URLNeinRedirect nach fehlgeschlagener Zahlung
ZAHLS_CANCEL_URLNeinRedirect nach Abbruch

5. Provider in der Region aktivieren

Nach dem Start der Anwendung aktivierst du zahls.ch unter Medusa Admin → Settings → Regions für die gewünschte Region. Die Provider-ID lautet typischerweise pp_zahls_zahls.

6. Testzahlung

  1. Lege eine Testbestellung im Storefront an.
  2. Wähle zahls.ch als Zahlungsmethode — die Kundschaft wird zum gehosteten Checkout weitergeleitet.
  3. Prüfe Status und Transaktion im zahls.ch-Dashboard.

Webhooks

Medusa nutzt die eingebaute Payment-Webhook-Route für asynchrone Statusupdates. Optional prüft das Plugin die HMAC-Signatur, wenn webhookSecret gesetzt ist.

Mehr dazu: Webhooks.

Marketing- und Kombinationsseiten

Verwandte Themen