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

# Оплата заказа на платформе AceDataCloud

> Platform API guide - Ace Data Cloud

Создаёт или обновляет платёжную сессию для заказа `Pending`. Действие оплаты обращается к платёжному каналу и может изменить статус заказа, перед вызовом необходимо подтвердить ID заказа, сумму и способ оплаты.

## Обзор интерфейса

| Пункт | Содержание |
| - | - |
| Метод | `POST` |
| URL | `https://platform.acedata.cloud/api/v1/orders/{order_id}/pay/` |
| Авторизация | Платежи с управляемым перенаправлением могут быть анонимными; другие способы требуют сессии входа или Account Token |
| Body | JSON, для неоплаченных заказов необходимо предоставить `pay_way` |

## Границы анонимной оплаты

Анонимный доступ используется для сценария, когда после открытия скопированной платёжной ссылки сессия входа была потеряна; он не требует и не должен передавать долгосрочный Account Token. Анонимный вызов:

* разрешает только настроенные на сервере способы оплаты с управляемым перенаправлением;
* фиксированно использует страницу оплаты для настольных устройств;
* не может получать заказы с нулевой стоимостью;
* ограничивается по IP и по одному заказу;
* возвращает минимальную проекцию заказа, без аккаунта, Application или внутреннего metadata.

Аутентифицированный вызывающий должен быть владельцем заказа или суперадминистратором. Способы, требующие пользовательского контекста, такие как X402 и обмен наград, не могут вызываться анонимно.

## Пример запроса

```shell theme={null}
export ORDER_ID='ID вашего заказа Pending'

curl -X POST \
  "https://platform.acedata.cloud/api/v1/orders/${ORDER_ID}/pay/" \
  -H 'Content-Type: application/json' \
  -d '{"pay_way":"Stripe"}'
```

Способы оплаты, требующие аутентификации:

```shell theme={null}
export PLATFORM_TOKEN='токен вашего аккаунта'

curl -X POST \
  "https://platform.acedata.cloud/api/v1/orders/${ORDER_ID}/pay/" \
  -H "Authorization: Bearer ${PLATFORM_TOKEN}" \
  -H 'Content-Type: application/json' \
  -d '{"pay_way":"X402"}'
```

`pay_way` использует фактические значения, поддерживаемые моделью заказа, например `WechatPay`, `AliPay`, `Stripe`, `Card`, `Airwallex`, `X402`, `PayPal`, `AppleIAP`, `Reward`, `BankTransfer`. Не каждое значение доступно для анонимных запросов или на каждом сайте.

## Описание ответа

Успешный ответ представляет собой обновлённый объект заказа, который обычно предоставляет точку входа для следующего шага через `pay_url`; разные способы оплаты также могут возвращать в контролируемых полях информацию, необходимую клиенту для продолжения оплаты. Анонимный ответ использует минимальный белый список полей, аутентифицированный владелец получает полные сведения.

Не полагайтесь на старые имена полей, такие как `payment_url`, `qr_code_url` или `payment_method`; текущий контракт Order использует `pay_url` и `pay_way`.

## Внутренняя покупка iOS

Вошедший в систему владелец заказа может передать `pay_way: "AppleIAP"`. Этот запрос обновляет ожидающий оплаты заказ согласно `metadata.apple_price` выбранного тарифа и удаляет скидки, не производит списание, не начисляет кредиты и не возвращает платёжную ссылку. Старые ожидающие оплаты заказы должны сначала завершить этот шаг, а затем инициировать нативную оплату Apple. Поддерживается только один тариф Usage с настроенными товаром Apple и ценой; неподдерживаемые тарифы или пакетные заказы возвращают `400`.

После нативной оплаты Apple отправьте `transaction_id` через `/api/v1/orders/{id}/apple-verify/`, чтобы завершить серверную проверку и начисление кредитов. Количество кредитов берётся из тарифа; сумма использует независимую предустановленную цену Apple в долларах США, без накопления скидок участника или наценок сайта, а сумма списания в местной валюте в других регионах определяется страницей подтверждения Apple.

## Ошибки и повторные попытки

* Заказ не `Pending`: возвращается `400`; не создавайте платёжную сессию повторно.
* Не предоставлен `pay_way`: для заказа с ненулевой суммой возвращается `400`.
* Анонимный вызов использует недопустимый способ или заказ с нулевой стоимостью: возвращается `403`, после входа повторите попытку от имени владельца.
* Аутентифицированный пользователь не является владельцем заказа: возвращается `403`.
* Сбой платёжного канала: не отправляйте повторно вслепую; сначала запросите сведения о заказе, убедитесь, что он всё ещё `Pending`, и затем повторите попытку.

## Связанные интерфейсы

* [Создание заказа на пополнение](https://platform.acedata.cloud/documents/platform-order-create)
* [Получение сведений о заказе](https://platform.acedata.cloud/documents/platform-order-detail)
* [Обновление статуса заказа](https://platform.acedata.cloud/documents/platform-order-refresh)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.