Signale zur Betrugsprävention
Google kann zusätzliche Informationen zum Nutzerclient bereitstellen, wenn wir SubmitOrderRequest
senden. Anhand dieser Informationen können Sie betrügerische Transaktionen in Ihrer Integration verhindern.
Signale zur Betrugsprävention
Wenn für Ihr Projekt zusätzliche Signale zur Betrugsprävention aktiviert sind, enthalten die SubmitOrderRequest
-Header Informationen zum Nutzerclient anstelle der Google-Server. Die Anfrageheader enthalten folgende Informationen:
IP-Adresse:Die IP-Adresse des Nutzerclients ist im Feld
x-forwarded-for
als erste IP verfügbar. Diese Adresse ist entweder im IPv4- oder IPv6-Format, je nach Konfiguration des Nutzerclients.User-Agent:Der User-Agent-String wird im Feld
user-agent
mit dem Suffix „Google-ActionsOnGoogle/1.0“ gespeichert. Je nach Gerät des Nutzers und je nachdem, ob er eine Bestellung per Sprachbefehl aufgegeben hat, wird dieses Feld möglicherweise nicht ausgefüllt.
Unten siehst du ein Snippet des SubmitOrderRequest
-HTTP-Headers, wenn die Betrugsprävention aktiviert ist:
X-Forwarded-For: 72.00.123.12,66.111.12.123, 169.254.1.1 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36,gzip(gfe),gzip(gfe) Google-ActionsOnGoogle/1.0
Wenn die Informationen zum Nutzer nicht ausreichen, um Betrug zu verhindern, wenden Sie sich an Ihren Google-Ansprechpartner, um alternative Lösungen zu besprechen.
Umgang mit betrügerischen Transaktionen bei der Auftragsausführung
Verwende anhand der IP-Adresse des Nutzers und der User-Agent-Informationen in der SubmitOrderRequest
deinen internen Betrugspräventionsalgorithmus, um zu ermitteln, ob die Transaktion legitim ist.
Wenn die Transaktion betrügerisch erscheint, antworte mit einer orderState
von REJECTED
und einer rejectionInfo
von INELIGIBLE
sowie einer entsprechenden Fehlerbeschreibung im SubmitOrderResponseMessage
.
Wenn die Transaktion legitim erscheint, bearbeite die Bestellung wie gewohnt.
Bestätigung der Rechnungsadresse
Um Betrug zu vermeiden, können Sie die Rechnungsadresse in die Zahlungstransaktionsanfrage an Ihren PSP aufnehmen. Die billingAddress wird im SubmitOrderRequestMessage
zurückgegeben.
- Legen Sie CardParameters.billingAddressRequired in der Zahlungsbestätigungsantwort auf
true
fest, damit der Nutzer seine Rechnungsadresse eingeben muss. - Legen Sie CardParameters.billingAddressParameters fest, um die erforderlichen Felder zu definieren. Wir empfehlen,
{"format":"MIN"}
festzulegen, um die Abläufe für Nutzer zu vereinfachen. - Geben Sie die vollständige billingAddress oder nur die billingAddress.postalCode an, um sie im Rahmen der Zahlungstransaktion bei Ihrem PSP zu bestätigen.
Beispiel für googleProvidedPaymentOptions:
{ "facilitationSpecification": "{\"apiVersion\":2,\"apiVersionMinor\":0,\"merchantInfo\":{\"merchantId\":\"Merchant ID\",\"merchantName\":\"Merchant Name\"},\"allowedPaymentMethods\":[{\"type\":\"CARD\",\"parameters\":{\"allowedAuthMethods\":[\"PAN_ONLY\"],\"allowedCardNetworks\":[\"VISA\",\"AMEX\",\"MASTERCARD\"],\"billingAddressRequired\":true,\"billingAddressParameters\":{\"format\":\"MIN\"}},\"tokenizationSpecification\":{\"type\":\"PAYMENT_GATEWAY\",\"parameters\":{\"gateway\":\"stripev2\",\"gatewayMerchantId\":\"stripe_pk_live_key\"}}}]}" }
Wenn der PSP antwortet, dass die Adresse oder Postleitzahl falsch ist, sollten Sie eine ähnliche Beispielantwort SubmitOrderResponseMessage
zurückgeben.
Beispielantwort
{ "expectUserResponse": false, "finalResponse": { "richResponse": { "items": [ { "structuredResponse": { "orderUpdate": { "actionOrderId": "sample_action_order_id", "orderState": { "state": "REJECTED", "label": "Order rejected" }, "updateTime": "2017-05-10T02:30:00.000Z", "rejectionInfo": { "type": "PAYMENT_DECLINED", "reason": "Invalid zipcode" }, "orderManagementActions": [ { "type": "CUSTOMER_SERVICE", "button": { "title": "Contact customer service", "openUrlAction": { "url": "mailto:support@example.com" } } }, { "type": "EMAIL", "button": { "title": "Email restaurant", "openUrlAction": { "url": "mailto:person@example.com" } } }, { "type": "CALL", "button": { "title": "Call restaurant", "openUrlAction": { "url": "tel:+16505554679" } } }, { "type": "VIEW_DETAILS", "button": { "title": "View order", "openUrlAction": { "url": "https://orderview.partner.com?orderid=sample_action_order_id" } } } ] } } } ] } } }
Wenn du den Typ PAYMENT_DECLINED
rejectionInfo zurückgibst, wird eine Meldung angezeigt und der Nutzer kann die Rechnungsadresse aktualisieren oder eine andere Zahlungsmethode auswählen. PAYMENT_DECLINED
Fehler sind in Benachrichtigungen zu Bestellfehlern senden ausgeschlossen.