- Существующий проект на NestJS
- Доступ к Stripe Test Mode
- Для платёжного интерфейса нужен фронтенд
Доступ к репозиторию не нужен. Доступ к проекту требуется, только если Bacodo должен интегрировать решение напрямую.
Дополнение NestJS
Добавьте официальный Stripe Node SDK, модуль Payments и контроллер веб-перехватчика, который проверяет Stripe-Signature в необработанном теле. NestJS — это API, он не монтирует платежный элемент и не является обработчиками маршрутов Next.js.
От
$175
USD · NestJS
Интеграция Stripe для NestJS · NestJS
Requirements
Доступ к репозиторию не нужен. Доступ к проекту требуется, только если Bacodo должен интегрировать решение напрямую.
Что делает
Bacodo интегрирует Stripe в уже существующий проект NestJS. После передачи модуль, сервис и контроллер остаются в вашем репозитории. Вы по-прежнему владеете учетной записью Stripe, ключами API и комиссиями Stripe. NestJS никогда не хранит PAN.
Для производственного пути NestJS Stripe требуется официальный SDK полосы, создание PaymentIntent в поставщике и создание события в немодифицированном буфере запроса. Парсер JSON Nest по умолчанию прерывает проверку подписи, если вы @Body() используете вебхук. Это настоящий баг, а не лозунг.
Мы добавляем модуль NestJS (ConfigService для STRIPE_SECRET_KEY/STRIPE_WEBHOOK_SECRET), сервис, создающий PaymentIntents, и контроллер веб-перехватчика, считывающий rawBody. Запись заказов осуществляется через репозиторий или ORM, который вы уже используете — Prisma, TypeORM или MikroORM, а не через хранилище только Bacodo.
Ваша команда пропускает первую производственную реализацию NestJS Stripe: rawBody в Express или Fastify, идемпотентную обработку событий, PaymentIntents с поддержкой SCA и передачу, которая документирует ключи от тестирования к работе.
Backend-инженеры и агентства, которые уже используют NestJS и нуждаются в поддерживаемом платежном API. Если вам нужен маршрутизатор приложений Next.js или React SPA, это разные площадки Stripe.
Ключевые возможности
Создайте PaymentIntents с помощью пакета Stripe Node внутри службы NestJS. Секретный ключ поступает из ConfigService/env — никогда из DTO, который публикует клиент, и никогда из пакета внешнего интерфейса.
Stripe.webhooks.constructEvent требует именно тех байтов, которые подписаны Stripe. Мы включаем Nest rawBody (или парсер Fastify Raw) на этом маршруте. Из-за первого анализа JSON интеграция NestJS Stripe терпит неудачу в производстве.
Выполнение запускается в обработчике NestJS после успешного завершенияstructEvent, а не после страницы с благодарностью. Мы обновляем ваш существующий заказ или запись о праве, чтобы API, который вы уже предоставляете, отражал состояние оплаты.
Сначала отправьте NestJS с тестовыми ключами Stripe и секретом веб-перехватчика. Запуск в эксплуатацию — это документированное переключение конечной точки env и Dashboard, а не дополнительная лицензия.
Полоса повторяет попытку. Обработчик NestJS отключает event.id (или идентификатор PaymentIntent), чтобы дубликат POST не выполнялся дважды.
React, Next.js или мобильное приложение получают от этого NestJS API только публикуемый ключ и недолговечный client_secret. Это дополнение представляет собой путь к серверу NestJS, а не к элементам внутри Nest.
Сценарии
Вы уже создаете заказы в NestJS, и вам нужен API для создания PaymentIntents и пометки заказов, оплаченных с помощью веб-перехватчиков.
Вам понадобится поддерживаемый модуль Stripe в NestJS, исходный код в клиентском репозитории и документированное переключение с использованием живого ключа вместо одноразового сценария Express, помещенного в main.ts.
NestJS создает первый PaymentIntent или присоединяет метод оплаты. Регулярный биллинг Stripe и клиентский портал остаются на сервере. Для тяжелой работы по выставлению счетов может потребоваться индивидуальное предложение.
Next.js, React или мобильные устройства уже вызывают этот NestJS API. Интеграция Stripe для NestJS — это только API-интерфейс, а интерфейс Stripe.js — это другая платформа, если вам это тоже нужно.
Демо
Просмотрите путь к серверу NestJS: создайте PaymentIntent, получите POST/webhooks/stripe, постройте событие на rawBody, обновите состояние заказа. Живая песочница для вашей учетной записи Stripe доступна после проверки совместимости. Эта страница не обрабатывает реальные платежи и не собирает карты в NestJS.
Как это работает
Стандартный рабочий процесс надстройки Bacodo со специфичными для NestJS проверками Express и Fastify, rawBody, ConfigModule и ORM, которые уже используют ваши сервисы.
01
Подтвердите интеграцию Stripe для NestJS и укажите, будет ли первый день PaymentIntents, Checkout Sessions или и то, и другое в NestJS API.
02
Просмотрите версии NestJS/Node, HTTP-адаптер (Express по умолчанию или Fastify), существующее сохранение порядка, защиту аутентификации и наличие у вас уже учетной записи Stripe.
03
Добавьте пакет чередования, модуль «Платежи», конечную точку создания намерения и контроллер веб-перехватчика, который проверяет подписи в необработанном теле.
04
Подключите ConfigService из env: секретный ключ, публикуемый ключ для клиентов, секрет веб-перехватчика и общедоступный URL-адрес HTTPS, который будет вызывать Stripe.
05
Запускайте тестовые события Stripe CLI или Dashboard для веб-перехватчика NestJS, а также пути создания и отклонения. Убедитесь, что проанализированное тело JSON не подписывается должным образом.
06
Предоставьте исходный код NestJS, примечания к окружению и контрольный список действующих ключей. Реализация NestJS остается за вами.
Архитектура
Процесс NestJS содержит секретный ключ. Клиенты просят контроллер NestJS создать PaymentIntent. Stripe уведомляет NestJS с помощью веб-перехватчика. NestJS проверяет подпись на rawBody, затем записывает состояние заказа.
Поддерживаемые технологии
Текущий NestJS на Node LTS принимает Stripe SDK. HTTP-адаптер по умолчанию — Express. Fastify включается только в том случае, если приложение NestJS уже загружается именно так, и мы соглашаемся с этим при проверке совместимости.
PaymentIntents, сеансы оформления заказа и webhooks.constructEvent. Мы не создаем неофициальную оболочкуnesjs-stripe для продукта, если она вам явно не требуется.
Обновления заказов или прав остаются в Prisma, TypeORM, MikroORM или в уже имеющемся у вас репозитории. Это дополнение не изобретает новую базу данных.
Ваша учетная запись Stripe, тестовые и действующие ключи, используемые NestJS, конечной точкой веб-перехватчика и событиями Dashboard. Плата за обработку Stripe остается за Stripe.
Хост, который может запускать Node и получать HTTPS POST от Stripe. Статический сайт или экспорт только Next.js не могут размещать этот путь веб-перехватчика NestJS.
Что входит
Pricing
Эта цена указана только для платформы NestJS. Он не использует цены на надстройки Next.js, Django, FastAPI, React или Flutter.
Интеграция Stripe для NestJS
Добавьте готовые к использованию Stripe PaymentIntents и подписанные веб-перехватчики в существующий API NestJS и сохраните исходный код.
Требования
$175
разовоNestJS
Нужен фронтенд?
Безопасная оплата черезstripe
Передача и безопасность
Типичная интеграция NestJS Stripe определяется после проверки совместимости NestJS. Временная шкала зависит от вашего HTTP-адаптера, средств аутентификации и того, как клиенты вызывают NestJS.
Платежные намерения, подписи веб-перехватчиков, повторные попытки и пути отклонения в тестовом режиме проверяются перед передачей приложения NestJS.
Секретные ключи и секреты подписи веб-перехватчиков остаются в среде сервера. Клиенты получают только публикуемый ключ или недолговечный client_secret.
Контроллер веб-перехватчика NestJS проверяет подписи Stripe в необработанном теле перед обновлением состояния заказа или прав.
Мы не претендуем на сертификацию PCI, отсутствие мошенничества или гарантированный уровень одобрения. NestJS не хранит PAN. Данные карты собираются Stripe Checkout или Elements на клиенте, а не специальным DTO карты NestJS, который мы сохраняем.
FAQ
Интеграция Stripe для NestJS включает в себя официальный Stripe Node SDK, модуль NestJS Payments, службу create-PaymentIntent, контроллер веб-перехватчика, который вызывает buildEvent в необработанном теле, обновления состояния заказа в существующем магазине, тесты на тестовые события Stripe и заметки о передаче. Вы получаете исходный код NestJS в свой проект. Комиссия Stripe и ваша учетная запись Stripe разделены.
Да. Интеграция Stripe для NestJS создана для уже имеющегося API NestJS. Мы встраиваем модуль, контроллер и среду ConfigService в ваше текущее приложение NestJS вместо того, чтобы отправлять отдельный демонстрационный репозиторий в качестве результата.
Нет. NestJS не должен хранить PAN. Клиенты используют Stripe Checkout или Elements. Stripe Integration для NestJS владеет серверными объектами PaymentIntents, веб-перехватчиками и записью заказов. Пользовательский DTO NestJS, который публикует необработанные данные карты, выходит за рамки области действия по умолчанию.
Интеграция Stripe для NestJS использует официальную библиотеку Stripe Node для PaymentIntents, сеансов оформления заказа и webhooks.constructEvent. Мы не создаем неофициальную оболочкуnesjs-stripe для продукта, если она вам явно не требуется.
Stripe.webhooks.constructEvent проверяет точные байты, подписанные Stripe. Парсер JSON Nest по умолчанию изменяет это тело. Интеграция Stripe для NestJS позволяет использовать rawBody (или необработанный парсер Fastify) на маршруте веб-перехватчика. При использовании @Body() происходит сбой проверки подписи NestJS в рабочей среде.
Интеграция Stripe по умолчанию для NestJS предполагает, что в комплект поставки входит адаптер Express Express. Fastify включается только в том случае, если ваше приложение NestJS уже загружается с FastifyAdapter и мы согласовываем путь к необработанному телу во время проверки совместимости NestJS.
NestJS может создать сеанс PaymentIntent или Checkout и сохранить идентификатор клиента Stripe. Продукты повторяющегося биллинга Stripe, клиентский портал и логика выставления счетов остаются на сервере. Для работы с NestJS, требующей большой подписки, может потребоваться специальная цена.
Процесс NestJS использует секретный ключ и секрет подписи веб-перехватчика из переменных ConfigService/среды. Клиенты получают только публикуемый ключ. Интеграция Stripe для NestJS не помещает секретные ключи в DTO или пакет внешнего интерфейса.
Мы реализуем интеграцию Stripe для NestJS с тестовыми ключами Stripe и сначала тестируем события веб-перехватчика. Запуск — это задокументированное переключение ключа и конечной точки в вашей панели управления Stripe и среде NestJS, а не активация дополнительной лицензии.
NestJS создает PaymentIntents, поддерживающие SCA. Клиент выполняет 3-D Secure с помощью Stripe.js или Checkout. NestJS выполняется только после оплаты_intent.succeeded на веб-перехватчике, а не только после перенаправления браузера.
Да, для выполнения после созданного NestJS сеанса PaymentIntent или Checkout. Ответ NestJS 201 клиенту не является источником истины. Контроллер веб-перехватчика проверяет подписи, а затем отмечает оплаченный заказ.
Да. Интеграция Stripe для NestJS обычно добавляет поля или тонкую запись платежа рядом с существующей моделью заказов NestJS вместо замены Prisma, TypeORM или MikroORM.
Нет. Вы создаете и владеете учетной записью Stripe, ключами API и комиссией за обработку Stripe. Дополнительная цена NestJS — это внедрение в ваш проект NestJS, а не платежная лицензия Bacodo.
Нет. NestJS — это отдельный Node API. Маршрутизатор приложений Next.js и обработчики маршрутов представляют собой интеграцию Stripe для Next.js. Мы не переписываем NestJS API в Next.js в рамках этой надстройки NestJS.
Да. Метаданные сеанса PaymentIntent или Checkout, записи клиентов и поля, которые вы сохраняете после подтверждения веб-перехватчика, приводятся в соответствие с существующей моделью заказов NestJS во время интеграции Stripe для NestJS.
Исходный код NestJS находится в вашем репозитории, поэтому ваша команда может его поддерживать. Включенная 30-дневная поддержка охватывает технические вопросы и дефекты в поставляемой интеграции Stripe для NestJS, а не работу несвязанных функций NestJS.
В течение 30-дневного периода мы помогаем устранить сбои в поставляемой интеграции NestJS, вызванные задокументированным API-интерфейсом Stripe или изменением пакета Stripe. Постоянные обновления NestJS после этого — это ваше обслуживание или расширенная техническая поддержка, если вы его купите.
Мы документируем, как читать статус PaymentIntent, журналы Stripe Dashboard и доставку веб-перехватчика NestJS. 30-дневная поддержка включает устранение сбоев подписи (обычно rawBody), повторных попыток и неправильной настройки ключей для доставленного потока NestJS.
Мы подтверждаем ваши версии NestJS и Node LTS по выпуску полосы, который мы закрепляем во время интеграции. Старым или сильно разветвленным средам выполнения NestJS могут потребоваться дополнительные возможности.
30 дней после передачи включены в доставленный путь NestJS Stripe. Расширенная техническая поддержка является необязательной и стоит 20 % от стоимости дополнения к NestJS. Она покрывает еще шесть месяцев технической помощи по той же интеграции NestJS, а не по созданию нового продукта.
Добавьте готовые к использованию платежи Stripe в существующий API NestJS, сохраните исходный код и предоставьте серверу возможность самостоятельно выполнять операции.
$175