Prevenzione delle attività fraudolente

Indicatori di prevenzione di attività fraudolente

Google può fornire ulteriori informazioni sul cliente dell'utente quando invia SubmitOrderRequest. Puoi utilizzare queste informazioni per prevenire transazioni fraudolente nella tua integrazione.

Come leggere gli indicatori di prevenzione delle frodi

Se il tuo progetto è abilitato a ricevere ulteriori indicatori di prevenzione delle frodi, le intestazioni SubmitOrderRequest conterranno informazioni sul client utente anziché sui server di Google. Le intestazioni delle richieste conterranno le seguenti informazioni:

  • Indirizzo IP: l'indirizzo IP del client utente è disponibile come primo IP nel campo x-forwarded-for. Questo indirizzo è in formato IPV4 o IPV6, come determinato dalla configurazione del client utente.

  • User agent: la stringa dello user agent è archiviata 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 del fatto che sia stato effettuato un ordine vocale.

Di seguito è riportato uno snippet dell'intestazione HTTP SubmitOrderRequest quando è attiva la prevenzione delle attività fraudolente:

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 le informazioni sul client utente non sono sufficienti per prevenire attività fraudolente, rivolgiti al tuo contatto Google per parlare di soluzioni alternative.

Come gestire le transazioni fraudolente durante l'evasione dell'ordine

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

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

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

Convalida indirizzo di fatturazione

Per ridurre le attività fraudolente, puoi includere l'indirizzo di fatturazione nella richiesta di transazione di pagamento al tuo PSP. Il valore billingAddress viene restituito nel 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 sono corretti, devi restituire una risposta SubmitOrderResponseMessage di esempio simile.

Esempio di risposta

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

La restituzione del tipo rejectionInfo PAYMENT_DECLINED mostra un messaggio e consente all'utente di aggiornare l'indirizzo di fatturazione o di scegliere un altro metodo di pagamento. Gli errori PAYMENT_DECLINED sono esclusi in Inviare avvisi di errore dell'ordine.