Documentatie/API-referentie

API REFERENCE

Google Pay ™

POSThttps://mapi.yabandpay.com/Payments
Live API
API PLAYGROUND · Live API

Google Pay ™

POSThttps://mapi.yabandpay.com/Payments
Automatically signed with your credentials

Request parameters14

Required fields first

Google Pay ™

pay_methodRequiredstringdata.pay_methodonline
sub_pay_methodRequiredstringdata.sub_pay_methodGoogle Pay
operationRequiredstringdata.operation1. Sales; 2.Authorisation
amountRequiredstringdata.amount金额数字。例如 € 24.99 应该写成24.99
currencyRequiredstringdata.currency货币代码,ISO 4217,例如EUR,CHF
descriptionRequiredstringdata.description订单描述
payment_token_objectRequiredstringdata.payment_token_object从Google Pay拿到的“token”的字符串base64
cardinfoRequiredstringdata.cardinfo包括持卡人姓名和email
timeoutRequiredstringdata.timeout过期时间单位分钟(0-1440)
notify_urlRequiredstringdata.notify_url支付完成后异步通知地址
request_idRequiredstringdata.request_id请求id需保持唯一,建议24以上位数字+字母
Optional parameters 2
demoOptionalstringdata.demo自定义字段
redirect_urlOptionalstringdata.redirect_url支付完成后跳转地址

请求参数

3ds_initiateRequiredstringdata.3ds_initiate3ds设置。 01. 开启3ds验证;

Credentials stay on this page. Your secret key is never stored or sent to the documentation server.

Voor betaalstromen die Google Pay ondersteunen

Google Pay werkt in webbrowsers en apps op gangbare desktop- en mobiele apparaten. Via Google Pay ondersteunt YabandPay debet- en creditcards van de volgende kaartnetwerken:

  • Visa / VPay
  • Mastercard / Maestro
  • UnionPay

De vereffeningsrekening moet zich in de Europese Economische Ruimte (EER) of het Verenigd Koninkrijk bevinden.

Tip

Alle handelaren die Google Pay gebruiken, moeten aan de volgende voorwaarden voldoen:

  • Beleid voor aanvaardbaar gebruik van Google Pay-API's
  • Servicevoorwaarden voor de Google Pay-API Door Google Pay via de gehoste oplossing van YabandPay te integreren, aanvaarden handelaren deze voorwaarden en stemmen zij ermee in deze na te leven.

1. Credentialtypen en 3DS-vereisten

Google Pay ondersteunt de volgende twee credentialtypen:

  • PAN_ONLY: Retourneert een versleutelde wrapper met het leesbare primaire rekeningnummer (cardInfo.cardDetails) en het kaartnetwerk (cardInfo.cardNetwork), zonder cryptogram.
  • CRYPTOGRAM_3DS: Retourneert tokengebaseerde, versleutelde credentials met een netwerktoken (DPAN) en cryptogram, voor transacties die een hoger beveiligingsniveau vereisen.

3DS-vereisten:

Wanneer u via de Google Pay-API PAN_ONLY-credentials ontvangt, moet u 3D Secure-verificatie uitvoeren (stel 3ds_initiate=01 in). YabandPay weigert transacties zonder 3DS-verificatie.

Volg voor compatibiliteit en beveiliging deze integratieaanbevelingen:

  • Schakel zowel ["CRYPTOGRAM_3DS", "PAN_ONLY"] in de frontendconfiguratie van Google Pay in.
  • Stel altijd 3ds_initiate=01 in wanneer u een betalingsverzoek naar YabandPay verzendt.
  • De backend van YabandPay bepaalt op basis van het credentialtype of 3D Secure moet worden uitgevoerd.

2. Integratie in app of website (zelf gehost)

Handelaren kunnen de Google-API integreren om de betaalstroom op hun eigen website of in hun app te starten. Hieronder staan het proces en de configuratie beschreven:

Betaalstroom:

