Sinyal pencegahan penipuan
Google dapat memberikan informasi klien pengguna tambahan saat kami mengirim
SubmitOrderRequest
. Anda dapat menggunakan informasi ini untuk membantu mencegah transaksi penipuan dalam integrasi Anda.
Cara membaca sinyal pencegahan penipuan
Saat project Anda diaktifkan untuk menerima sinyal pencegahan penipuan tambahan, header SubmitOrderRequest
akan berisi informasi tentang klien pengguna, bukan server Google. Header permintaan akan berisi informasi
berikut:
Alamat IP: Alamat IP klien pengguna tersedia sebagai IP pertama di kolom
x-forwarded-for
. Alamat ini dalam format IPV4 atau IPV6 seperti yang ditentukan oleh konfigurasi klien pengguna.Agen pengguna: String agen pengguna disimpan di kolom
user-agent
dengan akhiran "Google-ActionsOnGoogle/1.0". Perhatikan bahwa kolom ini mungkin tidak terisi, bergantung pada perangkat pengguna dan apakah mereka memesan melalui suara.
Berikut adalah cuplikan header HTTP SubmitOrderRequest
saat pencegahan penipuan diaktifkan:
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
Jika informasi klien pengguna tidak memadai bagi Anda untuk melakukan pencegahan penipuan, hubungi kontak Google Anda untuk mendiskusikan solusi alternatif.
Cara menangani transaksi penipuan selama pemenuhan
Berdasarkan alamat IP pengguna dan informasi agen pengguna yang diberikan di
SubmitOrderRequest
, gunakan algoritma pencegahan penipuan internal Anda untuk menentukan
apakah transaksi tersebut sah.
Jika transaksi tampak menipu, respons dengan orderState
REJECTED
dan rejectionInfo
dari INELIGIBLE
, beserta deskripsi error
yang sesuai di SubmitOrderResponseMessage
.
Jika transaksi tampaknya sah, proses pesanan seperti biasa.
Validasi alamat penagihan
Untuk mengurangi penipuan, Anda dapat menyertakan alamat penagihan dalam permintaan
transaksi pembayaran ke PSP Anda. billingAddress ditampilkan di
SubmitOrderRequestMessage
.
- Tetapkan CardParameters.billingAddressRequired ke
true
dalam respons checkout untuk mewajibkan pengguna memasukkan alamat penagihan. - Tetapkan CardParameters.billingAddressParameters untuk menentukan kolom yang wajib diisi. Sebaiknya setel
{"format":"MIN"}
untuk mengurangi gangguan bagi pengguna. - Sertakan billingAddress lengkap atau hanya billingAddress.postalCode untuk validasi sebagai bagian dari transaksi pembayaran dengan PSP Anda.
Contoh 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\"}}}]}" }
Jika PSP merespons bahwa alamat atau kode pos salah, Anda harus
menampilkan contoh respons SubmitOrderResponseMessage
yang serupa.
Contoh respons
{ "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" } } } ] } } } ] } } }
Menampilkan jenis rejectionInfo PAYMENT_DECLINED
akan menampilkan pesan dan memungkinkan pengguna memperbarui alamat penagihan atau memilih metode pembayaran lain. Error PAYMENT_DECLINED
dikecualikan dalam Mengirim Pemberitahuan Error
Pesanan.