2013-07-22 2 views
1

PHP 및 HTML/자바 스크립트를 사용하여 웹 사이트에 디지털 상품 용 Google 월렛을 구현하고 있습니다.Google 월렛 : success_handler에 주문 ID를 포함하는 방법

Google은 postback.php가 200/ok로 응답하고 주문 ID를 출력하는 데 10 초 정도 대기합니다. 이러한 일이 발생하면 신용 카드로 청구하고 success_handler 함수를 호출합니다. 그러나 10 초 동안 응답이 없으면 트랜잭션을 취소하고 failure_handler 기능을 트리거합니다.

저는 서버가 느리게 작동하지 않도록 보호하고 success_handler가 호출 된 경우에만 디지털 제품을 제공하려고합니다. 사기를 방지하기 위해 주문 ID가 올바른지 (successhandler가 클라이언트 측이기 때문에) 확인해야합니다.

내 시스템에서 확인할 수 있도록 success_handler에 거래의 주문 ID를 어떻게 받습니까? 그리고 모든 것이 일치하여 돈을 받고 디지털 상품을 배달했는지 확인해야합니까?

답변

2

사기를 방지하기 위해 성공 처리기를 호출하는 트랜잭션이 서버에 해당하는 포스트 백 호출과 일치하는지 서버에서 확인해야합니다.

두 콜백에서 반환 한 주문 ID와 일치해야합니다. 순서 이드 ("응답"에서 -> "ORDERID")는 JWT의 일부는 성공 핸들러 또는 서버 포스트 백에 반환됩니다

https://developers.google.com/commerce/wallet/digital/docs/jsreference#successhandler

+0

딱! 그래서 성공/실패 처리 함수에는 필요한 모든 정보 (특히 주문 ID 또는 오류 유형)를 저장하는 결과 매개 변수'success_handler = function (result)'가 포함됩니다. 거기에서'result [ 'request'] ''sellerData '''뿐만 아니라'result [ 'response'] ''orderId '''를 호출 할 수 있습니다. 말이된다! :-) 많이 고마워요 – olli

+0

당신이 실패 처리기에 대한 정보를 준 링크가 꽤 정확하지 않다고 믿습니다. 이 문서에서 말하는'failure_handler = function (result)'는'result [ 'request'] [ 'sellerData']'와'result [ 'response'] [ 'errorType']'를 줄 것입니다. 이후는 정확하지만 판매자 데이터와 해당 오브젝트의 "계층"에있는 값은 result [ 'request'] [ 'request'] [ 'price']'(하나의 추가 'request'계층)에 있습니다. 아니면 내가 잘못 읽은거야? – olli

관련 문제