ОКНА
Секундочку…
Вся справка

Подключение PayPal

PayPal — оплата для международных клиентов: со счёта PayPal или картой. Деньги поступают напрямую на ваш счёт PayPal — ОКНА в расчётах не участвуют и комиссию не берут, вы платите только комиссию PayPal.

Валюты — доллары (USD) и евро (EUR). В интерфейсе PayPal лежит в блоке «Международные» (€ / $), и прямо под формой написано: «PayPal поддерживает USD и EUR. Платежи в RUB недоступны». Рублёвую запись через PayPal оплатить нельзя — для рублей подключите российский способ оплаты.

Что понадобится

  1. Бизнес-аккаунт PayPal, принимающий платежи.
  2. Client ID и Client Secret — из PayPal Developer Dashboard: Apps & Credentials → вкладка Live (или Sandbox для тестов) → ваше приложение.
  3. Webhook ID — идентификатор эндпоинта уведомлений; появляется, когда вы добавите адрес уведомлений в том же приложении (шаг 2). Поле обязательное — без него ОКНА не смогут проверить уведомление PayPal и не дадут сохранить карточку.
  4. Услуга с ценой в евро или долларах — иначе PayPal не появится на странице оплаты.

Реквизиты Live и Sandbox — разные. Ключи песочницы в боевом режиме не работают и наоборот.

Шаг 1. Скопируйте адрес уведомлений из ОКОН

  1. Откройте Настройки → Приём оплаты.
  2. В блоке «Международные» выберите PayPal.
  3. Внизу формы, в блоке «Webhook URL для кабинета провайдера», скопируйте адрес — он персональный, вида:
https://okna.one/api/public/payments/webhook?provider=paypal&org=<ваш id>

Копируйте целиком, вместе с частью &org=….

Шаг 2. Добавьте уведомления в PayPal

  1. В PayPal Developer Dashboard откройте своё приложение (Live или Sandbox — тот режим, который будете использовать).
  2. В разделе Webhooks нажмите Add Webhook и вставьте адрес из шага 1.
  3. Отметьте события, по которым ОКНА списывают и подтверждают оплату:
    • CHECKOUT.ORDER.APPROVED — главное: по нему ОКНА списывают деньги на сервере сразу после того, как клиент подтвердил платёж, не дожидаясь его возврата в браузере;
    • CHECKOUT.ORDER.COMPLETED;
    • PAYMENT.CAPTURE.COMPLETED.
  4. Сохраните и скопируйте Webhook ID созданного эндпоинта.

Шаг 3. Введите реквизиты в ОКНА

  1. Вернитесь в ОКНА → Настройки → Приём оплаты → PayPal.
  2. Заполните поля:
    • РежимLive (реальные платежи) или Sandbox (тесты);
    • Client ID;
    • Client Secret;
    • Webhook ID — из шага 2.
  3. Нажмите Сохранить и включить — PayPal сразу появится в списке способов оплаты со статусом «Активен».

Client Secret хранится только на сервере и после сохранения больше не показывается — в поле будет «•••••••• (сохранён)». Он нужен заново, только если вы его меняете: правки режима, Client ID или Webhook ID сохраняются сами, Client Secret трогать для этого не нужно. Переключателем «Принимать оплату» в карточке можно в любой момент временно отключить приём, не удаляя реквизиты.

Шаг 4. Проверьте оплатой

  1. Создайте тестовую запись на услугу с ценой в евро или долларах.
  2. Откройте страницу оплаты этой записи. Если у услуги есть цены в разных валютах, наверху будет селектор «Валюта» — выберите евро или доллары.
  3. Нажмите «Оплатить» у PayPal и завершите платёж.
  4. Дождитесь, пока PayPal вернёт вас обратно: на странице ОКОН появится «Подтверждаем оплату PayPal…», а затем «Оплата прошла».
  5. Запись в календаре станет «Оплачено», а вам придёт уведомление «клиент оплатил».

