Signaux de prévention des fraudes
Google peut fournir des informations supplémentaires sur le client utilisateur lorsque nous envoyons SubmitOrderRequest
. Vous pouvez utiliser ces informations pour éviter les transactions frauduleuses dans votre intégration.
Lire les signaux de prévention de la fraude
Lorsque votre projet est activé pour recevoir des signaux de prévention de la fraude supplémentaires, les en-têtes SubmitOrderRequest
contiennent des informations sur le client utilisateur au lieu des serveurs de Google. Les en-têtes de requête contiennent les informations suivantes:
Adresse IP:l'adresse IP du client utilisateur est disponible en tant que première adresse IP dans le champ
x-forwarded-for
. Cette adresse est au format IPv4 ou IPv6, selon la configuration du client utilisateur.User-agent:la chaîne user-agent est stockée dans le champ
user-agent
avec un suffixe "Google-ActionsOnGoogle/1.0". Notez que ce champ peut ne pas être renseigné en fonction de l'appareil de l'utilisateur et s'il a passé une commande par commande vocale.
Vous trouverez ci-dessous un extrait de l'en-tête HTTP SubmitOrderRequest
lorsque la prévention des fraudes est activée:
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
Si les informations client de l'utilisateur ne vous suffisent pas pour effectuer la prévention des fraudes, contactez votre contact Google pour discuter d'autres solutions.
Gérer les transactions frauduleuses lors de l'exécution
En fonction de l'adresse IP et des informations sur l'agent utilisateur fournies dans SubmitOrderRequest
, utilisez votre algorithme interne de prévention des fraudes pour déterminer si la transaction est légitime.
Si la transaction semble frauduleuse, répondez avec une valeur orderState
de REJECTED
et une valeur rejectionInfo
de INELIGIBLE
, ainsi qu'une description d'erreur appropriée dans SubmitOrderResponseMessage
.
Si la transaction semble légitime, traitez la commande normalement.
Validation de l'adresse de facturation
Pour réduire la fraude, vous pouvez inclure l'adresse de facturation dans la demande de transaction de paiement envoyée à votre PSP. billingAddress est renvoyé dans SubmitOrderRequestMessage
.
- Définissez CardParameters.billingAddressRequired sur
true
dans la réponse de paiement pour demander à l'utilisateur de saisir son adresse de facturation. - Définissez CardParameters.billingAddressParameters pour définir les champs obligatoires. Il est recommandé de définir
{"format":"MIN"}
pour réduire les frictions pour les utilisateurs. - Incluez l'intégralité de billingAddress ou uniquement billingAddress.postalCode pour la validation dans le cadre de la transaction de paiement avec votre PSP.
Exemple 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\"}}}]}" }
Si le PSP répond que l'adresse ou le code postal est incorrect, vous devez renvoyer une réponse SubmitOrderResponseMessage
similaire.
Exemple de réponse
{ "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" } } } ] } } } ] } } }
Si vous renvoyez le type PAYMENT_DECLINED
rejectionInfo, un message s'affiche et l'utilisateur peut modifier l'adresse de facturation ou choisir un autre mode de paiement. Les erreurs PAYMENT_DECLINED
sont exclues des alertes d'erreur d'envoi de commande.