Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Laravel Cashier Nets Laravel Package

udviklr/laravel-cashier-nets

A Laravel Cashier integration for Nets that brings subscription billing and payment handling to your app. Manage customers, plans, payments, and webhooks through a familiar, fluent Cashier-style API.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

The v1.5.0 release is an additive capability for a Laravel/PHP subscription billing package. Subscription::recordCheckoutCharge() lets application code retrieve and validate a captured initial checkout payment and make the corresponding transaction available for refunds when the charge webhook is missing or delayed. The release states that manual recording and webhook processing share transaction creation/finalization logic, preserve terminal outcomes, and emit ChargeSucceeded once. It also preserves the mandate lifecycle and renewal schedule, which is important for subscription correctness.

Architecture fit is strong for Laravel applications that already use the package’s subscription, mandate, transaction, and event model. The feature fits naturally as a fallback/reconciliation path after checkout capture, reducing dependence on webhook delivery for refund eligibility. Integration feasibility is favorable because there are no schema or dependency changes and the API is additive. Technical risk is low-to-moderate: low for upgrade/compatibility, moderate for process correctness around idempotency, provider validation, listener rollback behavior, and ensuring the event is not duplicated when both webhook and manual recording occur.

Key questions:

  • Which payment providers and checkout flows are supported by recordCheckoutCharge()?
  • Is the method idempotent when both the webhook and manual recording arrive?
  • What precisely constitutes “full-charge evidence” and “provider identity”?
  • Are validation failures surfaced as exceptions, result objects, or events?
  • How are listener failures reported, and what retry mechanism is expected after rollback?
  • Does ChargeSucceeded fire transactionally, and how can duplicate emission be monitored?
  • Are partial captures, multi-currency, tax, and mandate edge cases covered?
  • What observability exists for reconciliation, rollback, and refund availability?

Integration Approach

Stack fit is aligned with a standard Laravel/PHP setup: composer-based upgrade, Laravel service container/events/listeners, and likely queueable listeners. Because v1.5.0 has no schema or dependency changes, the migration path is a normal package upgrade with regression testing rather than a database migration project. Compatibility should be high for existing webhook-based flows because recording and webhooks share transaction creation/finalization behavior.

A sensible sequencing plan:

  1. Upgrade the package in a staging environment and run existing subscription, webhook, refund, and mandate lifecycle tests.
  2. Verify the provider adapter and checkout flow support the required inputs: provider identity, amount, currency, full-charge evidence, and capture timestamp.
  3. Add recordCheckoutCharge() as a controlled fallback in the checkout success path or in a reconciliation job for missing charge webhooks.
  4. Confirm that transaction creation/finalization matches webhook-created transactions and that terminal outcomes are preserved.
  5. Validate that ChargeSucceeded is emitted exactly once across webhook-only, manual-only, and mixed paths.
  6. Confirm refunds are available from the recorded transaction and that mandate lifecycle and renewal schedule remain unchanged.
  7. Roll out to production behind monitoring for validation failures, listener rollbacks, duplicate events, and refund-path mismatches.

The method should not replace the webhook path blindly. A TPM should position it as a reconciliation/fallback capability with clear ownership: webhook remains primary where available; manual recording covers missing-webhook and recovery scenarios.

Operational Impact

Maintenance impact is low because the release is additive and requires no schema or dependency changes. Support impact is moderate: support teams and on-call engineers need guidance on when to use recordCheckoutCharge(), what inputs are mandatory, and how rollback-on-listener-failure should be retried. Scaling impact is manageable but introduces a new reconciliation workload if used as a fallback for missing webhooks; this should be bounded, observable, and idempotent.

Failure modes to plan for:

  • Missing or invalid provider identity, amount, currency, full-charge evidence, or capture timestamp causes recording to fail.
  • Listener failures roll back local recording, so retries must be safe and monitored.
  • Duplicate event risk if webhook and manual recording race, despite the “emit once” intent.
  • Provider API outage or delayed capture evidence may block refund availability.
  • Incorrect use could create transaction state that diverges from mandate or renewal expectations if inputs are not validated strictly.

Ramp-up is modest for Laravel teams already familiar with the package, but documentation should cover the checkout fallback pattern, idempotency expectations, event listener behavior, and reconciliation monitoring. Operational readiness should include alerts for recording failures, listener rollbacks, duplicate ChargeSucceeded emissions, and transactions that remain unavailable for refund despite captured checkout payments.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk
martialbe/flysystem-oss
chondal/3312client
jeroen-g/flickr
opscale-co/nova-genbi
itsjustvita/laravel-retention
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log