← Назад к вопросам

С какими платежными системами работал

2.0 Middle🔥 111 комментариев
#API и сетевые протоколы#Безопасность

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI30 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Платежные системы в Node.js Backend разработке

Интеграция с платежными системами — это критически важный навык для backend-разработчика. Расскажу о наиболее популярных платежных системах и опыте работы с ними.

Основные платежные системы

1. Stripe

Самая популярная платежная система для SaaS и e-commerce проектов:

  • Простой REST API с отличной документацией
  • Поддержка подписок (Subscription), одноразовых платежей, платежей по требованию
  • Вебхуки для обработки событий (payment_intent.succeeded, charge.failed и т.д.)
  • PCI DSS compliance — безопасность обработки карт
  • Поддержка множества способов оплаты: карты, Apple Pay, Google Pay, iDEAL, SEPA и др.
const stripe = require("stripe")("sk_live_...");

// Создание платежа
const paymentIntent = await stripe.paymentIntents.create({
  amount: 2000, // в центах
  currency: "usd",
  payment_method_types: ["card"],
});

// Обработка вебхука
app.post("/webhook", express.raw({type: "application/json"}), (req, res) => {
  const event = stripe.webhooks.constructEvent(
    req.body,
    req.headers["stripe-signature"],
    process.env.STRIPE_WEBHOOK_SECRET
  );
  
  if (event.type === "payment_intent.succeeded") {
    // Обновить статус заказа
  }
});

2. PayPal

Один из старейших платежных сервисов, особенно популярен в США:

  • Простая интеграция через REST API
  • Поддержка PayPal Checkout, выставления счетов, подписок
  • Хорошая документация
  • Комиссия обычно выше, чем у Stripe

3. Yandex.Kassa (ЮKassa)

Российская платежная система, незаменима при работе с РФ:

  • Поддержка российских способов оплаты
  • Работа с рублями
  • API для создания платежей и проверки статуса
const yookassa = require("@yookassa/nodejs-sdk").default;

yookassa.setAuth("account_id", "secret_key");

const payment = await yookassa.payment.create({
  amount: {
    value: "100.00",
    currency: "RUB",
  },
  confirmation: {
    type: "redirect",
    return_url: "https://example.com/return",
  },
  capture: true,
  description: "Оплата заказа №123",
});

4. Sberbank (СбербанкБизнес)

API банка для работы в РФ, часто используется для B2B платежей и подписок.

5. Cloudpayments

Российский агрегатор платежей:

  • Поддержка карт, электронных кошельков, мобильных платежей
  • Простой API для создания платежей
  • Хорошо работает с подписками

6. Wise (TransferWise)

Для международных переводов денег с низкой комиссией.

Ключевые аспекты интеграции платежных систем

Безопасность

  • Никогда не передавайте номер карты клиента на ваш сервер
  • Используйте tokenization — платежная система возвращает токен, вы работаете с ним
  • Проверяйте подписи вебхуков
  • Не логируйте чувствительные данные

Обработка вебхуков

// Вебхук должен быть асинхронным
// Сразу возвращайте 200 OK, затем обрабатывайте событие
app.post("/webhook", async (req, res) => {
  res.status(200).send("OK"); // Сразу ответить
  
  const event = req.body;
  
  try {
    if (event.type === "payment.succeeded") {
      await updateOrderStatus(event.data.order_id, "paid");
    }
  } catch (error) {
    console.error("Webhook processing error:", error);
  }
});

Обработка ошибок платежей

  • Карта отклонена (declined)
  • Недостаточно средств
  • Истёк срок действия карты
  • 3D Secure требуется
  • Таймауты соединения

Повторные попытки (Retries)

async function createPaymentWithRetry(paymentData, maxRetries = 3) {
  for (let attempt = 1; attempt <= maxRetries; attempt++) {
    try {
      return await stripe.paymentIntents.create(paymentData);
    } catch (error) {
      if (attempt === maxRetries) throw error;
      await delay(1000 * attempt);
    }
  }
}

Выводы

Работа с платежными системами требует глубокого понимания потока платежей, внимания к безопасности, надежной обработки вебхуков и логирования. Stripe — лучший выбор для начала, для РФ обязательна интеграция с ЮKassa или Сбербанком. Платежи — критически важная часть приложения, требующая максимального внимания к надежности.