不正行為防止シグナル
Google は SubmitOrderRequest
を送信する際に、ユーザー クライアントの追加情報を提供できます。この情報は、統合での不正な取引を防ぐのに役立ちます。
不正行為防止シグナルの読み方
プロジェクトで不正行為防止シグナルの追加の受信が有効になっている場合、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 アドレスとユーザー エージェント情報に基づいて、内部の不正行為防止アルゴリズムを使用して、取引が正当なものかどうかを判断します。
取引が不正行為と思われる場合は、orderState
を REJECTED
、rejectionInfo
を INELIGIBLE
にして、SubmitOrderResponseMessage
に適切なエラーの説明とともに応答します。
取引が正当なものと思われる場合は、通常どおり注文を処理します。
請求先住所の確認
不正行為を減らすために、PSP への支払い取引リクエストに請求先住所を含めることができます。billingAddress は SubmitOrderRequestMessage
で返されます。
- ユーザーに請求先住所の入力を要求するには、購入手続きのレスポンスで CardParameters.billingAddressRequired を
true
に設定します。 - 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
エラーは、注文エラー アラートの送信の対象外です。