Zum Hauptinhalt springen
Version: Next

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.