https://www.raywenderlich.com/9257-in-app-purchases-receipt-validation-tutorial 에서 필요한 부분을 의역했습니다.


In-App Purchases: Receipt Validation Tutorial

이 튜토리얼에서는 in app purchase receipts가 어떻게 동작하는지와 사용자가 제품에 비용을 지불했는지 확인하는 방법에 대해서 배웁니다.

유료 소프트웨어는 항상 일부 사용자가 소프트웨어를 구입하지 않고 사용하거나 유료 상품에 부정적으로 접근하는 문제를 가지고 있었습니다. 영수증은 이런 구매 목록들을 확인하기 위한 도구를 제공합니다. 영수증은 판매 기록을 제공하여 제공합니다. 앱스토어는 앱스토어는 사용자가 앱을 구매하거나, 인앱 결제, 앱 업데이트를 할때마다 앱 번들에 영수증을 생성 합니다.

이 튜토리얼에서 이 영수증이 동작하고 디바이스에서 어떻게 유효성을 검증하는지 배우게 될것 입니다. 이 튜토리얼 동안 in-App Purchase 와 StoreKit과 친숙해져야 합니다. iOS 개발자 계정, 테스트할 실 디바이스, 개발자 센터 및 App Store Connect 접근 등이 필요합니다.

What Is a Receipt?

https://koenig-media.raywenderlich.com/uploads/2018/11/receipt-format.png

영수증은 앱 번들에 단일파일로 구성되어 있습니다. 이 파일은 PKCS #7 라고 불리는 포맷 입니다. 이것은 영수증에 암호화가 적용된 데이터 표준 형식 입니다. 이 컨테이너는 payload, chain of certificates 그리고 digital signature를 포함 하고 있습니다. 애플이 생성한 레시피의 유효성을 검증하기위해 certificate chain 과 digital signature를 사용합니다.

https://koenig-media.raywenderlich.com/uploads/2018/11/payload-format.png

payload는 ASN.1. 이라는 크로스 플렛폼 형식에 receipt attributes의 모음으로 구성되어 있습니다. 이 각 attributes들은 type, version, value로 구성되어 있고 이들은 영수증의 내용들을 나타냅니다. 앱은 이 attirbute의 속성을 사용하여 영수증이 device 에 유효한지, 사용자가 구입한것인지를 결정합니다.

Getting Started