Zum Hauptinhalt springen
Version: 2.0.0

Erste Schritte

Voraussetzungen

Ein Northwind-Cloud-Konto mit aktiviertem Ion und Ihr Test-Secret-Key (sk_test_...) aus Einstellungen → API-Schlüssel. Verwenden Sie für diese Anleitung durchgehend den Testmodus.

Eine Charge erstellen

cURL

curl https://api.northwind.cloud/v1/ion/charges \
-H "Authorization: Bearer $ION_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{
"amount": 4200,
"currency": "usd",
"payment_method": "pm_card_test_visa",
"idempotency_key": "order_9f3e-attempt-1"
}'

Node.js

import { Ion } from "@northwind/ion";

const ion = new Ion({ apiKey: process.env.ION_SECRET_KEY });

const charge = await ion.charges.create({
amount: 4200,
currency: "usd",
paymentMethod: "pm_card_test_visa",
idempotencyKey: "order_9f3e-attempt-1",
});

Python

from northwind_ion import Ion

ion = Ion(api_key=os.environ["ION_SECRET_KEY"])

charge = ion.charges.create(
amount=4200,
currency="usd",
payment_method="pm_card_test_visa",
idempotency_key="order_9f3e-attempt-1",
)

amount: 4200 bei currency: "usd" entspricht 42,00 $ — siehe Konzepte dazu, warum Beträge immer Ganzzahlen sind. pm_card_test_visa ist eine eingebaute Testzahlungsmethode, die immer erfolgreich ist; Ion bietet außerdem pm_card_test_decline zum Testen von Fehlerfällen, was Sie vor dem Livegang tun sollten — siehe Fehler.

Immer einen Idempotenzschlüssel setzen

Der idempotency_key oben ist wichtiger, als er aussieht: Wenn Ihr Netzwerkaufruf timeoutet, nachdem Ion ihn erhalten hat, aber bevor Sie die Antwort bekommen haben, liefert eine Wiederholung mit demselben Schlüssel das ursprüngliche Ergebnis zurück, statt eine zweite Charge zu erzeugen. Binden Sie ihn an etwas Stabiles in Ihrem eigenen System (eine Bestellnummer), nicht an einen zufälligen, pro HTTP-Versuch generierten Wert — ein zufälliger Schlüssel würde den ganzen Sinn zunichtemachen.

Überprüfen, ob es funktioniert hat

curl https://api.northwind.cloud/v1/ion/charges/ch_3P8kq2Aa \
-H "Authorization: Bearer $ION_SECRET_KEY"

Eine Antwort mit status: "succeeded" bestätigt, dass die Charge im Testmodus erfolgreich war. Die vollständige Feldreferenz finden Sie in der API-Referenz.