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

FeldErforderlichNotizen
amountJaPositiver Dezimalbetrag. Bis zu 8 Dezimalstellen.
currencyNEINBevorzugtes Krypto-Abrechnungssymbol, zum Beispiel USDT, USDC, BTC, ETH, LTC oder DOGE.
assetNEINGenaue Ziel-Asset-ID, wenn ein Symbol in mehreren Ketten vorhanden ist.
fiat_currencyNEINAnzeigewährung wie USD oder EUR. Akzeptiert auch fiatCurrency, display_currency und displayCurrency.
titleNEINTitel zur Kasse. Akzeptiert auch name und label.
descriptionNEINBeschreibung der Kasse.
order_idNEINHändlerbestellung oder Rechnungs-ID. Akzeptiert auch orderId, invoice_id und invoiceId.
client_idNEINHändlerkunde/Kunden-ID. Akzeptiert auch clientId.
customer_emailNEINKunden-E-Mail. Akzeptiert auch customerEmail und email.
customer_nameNEINKundenname. Akzeptiert auch customerName.
return_urlNEINAbsolute http- oder https-URL für ein generisches Rückgabeziel.
success_urlNEINNach erfolgreicher Zahlung wird die absolute http- oder https-URL verwendet.
failure_urlNEINAbsolute http- oder https-URL, die für fehlgeschlagene Zahlungen und Formularvalidierungsfehler verwendet wird.
expiration_timeNEIN15m, 1h, 12h, 24h, 72h oder never. Der Standardwert ist 12h.
send_payment_request_emailNEINLegen Sie true, 1, yes oder on fest, um die Zahlungsanforderung auch per E-Mail zu versenden. Erfordert customer_email.
metadata[key]NEINZusä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: amount fehlt, ist null, negativ oder keine Dezimalzahl.
  • invalid_currency: Verwenden Sie ein Währungssymbol wie USD, USDT oder BTC.
  • invalid_url: Weiterleitungsfelder müssen absolute http- oder https-URLs sein.
  • onboarding_required: Der Händler hat kein Standard-MakePay konfiguriert Vergleichsvermögen noch nicht vorhanden.

Benötigen Sie Hilfe bei der Partnereinrichtung?

Öffnen Sie die Detailansicht des Zahlungslinks in MakeCrypto, um die generierten Snippets für eine echte Zahlungs-UID zu kopieren, oder kehren Sie zum Portal zurück, um Händlereinstellungen zu verwalten.

Portal öffnen