Dokumentation/API-Referenz

API REFERENCE

Asynchrone Benachrichtigungen

Während des gesamten Lebenszyklus einer Bestellung senden wir bei jeder Statusänderung eine asynchrone Benachrichtigung an notify_url. Der Empfangs-Endpunkt muss HTTPS verwenden. Die Benachrichtigungen enthalten eine Signatur und Zahlungsparameter (im JSON-Format).

Tipp

  1. Die Benachrichtigungs-URL ist die übermittelte notify_url. Nach Abschluss der Zahlung sendet YabandPay die zugehörigen Zahlungs- und Nutzerinformationen an diese URL. Das Drittanbieter-Acquiring-Institut muss die Benachrichtigung empfangen und die Signatur überprüfen, bevor es weitere Schritte ausführt.
  1. Gibt das Drittanbieter-Acquiring-Institut beim Austausch von Serverbenachrichtigungen keine erfolgreiche Antwort zurück oder läuft die Anfrage ab, gilt die Benachrichtigung für YabandPay als fehlgeschlagen. YabandPay wiederholt Benachrichtigungen regelmäßig gemäß seiner Wiederholungsstrategie, um die Zustellung möglichst sicherzustellen; eine endgültige Zustellung wird jedoch nicht garantiert.
  1. Da Serverbenachrichtigungen erneut gesendet werden können, kann dieselbe Benachrichtigung mehrfach beim Partnersystem eingehen. Das Partnersystem muss Duplikate korrekt verarbeiten. Prüfen Sie bei der Verarbeitung zuerst den Status der zugehörigen Geschäftsdaten, um festzustellen, ob die Benachrichtigung bereits bearbeitet wurde. Bearbeiten Sie sie nur, wenn dies noch nicht geschehen ist; andernfalls geben Sie sofort eine erfolgreiche Antwort zurück. Verwenden Sie vor der Prüfung und Verarbeitung der Geschäftsdaten Datensperren zur Nebenläufigkeitskontrolle, damit Wiedereintritte keine Inkonsistenzen verursachen.
  1. YabandPay sendet asynchrone Benachrichtigungen von den folgenden IP-Adressen. Wir empfehlen, diese in die Firewall-Zulassungsliste aufzunehmen. 8.211.41.31 8.211.10.244 8.211.8.123

1. Asynchrone Zahlungsbenachrichtigungen

ParameterTypBeschreibung
signStringSignature
typeStringpayment
userStringUID oder E-Mail-Adresse des Kassiererkontos
amountStringÜbermittelter Zahlungsbetrag
tip_amountStringIm Gesamtbetrag enthaltener Trinkgeldbetrag
trade_idStringYabandPay-Transaktionsnummer
currencyStringÜbermittelte Zahlungswährung
settlement_amountStringBetrag in der Abrechnungswährung
settlement_currencyStringAbrechnungswährung
exchange_rateStringZahlungsbetrag/Abrechnungsbetrag
amount_cnyStringZahlungsbetrag in CNY
settlement_rateStringCNY-Abrechnungswechselkurs
order_idStringBestellnummer des Händlers
transaction_idStringVon der Zahlungsmethode zurückgegebene Bestellnummer, z. B. die WeChat-Pay- oder Alipay+-Transaktionsnummer. In den meisten Fällen entspricht sie acquirer_id.
acquirer_idStringAcquirer Reference Number (ARN)
descriptionStringBestellbeschreibung
createDateStringErstellungszeit der Bestellung
stateStringZahlungsstatus: Processing, Paid, Cancelled, Expired, Verify, Authorized, Declined, Failed
demoStringVom Kunden definierter Wert
out_trade_noStringInterne Bestellnummer im Transaktionssystem
sub_pay_methodStringZahlungsmethode: WeChat Pay, Alipay+ usw. (siehe Beschreibungen der Zahlungsmethoden)
pay_methodStringZahlungstyp: offline, online
paid_timeStringZahlungszeitpunkt
yb_transaction_idStringEindeutige YabandPay-Transaktions-ID
3ds_statusString3DS-Status
3ds_trxidStringEindeutige 3DS-ID
3ds_versionString3DS-Version
3DS-Antwortstatus:
ParameterTypBeschreibung
AStringVerarbeitung eines Authentifizierungsversuchs; nicht authentifiziert/verifiziert, aber ein Nachweis über den durchgeführten Versuch liegt vor.
CStringChallenge erforderlich; eine zusätzliche Authentifizierung ist nötig.
DStringChallenge erforderlich; entkoppelte Authentifizierung bestätigt.
IStringNur zur Information; die Challenge-Präferenz des Händlers wurde bestätigt.
NStringNicht authentifiziert/Konto nicht verifiziert; Transaktion abgelehnt.
RStringAuthentifizierung/Kontoverifizierung abgelehnt; der Aussteller lehnt die Authentifizierung/Verifizierung ab und fordert dazu auf, keine Autorisierung zu versuchen.
UStringAuthentifizierung/Kontoverifizierung konnte aufgrund eines technischen oder sonstigen Problems nicht durchgeführt werden.
YStringAuthentifizierung/Kontoverifizierung erfolgreich.
Beispiel für eine asynchrone Benachrichtigung:
{
	"sign": "YOUR_SIGNATURE",
	"data": {
		"type": "payment",
		"user": "YOUR_CASHIER_UID",
		"order_id": "YOUR_ORDER_ID",
		"trade_id": "8a8aa7c7-66d7-e2cc-e2a6-fff7c77aaefd",
		"transaction_id": "4200000298201905227377147799",
		"acquirer_id": "4200000298201905227377147799",
		"yb_transaction_id": "c8823612-383f-35fc-f28d-c0eae039e870",
		"amount": "1.00",
		"tip_amount": "0.10",
		"currency": "EUR",
		"settlement_amount": "1.00",
		"settlement_currency": "EUR",
		"exchange_rate": "1",
		"amount_cny": "0.77",
		"settlement_rate": "7.779779",
		"description": "yaband test",
		"createDate": "1558510731",
		"pay_method": "online",
		"state": "paid",
		"demo": "test",
		"out_trade_no": "a4d7684a-e326-44c1-bea5-0601f7a9b191",
		"sub_pay_method": "WeChat Pay",
		"paid_time": "1603355159",
		"3ds_status": "Y",
		"3ds_trxid": "1d0c6eb3-6282-4cf9-9549-884410918d2d",
		"3ds_version": "2.2.0"
	}

}

2. Asynchrone Rückerstattungsbenachrichtigungen

ParameterTypBeschreibung
signStringSignature
typeStringrefund
userStringUID oder E-Mail-Adresse des Kassiererkontos
pay_methodStringonline oder offline für die ursprüngliche Zahlungsbestellung
sub_pay_methodStringZahlungsmethode der ursprünglichen Zahlungsbestellung: WeChat Pay, Alipay+ usw. (siehe Beschreibungen der Zahlungsmethoden)
refund_idStringRückerstattungsnummer
m_refund_idStringVom Händler festgelegte Rückerstattungsauftragsnummer, die beim Einleiten der Rückerstattung angegeben wurde
transaction_idStringTransaktionsnummer
acquirer_idStringTransaktionsnummer des Abrechnungsinstituts
refund_amountStringÜbermittelter Rückerstattungsbetrag
refund_currencyStringRückerstattungswährung
order_idStringBestellnummer des Händlers
refund_descriptionStringBestellbeschreibung
refund_timeStringZeitpunkt der Rückerstattung
stateStringRückerstattungsstatus: to-be-approval, refund pending, refund processing, refunded, refund error, refund failed, refund cancelled
Informationen zu Benachrichtigungen:
{
	"sign": "YOUR_SIGNATURE",
	"data":  {
		"type": "refund",
		"user": "YOUR_CASHIER_UID",
		"refund_id": "b20d3668-d71f-432f-8809-f84f0d9139d4",
		"m_refund_id":"20240301143029616187",
        "transaction_id":"cf483d9e-637c-a92d-0716-5b8199d10f8c",
		"refund_amount": "1.00",
		"refund_currency": "EUR",
		"order_id": "YOUR_ORDER_ID",
		"refund_description": "test",
		"refund_time": "0",
		"state": "refunded",
		"pay_method": "online",
		"sub_pay_method": "WeChat Pay"}
}   

Tipp

  1. Nach Übermittlung einer Rückerstattung geben wir den Status refund processing zurück.
  1. Sobald die Rückerstattung abgeschlossen ist, senden wir eine Benachrichtigung mit dem Status refunded.

3. Häufigkeit asynchroner Benachrichtigungen

Bitte beachten Sie: Die Antwort auf eine Benachrichtigung muss den Statuscode 200 und „ok“ im Antworttext zurückgeben. Wird „ok“ nicht zurückgegeben, senden wir die Benachrichtigung erneut.

Die Benachrichtigungen werden wie folgt gesendet:

ZustellversuchIntervall
110s
230s
360s
4300s
53600s
...3600s
153600s

Wenn wir keine korrekte „ok“-Antwort erhalten, beenden wir das Senden nach 15 Versuchen.

4. Beschreibungen der Zahlungsstatus in asynchronen Benachrichtigungen

1. Zahlungsstatus:
CodeFeldBeschreibung
00paidZahlung erfolgreich
01authorizedAutorisierung erfolgreich
02pendingZahlung erstellt
03processingWartet auf Zahlung
04verifyDer Kunde hat bezahlt; die Zahlung wird aus Gründen der Risikokontrolle überprüft.
05declinedZahlung abgelehnt
06failedZahlung fehlgeschlagen
07expiredZeitüberschreitung bei der Zahlung
08cancelledZahlung storniert
2. Rückerstattungsstatus:
CodeFeldBeschreibung
20to-be-approvalWartet auf Genehmigung durch den Administrator.
21refund pendingDas aktuelle Guthaben reicht nicht aus. Die Rückerstattung wird automatisch eingereicht, sobald genügend Guthaben verfügbar ist.
22refund processingDer Rückerstattungsantrag wurde übermittelt und wird vom System bearbeitet.
23refundedDie Rückerstattung wurde erfolgreich abgeschlossen.
24refund failedDie Rückerstattung ist fehlgeschlagen. Bitte versuchen Sie es erneut.
25refund errorDie Rückerstattung ist fehlgeschlagen. Bitte wenden Sie sich an unseren Online-Kundendienst.
26refund cancelledDer Rückerstattungsauftrag wurde storniert.