> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pnlight.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Интеграция App Store

> Добавьте issuer ID App Store Connect, общий секрет и ключ покупок, а затем настройте App Store Server Notifications для приложения iOS.

Интеграция App Store позволяет PNLight проверять покупки iOS и обрабатывать App Store Server Notifications. Настройте ее для каждого проекта PNLight, который получает рабочие или sandbox-покупки iOS.

## Предварительные требования

* Доступ к App Store Connect с ролью Admin или Account Holder.
* Проект PNLight с правильными bundle ID iOS и App Store ID.
* Хотя бы одна покупка или подписка в App Store Connect.

## Открытие настроек AppStore в PNLight

<Steps>
  <Step title="Откройте Integration">Откройте **Integration** на панели проекта.</Step>
  <Step title="Найдите AppStore">Прокрутите страницу до раздела **AppStore**.</Step>
  <Step title="Скопируйте URL уведомлений">Скопируйте **AppStore Connect notification URL**. После сохранения учетных данных вы добавите его в App Store Connect.</Step>
</Steps>

## Создание ключа покупок в приложении

Ключ покупок — закрытый ключ `.p8` из App Store Connect. PNLight использует его для проверки покупок StoreKit 2, декодирования App Store Server Notifications и восстановления истории подписок.

<Steps>
  <Step title="Откройте App Store Connect">Войдите в App Store Connect и откройте **Users and Access**.</Step>
  <Step title="Откройте интеграции">Откройте **Integrations**, затем **In-App Purchase**.</Step>
  <Step title="Создайте ключ">Создайте ключ покупок и скачайте файл `.p8`.</Step>
  <Step title="Скопируйте issuer ID">Скопируйте issuer ID с той же страницы.</Step>
</Steps>

<Warning>Apple позволяет скачать ключ `.p8` только один раз. Храните его в безопасном месте и не переименовывайте перед загрузкой в PNLight.</Warning>

## Сохранение учетных данных в PNLight

В разделе **Integration → AppStore** заполните поля:

| Поле                    | Что указать                                                                             |
| ----------------------- | --------------------------------------------------------------------------------------- |
| Issuer ID               | Issuer ID из **Users and Access → Integrations → In-App Purchase** в App Store Connect. |
| App Store shared secret | Общий секрет приложения или основной общий секрет для проверки устаревших receipt.      |
| In-App Purchase Key     | Скачанный ключ покупок `.p8`. Сохраните исходное имя файла.                             |

После ввода issuer ID и общего секрета нажмите **Save AppStore settings**. Загрузите файл `.p8` кнопкой **Upload \*.p8**.

## Настройка серверных уведомлений

App Store Server Notifications позволяют PNLight получать данные о продлениях, отменах, возвратах, повторных попытках оплаты и других изменениях подписки, не дожидаясь открытия приложения.

<Steps>
  <Step title="Скопируйте URL PNLight">В **Integration → AppStore** скопируйте **AppStore Connect notification URL**.</Step>
  <Step title="Откройте приложение">В App Store Connect откройте **My Apps** и выберите приложение iOS этого проекта.</Step>
  <Step title="Откройте App Information">Найдите раздел **App Store Server Notifications**.</Step>
  <Step title="Вставьте URL">Укажите URL PNLight в полях **Production Server URL** и **Sandbox Server URL**.</Step>
  <Step title="Выберите версию 2">Если App Store Connect запрашивает версию, выберите **Version 2**.</Step>
  <Step title="Сохраните изменения">Сохраните настройки App Store Connect.</Step>
</Steps>

<Note>Если раздел App Store Server Notifications отсутствует, создайте для приложения хотя бы одну покупку или подписку и проверьте снова.</Note>

## Проверка перед тестированием

* Файл `.p8` относится к той же учетной записи App Store Connect.
* Bundle ID соответствует приложению с SDK.
* App Store ID соответствует карточке приложения.
* URL уведомлений скопирован из того же проекта PNLight.
* URL сохранен для рабочей и sandbox-среды.
* App Store Server Notifications используют версию 2.

<Note>Изменения App Store могут применяться к sandbox- и рабочим событиям не сразу. После сохранения настроек проверьте интеграцию новой sandbox-покупкой.</Note>
