Prevenção contra fraude

Indicadores de prevenção de fraudes

O Google pode fornecer outras informações do cliente do usuário quando enviar SubmitOrderRequest. Use essas informações para evitar transações fraudulentas na sua integração.

Como ler sinais de prevenção contra fraudes

Quando seu projeto estiver ativado para receber outros indicadores de prevenção contra fraudes, os cabeçalhos SubmitOrderRequest vão conter informações sobre o cliente do usuário, em vez de servidores do Google. Os cabeçalhos das solicitações contêm as seguintes informações:

  • Endereço IP:o endereço IP do cliente do usuário está disponível como o primeiro IP no campo x-forwarded-for. Esse endereço está no formato IPV4 ou IPV6, conforme determinado pela configuração do cliente do usuário.

  • User agent:a string do user agent é armazenada no campo user-agent com um sufixo "Google-ActionsOnGoogle/1.0". Esse campo pode não ser preenchido, dependendo do dispositivo do usuário e se ele fez um pedido por voz.

Confira abaixo um snippet do cabeçalho HTTP SubmitOrderRequest quando a prevenção de fraudes está ativada:

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

Se as informações de cliente do usuário não forem suficientes para evitar fraudes, entre em contato com o Google para discutir soluções alternativas.

Como lidar com transações fraudulentas durante o atendimento do pedido

Com base no endereço IP do usuário e nas informações do user agent fornecidas no SubmitOrderRequest, use seu algoritmo interno de prevenção de fraudes para determinar se a transação é legítima.

Se a transação parecer fraudulenta, responda com orderState de REJECTED e rejectionInfo de INELIGIBLE, além de uma descrição de erro adequada no SubmitOrderResponseMessage.

Se a transação parecer legítima, processe o pedido normalmente.

Validação do endereço de faturamento

Para reduzir fraudes, inclua o endereço de faturamento na solicitação de transação de pagamento para seu PSP. O billingAddress é retornado no SubmitOrderRequestMessage.

Exemplo de 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\"}}}]}"
}

Se o PSP responder que o endereço ou CEP está incorreto, retorne um exemplo de resposta SubmitOrderResponseMessage semelhante.

Exemplo de resposta

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

Retornar o tipo PAYMENT_DECLINED rejectionInfo exibe uma mensagem e permite que o usuário atualize o endereço de faturamento ou escolha outra forma de pagamento. Os erros PAYMENT_DECLINED são excluídos dos Alertas de erro do pedido.