사기 방지 신호
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
오류는 주문 오류 제출 알림에서 제외됩니다.