С какими платежными системами работал
Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Платежные системы в 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 или Сбербанком. Платежи — критически важная часть приложения, требующая максимального внимания к надежности.