Настройка согласия пользователя и параметров возврата через API
Adapty Refund Saver помогает автоматически и эффективно обрабатывать запросы на возврат средств из App Store компании Apple.
По умолчанию Refund Saver всегда просит Apple отклонить запрос пользователя на возврат. Вы можете изменить это поведение по умолчанию для всех пользователей в дашборде Adapty или настроить его для конкретного пользователя через дашборд, Adapty SDK или серверный API, как описано ниже.
Для использования Refund Saver необходимо получить согласие пользователя на передачу его данных компании Apple. Согласие пользователя можно записать через Adapty SDK или серверный API, как показано ниже.
Метод и эндпоинт
POST https://api.adapty.io/api/v2/server-side-api/purchase/profile/refund-saver/settings/
Пример запроса
Плейсхолдеры:
<YOUR_CUSTOMER_USER_ID>: Уникальный идентификатор пользователя в вашей системе.<YOUR_SECRET_API_KEY>: Ваш секретный API-ключ для авторизации.
Параметры
| Параметр | Тип | Обязательный | Nullable | Описание |
|---|---|---|---|---|
| custom_preference | String | Нет | Да | Устанавливает предпочтение по возврату для конкретного пользователя. Возможные значения: – grant: одобрять каждый запрос на возврат – no_preference: не давать никаких рекомендаций |
| consent | Boolean | Нет | Да | Фиксирует, дал ли пользователь согласие на передачу своих данных. – True означает, что при получении запроса на возврат встроенной покупки вы можете передать Apple информацию о пользователе |
Успешный ответ: 200: OK
| Параметр | Тип | Описание |
|---|---|---|
| profile_id | String | Идентификатор профиля пользователя. |
| consent | Boolean | Определяет, дал ли пользователь согласие на передачу своих данных. |
| custom preference | String | Предпочтение по возврату средств. |
Пример успешного ответа
{
"profile_id": "e5aab402-b1bd-4039-b632-57a91ebc0779",
"settings": {
"consent": true,
"custom_preference": "no_preference"
}
}
Ошибки
400: Bad request
profile_does_not_exist
Запрос завершился ошибкой, потому что профиль из заголовка запроса не найден. Проверьте, нет ли опечаток в profile_id или customer_user_id, указанных в заголовке запроса, и убедитесь, что они относятся к правильному приложению.
Тело
| Параметр | Тип | Описание |
|---|---|---|
| errors | Object |
|
| error_code | String | Краткое название ошибки. Возможное значение: profile_does_not_exist. |
| status_code | Integer | HTTP-статус. Всегда 400. |
Пример ответа
Профиль не найден
{
"errors": [
{
"source": "non_field_errors",
"errors": [
"Profile not found"
]
}
],
"error_code": "profile_does_not_exist",
"status_code": 400
}
401: Unauthorized
Запрос не выполнен из-за отсутствующей или неверной авторизации. Проверьте страницу Авторизация, уделив особое внимание Authorization header.
Запрос также не выполнен, так как указанный профиль не найден.
Body
| Параметр | Тип | Описание |
|---|---|---|
| errors | Object |
|
| error_code | String | Короткое название ошибки. Всегда not_authenticated. |
| status_code | Integer | HTTP-статус. Всегда 401. |
Пример ответа
{
"errors": [
{
"source": "non_field_errors",
"errors": [
"Authentication credentials were not provided."
]
}
],
"error_code": "not_authenticated",
"status_code": 401
}
См. также: