Documentatie/API-referentie

API REFERENCE

Asynchrone meldingen

Gedurende de volledige levenscyclus van een order stuurt YabandPay bij elke statuswijziging een asynchrone melding naar notify_url. Het ontvangende eindpunt moet HTTPS gebruiken. Meldingen bevatten een handtekening en betaalparameters (in JSON-indeling).

Tip

  1. De meldings-URL is de opgegeven notify_url. Nadat de betaling is voltooid, stuurt YabandPay de relevante betaal- en gebruikersgegevens naar deze URL. De externe acquirer moet de melding ontvangen en de handtekening controleren voordat verdere acties worden uitgevoerd.
  1. Als de externe acquirer tijdens de uitwisseling van servermeldingen een niet-geslaagde reactie retourneert of de aanvraag een time-out krijgt, beschouwt YabandPay de melding als mislukt. YabandPay probeert meldingen periodiek opnieuw te verzenden volgens de herhaalstrategie om de kans op bezorging te vergroten, maar garandeert niet dat een melding uiteindelijk wordt bezorgd.
  1. Omdat servermeldingen opnieuw kunnen worden verzonden, kan dezelfde melding meerdere keren bij het partnersysteem aankomen. Het partnersysteem moet dubbele meldingen correct afhandelen. We raden aan bij het verwerken eerst de status van de bijbehorende bedrijfsgegevens te controleren om te bepalen of de melding al is verwerkt. Verwerk de melding alleen als dat nog niet is gebeurd; retourneer anders direct een succesreactie. Gebruik vóór het controleren en verwerken van de bedrijfsgegevens datavergrendelingen voor gelijktijdigheidsbeheer om inconsistenties door gelijktijdige herintreding van functies te voorkomen.
  1. YabandPay verstuurt asynchrone meldingen vanaf de volgende IP-adressen. We raden aan deze toe te voegen aan de allowlist van uw firewall. 8.211.41.31 8.211.10.244 8.211.8.123

1. Asynchrone betalingsmeldingen

