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
.
- Imposta CardParameters.billingAddressRequired su
true
nella risposta al pagamento per richiedere all'utente di inserire l'indirizzo di fatturazione. - Imposta CardParameters.billingAddressParameters per definire i campi obbligatori. Ti consigliamo di impostare
{"format":"MIN"}
per semplificare l'esperienza degli utenti. - Includi il valore 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 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.