Prevenzione delle attività fraudolente

Indicatori per la prevenzione delle attività fraudolente

Google può fornire informazioni aggiuntive sul client dell'utente quando inviamo SubmitOrderRequest. Puoi utilizzare queste informazioni per contribuire a impedire transazioni fraudolente nella tua integrazione.

Come leggere gli indicatori di prevenzione delle attività fraudolente

Quando il progetto è abilitato a ricevere ulteriori indicatori per la prevenzione delle frodi, le intestazioni SubmitOrderRequest conterranno informazioni sul client dell'utente anziché sui server di Google. Le intestazioni della richiesta conterranno le seguenti informazioni:

  • Indirizzo IP: l'indirizzo IP del client dell'utente è disponibile come primo IP nel campo x-forwarded-for. Questo indirizzo è nel formato IPv4 o IPv6, come stabilito dalla configurazione del client dell'utente.

  • User agent: la stringa dello user agent viene memorizzata nel campo user-agent con un suffisso "Google-ActionsOnGoogle/1.0". Tieni presente che questo campo potrebbe non essere compilato a seconda del dispositivo dell'utente e se ha effettuato un ordine tramite comandi vocali.

Di seguito è riportato uno snippet dell'intestazione HTTP SubmitOrderRequest quando la prevenzione delle frodi è attivata:

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 i dati del cliente dell'utente non sono sufficienti per eseguire la prevenzione delle attività fraudolente, contatta il tuo contatto Google per discutere di soluzioni alternative.

Come gestire le transazioni fraudolente durante l'evasione

In base all'indirizzo IP e alle informazioni sull'user-agent dell'utente fornite in SubmitOrderRequest, utilizza il tuo algoritmo interno di prevenzione delle frodi per determinare se la transazione è legittima.

Se la transazione sembra fraudolenta, rispondi con un orderState di REJECTED e un rejectionInfo di INELIGIBLE, insieme a una descrizione di errore appropriata in SubmitOrderResponseMessage.

Se la transazione sembra legittima, elabora l'ordine normalmente.

Convalida dell'indirizzo di fatturazione

Per ridurre le frodi, puoi includere l'indirizzo di fatturazione nella richiesta di transazione di pagamento al tuo PSP. billingAddress viene restituito in SubmitOrderRequestMessage.

Esempio di 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 il PSP risponde che l'indirizzo o il codice postale non è corretto, devi rispondere con un esempio simile di risposta SubmitOrderResponseMessage.

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

Se restituisci il tipo PAYMENT_DECLINED rejectionInfo, viene visualizzato un messaggio e l'utente può aggiornare l'indirizzo di fatturazione o scegliere un altro metodo di pagamento. Gli errori PAYMENT_DECLINED sono esclusi negli Avvisi di errore di invio dell'ordine.