몇몇 기업을 제외하고는, 유저가 구글 또는 애플에 요청하여 결제를 임의로 환불 할 수 있다.
서비스에서는 이러한 임의 환불 시 별도 처리가 필요하다.
구글 플레이의 voided purchases는 자료가 많으나 애플은 딱 이거만 보면 되겠다 할 자료가 없었다.
이 글도 딱 이거만 보면 되겠다 할 자료는 아니고, 검색하다가 못 찾고 실전에서 알게된 부분을 정리한다.
준비운동은 다른 자료에서 하는 게 좋을 것 같다.
실제 유저 임의 환불이 일어나면 Apple Server Side Push URL 로 입력한 서버에 아래와 같은 json요청이 온다.
{ "notification_type": "REFUND", "bid": "$PACKAGE_NAME", "password": "...", "latest_receipt_info": { "original_transaction_id": "$TRANSACTION_ID", "product_id": "$PRODUCT_NAME", "cancellation_reason": "0", // 사유. 앱스토어에 환불 요청 시 유저가 선택한 사유. 무엇이 됐든 임의 환불이라고 볼 수 있다. "in_app_ownership_type": "PURCHASED" }}
이 외에도 이전 내역 등도 있으나, 당장 필요한 내용은 위와 같다.
$TRANSACTION_ID 는 영수증 아이디이다.