欺诈防范

欺诈防范信号

在发送 SubmitOrderRequest 时,Google 可以提供其他用户客户端信息。您可以使用这些信息来帮助防止集成中发生欺诈性交易。

如何解读欺诈防范信号

当您的项目启用以接收更多防欺诈信号时,SubmitOrderRequest 标头将包含与用户客户端(而非 Google 服务器)相关的信息。请求标头将包含以下信息:

  • IP 地址:用户客户端的 IP 地址可用作 x-forwarded-for 字段中的第一个 IP 地址。此地址采用 IPV4 或 IPV6 格式,具体取决于用户客户端的配置。

  • 用户代理:用户代理字符串存储在 user-agent 字段中,带有“Google-ActionsOnGoogle/1.0”后缀。请注意,此字段可能不会填充,具体取决于用户的设备以及他们是否通过语音下单。

以下是启用欺诈防范功能时的 SubmitOrderRequest HTTP 标头代码段:

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 中提供的用户 IP 地址和用户代理信息,使用您的内部防欺诈算法来确定交易是否合法。

如果交易似乎是欺诈性交易,请在 SubmitOrderResponseMessage 中将 orderState 设置为 REJECTED 并将 rejectionInfo 设置为 INELIGIBLE,并提供适当的错误说明。

如果交易似乎合法,请照常处理订单。

账单邮寄地址验证

为减少欺诈行为,您可以在向 PSP 发出的付款交易请求中添加结算地址。billingAddress 会在 SubmitOrderRequestMessage 中返回。

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 错误。