ngx-stripe — скилл

Скилл для агента, который подключает Stripe Elements к Angular через ngx-stripe: провайдеры, сервис, компоненты и выбор версии

  • 244 ★ репозитория
  • Последний коммит
  • MIT
Скилл

Минимальный доступ

Почему такой уровень

  • Состоит из инструкций для агента и ничего не запускает сам
  • Через агента подсказывает правки платежного кода, поэтому результат стоит проверить в тестовом режиме Stripe с ключом `pk_test`
Все причины и проверки

richnologies/ngx-stripe

Установка

В терминале, через SkillFoxx CLI

npx skillfoxx add skills/ngx-stripe

Определит агенты на машине, покажет уровень доступа и зафиксирует версию.

Другие способы установки

Доступ и проверки

Как мы проверяем

Минимальный доступИнструмент ничего не запускает и не ходит в сеть.

  • Состоит из инструкций для агента и ничего не запускает сам
  • Через агента подсказывает правки платежного кода, поэтому результат стоит проверить в тестовом режиме Stripe с ключом `pk_test`

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

Скилл учит агента подключать оплату Stripe в приложении на Angular с помощью библиотеки ngx-stripe. Сама библиотека — типизированная обертка над Stripe.js с компонентами Stripe Elements. Типы и интерфейс платежных полей предоставляет Stripe.js; требования к вашей интеграции нужно сверять с документацией Stripe. В инструкции собраны правила интеграции. Stripe регистрируется через `provideNgxStripe('pk_…')` в `appConfig.providers`, затем в компоненте вызывается `injectStripe()`. `NgxStripeModule.forRoot()` сохраняется только для приложений на NgModule. Для обработки результата методы сервиса возвращают `Observable`; его можно подписать или преобразовать в нужный формат. Компоненты Elements помещают внутрь `<ngx-stripe-elements>`, а раздельные поля карты оборачивают в `ngx-stripe-card-group`. Отдельное правило касается `clientSecret`: его задают до создания родительского Elements, потому что вложенный экземпляр обновить уже нельзя. Версия библиотеки собирается как `{мажорная версия Angular}.{мажорная версия Stripe.js}.{патч}`, например 22.10.x для Angular 22 и Stripe.js v10. Кнопку запроса платежа на Stripe.js v10 скилл заменяет на Express Checkout или Payment Element.

Для кого. Для разработчиков на Angular, которые принимают платежи через Stripe Elements и поручают агенту настройку или миграцию интеграции.

Подходит, если

  • Нужно добавить оплату в приложение на Angular и подключить Payment Element с `clientSecret` от `PaymentIntent`
  • Нужно выбрать версию ngx-stripe под ваш мажор Angular и ветку Stripe.js, например 21.9.x или 20.10.x
  • Нужно перевести проект с `NgxStripeModule.forRoot()` на `provideNgxStripe` и `injectStripe()`
  • Нужно, чтобы агент не путал `Observable` и `Promise` в вызовах сервиса и не ставил компоненты Elements без родительского контейнера
  • Нужно добавить Express Checkout вместо удаленной кнопки запроса платежа на Stripe.js v10

Не подходит, если

  • Нужно разрабатывать саму библиотеку ngx-stripe: скилл написан для тех, кто ее использует
  • Приложение написано не на Angular: компоненты и провайдеры рассчитаны только на этот фреймворк
  • Нужна серверная часть: создание `PaymentIntent` и хранение секретных ключей скилл не покрывает
  • Нужны подсказки по оформлению полей и правилам проверки: за них отвечает Stripe.js, и скилл отсылает к документации Stripe

Пример запроса к агенту

Подключи ngx-stripe в моем приложении на Angular 21 и сделай страницу оплаты с Payment Element по `clientSecret` из нашего бэкенда

Ограничения

Скилл покрывает только клиентскую интеграцию в Angular. Аккаунт Stripe и серверную часть нужно подготовить отдельно: `PaymentIntent` и `clientSecret` приходят с вашего сервера. В браузере допускается публикуемый ключ; секретный ключ API должен оставаться на сервере. Платежи тарифицируются по условиям Stripe; бесплатная лицензия MIT на библиотеку этих расходов не отменяет.

Версию ngx-stripe выбирают под Angular и Stripe.js. На 31.10.2026 версия 22.10.2 требует Angular 22 и Stripe.js 10; установка последней версии в старый проект может нарушить зависимости. Изменения платежного кода сначала проверьте в тестовом режиме Stripe.

Как отключить. Удалите папку `ngx-stripe` из каталога навыков вашего агента. Саму библиотеку из проекта убирает `npm uninstall ngx-stripe`.

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

Как поставить скилл ngx-stripe в агента?

Выполните `npx skills add richnologies/ngx-stripe`. Скилл следует формату Agent Skill с файлом `SKILL.md` и подходит любому редактору, который его поддерживает.

Как подключить Stripe к Angular через ngx-stripe?

Сначала определите версии Angular и Stripe.js в проекте и выберите совместимую ветку ngx-stripe по таблице `README`. Установите выбранные версии пакетов, зарегистрируйте `provideNgxStripe` с публикуемым ключом в `appConfig.providers` и вызовите `injectStripe()` в компоненте. Payment Element поместите внутрь `ngx-stripe-elements`.

Какую версию ngx-stripe выбрать для моей версии Angular?

