인앱 결제 환불 정리
#인앱결제
Written by Dylan2023년 9월 23일 · 1 min read 시리즈의 글 (19개)
- AWS - EBS 용량 관리
- OpenTelemetry - 메트릭
- OpenTelemetry 시그널 - 분산 추적
- OpenTelemetry - 컨텍스트 전파
- OpenTelemetry - 파이프라인, 리소스
- OpenTelemetry
- 관찰 가능성 엔지니어링 & 제 3자 결제 - 애플
- 제 3자 결제 - 구글
- PortOne - 웹훅
- PortOne - 인증결제
- PortOne - 비 인증결제 정리
- 인앱 결제 환불 정리
- 인앱 결제 정리
- SRE (Site Reliability Engineering) 개념
- SQL - INTERSECT
- SQL - UNION / UNION ALL
- MongoDB.local Seoul 짧은 참가 후기
- OLTP vs OLAP
- TypeORM orIgnore 메소드 Upsert시 중복 데이터 INSERT 검증 방식 변경
인앱 결제 - 환불 플로우
기존 ios 14 버전 이전 - 앱 UI에서 환불 요청 불가
- 사용자가 애플측에 직접 CS로 환불 문의한다.
- 애플에서 자체적으로 체크하여 사용자에게 환불
- 애플 서버에서 애플리케이션 서버로 notifcation 발송 (웹 훅 방식)
- 애플리케이션 서버에서 notification 수신 용도의 api 엔드포인트가 필요하다
- 애플 개발자에서 noti 수신용 엔드포인트 등록이 필요하다.
ios 15 버전 이후 - 앱 UI 상에서 환불 요청 가능
- 앱에서 환불 요청 메소드를 호출해서 환불 요청
- 환불 요청 UI를 ios 단에서 보여준다.
- 환불 버튼 관련 로직은 ios에서 처리 - 최대 48시간 소요
- 애플 서버에서 애플리케이션 서버로 notification을 총 2번 발송
- 환불 요청이 성공적으로 접수되었을 때
- notification_type: CONSUMPTION_REQUEST
- 환불이 완전히 처리완료 상태일때
- notification_type: REFUND
애플 notification 웹훅 세팅시 유의점
- notification을 받는 api 서버는 HTTPS 설정이 필수적이다.
- noti 수신시 notificationType과 subtype 정보를 활용해서 애플리케이션 서버에서 핸들링이 필요하다.