Zum Inhalt

So integrieren Sie die 4Geeks Payments API in eine Node.js-Anwendung

🤖 Erklären mit KI

Dieser Leitfaden beschreibt die Schritte zur Integration der 4Geeks Payments API in eine Node.js-Anwendung, basierend auf dem bereitgestellten Blogbeitrag.

Voraussetzungen

  • Node.js: Version 14 oder höher.
  • 4Geeks Payments-Konto: Sie benötigen Ihren Public Key und Secret Key aus dem Entwickler-Dashboard.
  • Grundkenntnisse: REST-APIs und asynchrones JavaScript (async/await).

Schritt 1: Richten Sie Ihr Projekt ein

Initialisieren Sie ein neues Node.js-Projekt und installieren Sie die erforderlichen Abhängigkeiten (axios, dotenv, express, body-parser).

  1. Projekt initialisieren:
mkdir 4geeks-payments-integration
cd 4geeks-payments-integration
npm init -y
npm install axios dotenv express body-parser
  1. Umgebungsvariablen konfigurieren: Erstellen Sie eine .env-Datei, um Ihre API-Anmeldeinformationen sicher zu speichern.
# .env file
FOURGEEKS_SECRET_KEY=ihr_secret_key_hier
PORT=3000

Schritt 2: Authentifizierung bei der API

Erstellen Sie eine Servicedatei (z. B. paymentService.js), um API-Anfragen zu bearbeiten. Sie verwenden axios, um Ihren Secret Key im Authorization-Header zu senden.

// paymentService.js
require('dotenv').config();
const axios = require('axios');

const API_URL = 'https://api.4geeks.io/v1'; // Basis-API-Endpunkt

const client = axios.create({
  baseURL: API_URL,
  headers: {
    'Authorization': `Bearer ${process.env.FOURGEEKS_SECRET_KEY}`,
    'Content-Type': 'application/json'
  }
});

module.exports = client;

Schritt 3: Erstellen eines Payment Intent

Fügen Sie paymentService.js eine Funktion hinzu, um einen „Payment Intent“ (oder eine Belastung) zu erstellen. Dies leitet die Transaktion ein.

const createPaymentIntent = async (amount, currency = 'USD', customerId) => {
  try {
    const response = await client.post('/charges', {
      amount: amount, // Betrag in Cent (z. B. 1000 = 10,00 $)
      currency: currency,
      customer: customerId,
      description: 'SaaS-Abonnementgebühr'
    });

    return response.data;
  } catch (error) {
    console.error('Zahlungsfehler:', error.response ? error.response.data : error.message);
    throw new Error('Erstellung des Payment Intent fehlgeschlagen');
  }
};

module.exports = { createPaymentIntent };

Schritt 4: Webhooks verarbeiten

Richten Sie einen Express-Server (z. B. in server.js) ein, um auf Webhook-Ereignisse zu warten. Dies ist entscheidend, um Zahlungen asynchron zu bestätigen (z. B. charge.succeeded).

// server.js
const express = require('express');
const bodyParser = require('body-parser');
const app = express();

// Webhook-Endpunkt zum Abhören von Zahlungsereignissen
app.post('/webhook', bodyParser.raw({type: 'application/json'}), (req, res) => {
  const event = req.body;

  // In der Produktion hier die Signatur überprüfen, um sicherzustellen, dass die Anfrage echt ist.

  switch (event.type) {
    case 'charge.succeeded':
      const charge = event.data.object;
      console.log('Zahlung erfolgreich:', charge.id);
      // Logik zur Aktualisierung des Benutzerabonnements oder zur Erfüllung der Bestellung
      break;
    case 'charge.failed':
      console.log('Zahlung fehlgeschlagen:', event.data.object.id);
      // Logik zur Benachrichtigung des Benutzers
      break;
    default:
      console.log('Unbehandelter Ereignistyp:', event.type);
  }

  res.json({received: true});
});

app.listen(process.env.PORT || 3000, () => console.log('Server läuft...'));

Schritt 5: Testen & Bereitstellen

  • Sandbox-Modus: Verwenden Sie die 4Geeks Payments Sandbox-Umgebung, um Belastungen, abgelehnte Karten und Fehler zu testen, ohne echtes Geld zu verwenden.
  • Go Live: Sobald verifiziert, wechseln Sie Ihre Anmeldeinformationen zu den Live-Schlüsseln.

Tipp: Für einfache Anwendungsfälle erwähnt der Artikel, dass 4Geeks auch No-Code-Checkout-Links anbietet, wenn Sie keine vollständige benutzerdefinierte API-Integration benötigen.