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
.
- Imposta CardParameters.billingAddressRequired su
true
nella risposta al pagamento per richiedere all'utente di inserire il proprio indirizzo di fatturazione. - Imposta CardParameters.billingAddressParameters per definire i campi obbligatori. Ti consigliamo di impostare
{"format":"MIN"}
per ridurre la frizione per gli utenti. - Includi billingAddress completo o solo billingAddress.postalCode per la convalida nell'ambito della transazione di pagamento con il tuo PSP.
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
.
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" } } } ] } } } ] } } }
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.