جلوگیری از کلاه برداری

سیگنال های پیشگیری از تقلب

هنگامی که ما SubmitOrderRequest ارسال می کنیم، Google می تواند اطلاعات مشتری کاربر اضافی را ارائه دهد. شما می توانید از این اطلاعات برای کمک به جلوگیری از تراکنش های جعلی در ادغام خود استفاده کنید.

نحوه خواندن سیگنال های پیشگیری از تقلب

هنگامی که پروژه شما برای دریافت سیگنال‌های جلوگیری از تقلب اضافی فعال می‌شود، سرصفحه‌های 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 بازگردانده می شود.

  • CardParameters.billingAddressRequired را در پاسخ پرداخت روی true تنظیم کنید تا از کاربر بخواهید آدرس صورتحساب خود را وارد کند.
  • CardParameters.billingAddressParameters را برای تعریف فیلدهای مورد نیاز تنظیم کنید. توصیه می شود برای کاهش اصطکاک کاربران {"format":"MIN"} را تنظیم کنید.
  • آدرس کامل billingAddress یا فقط billingAddress.postalCode را برای تایید به عنوان بخشی از تراکنش پرداخت با PSP خود وارد کنید.

نمونه 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 در ارسال هشدارهای خطای سفارش مستثنی هستند.