테스트 사이트 - 개발 중인 베타 버전입니다

포인트 중복차감 막는 방법이 있을까요? 채택완료

아미11 8년 전 조회 3,453

수고하십니다.

제가 api로 안드로이드와 연결해서 포인트 차감하는 시스템을 만들었습니다.

그런데 이게 어플에서 같은 아이디로 동시에 데이터를 전송해버리는 경우가 발생하더라고요

만약 보유 포인트가 4000포인트인데 4000포인트를 사용해서 0가 되어야 하는데 동시에 2번 들어오니까

-인지 체크를 할수가 없더라고요 그래서 사용자 보유포인트가 -4000이 되어버리는거죠

 

      $msg.="TOPUP CARD CHARGE  ".date("m/d/Y H:i:s");       $in_point=insert_point($mb['mb_id'], $chk[topup_point]*-1, $msg); 

포인트는 이렇게 차감하고 있습니다.

 

이런경우를 겪어보신분 조언좀 부탁드립니다.

 

감사합니다.

 

댓글을 작성하려면 로그인이 필요합니다.

답변 3개

채택된 답변
+20 포인트
8년 전

$rel_table 위치에 date("m/d/Y H:i"); <-- 이렇게 넣으면 분 단위로 시간이 다른 경우는 입력 되고 초 단위로는  입력 되지않게 될테니 동시에 2번 기록은 안될 것입니다

 

 

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

8년 전

function insert_point($mb_id, $point, $content='', $rel_table='', $rel_id='', $rel_action='', $expire=0, $repeat=0)

<-- 1 , 4,5,6번 파라메터가 동일하면 한번만 기록 됩니다

  

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

아미11
8년 전
감사합니다. 그런데 이게 동이한 데이터가 차감되는 시스템이라서 적용하기가 어렵더라고요
그래서 $msg.="TOPUP CARD CHARGE ".date("m/d/Y H:i:s"); 날짜부분을 넣었고요

댓글을 작성하려면 로그인이 필요합니다.

음 일단 동시에 2번 들어오는 원인을 찾으셔야 될 듯 하네요.

임시조치로는 insert 될 때 mb_id를 기준으로 체크를 한번 하시고 차감을 하셔야 겠습니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

아미11
8년 전
일단 어플쪽에서 고유값을 보내고
그걸 업데이트해서 체크하는 방법과 포인트 합산할떄 - 이면 차감 안되게 수정했습니다.
이것 말고는 딱히 생각나는게 없어서요

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인