# SubscriptionInfo 클래스 레퍼런스

> `SubscriptionInfo` 클래스 메서드를 참조하여 구독 상품 정보와 상태를 가져옵니다.

Unity IAP는 `SubscriptionInfo` 클래스를 통해 자세한 구독 제품 정보를 제공합니다.

## SubscriptionInfo 클래스 메서드##subscriptioninfo-class-methods

`SubscriptionInfo` 클래스는 제품의 구독 관련 정보를 위한 컨테이너입니다.

> **Note:**
>
> 메서드 `IsSubscribed()`, `IsExpired()`, `IsCancelled()`, `IsAutoRenewing()` 및 `GetRemainingTime()`는 현재 날짜를 사용하여 호출 시간에 계산됩니다. 즉, `SubscriptionInfo` 객체를 캐시하면 시간 경과에 따라 이러한 값이 동적으로 업데이트됩니다.

`SubscriptionInfo` 클래스에서 사용할 수 있는 메서드는 다음과 같습니다.

| 메서드                                              | 설명                                                                                                                                                                                                                                                                                  |
| :----------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `public string GetProductId()`                   | 제품의 스토어 ID를 반환합니다.                                                                                                                                                                                                                                                                  |
| `public DateTime GetPurchaseDate()`              | 상품의 구매일을 반환합니다. Apple의 경우 구매 날짜는 구독이 구매되거나 갱신된 날짜입니다. Google의 경우 구매 날짜는 구독이 원래 구매된 날짜입니다.                                                                                                                                                                                           |
| `public Result IsSubscribed()`                   | 제품이 현재 구독되었는지 여부를 나타냅니다.  Apple 앱 스토어에서 재생되지 않는 제품은 `Result.Unsupported` 값을 반환합니다. Apple 앱 스토어의 자동 갱신형 제품과 Google Play 스토어의 구독 제품은 `Result.True` 또는 `Result.False` 값을 반환합니다.                                                                                                        |
| `public Result IsExpired()`                      | 구독이 만료되었는지 표시합니다. \* Apple 앱 스토어에서 재생되지 않는 제품은 `Result.Unsupported` 값을 반환합니다. \* Apple 앱 스토어의 자동 갱신형 제품과 Google Play 스토어의 구독 제품은 `Result.True` 또는 `Result.False` 값을 반환합니다.                                                                                                          |
| `public Result IsCancelled()`                    | 구독이 취소되었는지 표시합니다.  구독이 취소되면 제품이 현재 구독되었지만 다음 청구일에 갱신되지 않습니다.  Apple의 경우 이 값은 취소 날짜에 따라 결정됩니다.  Google의 경우 자동 갱신 상태에 따라 결정됩니다.  Apple 앱 스토어에서 재생되지 않는 제품은 `Result.Unsupported` 값을 반환합니다.                                                                                             |
| `public Result IsFreeTrial()`                    | 상품이 무료 평가판 중인지 여부를 나타냅니다.  Apple 앱 스토어에서 재생되지 않는 제품은 `Result.Unsupported` 값을 반환합니다. Apple 앱 스토어의 자동 갱신형 제품과 Google Play 스토어의 구독 제품은 `Result.True` 또는 `Result.False` 값을 반환합니다.                                                                                                       |
| `public Result IsAutoRenewing()`                 | 구독이 자동 갱신 가능 여부를 나타냅니다. Apple의 경우 제품 유형, 취소 상태, 만료 상태를 기준으로 계산됩니다. Google의 경우 저장된 자동 갱신 플래그를 반환합니다.  Apple 앱 스토어에서 재생되지 않는 제품은 `Result.Unsupported` 값을 반환합니다.                                                                                                                       |
| `public TimeSpan GetRemainingTime()`             | 다음 청구일까지 남은 시간을 나타내는 TimeSpan을 반환합니다. Apple 앱 스토어 반품 `TimeSpan.Zero`의 재생 불가 제품.                                                                                                                                                                                                     |
| `public Result IsIntroductoryPricePeriod()`      | 구독이 초기 단가 기간에 있는지 표시합니다.  Apple 앱 스토어에서 재생되지 않는 제품은 `Result.Unsupported` 값을 반환합니다.  Apple 앱 스토어의 자동 갱신형 제품과 Google Play 스토어의 구독 제품은 `Result.True` 또는 `Result.False` 값을 반환합니다.                                                                                                       |
| `public TimeSpan GetIntroductoryPricePeriod()`   | 초기 가격 기간에 남은 시간을 나타내는 `TimeSpan`를 반환합니다. 초기 가격 기간 반환 `TimeSpan.Zero` 없이 구독 제품. 애플리케이션이 iOS 버전 11.2 이상, macOS 10.13.2 이상 또는 tvOS 11.2 이상을 지원하지 않는 경우 Apple 앱 스토어의 제품이 `TimeSpan.Zero`를 반환합니다.                                                                                        |
| `public long GetIntroductoryPricePeriodCycles()` | 초기 단가 주기의 수를 반환합니다.  애플리케이션이 iOS 버전 11.2 이상, macOS 10.13.2 이상 또는 tvOS 11.2 이상을 지원하지 않는 경우 Apple 앱 스토어 제품은 0을 반환합니다.                                                                                                                                                                 |
| `public string GetIntroductoryPrice()`           | 소개 단가 문자열을 반환합니다. 초기 가격이 없는 제품은 `"not available"` 값을 반환합니다. 시작 가격이 지정된 Apple 앱 스토어 제품은 `“0.99USD”` 형식의 값을 반환합니다. 초기 가격이 지정된 Google Play 제품은 `“$0.99”` 형식의 값을 반환합니다. 애플리케이션이 iOS 버전 11.2 이상, macOS 10.13.2 이상 또는 tvOS 11.2 이상을 지원하지 않는 경우 Apple 앱 스토어의 제품이 `“not available”`를 반환합니다. |
| `public DateTime GetExpireDate()`                | 제품의 다음 자동 갱신 또는 만료일을 반환합니다(자동 갱신 구독 취소 시).                                                                                                                                                                                                                                          |
| `public DateTime GetCancelDate()`                | 구독이 취소된 날짜를 반환합니다.  Apple App Store 영수증에서 취소 날짜를 반환합니다.  Google Play 스토어 지원 안 함 - `DateTime.MinValue`를 반환합니다. Google Play에서 IsCancelled()를 사용하여 취소 상태를 확인합니다.                                                                                                                       |
| `public TimeSpan GetFreeTrialPeriod()`           | 무료 평가판 기간을 반환합니다.  Google Play 스토어 제품 세부 정보에서 설정된 무료 평가판 기간을 반환합니다.  Apple App Store 지원 안 함 - `TimeSpan.Zero`를 반환합니다. 무료 평가판 상태는 `IsFreeTrial()`로 확인할 수 있습니다.                                                                                                                       |
| `public TimeSpan GetSubscriptionPeriod()`        | 구독 과금 기간을 반환합니다.  Google Play 스토어 제품 세부 정보에서 구독 기간을 반환합니다.   Apple App Store 지원 안 함 - `TimeSpan.Zero`를 반환합니다.                                                                                                                                                                       |
| `public string GetFreeTrialPeriodString()`       | 무료 평가판을 ISO8601 지속 시간 문자열로 반환합니다(예: 1주간의 "P1W").  하지만 이 메서드는 Google Play 스토어에 유용한 데이터만 반환합니다.  Apple 앱 스토어의 경우 이 값은 `null`를 반환합니다.                                                                                                                                                  |
| `public string GetSkuDetails()`                  | Google Play API 원시 JSON SkuDetails를 반환합니다. Apple 앱 스토어의 경우 이 값은 `null`를 반환합니다.                                                                                                                                                                                                      |
| `public string GetSubscriptionInfoJsonString()`  | `productId`, `is_free_trial`, `is_introductory_price_period` 및 `remaining_time_in_seconds`를 포함한 구독 데이터가 포함된 JSON 문자열을 반환합니다.  Google Play 스토어 구독 업데이트에 내부적으로 사용됩니다.                                                                                                                 |
