2

iOS 사용자가 자동 ​​갱신 가입을 구입했다고 가정 해 봅시다. NSBundle.mainBundle().appStoreReceiptURL에는 구매 및 구독 지속 여부를 확인할 수있는 디지털 영수증 종류가 표시됨을 알고 있습니다.iOS 인앱 구매 취소가 NSBundle.mainBundle()에 반영됩니까? appStoreReceiptURL

그런 다음 사용자가 구독을 취소합니다.

질문는 :

사용자가 구독을 취소

,

  1. NSBundle.mainBundle().appStoreReceiptURL는 취소가 바로 반영합니까?

NSBundle.mainBundle()이 앱에서 로컬에 저장된 내용을 가져 오기 때문에 나는 회의적입니다. 사용자가 OS 설정으로 이동하여 구독을 취소하고 Apple 서버에 알림을 보내면 Apple 서버는 앱에 어떻게 든 알립니다.

  1. 어쨌든 NSBundle.mainBundle().appStoreReceiptURL에 취소가 즉시 반영됩니다. Apple은 어떻게합니까? 아니면 취소 정보를 얻기 위해 프로토콜을 구현하는 것이 나에게 달려 있습니까?

  2. 실제로 프로토콜을 실행해야한다면 다른 앱이 앱을 실행할 때마다 실행해야합니까?

답변

2

사용자는 구독을 취소하지 않습니다. 그들은 갱신을 끄기 때문에 현재 기간이 끝나면 갱신되지 않습니다. 자동 갱신이 계속 사용 설정된 경우 새로운 인앱 구매가 다음 기간의 영수증에 추가되지만 지금은 발생하지 않으므로 앱에서 현재 활성 구독이 없다고 판단하고에 대한 액세스 권한을 삭제해야합니다. 적절한 내용/기능.

Apple은 사용자의 요청으로 가입을 취소 할 수 있습니다. 이 경우 인앱 구매 영수증 항목의 cancellation_date 필드에 값이 있으며 앱에서 구매하지 않은 것처럼 처리해야합니다.

앱은 응용 프로그램 영수증을 주기적으로 (그리고 적어도 매번 출시 할 때마다) 새로 고치고 현재 활성화 된 구독을 확인해야합니다.

+0

그렇다면 사용자가 자동 ​​갱신 가입을 취소 한 경우 영수증을 새로 고침하면 NSBundle.mainBundle(). appStoreReceiptURL에 nil이 표시됩니까? – shle2821

+1

사용자는 구독을 취소 할 수 없습니다. 그들이 애플에게 구독 취소를 요청하면 영수증의 관련 인앱 구매 항목에'cancellation_date'가 있도록 영수증이 업데이트됩니다. 'NSBundle.mainBundle(). appStoreReceiptURL'에는 영수증에 앱 구매 자체의 세부 정보가 포함되어 있기 때문에 인앱 구매가 없어도 항상 값이 있습니다. (무료 인 경우에도) – Paulw11

+0

사용자가 구독을 취소하면 영수증은 항상 거기에 – Andrea