빌링키 구독 결제 구현 성공(3)

JungHoon Han·2023년 3월 6일
0

내일배움캠프

목록 보기
78/78

아임포트 구독형 정기결제 구현

몇 일을 고생하고 헤매다가 드디어 구현에 성공했다.
인터넷에 나와있는 아임포트 정기결제 관련 문서를 정말 빠짐없이 찾아본거같다.
내가 생각했던 결제 로직은
1. FE에서 IMP.request_pay() 결제 성공 후 콜백함수로 BE /complete api 호출
2. /complete 에서 결제정보 DB에 저장 후 다음 스케줄 예약
3. 예약한 시간에 결제 완료 후 /webhook api 호출 (여기서 또 스케줄 예약?)
이런 로직을 생각했었다.
하지만 결제를 하면 IMP.request_pay() -> /webhook -> /complete 순서로 실행되었으며, 그러다보니 DB에 같은데이터가 2개가 저장이 됐다.
결국 아임포트에 문의메일을 보냈고, 돌아온 답변은 웹훅을 사용한다면 모든 API를 웹훅을 통해 처리하라는 내용이였다.

그리고 다음 결제일을 알려주는 Unix 타임스탬프는 10자리로 작성되어야 하는데 나는 잘못된 함수를 써서 14자리정도 되는 시간을 보내고있으니 계속 스케줄링이 되지 않았었다.

구독 취소는 아주 쉬웠는데, 아임포트 API 에 가보면
POST /subscribe/payments/unschedule : 비인증 결제요청예약 취소 api가 있는데
결제하는것처럼 구독취소 api랑 FE에서 api로 보내주는 코드를 작성해주면 된다.
FE에서 넘겨주는 인자값에따라 customer_uid에 대한 결제예약정보를 일괄취소 할 수도, 건당 취소 할 수도 있다.

막상 다 해놓고 보니 참 별거아닌거 같은데 약 5일동안 정말 개고생한거같다^^..
그래도 내가 하고싶었던 구독형 서비스를 할 수 있어서 기분이 좋다.

profile
Node.js 주니어 개발자

0개의 댓글