Google Pay gebruikt credentials voor een aan het apparaat gekoppelde kaart (DPAN, netwerktoken) in plaats van het werkelijke kaartnummer (PAN). De betaalstroom verloopt als volgt:

  1. De klant kiest de Google Pay-knop op de website of in de app van de handelaar.
  2. De klant autoriseert met Face ID, Touch ID of een wachtwoord.
  3. Google retourneert een versleuteld token.
  4. De handelaar stuurt het token ter verwerking naar YabandPay.

Opmerking: in de zelf gehoste modus moeten handelaren hun eigen Google Pay-verkopersaccount registreren in de Google Pay & Wallet Console en een Merchant ID verkrijgen. Deze Merchant ID wordt gekoppeld aan het betaalkanaal van YabandPay.

Voorbeeld van API-configuratie:

"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "yabandpay",
    "gatewayMerchantId": "<Merchant ID assigned by YabandPay>"
  }
}
  • Codeer het ontvangen token met Base64 en stuur het via payment_token_object naar de betalings-API van YabandPay.
  • gateway: een vaste waarde die "yabandpay" moet zijn.
  • Het uitschakelen van adresverificatie wordt aanbevolen, zoals hieronder geconfigureerd:
billingAddressRequired: false

3. Gehoste integratie

YabandPay biedt een gehoste Google Pay-oplossing. Handelaren hoeven geen Google Pay-knop of SDK te integreren. Dien een bestelling in via de standaard-API en stuur de klant naar de gehoste pagina van YabandPay op https://pay.yabandpay.com om met Google Pay te betalen.

In de gehoste modus wordt Google Pay uitgevoerd op de pagina van YabandPay. Handelaren hoeven daarom geen CSP te configureren, Google-scripts te laden of een SDK-versie in te stellen.

Integratiestroom:

  1. De handelaar dient een bestelling in via de Hosted Payment Solution (HPP) van YabandPay. YabandPay retourneert pay_url.
  2. De klant wordt doorgestuurd naar de gehoste pagina op pay_url.
  3. De klant voltooit de Google Pay-betaling op die pagina.
  4. Na de betaling wordt de klant doorgestuurd naar de geconfigureerde redirect_url en wordt een asynchrone melding verzonden naar notify_url.

Opmerkingen:

  • Handelaren hoeven zelf geen Google Pay-JavaScript te laden of Google Pay-verzoeken samen te stellen.
  • YabandPay verzorgt alle ontsleuteling aan de backend en de transactiecontrole voor Google Pay.
  • Handelaren moeten Google Pay inschakelen in het YabandPay-verkopersportaal.
  • De gehoste betaalpagina toont automatisch de naam van de handelaar, het bestelbedrag en andere informatie, zodat de klant de betaling kan herkennen.
  • Alle transacties worden verwerkt met de gedeelde Google Merchant ID van YabandPay.

4. Autorisatiemethoden

YabandPay ondersteunt de volgende Google Pay-autorisatiemethoden:

  • Autorisaties voor eenmalige transacties (DPAN + cryptogram) worden ondersteund.
  • Card-on-File (COF) wordt niet ondersteund.
  • FIDO-biometrische verificatie wordt niet ondersteund.

5. Vereisten voor gegevensoverdracht

  • Verzend de versleutelde payment_token_object via HTTPS POST naar YabandPay.
  • Alle gegevens worden tijdens de overdracht versleuteld met TLS 1.2 of hoger.
  • YabandPay gebruikt PCI DSS-conforme HSM's voor ontsleuteling aan de backend.

6. Officiële Google-referenties voor integratie

Algemene informatiebronnen:

Integratiehandleidingen voor apps:

Integratiehandleidingen voor het web:


API-URL:https://mapi.yabandpay.com/Payments

Methode:POST

POST gegevenstype:Json

ParameterTypeBeschrijvingVerplicht
userStringKassiersaccount UIDVerplicht
signStringSignatureVerplicht
methodStringv3.GooglePayVerplicht
timeLongTimestampVerplicht
  • Parameters