ParameterTypeBeschrijving
signStringSignature
typeStringpayment
userStringUID of e-mailadres van het kassieraccount
amountStringOpgegeven betaalbedrag
tip_amountStringFooi inbegrepen in het totaalbedrag
trade_idStringYabandPay-transactienummer
currencyStringOpgegeven betaalvaluta
settlement_amountStringBedrag in de afwikkelingsvaluta
settlement_currencyStringAfwikkelingsvaluta
exchange_rateStringBetaalbedrag/afwikkelingsbedrag
amount_cnyStringBetaalbedrag in CNY
settlement_rateStringWisselkoers voor afwikkeling in CNY
order_idStringOrdernummer van de merchant
transaction_idStringOrdernummer dat door de betaalmethode is geretourneerd, bijvoorbeeld het transactienummer van WeChat Pay of Alipay+. In de meeste gevallen is dit gelijk aan acquirer_id.
acquirer_idStringAcquirer Reference Number (ARN)
descriptionStringOrderomschrijving
createDateStringAanmaaktijd van de order
stateStringBetaalstatus: Processing, Paid, Cancelled, Expired, Verify, Authorized, Declined, Failed
demoStringDoor de klant gedefinieerd veld
out_trade_noStringIntern ordernummer in het transactiesysteem
sub_pay_methodStringBetaalmethode: WeChat Pay, Alipay+ enz. (zie de beschrijvingen van betaalmethoden)
pay_methodStringBetaaltype: offline, online
paid_timeStringBetalingstijd
yb_transaction_idStringUnieke YabandPay-transactie-ID
3ds_statusString3DS-status
3ds_trxidStringUnieke 3DS-ID
3ds_versionString3DS-versie
3DS-antwoordsstatussen:
ParameterTypeBeschrijving
AStringPoging tot verificatie verwerkt; de gebruiker is niet geauthenticeerd/geverifieerd, maar er is bewijs van een verificatiepoging.
CStringUitdaging vereist; aanvullende authenticatie is nodig.
DStringUitdaging vereist; gescheiden authenticatie is bevestigd.
IStringAlleen informatief; de voorkeur van de merchant voor een uitdaging is bevestigd.
NStringNiet geauthenticeerd/account niet geverifieerd; transactie geweigerd.
RStringAuthenticatie/accountverificatie afgewezen; de uitgever weigert authenticatie/verificatie en verzoekt geen autorisatiepoging te doen.
UStringAuthenticatie/accountverificatie kon niet worden uitgevoerd door een technisch of ander probleem.
YStringAuthenticatie/accountverificatie geslaagd.
Voorbeeld van een asynchrone melding:
{
	"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 terugbetalingsmeldingen

ParameterTypeBeschrijving
signStringSignature
typeStringrefund
userStringUID of e-mailadres van het kassieraccount
pay_methodStringonline of offline voor de oorspronkelijke betaalorder
sub_pay_methodStringBetaalmethode van de oorspronkelijke betaalorder: WeChat Pay, Alipay+ enz. (zie de beschrijvingen van betaalmethoden)
refund_idStringTerugbetalingsnummer
m_refund_idStringDoor de merchant gedefinieerd terugbetalingsordernummer dat bij het starten van de terugbetaling is opgegeven
transaction_idStringTransactienummer
acquirer_idStringTransactienummer van de afwikkelingsinstelling
refund_amountStringOpgegeven terugbetalingsbedrag
refund_currencyStringTerugbetalingsvaluta
order_idStringOrdernummer van de merchant
refund_descriptionStringOrderomschrijving
refund_timeStringTijdstip van terugbetaling
stateStringTerugbetalingsstatus: wacht op goedkeuring, terugbetaling in behandeling, terugbetaling wordt verwerkt, terugbetaald, fout bij terugbetaling, terugbetaling mislukt, terugbetaling geannuleerd
Meldingsinformatie:
{
	"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"}
}   

Tip

  1. Nadat een terugbetaling is ingediend, retourneren we de status refund processing.
  1. Zodra de terugbetaling is voltooid, sturen we een melding met de status refunded.

3. Frequentie van asynchrone meldingen

Let op: de reactie op een melding moet statuscode 200 retourneren en “ok” in de hoofdtekst bevatten. Als “ok” ontbreekt, verzenden we de melding opnieuw.

De meldingsfrequentie is als volgt:

Poging tot meldingInterval
110s
230s
360s
4300s
53600s
...3600s
153600s

Als we geen correcte ok-reactie ontvangen, stoppen we na 15 pogingen met het verzenden van meldingen.

4. Beschrijvingen van betaalstatussen in asynchrone meldingen

1. Betaalstatussen:
CodeVeldBeschrijving
00paidBetaling geslaagd
01authorizedAutorisatie geslaagd
02pendingBetaling aangemaakt
03processingWacht op betaling
04verifyDe klant heeft betaald; de betaling wordt om redenen van risicobeheersing gecontroleerd.
05declinedBetaling geweigerd
06failedBetaling mislukt
07expiredBetaling verlopen
08cancelledBetaling geannuleerd
2. Terugbetalingsstatussen:
CodeVeldBeschrijving
20to-be-approvalWacht op goedkeuring door de beheerder.
21refund pendingHet huidige saldo is onvoldoende. De terugbetaling wordt automatisch ingediend zodra er voldoende saldo beschikbaar is.
22refund processingHet terugbetalingsverzoek is ingediend en wordt door het systeem verwerkt.
23refundedDe terugbetaling is geslaagd.
24refund failedDe terugbetaling is mislukt. Probeer het opnieuw.
25refund errorDe terugbetaling is mislukt. Neem contact op met onze online klantenservice.
26refund cancelledDe terugbetalingsorder is geannuleerd.