אותות למניעת הונאות
Google יכולה לספק מידע נוסף על לקוח המשתמש כשאנחנו שולחים את הערך SubmitOrderRequest
. אתם יכולים להשתמש במידע הזה כדי למנוע עסקאות שמקורן בתרמית בשילוב.
איך קוראים את האותות למניעת הונאות
כשהפרויקט מופעל לקבלת אותות נוספים למניעת הונאות, הכותרות SubmitOrderRequest
יכילו מידע על לקוח המשתמש במקום על שרתי Google. כותרות הבקשה יכללו את הפרטים הבאים:
כתובת IP: כתובת ה-IP של לקוח המשתמש זמינה ככתובת ה-IP הראשונה בשדה
x-forwarded-for
. הכתובת הזו היא בפורמט IPV4 או IPV6, בהתאם להגדרה של לקוח המשתמש.סוכן משתמש: מחרוזת סוכן המשתמש מאוחסנת בשדה
user-agent
עם הסיומת "Google-ActionsOnGoogle/1.0". חשוב לזכור שהשדה הזה עשוי לא להתמלא, בהתאם למכשיר של המשתמש ולשיטה שבה הוא ביצע את ההזמנה (קולית או ידנית).
בהמשך מוצג קטע מכותרת ה-HTTP SubmitOrderRequest
כשמניעת הונאות מופעלת:
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
אם פרטי הלקוח של המשתמש לא מספיקים לכם כדי למנוע הונאות, תוכלו לפנות לנציג Google שלכם כדי לדון בפתרונות חלופיים.
איך מטפלים בעסקאות שמקורן בתרמית במהלך תהליך ההנפקה
על סמך כתובת ה-IP של המשתמש ופרטי סוכן המשתמש שצוינו ב-SubmitOrderRequest
, משתמשים באלגוריתמים הפנימיים למניעת הונאות כדי לקבוע אם העסקה לגיטימית.
אם נראה שהעסקה היא תרמית, יש להשיב עם orderState
של REJECTED
ועם rejectionInfo
של INELIGIBLE
, יחד עם תיאור מתאים של השגיאה ב-SubmitOrderResponseMessage
.
אם העסקה נראית לגיטימית, יש לטפל בהזמנה כרגיל.
אימות הכתובת לחיוב
כדי לצמצם את הונאות, אפשר לכלול את הכתובת לחיוב בבקשה לעסקת תשלום ל-PSP. הערך של billingAddress מוחזר ב-SubmitOrderRequestMessage
.
- כדי לחייב את המשתמש להזין את כתובת החיוב שלו, מגדירים את הערך
true
ל-CardParameters.billingAddressRequired בתשובה של תהליך התשלום. - מגדירים את CardParameters.billingAddressParameters כדי להגדיר את השדות הנדרשים. מומלץ להגדיר את
{"format":"MIN"}
כדי לצמצם את החיכוך של המשתמשים. - כדי לבצע אימות כחלק מעסקת התשלום עם PSP, צריך לכלול את billingAddress המלא או רק את billingAddress.postalCode.
דוגמה ל-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\"}}}]}" }
אם ה-PSP משיב שהכתובת או המיקוד שגויים, צריך להחזיר תשובה דומה לדוגמה 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" } } } ] } } } ] } } }
החזרת הערך PAYMENT_DECLINED
מסוג rejectionInfo תציג הודעה ותאפשר למשתמש לעדכן את הכתובת לחיוב או לבחור אמצעי תשלום אחר. שגיאות מסוג PAYMENT_DECLINED
לא נכללות בהתראות על שגיאות בהזמנות.