Betrugsprävention

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.

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.

  {
    "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.