makfly/stripe-cashier-bundle
Composer 安装命令:
composer require makfly/stripe-cashier-bundle
包简介
Stripe Cashier integration for Symfony 7 and 8
README 文档
README
Stripe billing for Symfony 7.x and 8.x, inspired by Laravel Cashier.
Installation
composer require makfly/stripe-cashier-bundle php bin/console cashier:install
The installer creates the missing bundle files and directories:
config/packages/cashier.yamlconfig/packages/cashier_doctrine.yamlconfig/routes/cashier.yaml- Stripe env vars in
.env var/datavar/data/invoices
Runtime requirements
| Dependency | Version |
|---|---|
| PHP | ^8.2 |
| Symfony | ^7.0 or ^8.0 |
| Doctrine ORM | ^3.0 |
| Stripe PHP SDK | ^16.0 |
ext-intl
ext-intl is recommended, but not required.
Without intl, the bundle still works:
- currency formatting falls back safely
- invoice dates fall back to ISO format
- invoice translations still work for shipped locales
With intl, invoice rendering is cleaner and more locale-aware.
Minimal configuration
cashier: key: '%env(STRIPE_KEY)%' secret: '%env(STRIPE_SECRET)%' path: cashier webhook: secret: '%env(STRIPE_WEBHOOK_SECRET)%' tolerance: 300 currency: usd currency_locale: en default_subscription_type: default invoices: renderer: CashierBundle\Service\InvoiceRenderer\DompdfInvoiceRenderer default_locale: en supported_locales: ['en', 'fr'] storage: driver: local path: '%kernel.project_dir%/var/data/invoices'
Invoice pipeline
The bundle can:
- read Stripe invoices
- render a PDF through the configured renderer
- archive paid invoice PDFs to
var/data/invoices - persist invoice archive metadata in
cashier_generated_invoices
Stripe Checkout sessions created by the bundle propagate checkout metadata to invoice creation metadata. That makes it easier for consumer applications to link:
- checkout session
- payment intent
- Stripe invoice
- archived PDF
- local order or booking
For deterministic consumer-side linking, use explicit metadata keys:
app_resource_typeapp_resource_idapp_user_idplan_codebilling_cycle
The archive service persists these values into cashier_generated_invoices so the consumer application can resolve invoices without amount/date heuristics.
Invoice customization
You can customize invoices at four levels:
- override
templates/bundles/CashierBundle/invoice/default.html.twig - replace
cashier.invoices.renderer - replace
CashierBundle\Contract\InvoiceLocaleResolverInterface - replace
CashierBundle\Contract\InvoiceTranslationProviderInterface
For production storage, replace CashierBundle\Contract\InvoiceStorageInterface with your own implementation if invoices must be stored on S3, GCS, or any shared storage.
Webhooks
The bundle exposes POST /cashier/webhook and ships a local CLI helper:
php bin/console cashier:webhook:listen --forward-to --base-url http://localhost:8000
This command forwards Stripe CLI events, persists the signing secret, and colorizes incoming events and HTTP responses.
Documentation
Source documentation lives in docs/ and the main sections are:
- introduction
- installation
- configuration
- customers
- payments
- subscriptions
- checkout
- invoices
- webhooks
- events
- commands
- twig
- API reference
Compatibility policy
The documented configuration under cashier.*, documented commands, documented public contracts, and documented events are the supported public API surface.
Breaking changes should only be released in a new major version.
makfly/stripe-cashier-bundle 适用场景与选型建议
makfly/stripe-cashier-bundle 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 17 次下载、GitHub Stars 达 19, 最近一次更新时间为 2026 年 03 月 05 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「symfony」 「payments」 「stripe」 「cashier」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 makfly/stripe-cashier-bundle 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 makfly/stripe-cashier-bundle 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 makfly/stripe-cashier-bundle 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
The bundle for easy using json-rpc api on your project
Flexible payment integration for Laravel, lunarphp, supporting multiple payment providers.
Dealing with payments through the Egyptian payment gateway PayMob
Librería para la gestión sencilla de pagos mediante TPV Redsys y Paypal
Bundle Symfony DaplosBundle
统计信息
- 总下载量: 17
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 19
- 点击次数: 23
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-03-05