schedule api는 again api 를 가맹점 대신에 포트원이 대신 수행해주고 결제 결과를 가맹점측에 웹훅으로 알려주는 API 입니다.
포트원을 통해 schedule API를 활용하실 경우,
결제 결과는 설정하신 웹훅으로 보내 드리기 때문에 정기결제를 구현함에 있어 그 로직이나 과정이 복잡하지 않습니다.
정해진 일자에 단순하게 결제가 이루어지기만 하면 될 경우 schedule API를 쓰셔서 웹훅으로 받은 결제 결과의 실패/성공에 따른 처리만 하시면 됩니다.
반면, 가맹점의 정기결제 서비스 로직 전/후에 수행해야하는 특별한 로직이 있거나 정기결제가 이루어지는 과정을 자유롭게 커스터마이징 하고 싶으시다면 cronjob을 직접 수행하여 again api 를 사용하셔도 무방합니다.
포트원에서는 가맹점의 정기결제 로직이 복잡하지 않다면 schedule api를 사용하시길 권장드리고 있습니다.
schedule API의 처리 순서
1.
최초 카드정보 등록으로 빌링키 발급 및 발급된 빌링키에 customer_uid로 1:1대응 후 아임포트 내 저장
2.
결제일자가 확정되는 시점에 schedule API로 일정 / 금액 / 결제할 customer_uid 등 지정
3.
해당 시각에 처리가 완료되면 성공/실패 여부를 웹훅으로 POST요청
4.
결제 성공이면 webhook에서 크레딧 증가 후 다음 schedule등록 API추가
(실패될 경우 원하는 일자에 다시 재결제 되도록 로직을 구현해주셔야 합니다.)
날짜는 서비스 특성에 따라 다소 달라질 것 같기는 합니다만, 날짜 문제를 없애기 위해 +N day 식으로 처리를 하고 있습니다.
참고 : 웹훅에 대하여 자세히 알아보기