Biện pháp chống lừa đảo

Các tín hiệu ngăn chặn lừa đảo

Google có thể cung cấp thêm thông tin về ứng dụng của người dùng khi chúng tôi gửi SubmitOrderRequest. Bạn có thể sử dụng thông tin này để giúp ngăn chặn các giao dịch gian lận trong quá trình tích hợp.

Cách đọc các tín hiệu ngăn chặn hành vi gian lận

Khi dự án của bạn được bật để nhận các tín hiệu ngăn chặn gian lận bổ sung, tiêu đề SubmitOrderRequest sẽ chứa thông tin về ứng dụng khách của người dùng thay vì máy chủ của Google. Tiêu đề của yêu cầu sẽ chứa các thông tin sau:

  • Địa chỉ IP: Địa chỉ IP của ứng dụng của người dùng được cung cấp dưới dạng IP đầu tiên trong trường x-forwarded-for. Địa chỉ này có định dạng IPV4 hoặc IPV6 do cấu hình ứng dụng của người dùng xác định.

  • Tác nhân người dùng: Chuỗi tác nhân người dùng được lưu trữ trong trường user-agent có hậu tố "Google-ActionsOnGoogle/1.0". Xin lưu ý rằng trường này có thể không điền sẵn tuỳ thuộc vào thiết bị của người dùng và việc họ có đặt hàng bằng giọng nói hay không.

Dưới đây là một đoạn tiêu đề HTTP SubmitOrderRequest khi tính năng chống gian lận được bật:

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

Nếu thông tin khách hàng của người dùng không đủ để bạn ngăn chặn hành vi gian lận, hãy liên hệ với đầu mối liên hệ của bạn tại Google để thảo luận về các giải pháp thay thế.

Cách xử lý giao dịch gian lận trong quá trình thực hiện đơn hàng

Dựa trên địa chỉ IP và thông tin về tác nhân người dùng được cung cấp trong SubmitOrderRequest, hãy sử dụng thuật toán ngăn chặn gian lận nội bộ để xác định xem giao dịch có hợp lệ hay không.

Nếu giao dịch có vẻ là giao dịch gian lận, hãy phản hồi bằng orderState của REJECTEDrejectionInfo của INELIGIBLE, cùng với nội dung mô tả lỗi thích hợp trong SubmitOrderResponseMessage.

Nếu giao dịch có vẻ hợp pháp, hãy xử lý đơn hàng như bình thường.

Xác thực địa chỉ thanh toán

Để giảm thiểu hành vi gian lận, bạn có thể đưa địa chỉ thanh toán vào yêu cầu giao dịch thanh toán vào PSP của mình. billingAddress được trả về trong SubmitOrderRequestMessage.

Ví dụ về 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\"}}}]}"
}

Nếu PSP trả lời rằng địa chỉ hoặc mã bưu chính không chính xác, bạn nên trả về phản hồi SubmitOrderResponseMessage tương tự.

Ví dụ về phản hồi

  {
    "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"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            ]
        }
    }
}
      

Việc trả về loại rejectionInfo PAYMENT_DECLINED sẽ hiển thị một thông báo và cho phép người dùng cập nhật địa chỉ thanh toán hoặc chọn một phương thức thanh toán khác. PAYMENT_DECLINED lỗi được loại trừ trong mục Cảnh báo lỗi khi gửi đơn đặt hàng.