Чтобы проверить без реальных денег, выберите Режим → Sandbox (тесты) и введите реквизиты песочницы PayPal. После проверки переключите режим на Live и введите боевые Client ID, Client Secret и Webhook ID.

Как это видит клиент

  • В письме о записи (и в напоминании об оплате) — кнопка «Оплатить сеанс».
  • Открывается страница оплаты ОКОН: сумма, время сессии и список подключённых способов. Клиент нажимает «Оплатить» у PayPal.
  • Дальше — страница PayPal с уже подставленной суммой; клиент подтверждает платёж.
  • Списание ОКНА проводят сами на сервере сразу после подтверждения — через уведомление PayPal (CHECKOUT.ORDER.APPROVED), а не через возврат клиента в браузер. Если клиент дожидается возврата на страницу ОКОН, он обычно увидит «Оплата прошла» уже готовой; если закрыл вкладку раньше — деньги всё равно спишутся, запись просто станет «Оплачено» на несколько секунд позже, без его участия.
  • Если PayPal ещё не успел подтвердить списание в момент возврата, клиент увидит «Платёж обрабатывается. Обновите страницу через минуту».

Что передаётся за границу

PayPal — зарубежный сервис, поэтому ОКНА отправляют туда только то, без чего платёж не пройдёт: сумму, валюту, электронную почту клиента (для квитанции PayPal) и внутренний номер записи. Имя и телефон клиента не передаются, а назначение платежа обезличено — в PayPal уходит строка «Оплата сессии», без названия услуги.

Частые вопросы

Какая сумма подставляется в оплату? Персональный тариф клиента на услугу в выбранной валюте, если он задан; иначе — цена услуги. Если счёт выставлен платёжной ссылкой — сумма из ссылки.

Обязателен ли Webhook ID? Да. Без него ОКНА не могут проверить подпись уведомления PayPal, а значит не могут списать оплату на сервере — карточка PayPal просто не сохранится, пока поле пустое. С ним оплата подтверждается автоматически по уведомлению PayPal, даже если клиент сразу закрыл вкладку после подтверждения.

Можно ли принимать рубли через PayPal? Нет — «Платежи в RUB недоступны». Для рублёвых записей подключите ЮKassa, Robokassa, Prodamus или ЮMoney.

Как сделать возврат? Возврат делается в кабинете PayPal. В ОКНАх статус оплаты при этом не меняется — снимите отметку «Оплачено» в карточке записи вручную.

Если не работает

  • Клиент подтвердил платёж, но запись «Не оплачено». Списание идёт по уведомлению PayPal и обычно занимает секунды — подождите немного и обновите страницу. Если запись всё ещё не оплачена: проверьте, что Webhook ID в карточке заполнен, адрес уведомлений в PayPal скопирован целиком (включая &org=…) и среди событий эндпоинта есть CHECKOUT.ORDER.APPROVED. Пока это не исправлено, платёж подтверждается, только когда клиент сам дожидается возврата на страницу ОКОН. Если деньги всё же ушли, проверьте платёж в кабинете PayPal и отметьте оплату вручную в карточке записи.
  • «Не удалось подтвердить оплату» на странице возврата. Проверьте реквизиты: режим (Live/Sandbox) должен соответствовать ключам.
  • Уведомления PayPal не доходят. Проверьте, что Webhook ID заполнен и совпадает с тем, что в PayPal Developer Dashboard, адрес скопирован целиком (включая &org=…) и отмечены события CHECKOUT.ORDER.APPROVED, CHECKOUT.ORDER.COMPLETED и PAYMENT.CAPTURE.COMPLETED.
  • На странице оплаты нет PayPal. Проверьте статус карточки («Активен») и цену услуги: PayPal показывается только у записей в евро или долларах.
  • Не помогло — напишите нам через Обратную связь на Главной, приложите время оплаты и номер записи.

См. также

Не нашли ответ? Напишите нам через «Обратную связь» на Главной.