[WWDC Video Study] What’s new with in-app purchase - Refund Notification
Link
developer.apple.com/videos/play/wwdc2020/10661/?time=551
What’s new with in-app purchase - WWDC 2020 - Videos - Apple Developer
Create a great in-app purchase experience for your iPhone, iPad, Mac, and Apple Watch apps. Discover how to handle refunds, integrate new...
developer.apple.com
45분정도 되는 영상이다.
여기서는 In-app purchase 에서의 업데이트 사항들을 알려주는데
크게 Server의 업데이트와 StoreKit의 업데이트가 있다.
번역 & 이해 하려고 하다보니 10분짜리 파트인데 거의 2시간 걸림..ㅠ
Server 업데이트
환불, 환불되는 거래 처리방법
이전의 처리 방법
사용자가 포인트를 구입함
→ 실수로 구입한거라 애플에 지원 요청
→ 애플에서 환불 처리해줌
→ 환불되어야할 포인트가 남아있어서 사용자가 개발자에게 연락을 함
→ 애플이 포인트 환불 사실을 모르는경우 어떻게 대응해야할지 결정이 어려움
환불된 구매를 관리하는 것의 중요성
환불은 인정하지만 고객이 포인트를 계속 가지고 있거나 개발자가 다시 회수할 수 있다.
→ 애플이 콘텐츠에 대한 환불을 관리하는 새로운 방법을 제공하기 위해 노력하는 이유
환불된 구매를 관리할 수 있는 능력을 갖추는 것은 중요하다.
가장 중요한 것은 개발자가 적절하다고 생각하는 대로 행동을 취할 수 있도록 개발자에게 통제권을 준다.
- 고객에게 메세지를 보내거나 필요한 경우 포인트를 다시 가져간다.
- 애플로부터 환불 받은 고객이 포인트를 유지하려는 등 포인트의 남용 가능성을 처리할 수 있다.
- 이전 같은 문제가 있던 고객의 문제를 신속하게 해결할 수 있다.
- 게임의 경우 게임 내 경제도 관리할 수 있어 환불에 따른 파장이 있는만큼 모든 플레이어가 공정하게 게임 플레이를 할 수 있다.
애플에서는 위 이유와 앱에서 구입한 제품에 대한 환불을 관리할수 있길 원하기 때문에 앱스토어 서버 알림과 자동 재생 가능 구독 이외의 콘텐츠 유형에 대한 첫번째 알림을 제공한다.
환불 통지
-
애플 측에 정보를 요구할 필요가 없다
-
상태 변경의 경우 json포스트로 즉시 통보되고, http ok를 반환받지 못할 경우 3번까지 재시도 한다
-
자동 갱신 구독에 대한 앱스토어 서버 알림이 이미 수신되고 있는 경우 추가 작업이 거의 없이 다른 콘텐츠 유형에 대한 새 환불 알림이 표시된다.
-
취소된 거래가 포함된 업데이트된 통합 영수증을 개발자에게 보내주기 때문에 레코드를 업데이트 할 수 있다.
-
이 솔루션은 플랫폼에서 비즈니스를 성장시킬 때 확장이 가능하다.
-
따라서 모든 콘텐츠 유형에 대한 목표는 앱스토어 서버 알림을 통해 환불된 구매에 대한 정보를 얻을 수 있도록 하는것
-
소모품, 비 소모품 및 비갱신 제품의 경우 새 환불 통지를 받게 된다.
구독의 경우 취소 알림을 계속 받는다. 이전에 구독해본 적이 없고 몇 단계로 할 수 있다면 앱스토어 서버 알림을 활성화 하는 것은 간단하다
- 알림과 앱스토어 커넥트를 위해 원하는 엔드 포인트를 설정한다
- 개발자 문서에 설명된 대로 엔드포인트가 앱 전송 보안 요구 사항을 충족하는지 확인을 한다.
앱스토어 커넥트서비스 하는 앱의 앱 정보 - 일반 정보를 보면 App Store 서버알림 URL이 있다.
-> 추가 정보: help.apple.com/app-store-connect/#/dev0067a330b
원하는 엔드포인트를 여기 입력하면 알림 보낼 곳을 알 수 있다.
엔드 포인트에서 보안 요구 사항을 충족하면 즉시 알림을 받기 시작할 수 있다.
환불 알림
소모적, 비 소모적, 필요하지 않은 구독이 앱에서 환불될 때, 그 구매에 대해 고객에게 환불을 발행한 후 개발자에게 알림을 보낼 것이다.
알림에서는 고객이 이미 구매에 대해 알고있는 고객 전용 정보를 제공하지 않기 때문에 개인정보 보호방식으로 구현되어있다 < 개인정보는 안준다는 이야기
환불 알림은 실시간으로 보내지기 때문에 앱스토어 알림을 받고있다면 염두하고, 페이로드에서 유의할 사항이 있다.
알림을 받았을때 사용자가 어떤 거래를 환불했는지 알기위해 original_transcaion_id를 찾아야 한다.
언제 환불했는지 알 수 있는 취소 날짜와 취소 사유. 취소 사유는 0 or 1의 값을 가질 수 있으며, 1의 값은 사용자가 조사가 가능한 앱 내 문제로 인해 고객이 환불을 요청했음을 표시할 수 있다.
또한 입찰을 확인하고 통지받은 앱과 제품을 확인할 수 있는 제품을 확인해라. < 뭔소린지
이 필드는 앱스토어 서버 알림 페이로드 안의 "unified_receipt"객체와 "latest_receipt_info" 섹션에서 확인할 수 있다. "bid"는 최상단에 위치하고 있다.
payload 구성
- password
- shared sceret for the app, use to verify it's from Apple
- 페이로드가 애플의 것임을 확인하고 신뢰할 수 있음
- bid
- bundle identifier for your app
- 어떤 앱에서 환불 받았는지 알기위함
- unified_receipt
- unified receipt object, like /verifyReceipt response
- latest_receipt_info
-
array of 100 latest transactions
-
환불 거래에 대한 정보
-
앱에 대한 100가지 최신 거래와 취소 날짜, 취소이유, 거래 ID, 상품 ID가 포함되어 있다.
-
서버 통신 이후의 환불 처리 방식
이전까지 애플에서 환불 결정 후 개발자에게 환불 통지를 보낼 것이다.
고객이 게임 내 보상 등 추가 지원을 요청할 경우 구매가 환불된 사실을 알고 앱에서 인앱메세지를 제공하는 등 적극적인 조치를 취할 수 있다.
중간-심각에 이르기 까지 콘텐츠 유형에따라 취할 수 있는 여러 조치가 있다.
모든 콘텐츠 유형에 대해 환불 모니터링에 사용할 수 있다.
앱 내 메세징 및 환불된 구매에 대한 액세스 제한,
환불 알림을 서버로 보내므로 필요한 경우 플랫폼 간 액세스를 제한할 수 있다.
소모품의 경우 앱 내 통화 잔액을 차감하는 것과 같은 추가적인 조치가 있다.