So integrieren Sie die 4Geeks Payments API in eine Node.js-Anwendung
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).
- Projekt initialisieren:
mkdir 4geeks-payments-integration
cd 4geeks-payments-integration
npm init -y
npm install axios dotenv express body-parser
- Umgebungsvariablen konfigurieren: Erstellen Sie eine
.env-Datei, um Ihre API-Anmeldeinformationen sicher zu speichern.
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.
- Noch Fragen? Get support.
- Check out the changelog.