PayPal
PayPal охватывает более 200 стран и регионов, поддерживает PayPal, Venmo, банковские карты и другие способы оплаты, а также имеет более 400 миллионов активных пользователей
В разработке
Адаптер PayPal сейчас разрабатывается и пока недоступен. Вы можете заранее выполнить настройки ниже, а после выхода адаптера сразу начать использовать его.
Быстрый старт
Создание аккаунта разработчика PayPal
Перейдите на PayPal Developer и зарегистрируйте аккаунт. После входа откройте Dashboard.
Создание REST API приложения
- Откройте страницу Apps & Credentials и нажмите
Create App - Укажите название приложения, выберите тип
Merchantи создайте приложение - Скопируйте
Client IDиClient Secretв.env
PAYPAL_CLIENT_ID=your_client_id
PAYPAL_CLIENT_SECRET=your_client_secretИх также можно указать в панели настроек.
Внимание
PAYPAL_CLIENT_SECRET — это чувствительная информация, не отправляйте ее в репозиторий.
Настройка Webhook
- На странице
Apps & Credentialsперейдите вApplications
- Прокрутите вниз до вкладки
Webhooksи нажмитеAdd Webhook - Укажите адрес callback:
https://your-domain.com/api/payment/webhook/paypal- Выберите события, которые нужно отслеживать:
CHECKOUT.ORDER.APPROVEDCHECKOUT.ORDER.COMPLETEDBILLING.SUBSCRIPTION.ACTIVATEDBILLING.SUBSCRIPTION.CANCELLEDBILLING.SUBSCRIPTION.PAYMENT.FAILEDPAYMENT.SALE.COMPLETEDPAYMENT.CAPTURE.REFUNDEDPAYMENT.SALE.REFUNDED
- После создания скопируйте Webhook ID в
.envили укажите его в панели настроек:
PAYPAL_WEBHOOK_ID=your_webhook_idРежим песочницы
PayPal предоставляет отдельную среду Sandbox для тестирования, в которой не выполняются реальные списания.
-
На странице PayPal Dashboard переключитесь на вкладку
Sandbox
-
PayPal автоматически предоставляет тестовые аккаунты, которые можно посмотреть на странице Sandbox Accounts. Тестовый аккаунт покупателя можно использовать для имитации оплаты

Подсказка
Для Webhook в песочнице нужен публично доступный адрес callback. При локальной разработке можно использовать обратный прокси, например Ngrok. Способ настройки описан в разделе про обратный прокси в документации Stripe.
Проверка конфигурации
Откройте главную страницу, прокрутите до блока pricing и нажмите кнопку покупки. Если вы переходите на страницу оплаты PayPal, значит настройка выполнена успешно.
Настройка цен
Для подписок PayPal сначала нужно создать Product и Plan в панели управления.
- Откройте PayPal Subscriptions и создайте Product
- Создайте Plan внутри Product и задайте цену и период биллинга
- Скопируйте Plan ID (формат
P-xxx) в.env. При необходимости можно изменить имена переменных окружения, но они должны совпадать с кодом:
VITE_PAYPAL_PRO_MONTHLY_PRICE_ID=P-xxx
VITE_PAYPAL_PRO_YEARLY_PRICE_ID=P-xxx
VITE_PAYPAL_LIFETIME_PRICE_ID=P-xxx- Измените
src/config/payment-config.ts, чтобы суммы и периоды совпадали с настройками в PayPal:
export const paymentConfig: PlanWithPrice[] = [
{
id: "pro",
planType: "subscription",
credit: {
amount: 100,
expireDays: 31,
},
prices: [
{
priceId: import.meta.env.VITE_PAYPAL_PRO_MONTHLY_PRICE_ID!,
amount: 990, // значение в центах, 990 = $9.90
currency,
interval: "month",
trialPeriodDays: 7,
},
{
priceId: import.meta.env.VITE_PAYPAL_PRO_YEARLY_PRICE_ID!,
amount: 9900,
currency,
interval: "year",
},
],
display: {
isRecommended: true,
group: "subscription",
},
},
{
id: "lifetime",
planType: "lifetime",
prices: [
{
priceId: import.meta.env.VITE_PAYPAL_LIFETIME_PRICE_ID!,
amount: 19900,
currency,
},
],
display: {
originalPrice: 29900,
group: "one-time",
},
},
]Описание полей
| Поле | Описание |
|---|---|
id | Идентификатор плана, по нему код находит нужный план |
planType | free бесплатно / subscription подписка / lifetime разовая покупка |
credit.amount | Количество кредитов, которые выдаются после активации подписки |
credit.expireDays | Срок действия кредитов, если не задан, они не истекают |
priceId | ID плана PayPal, копируется из Dashboard |
amount | Цена, в центах: 990 = $9.90 |
interval | Период подписки, month или year |
trialPeriodDays | Количество дней бесплатного пробного периода |
display.isRecommended | Показывать ли метку рекомендации |
display.originalPrice | Исходная цена, используется для отображения зачеркнутой цены |
display.group | Идентификатор группы, используется для группировки в UI |
Creem
Creem — платежная платформа для SaaS и цифровых продуктов, которая как MoR автоматически берет на себя глобальное налоговое соответствие и поддерживает подписки и управление license key
WeChat Pay и Alipay
WeChat Pay и Alipay — две крупнейшие мобильные платежные платформы Китая с совокупным охватом более 1 миллиарда пользователей