UX 개선으로 추가 결제 막고 환불 문제 예방하기

개바리바리·2025년 5월 19일
post-thumbnail

문제 발생

쿠폰을 먹여 주차시간을 정산할 때 생기는 이슈 발견
1. 구매수량이 마이너스로 가는 문제
2. 기존 주차시간 넘게 할인권 초과 구매

특히 2번 같은 경우는 나중에 환불 문제까지 이어진다
애초에 이런 문제를 예방할 수 있게 인풋 제어를 하면 좋겠다고 생각했다

문제 해결

쿠폰 마이너스 막기

나는 + 버튼을 누르면 1, -버튼을 누르면 -1 인자를 전달했는데
-버튼을 누를 때 티켓 갯수가 0 이하면 코드가 실행되지 않게 해결했다

if (ticket) {
	if (amount == -1 && ticket.amount <= 0) return; // 추가 
    discountParkingTime(ticket.duration * amount);
}

쿠폰 추가 구매 막기

이건 쿠폰 추가 구매를 막는거니까 +버튼을 누를 때 주차시간이 0보다 작으면
사용자에게 경고 알림을 주며 코드가 실행되지 않게 했다

if (amount == 1 && parkingTime < 0) return alert("할인가능한 시간이 없습니다");

그리고 주차시간이 깎이며 마이너스가 되면 '주차 시간 -1은 뭐지뭐지??'
하고 사용자들이 혼란스러울 수도 있을 것 같아서

{parkingTime >= 0 ? parkingTime : 0} 시간
코드를 작성해 음수가 되면 주차 시간이 0으로 처리되게 수정했다

마무리

이렇게 인풋제어로 환불문제를 완벽히 예방했다 다만 한가지 더 걸리는 점으로는
20시간을 할인받는 방법으로 5시간할인 * 4시간 (20000원) 또는 종일권(10000원) 이렇게 있는데
둘의 가격이 다르다는 점 이것도 또 다른 환불문제로 이어질 수 있는 점

그래서 차라리 여기서 계산을 다 해주고 결제만 진행할 수 있게 할까 란 생각을 했다
그게 맞겠다 그건 추후에 진행해보기

profile
기술보다 경험 위주의 글

0개의 댓글