धोखाधड़ी से बचाव

धोखाधड़ी से बचाव के सिग्नल

SubmitOrderRequest भेजने पर, Google उपयोगकर्ता के क्लाइंट की ज़्यादा जानकारी दे सकता है. इस जानकारी का इस्तेमाल करके, अपने इंटिग्रेशन में धोखाधड़ी वाले लेन-देन को रोका जा सकता है.

धोखाधड़ी रोकने के सिग्नल को पढ़ने का तरीका

जब आपके प्रोजेक्ट को धोखाधड़ी से बचाने के लिए ज़्यादा सिग्नल पाने की सुविधा चालू की जाती है, तो SubmitOrderRequest हेडर में Google के सर्वर के बजाय, उपयोगकर्ता क्लाइंट की जानकारी होगी. अनुरोध हेडर में यह जानकारी शामिल होगी:

  • आईपी पता: उपयोगकर्ता क्लाइंट का आईपी पता, x-forwarded-for फ़ील्ड में पहले आईपी के तौर पर उपलब्ध होता है. यह पता, उपयोगकर्ता क्लाइंट के कॉन्फ़िगरेशन के हिसाब से, IPV4 या IPV6 फ़ॉर्मैट में होता है.

  • उपयोगकर्ता एजेंट: उपयोगकर्ता एजेंट स्ट्रिंग को user-agent फ़ील्ड में "Google-ActionsOnGoogle/1.0" सफ़िक्स के साथ सेव किया जाता है. ध्यान दें कि उपयोगकर्ता के डिवाइस और यह बात कि उन्होंने वॉइस कमांड की मदद से ऑर्डर दिया है या नहीं, इनके आधार पर हो सकता है कि यह फ़ील्ड अपने-आप जानकारी से भर न जाए.

धोखाधड़ी से बचाव की सुविधा चालू होने पर, 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 प्रतिनिधि से संपर्क करें.

ऑर्डर पूरा करने के दौरान धोखाधड़ी वाले लेन-देन को मैनेज करने का तरीका

SubmitOrderRequest में दिए गए उपयोगकर्ता के आईपी पते और उपयोगकर्ता-एजेंट की जानकारी के आधार पर, धोखाधड़ी से बचाने वाले अपने इंटरनल एल्गोरिदम का इस्तेमाल करके यह तय करें कि लेन-देन मान्य है या नहीं.

अगर लेन-देन धोखाधड़ी वाला लगता है, तो REJECTED के लिए orderState और INELIGIBLE के लिए rejectionInfo का जवाब दें. साथ ही, SubmitOrderResponseMessage में गड़बड़ी के बारे में सही जानकारी दें.

अगर लेन-देन सही लगता है, तो ऑर्डर को सामान्य तरीके से प्रोसेस करें.

बिलिंग पते की पुष्टि

धोखाधड़ी को कम करने के लिए, अपने पीएसपी को पेमेंट ट्रांज़ैक्शन के अनुरोध में बिलिंग पता शामिल किया जा सकता है. billingAddress को SubmitOrderRequestMessage में दिखाया जाता है.

  • उपयोगकर्ता को अपना बिलिंग पता डालने के लिए कहने के लिए, चेकआउट रिस्पॉन्स में CardParameters.billingAddressRequired को true पर सेट करें.
  • ज़रूरी फ़ील्ड तय करने के लिए, CardParameters.billingAddressParameters सेट करें. हमारा सुझाव है कि उपयोगकर्ताओं को आने वाली समस्याओं को कम करने के लिए, {"format":"MIN"} को सेट करें.
  • अपने पीएसपी के साथ पेमेंट लेन-देन के हिस्से के तौर पर पुष्टि करने के लिए, 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\"}}}]}"
}

अगर पीएसपी यह जवाब देता है कि पता या पिन कोड गलत है, तो आपको 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 गड़बड़ियां शामिल नहीं की जाती हैं.