ngx-stripe — скилл
Скилл для агента, который подключает Stripe Elements к Angular через ngx-stripe: провайдеры, сервис, компоненты и выбор версии
- 244 ★ репозитория
- Последний коммит
- MIT
Минимальный доступ
Почему такой уровень
- Состоит из инструкций для агента и ничего не запускает сам
- Через агента подсказывает правки платежного кода, поэтому результат стоит проверить в тестовом режиме Stripe с ключом `pk_test`
Установка
- Работает в
В терминале, через 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 и создание новых приложений
Скилл и MCP-сервер для Angular-библиотеки spartan/ui: агент ставит компоненты и блоки по актуальной документации.
Скилл учит агента собирать чат ИИ-агента на 26 компонентах Agent Elements: карточки инструментов, ввод, стриминг
31 скилл учит агента собирать на ngDiagram редакторы диаграмм и конструкторы процессов для Angular без типовых ошибок
Скилл Nuxt UI v4: агент строит интерфейсы на Vue и Nuxt, подбирает компоненты, настраивает тему и верстает формы и дашборды
Официальный скилл NVIDIA: агент строит интерфейсы на веб-компонентах и токенах системы, а CLI и MCP подсказывают API.
Коротко о 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