Integration
Formular Zahlung abschicken
Starten Sie den gehosteten MakePay-Checkout über ein einfaches HTML-Formular, ohne einen Server-API-Client zu schreiben.
Überblick
Die Zahlung über das Formular „Senden“ ist die MakePay-Integration mit der geringsten Reibung. Ein normales HTML Formular sendet Bestellfelder an MakePay, MakePay erstellt eine gehostete Checkout-Zahlung Link, und der Käufer wird zur Zahlungsseite weitergeleitet.
Verwenden Sie dies, wenn Ihre Website ein HTML-Formular rendern kann, Sie aber kein Formular schreiben möchten serverseitiger API-Client noch nicht verfügbar. Für erweiterte E-Commerce-Plattformen, Plugins, SDKs oder Server-Bestellsysteme bevorzugen die Payment Links API, OAuth-Apps oder die offizielle Store-Module.
Sicherheitsmodell
Die Formularaktion verwendet die API-Schlüssel-ID MakePay als öffentlichen Formularschlüssel:
https://makepay.io/gateway/pay/{makepayKeyId}
Das API-Geheimnis wird niemals im Browser verwendet. Bevor Sie ein Formular aktivieren, öffnen Sie das MakeCrypto-Dashboard, erstellen oder wählen Sie einen MakePay-Integrationsschlüssel aus und fügen Sie den hinzu Genauer Website-Ursprung zu Erlaubte Ursprünge, zum Beispiel:
https://merchant.example
MakePay akzeptiert nur Browser-Einreichungen, deren Origin oder Referer mit einem übereinstimmt
dieser erlaubten Ursprünge. Schlüssel ohne erlaubte Herkunft werden vom Formular abgelehnt
Tor.
Grundform
<form
method="post"
action="https://makepay.io/gateway/pay/mk_makepay_YOUR_KEY_ID"
>
<input type="hidden" name="title" value="Order #1042" />
<input type="hidden" name="description" value="Checkout for order #1042" />
<input type="hidden" name="amount" value="129.99" />
<input type="hidden" name="fiat_currency" value="USD" />
<input type="hidden" name="currency" value="USDT" />
<input type="hidden" name="order_id" value="order_1042" />
<input type="hidden" name="customer_email" value="buyer@example.com" />
<input
type="hidden"
name="success_url"
value="https://merchant.example/orders/1042/success"
/>
<input
type="hidden"
name="failure_url"
value="https://merchant.example/orders/1042/failed"
/>
<input
type="hidden"
name="return_url"
value="https://merchant.example/orders/1042"
/>
<input type="hidden" name="metadata[cart_id]" value="cart_7M2V" />
<button type="submit">Pay with crypto</button>
</form>
Wenn der Käufer das Formular absendet, erstellt MakePay einen einmaligen Zahlungslink und
antwortet mit 303 See Other auf die gehostete Checkout-URL.
Felder
| Feld | Erforderlich | Notizen |
|---|---|---|
amount | Ja | Positiver Dezimalbetrag. Bis zu 8 Dezimalstellen. |
currency | NEIN | Bevorzugtes Krypto-Abrechnungssymbol, zum Beispiel USDT, USDC, BTC, ETH, LTC oder DOGE. |
asset | NEIN | Genaue Ziel-Asset-ID, wenn ein Symbol in mehreren Ketten vorhanden ist. |
fiat_currency | NEIN | Anzeigewährung wie USD oder EUR. Akzeptiert auch fiatCurrency, display_currency und displayCurrency. |
title | NEIN | Titel zur Kasse. Akzeptiert auch name und label. |
description | NEIN | Beschreibung der Kasse. |
order_id | NEIN | Händlerbestellung oder Rechnungs-ID. Akzeptiert auch orderId, invoice_id und invoiceId. |
client_id | NEIN | Händlerkunde/Kunden-ID. Akzeptiert auch clientId. |
customer_email | NEIN | Kunden-E-Mail. Akzeptiert auch customerEmail und email. |
customer_name | NEIN | Kundenname. Akzeptiert auch customerName. |
return_url | NEIN | Absolute http- oder https-URL für ein generisches Rückgabeziel. |
success_url | NEIN | Nach erfolgreicher Zahlung wird die absolute http- oder https-URL verwendet. |
failure_url | NEIN | Absolute http- oder https-URL, die für fehlgeschlagene Zahlungen und Formularvalidierungsfehler verwendet wird. |
expiration_time | NEIN | 15m, 1h, 12h, 24h, 72h oder never. Der Standardwert ist 12h. |
send_payment_request_email | NEIN | Legen Sie true, 1, yes oder on fest, um die Zahlungsanforderung auch per E-Mail zu versenden. Erfordert customer_email. |
metadata[key] | NEIN | Zusätzliche String-Metadaten. Schlüssel können Buchstaben, Zahlen, _, ., : und - enthalten. Bis zu 25 Metadatenfelder. |
Dynamische Formen
Rendern Sie das Formular mit dem tatsächlichen Bestellbetrag und der Bestell-ID auf dem Server. Vertraue nicht Beträge, die von einer vom Kunden bearbeitbaren Seite übermittelt werden, es sei denn, Ihr Server validiert oder baut sie wieder auf.
<form
method="post"
action="https://makepay.io/gateway/pay/mk_makepay_YOUR_KEY_ID"
>
<input type="hidden" name="amount" value="{{ order.total }}" />
<input type="hidden" name="fiat_currency" value="{{ order.currency }}" />
<input type="hidden" name="order_id" value="{{ order.id }}" />
<input type="hidden" name="customer_email" value="{{ customer.email }}" />
<button type="submit">Pay with MakePay</button>
</form>
Verhalten umleiten
Erfolgreiche Formularübermittlungen werden zum gehosteten MakePay-Checkout weitergeleitet. Der
Die Felder success_url, failure_url und return_url werden in der Zahlung gespeichert
Link und wird nach der Bezahlung an der Kasse verwendet.
Wenn die Validierung fehlschlägt und failure_url gültig ist, leitet MakePay zurück mit:
?makepay_status=error&makepay_error=invalid_amount&makepay_error_message=...
Ursprungs-/Authentifizierungsfehler werden stattdessen als MakePay-Fehlerseite angezeigt Weiterleitung zu einer nicht vertrauenswürdigen URL.
Webhooks
Verwenden Sie MakePay-Webhooks für endgültige Bestellaktualisierungen. Die Kundenweiterleitung ist nützlich für die Benutzererfahrung, aber Webhooks sind die zuverlässige Quelle der Wahrheit für Zahlungen Status, Unterzahlung, Überzahlung, Rückerstattungen und Ablauf.
Informationen zur Signaturüberprüfung und zu Ereignisnutzlasten finden Sie im Webhooks-Leitfaden.
Fehlerbehebung
Allowed origin required: Fügen Sie den Ursprung Ihrer Website zum Integrationsschlüssel MakePay hinzu.Origin not allowed: Das Formular wird von einer anderen Domäne gesendet. Schema oder Port als der konfigurierte zulässige Ursprung.invalid_amount:amountfehlt, ist null, negativ oder keine Dezimalzahl.invalid_currency: Verwenden Sie ein Währungssymbol wieUSD,USDToderBTC.invalid_url: Weiterleitungsfelder müssen absolutehttp- oderhttps-URLs sein.onboarding_required: Der Händler hat kein Standard-MakePay konfiguriert Vergleichsvermögen noch nicht vorhanden.