ParameterTypeBeschrijvingVerplicht
pay_methodStringonlineVerplicht
sub_pay_methodStringGoogle PayVerplicht
operationString1. Verkoop; 2. AutorisatieVerplicht
order_idStringBestel-ID van de handelaarVerplicht
amountStringBedrag als numerieke tekenreeks. Voer bijvoorbeeld 24.99 in voor € 24.99.Verplicht
currencyStringISO-valutacode 4217, bijvoorbeeld EUR of CHFVerplicht
descriptionStringBestelomschrijvingVerplicht
demoStringAangepast veldOptioneel
3ds_initiateString3DS-configuratie. 01. Schakel 3DS-verificatie in.Verplicht
payment_token_objectStringMet Base64 gecodeerde tekenreeks met het "token" dat via Google Pay is verkregenVerplicht
cardinfoStringBevat de naam en het e-mailadres van de kaarthouderVerplicht
cardinfo.card_holderstringNaam van de kaarthouderVerplicht
cardinfo.emailstringE-mailadres van de kaarthouderVerplicht
timeoutStringVervaltijd in minuten (0-1440)Verplicht
redirect_urlStringOmleidings-URL na betalingOptioneel
notify_urlStringURL voor asynchrone melding na betalingVerplicht
request_idStringUnieke aanvraag-ID; aanbevolen wordt een combinatie van cijfers en letters van ten minste 24 tekensVerplicht

payment_token_object ophalen:

Voorbeeld van een token dat door Google Pay wordt geretourneerd:

{
	"signature": "MEUCIC+XtiYdlmjL2/1wEn33qnya8G4POk5jYkRNY5+MkdBlAiEAwoRYQu26ZopwpcOWlwUe/E+i4FKzpunCFZf44mS0cxQ\u003d",
	"intermediateSigningKey": {
		"signedKey": "{\"keyValue\":\"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEUJW8LjUtTV7esDMJLtCe8hYjlcQih8g7HP5bgO4ysma4/CwGq0CnZ5G0t0o44D92d9L3SfXS2GyK2PJMtE/NBg\\u003d\\u003d\",\"keyExpiration\":\"1724120515000\"}",
		"signatures": ["MEYCIQC1ZWgFEaSR1pNbwTW6liQL7WXZQZExx1Idj7oQzHvoPQIhAOx1b+9CamfDeZUcHXpU01xTfa6EaaH3TgKaTBnrsuuG"]
	},
	"protocolVersion": "ECv2",
	"signedMessage": "{\"encryptedMessage\":\"y+XA1ltwldTcmVSZwfVayP7b0hPNLODGyi2UgCCJcSSs0iBj73HML5eWcYBiT+T+ZP8SmV54U9E2AmuRwVeVYHai8Z/ajrxE7fM+Fv/e9IXt36WjC4SWhAHM8T/DkOlE6BcuoKAMz6iLkJJ40g0zAkUKijln5YEbhLXHRoh/5l/8wGNDxErI7JdNZ4cA9vh8go/gR2YXKxVngFH4PFHcGyKa4MKnYDATMBDdx/F+MI4vVtPLXruTPpG0HBgLlJct95LZl9T686sOWuwg4pWLLSqcbuqd+MAZZihy2FW+9cdKNXsebL91rRbq7dahtET1K90YzyWzM9CfntcjHf5YqhnssApnE+Jb7OZ+mn5hO27Z93by7G3Fgi7YxJqcW4o/4D+NIANe0BqwbFyhw5Un8rIKkXg//WD9TlFHl2oIgyOKnZLO8NrnfEffoxstvRft1enafD0DadUk2IL5+Q\\u003d\\u003d\",\"ephemeralPublicKey\":\"BFzys/8Oy4iBu0ZYlLcy5SNZUOKFQhTx/985qiMFKGssVm4Fk9hweWlemyClMbI216lbsPS4Sy15ab/75gW1v08\\u003d\",\"tag\":\"jpHUeHrZuI1y77wRisFznOadAzlP2je8RFpT9PFpmHs\\u003d\"}"
}

Het veld payment_token_object is de base64_encode-tekenreeks van de tokengegevens die via de Google Pay-integratie zijn verkregen.

Handtekeningvoorbeeld:

