Prevención de fraudes

Indicadores de prevención de fraudes

Google puede proporcionar información adicional sobre el cliente del usuario cuando enviamos SubmitOrderRequest. Puedes usar esta información para evitar transacciones fraudulentas en tu integración.

Cómo leer los indicadores de prevención de fraudes

Cuando tu proyecto esté habilitado para recibir indicadores adicionales de prevención de fraudes, los encabezados SubmitOrderRequest contendrán información sobre el cliente del usuario en lugar de los servidores de Google. Los encabezados de la solicitud contendrán la siguiente información:

  • Dirección IP: La dirección IP del cliente del usuario está disponible como la primera IP en el campo x-forwarded-for. Esta dirección está en formato IPV4 o IPV6, según lo determine la configuración del cliente del usuario.

  • Usuario-agente: La string del usuario-agente se almacena en el campo user-agent con el sufijo "Google-ActionsOnGoogle/1.0". Ten en cuenta que es posible que este campo no se propague según el dispositivo del usuario y si este realizó un pedido por voz.

A continuación, se muestra un fragmento del encabezado HTTP SubmitOrderRequest cuando la prevención de fraudes está habilitada:

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 la información del cliente del usuario no es suficiente para realizar la prevención de fraudes, comunícate con tu contacto de Google para evaluar soluciones alternativas.

Cómo manejar transacciones fraudulentas durante la entrega

Según la dirección IP del usuario y la información del usuario-agente proporcionada en SubmitOrderRequest, usa el algoritmo interno de prevención de fraudes para determinar si la transacción es legítima.

Si la transacción parece ser fraudulenta, responde con un orderState de REJECTED y un rejectionInfo de INELIGIBLE, junto con una descripción de error adecuada en el SubmitOrderResponseMessage.

Si la transacción parece ser legítima, procesa el pedido como de costumbre.

Validación de la dirección de facturación

Para reducir el fraude, puedes incluir la dirección de facturación en la solicitud de transacción de pago a tu PSP. La billingAddress se muestra en SubmitOrderRequestMessage.

Ejemplo 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 el PSP responde que la dirección o el código postal son incorrectos, debes mostrar una respuesta SubmitOrderResponseMessage de ejemplo similar.

Ejemplo de respuesta

  {
    "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"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            ]
        }
    }
}
      

Mostrar el tipo PAYMENT_DECLINED rejectionInfo muestra un mensaje y permite al usuario actualizar la dirección de facturación o elegir otra forma de pago. Los errores PAYMENT_DECLINED se excluyen en la página Enviar alertas de error de pedido.