Номер собирается из мажора Angular, мажора Stripe.js и патча. Для Angular 22 и Stripe.js v10 подходит 22.10.x, для Angular 21 и Stripe.js v9 нужна 21.9.x. Таблица ветвей есть в `README`, для старых веток есть теги в npm, например `v22-dahlia`.

Почему методы ngx-stripe нельзя использовать как `Promise`?

Потому что интерфейс сервиса возвращает `Observable`, а не `Promise`. Для получения результата используют подписку либо преобразование в `Promise`. Считать каждый вызов ленивым при этом нельзя: внутри библиотека может создать `Promise` до подписки.

Когда задавать `clientSecret` для Payment Element?

До создания родительского `ngx-stripe-elements`. Вложенный экземпляр обновить уже нельзя, поэтому шаблон оборачивают в условие, которое ждет готового значения.

Обсуждение

Вопросов и отзывов пока нет.

Скиллы

Скиллы Angular

Angular Skills

Официальные скиллы команды Angular: генерация кода по актуальным практикам, сигналы, формы, SSR и создание новых приложений

СкиллРасширенный доступ101,5 тыс.Звезды репозитория

Скилл и MCP-сервер для Angular-библиотеки spartan/ui: агент ставит компоненты и блоки по актуальной документации.

СкиллРасширенный доступ3 тыс.Звезды репозитория

Скилл учит агента собирать чат ИИ-агента на 26 компонентах Agent Elements: карточки инструментов, ввод, стриминг

СкиллМинимальный доступ110Звезды репозитория
Официальный

31 скилл учит агента собирать на ngDiagram редакторы диаграмм и конструкторы процессов для Angular без типовых ошибок

СкиллМинимальный доступ588Звезды репозитория
Официальный

Скилл Nuxt UI v4: агент строит интерфейсы на Vue и Nuxt, подбирает компоненты, настраивает тему и верстает формы и дашборды

СкиллРасширенный доступ7,1 тыс.Звезды репозитория

Официальный скилл NVIDIA: агент строит интерфейсы на веб-компонентах и токенах системы, а CLI и MCP подсказывают API.

СкиллРасширенный доступ119Звезды репозитория

Коротко о README

Инструкции отделяют особенности обертки Angular от API самой Stripe.js. Для оформления Elements и параметров методов скилл направляет к документации Stripe, чтобы не дублировать ее в локальных правилах.

Бейдж для README

Исходный SKILL.md

---
name: ngx-stripe
description: >-
  Integrate ngx-stripe in an Angular application: provideNgxStripe,
  injectStripe, StripeService Observables, and ngx-stripe-* Elements.
  Use when adding payments to an app, installing ngx-stripe, wrapping Stripe
  Elements, Payment Element, Express Checkout, or picking an ngx-stripe version
  lane. Do not use when maintaining the ngx-stripe library itself.
---

# ngx-stripe (consumer)

ngx-stripe wraps Stripe.js for Angular. It does **not** own types, Element UI, payment methods, or PCI.

This is an [Agent Skill](https://agentskills.io) (`SKILL.md`). Install from GitHub into any editor that supports the format:

```bash
npx skills add richnologies/ngx-stripe
```

- Types: `@stripe/stripe-js` only. Do not invent parallel interfaces.
- Install: `npm install ngx-stripe @stripe/stripe-js`
- Version: `{angularMajor}.{stripeJsMajor}.{patch}` — e.g. `22.10.x` is Angular 22 + Stripe.js v10 (endive CDN).
- Setup: `provideNgxStripe('pk_…')` in `appConfig.providers`, then `injectStripe()`. Keep `NgxStripeModule.forRoot()` only for existing NgModule apps.
- Service methods return **Observables** (`from(stripe.method()).pipe(first())`). Subscribe or convert; do not treat them as Promises.
- Elements: put hosts inside `<ngx-stripe-elements [stripe]="stripe" [elementsOptions]="elementsOptions">`. Implicit `[stripe]` on the child is deprecated.
- Split Card (`ngx-stripe-card-number` / `expiry` / `cvc`) must be wrapped in `ngx-stripe-card-group`.

## clientSecret

If the Element needs an Intent, set `elementsOptions.clientSecret` **before** the parent Elements instance is created. Nested Elements cannot update `clientSecret` later.

```html
@if (elementsOptions.clientSecret) {
  <ngx-stripe-elements [stripe]="stripe" [elementsOptions]="elementsOptions">
    <ngx-stripe-payment />
  </ngx-stripe-elements>
}
```

Payment Element also has `doNotCreateUntilClientSecretIsSet` for the implicit (no parent) path.

## Ownership

| ngx-stripe | Stripe.js |
| --- | --- |
| DI, CDN loader, Observables, host components | Appearance, options, validation copy, payment methods |

Link Stripe docs for styling/options. Link ngx-stripe docs for selectors and Angular lifecycle.

## Do not

- Use `ngx-stripe-payment-request-button` on Stripe.js v10 / ngx-stripe `*.10` (removed; use Express Checkout or Payment Element, or stay on a dahlia lane). Old URLs: https://ngx-stripe.dev/docs/payment-request-button
- Duplicate Stripe types inside the app.
- Call `elements.update({ clientSecret })` on an already-created nested Elements group.

## Resources

- Docs: https://ngx-stripe.dev
- Machine index: https://ngx-stripe.dev/llms.txt

Сообщить о проблеме