Gesorteerde parameters aaneengevoegd tot een queryreeks in URL-stijl

"3ds_initiate=01&amount=0.1&cardinfo={"card_holder":"John Smith","email":"JohnSmith@gmail.com"}&currency=EUR&description=test&method=v3.GooglePayment&notify_url=https://www.yabandpay.com/notify&operation=1&order_id=1723517503&pay_method=online&payment_token_object=eyJzaWduYXR1cmUiOiJNRVVDSUMrWHRpWWRsbWpMMi8xd0VuMzNxbnlhOEc0UE9rNWpZa1JOWTUrTWtkQmxBaUVBd29SWVF1MjZab3B3cGNPV2x3VWUvRStpNEZLenB1bkNGWmY0NG1TMGN4UVx1MDAzZCIsImludGVybWVkaWF0ZVNpZ25pbmdLZXkiOnsic2lnbmVkS2V5Ijoie1wia2V5VmFsdWVcIjpcIk1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRVVKVzhMalV0VFY3ZXNETUpMdENlOGhZamxjUWloOGc3SFA1YmdPNHlzbWE0L0N3R3EwQ25aNUcwdDBvNDREOTJkOUwzU2ZYUzJHeUsyUEpNdEUvTkJnXHUwMDNkXHUwMDNkXCIsXCJrZXlFeHBpcmF0aW9uXCI6XCIxNzI0MTIwNTE1MDAwXCJ9Iiwic2lnbmF0dXJlcyI6WyJNRVlDSVFDMVpXZ0ZFYVNSMXBOYndUVzZsaVFMN1dYWlFaRXh4MUlkajdvUXpIdm9QUUloQU94MWIrOUNhbWZEZVpVY0hYcFUwMXhUZmE2RWFhSDNUZ0thVEJucnN1dUciXX0sInByb3RvY29sVmVyc2lvbiI6IkVDdjIiLCJzaWduZWRNZXNzYWdlIjoie1wiZW5jcnlwdGVkTWVzc2FnZVwiOlwieStYQTFsdHdsZFRjbVZTWndmVmF5UDdiMGhQTkxPREd5aTJVZ0NDSmNTU3MwaUJqNzNITUw1ZVdjWUJpVCtUK1pQOFNtVjU0VTlFMkFtdVJ3VmVWWUhhaThaL2FqcnhFN2ZNK0Z2L2U5SVh0MzZXakM0U1doQUhNOFQvRGtPbEU2QmN1b0tBTXo2aUxrSko0MGcwekFrVUtpamxuNVlFYmhMWEhSb2gvNWwvOHdHTkR4RXJJN0pkTlo0Y0E5dmg4Z28vZ1IyWVhLeFZuZ0ZINFBGSGNHeUthNE1LbllEQVRNQkRkeC9GK01JNHZWdFBMWHJ1VFBwRzBIQmdMbEpjdDk1TFpsOVQ2ODZzT1d1d2c0cFdMTFNxY2J1cWQrTUFaWmloeTJGVys5Y2RLTlhzZWJMOTFyUmJxN2RhaHRFVDFLOTBZenlXek05Q2ZudGNqSGY1WXFobnNzQXBuRStKYjdPWittbjVoTzI3WjkzYnk3RzNGZ2k3WXhKcWNXNG8vNEQrTklBTmUwQnF3YkZ5aHc1VW44cklLa1hnLy9XRDlUbEZIbDJvSWd5T0tuWkxPOE5ybmZFZmZveHN0dlJmdDFlbmFmRDBEYWRVazJJTDUrUVx1MDAzZFx1MDAzZFwiLFwiZXBoZW1lcmFsUHVibGljS2V5XCI6XCJCRnp5cy84T3k0aUJ1MFpZbExjeTVTTlpVT0tGUWhUeC85ODVxaU1GS0dzc1ZtNEZrOWh3ZVdsZW15Q2xNYkkyMTZsYnNQUzRTeTE1YWIvNzVnVzF2MDhcdTAwM2RcIixcInRhZ1wiOlwianBIVWVIclp1STF5Nzd3UmlzRnpuT2FkQXpsUDJqZThSRnBUOVBGcG1Ic1x1MDAzZFwifSJ9&redirect_url=https://www.yabandpay.com/redirect_url&request_id=g77ur3oqhkqd348iljrb04pbj412rka3&sub_pay_method=Google Pay&time=1723517503&timeout=0&user=YOUR_CASHIER_UID"

