2014-07-11 2 views
1

중복 지불 제출을 방지하기 위해 지불 처리를 처리하는 가장 좋은 방법을 알아 내려고하고 있습니다. 저는 Balanced Payments와 함께 PHP (특히 CakePHP 2.3.8)를 사용하여 지불 처리를 처리하고 있습니다. 누군가 시도 뭔가 걱정 같은PHP 용 지불 대기 시스템

ip.address.here - [08/Jul/2014:15:03:12 -0400] "GET/HTTP/1.1" 302 320 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)" 
ip.address.here - [08/Jul/2014:15:03:12 -0400] "GET/HTTP/1.1" 302 320 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)" 
ip.address.here - [08/Jul/2014:15:03:12 -0400] "GET/HTTP/1.1" 302 320 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)" 
ip.address.here - [08/Jul/2014:15:03:13 -0400] "GET/HTTP/1.1" 302 320 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)" 

나는 모든 보통 워드 프레스 또는 phpMyAdmin에 관련된 무언가를위한 초 이내에 제출 여러 요청을 했어

내 서버 로그에 나타났습니다, 비슷한 (우발적이든 아니든)하지만 지불합니다. "해커"또는 시스템의 딸꾹질과 관계없이 여러 요청이 매우 빠르게 발생하는 위와 같은 상황을 처리하는 가장 효과적인 방법은 무엇입니까? this one, speficially for CakePHP과 같은 큐 시스템을 사용하면 중복 제출을 감지하기 위해 이전에 처리 된 항목을 어떻게 추적합니까?

3 개의 입력 대기열이 있습니다. 항목 1을 처리하는 동안 항목 2와 항목 3이 중복 정보가 아닌지 확인합니다. 그런 경우 삭제하면됩니까?

답변

0

내 경험상 트랜잭션이 완료되거나 취소 될 때까지 동일하게 유지되는 세션 식별자 만 저장하면됩니다. 일반적으로 지불 게이트웨이는 해당 세션 식별자를 사용하여 트랜잭션을 복제하지 않는지 확인합니다.

또한 Payment Gateway는 중복 된 카드 정보 (동일한 카드 정보, 짧은 기간 동안 동일한 금액)를 감지하고 오류를 다시 알려 주어 어떤 일이 발생했는지 알려줍니다.

그래서 고유 ID를 추적하고 트랜잭션이 완료되면 재설정하십시오. 쇼핑백을 보관하고 만료되는 경우 트랜잭션 ID가 동시에 만료되도록 설정하십시오. 마지막으로 사용자가 두 번 이상 탭하지 않도록 자바 스크립트로 제출 버튼을 비활성화하십시오.