In diesem Artikel erklären wir Schritt für Schritt, wie Sie mit der PayTR Direkt-API Zahlungen direkt über das Zahlungsformular entgegennehmen können. Wir behandeln die serverseitige Validierung, die Token-Generierung, das korrekte Senden der Formulardaten und die Zahlungsstatus.
Verwandte Anleitungen:
-
PayTR Link API SMS- und E-Mail-Service: Anleitung zum Senden von Zahlungslinks
-
Erstellen eines Zahlungslinks mit der PayTR Link API: Schritt-für-Schritt-Anleitung
-
PayTR Link API Callback Service: Benachrichtigung über Zahlungsergebnisse und Integrationsanleitung
Funktionsweise der Direkt-API-Integration
-
Der Kunde möchte ein Produkt/eine Dienstleistung erwerben.
-
Er gibt seine Daten in das Zahlungsformular ein.
-
Ein Token wird generiert und die Daten werden direkt an PayTR per POST gesendet.
-
PayTR überprüft die Daten und leitet den Kunden auf die Erfolgs-/Fehlerseite weiter.
1) Wie wird ein Token generiert?
Erforderliche Felder:
-
merchant_id
-
user_ip
-
merchant_oid
-
email
-
payment_amount
-
payment_type ('card')
-
installment_count
-
currency (Standardmäßig TL)
-
test_mode
-
non_3d
PHP-Beispiel zur Token-Berechnung:
$hash_str = $merchant_id . $user_ip . $merchant_oid . $email . $payment_amount . $payment_type . $installment_count . $currency . $test_mode . $non_3d;
$paytr_token = base64_encode(hash_hmac('sha256', $hash_str.$merchant_salt, $merchant_key, true));
Hinweis: Die HMAC SHA256-Hash-Verschlüsselung mit Base64 ist obligatorisch.
2) Was muss in der POST-Anfrage gesendet werden?
Feldname | Beschreibung |
---|---|
merchant_id | Händler-ID |
paytr_token | Der von Ihnen generierte Token |
user_ip | IP-Adresse des Kunden |
merchant_oid | Bestellnummer |
E-Mail-Adresse des Kunden | |
payment_type | 'card' |
payment_amount | Zahlungsbetrag |
installment_count | Anzahl der Raten |
cc_owner | Karteninhaber |
card_number | Kartennummer |
expiry_month | Monat |
expiry_year | Jahr |
cvv | CVV |
merchant_ok_url | Erfolgreiche Weiterleitungs-URL |
merchant_fail_url | Fehlerhafte Weiterleitungs-URL |
user_name | Name des Kunden |
user_address | Adresse |
user_phone | Telefonnummer |
user_basket | JSON-Warenkorbdaten |
3) Erstellen eines Zahlungsformulars (PHP-HTML-Beispiel)
<form action="https://www.paytr.com/odeme" method="post">
<input type="text" name="cc_owner" value="TEST KARTI">
<input type="text" name="card_number" value="9792030394440796">
<input type="text" name="expiry_month" value="12">
<input type="text" name="expiry_year" value="99">
<input type="text" name="cvv" value="000">
<!-- Andere obligatorische versteckte Eingabefelder -->
<input type="hidden" name="merchant_id" value="..."><!-- usw. -->
<input type="submit" value="Zahlen">
</form>
4) Sync-Modus (falls verwendet)
-
Wenn sync_mode=1 gesendet wird, wird das Zahlungsergebnis sofort im JSON-Format zurückgegeben.
-
Sie können die Werte "status": "success" oder "failed" oder "wait_callback" erhalten.
-
Bietet eine schnellere Integration und ein modernes Zahlungserlebnis.
Beispiel für eine JSON-Antwort im Sync-Modus:
{
"status": "success",
"msg": "Zahlung erfolgreich",
"utoken": "...", // Wenn die Kartenspeicherung erfolgt ist
"ctoken": "..."
}
5) Benachrichtigungs-URL und Zahlungsergebnisse
-
Auch wenn der Kunde zu merchant_ok_url geht, wird die Bestellung nicht bestätigt!
-
Die eigentliche Validierung erfolgt über die Benachrichtigungs-URL mit serverseitigen POST-Daten.
-
Sie können die Bestellung bestätigen, wenn
status=success
in den per POST gesendeten Werten enthalten ist.
6) Zu beachtende Punkte
-
Karteninformationen dürfen nur an PayTR gesendet werden. Speichern Sie sie auf keinen Fall auf Ihrem eigenen Server.
-
Wenn Sie Probleme haben, die IP-Adresse zu erhalten, überprüfen Sie den Wert "REMOTE_ADDR".
-
Auch in der Testumgebung muss "SSL/TLS" aktiviert sein.
-
Senden Sie
debug_on=1
, um Fehler zu beheben.
Häufige Fehler und Lösungen
Problem | Ursache | Lösung |
---|---|---|
"bad hash"-Fehler | Falsche Hash-Berechnung | Überprüfen Sie die HMAC SHA256- und Base64-Codierung |
Das Zahlungsformular gibt einen Fehler aus | Fehlendes Feld | Stellen Sie sicher, dass Sie alle obligatorischen Felder senden |
Die Bestellung wird nicht bestätigt, wenn der Kunde zu merchant_ok_url geht | Bestätigung über die Benachrichtigungs-URL wird erwartet | Codieren Sie die Benachrichtigungs-URL korrekt |
Fazit: Kontrolle mit der Direkt-API!
Die PayTR Direkt-API-Integration ermöglicht es Ihnen, den Zahlungsprozess vollständig auf Ihrer eigenen Seite zu steuern. Insbesondere mit Ratenzahlungen und Non-3D Secure-Transaktionsoptionen bietet sie ein flexibleres Integrationserlebnis.
Verwandte Artikel:
-
PayTR Link API SMS- und E-Mail-Service: Anleitung zum Senden von Zahlungslinks
-
Erstellen eines Zahlungslinks mit der PayTR Link API: Schritt-für-Schritt-Anleitung
-
PayTR Link API Callback Service: Benachrichtigung über Zahlungsergebnisse und Integrationsanleitung