Onderteken stringA met secret_key

De resulterende handtekening is:

"YOUR_SIGNATURE"

Aanvraagvoorbeeld (operation=1 Verkoop):

{
    "user": "YOUR_CASHIER_UID",
    "sign": "YOUR_SIGNATURE",
    "method": "v3.GooglePay",
    "time": 1721979693,
    "data": {
        "description": "test",
        "timeout": "0",
        "pay_method": "online",
        "sub_pay_method": "Google Pay",
        "order_id": 1721979693,
        "amount": "0.1",
        "currency": "EUR",
        "operation": "1",
        "redirect_url": "https://www.yabandpay.com/redirect_url",
        "notify_url": "https://www.yabandpay.com/notify",
        "3ds_initiate": "01",
        "payment_token_object": "eyJzaWduYXR1cmUiOiJNRVVDSVFDOEJmbDJrSkttUjVvOUxNc3RCYnA0MGtBRW9FQnh4SlQ4VTl2UVgyc1JMd0lnTUJTOWpidDFxR0NoVmxmeElDUTdYOHBKM3VYN1lkY0M5UFd1eEVubmo5b1x1MDAzZCIsImludGVybWVkaWF0ZVNpZ25pbmdLZXkiOnsic2lnbmVkS2V5Ijoie1wia2V5VmFsdWVcIjpcIk1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRVdabXZVODU3SnlOV2ZEbFFuVzBaRG1MUEpoSG91dlpsT09aZk5ORm9nWElJVlRVTnNYNGJ0MEZFakdpVEs4QTNGb094a0d5NStrQ0ZCWDUyL0hhcS93XHUwMDNkXHUwMDNkXCIsXCJrZXlFeHBpcmF0aW9uXCI6XCIxNzIwNTg5NjI3MTk5XCJ9Iiwic2lnbmF0dXJlcyI6WyJNRVVDSVFDbWpKSmFMYzUxWEo3T3dEaUY5QVVIVloyVytGMFJSVWdnNmI5YUc0S2hiUUlnVDBKeVdjRHNlcEpyc2ZyM0xzekdtTUpUNkxZSitzRmZ5YWtmYlIweHg1c1x1MDAzZCJdfSwicHJvdG9jb2xWZXJzaW9uIjoiRUN2MiIsInNpZ25lZE1lc3NhZ2UiOiJ7XCJlbmNyeXB0ZWRNZXNzYWdlXCI6XCJBaVhPT3BJYitNdGxSWnV3MW9nL3ZLVVdvT3FmVEcwZndMcG14WCtuSkFPRXJPQkFYa3dWWG8zd01DaVpQaEppZVN3dHZBNnFaVXpWVTBOVWJaWTVSdE1qZWxUWnVHV3dKcjdRVU9Ob3NXRzFXSmd4bjRHVVRPL2g2Nzdpd2ROajgzbVRDdWNPZnNHeDVMcTZCdXZXT1F0a21Gdk9qSnVSN1daQ2k3QTl4S2tWckxvVEsyWEpBNmNxb0pZMERpa1NMOU1WQW5JWVNyenpCakFwWVc0SGxXTm14ZnJYUUUzYTFKTW95UlRDWWR4azZwUGVzNi9xOG5zN2Fid1RHUGNicmNVZndaN0hiSnFWRVd1aFZxTWpxZW50RHgvRXd3SHFYd0s0YUhMc0hvOGVkc09jbEdMTXBNeFVVOHc0MHJ2ZFNxc3NyUEFmN0RnSGoydkNBNUt2amMrcnBaaGY0Wnl1UkFacHpHSmNvYXNTV3JVeXNqUG5FcFNyVnpzbWV3ejB1K2JyYmNFOTlFNnd0cHhnWVZwUVl0d3FmY2FRY3ZJWUZaT3FXaEJGNFpXcUZoUmdGSkZlQVJSQU1ndnlURmhDaVhObExqcFZcIixcImVwaGVtZXJhbFB1YmxpY0tleVwiOlwiQk83SUpTMVNBanlqWG9EUTVOblBqZmk3dWJ3UVB0Mkx1OFZVQm9SVlh0Q2pWV3h4UUNLWm9sbmc0cnBmUEdaVlRyQzNwOWRUMEtveWhBc2NsR0Z5ZFhFXHUwMDNkXCIsXCJ0YWdcIjpcImtoT1dIRUlSSzBuWVBiWU1OdnhkZVNUTzlsYWJRdlBYZWQrQ1NLZTFyZ1FcdTAwM2RcIn0ifQ==",
        "cardinfo": "{\"card_holder\":\"John Smith\",\"email\":\"JohnSmith@gmail.com\"}",
        "request_id": "2cwmm7wubqkgtzbtzjhvhkaubev81a0r"
    }
}


Antwoordvoorbeeld (PAN_ONLY):

Opmerking: stuur voor PAN_ONLY de klant door naar de geretourneerde url om de 3DS-verificatie te voltooien. Daarna wordt de klant doorgestuurd naar redirect_url:

{
    "status": true,
    "code": "200",
    "data": {
        "order_id": "YOUR_ORDER_ID",
        "trade_id": "e684679e-658b-ac70-fd9e-e4959e147e00",
        "amount": "0.10",
        "currency": "EUR",
        "sub_pay_method": "Google Pay",
        "state": "processing",
        "url": "https://pay.yabandpay.com/dispose_shift4_googlepay_3ds?data=eyJwc3QiOiJlNjg0Njc5ZS02NThiLWFjNzAtZmQ5ZS1lNDk1OWUxNDdlMDAiLCJzaWduX3RyYWRlX2lkIjoiNWZkNzc5Zjg0MmY1ZTc2ZjVmNGQzNGQyNGQ5MGZkMzYyZWMyZGY5ZjU0ODk5ZjBlZDgxYTRkYWUxODM2MmEwNCIsInVzZXIiOiIwMTY2ODMifQ=="
    },
    "message": "",
    "response_id": "202408131051432400124088"
}

Antwoordvoorbeeld (CRYPTOGRAM_3DS):

Opmerking: voor CRYPTOGRAM_3DS is geen verdere 3DS-verificatie nodig en wordt state rechtstreeks geretourneerd:

{
    "status": true,
    "code": "200",
    "data": {
        "order_id": "YOUR_ORDER_ID",
        "trade_id": "e684679e-658b-ac70-fd9e-e4959e147e00",
        "amount": "0.10",
        "currency": "EUR",
        "sub_pay_method": "Google Pay",
        "state": "paid"
    },
    "message": "",
    "response_id": "202408131051432400124088"
}

Aanvullende informatie:

Resultaat van het antwoord:
  1. Een geslaagde aanvraag retourneert "status": true.

  2. Een mislukte aanvraag retourneert "status": false.

Beoordeel de geretourneerde gegevens: als deze url bevatten, stuur de klant er dan naartoe; als ze geen url bevatten, lees dan state rechtstreeks uit.

Voor PAN_ONLY wordt de klant, nadat deze de 3DS-verificatie op url heeft voltooid, synchroon teruggestuurd naar redirect_url. We raden sterk aan zowel Bestelling opvragen als Asynchrone meldingen te gebruiken om de betalingsstatus actueel en nauwkeurig te houden. a) Als de bestelstatus state op paid staat, is de betaling geslaagd; b) als de bestelstatus state op authorized staat, is de autorisatie geslaagd. Roep na een geslaagde autorisatie de API voor het incasseren van de autorisatie aan om het bedrag te incasseren.

Antwoordcodes:
StatusCodeBericht
true200
false-1000Internal error
false-403The signature Error
false-2001The user not exist
false-3001Required field is missing
false-4118Incorrect request ID