- What is shakurov/coinbase used for?
- It is a Laravel wrapper around the Coinbase Commerce REST API that lets you create charges, manage cryptocurrency payments, and receive webhook notifications from within a Laravel application. It follows standard framework idioms such as a service provider, publishable configuration, and a facade. Think of it as an HTTP convenience layer for Laravel rather than a complete payments integration.
- How do I install and configure shakurov/coinbase in Laravel?
- Install it with Composer using composer require shakurov/coinbase, then publish the package configuration with the vendor:publish command and set your Coinbase Commerce API key in your .env file. After that you can resolve the facade or inject the underlying client from the container. Confirm the exact config key names in the published config file before wiring it into application code.
- Which Laravel and PHP versions does shakurov/coinbase support?
- Check the declared constraints in the package's composer.json before anything else, because the last release was October 2023 and it likely targets Laravel 8 or 9 era versions and older PHP releases. Validate it against your target framework and PHP version, and test on PHP 8.2 and Laravel 11 or 12 if that is where you are headed. An install failure is the cheapest possible rejection, so run that check first.
- Does shakurov/coinbase verify Coinbase Commerce webhook signatures?
- Do not assume it does. Read the source, which is small, and confirm whether it implements HMAC signature verification against the shared webhook secret or leaves that entirely to you. Regardless of what the package provides, implement and test verification in your own webhook controller, validating against the raw request body. You should also confirm the current signature scheme against the Coinbase Commerce documentation, since upstream schemes can change.
- Is shakurov/coinbase actively maintained and safe to use in production?
- Signals are weak: a single maintainer, a small star count, zero dependents, and a last release in October 2023 suggest the package is effectively unmaintained. It also sits on a sensitive surface because it holds API keys and participates in webhook trust decisions. If you adopt it, assume you own it, budget for a fork and internal patching, and name an owner before it reaches production.
- How does shakurov/coinbase compare to the official Coinbase Commerce PHP SDK?
- The wrapper is a thin convenience layer over the same REST API that the official coinbase/coinbase-commerce-php SDK already covers, so its real value is Laravel ergonomics such as container binding, config publishing, and a facade, not extra capability. The official SDK is the more authoritative and better-supported option and is more likely to stay aligned with API version changes. A reasonable approach is to keep the wrapper behind an internal interface so swapping in the official SDK later is a one-file change.
- What alternatives to shakurov/coinbase should I consider?
- The official Coinbase Commerce PHP SDK is the most direct alternative and removes the dependency on a single-maintainer wrapper. You can also call the Coinbase Commerce REST API directly with Guzzle or any PSR-18 client, which keeps the dependency surface minimal for a small number of endpoints. If you need broader multi-processor support, evaluate a payment abstraction layer rather than a Coinbase-specific Laravel package.
- How do I test a Coinbase Commerce integration built with this package?
- Use a Coinbase Commerce sandbox key and write contract tests for charge creation, charge expiry, redirect flow, and webhook signature verification rather than relying only on mocks. Replay real webhook payloads in staging to confirm your handler is idempotent and that retries do not create duplicate state. Also assert behavior when the API returns errors or when a stale wrapper sends an unexpected API version.
- Can I use shakurov/coinbase with Laravel 11 or Laravel 12?
- Possibly, but only if its composer.json constraints allow those framework and PHP versions, which is unlikely given the October 2023 release date. Test the install in a clean Laravel 11 or 12 application with PHP 8.2 or newer before committing to it. If constraints block installation, you can fork the package and widen them, but verify the underlying code still works against the current Coinbase Commerce API first.
- How should I structure my Laravel code around this Coinbase wrapper?
- Define your own CryptoPaymentGateway interface and implement a Coinbase adapter that references the package only inside that adapter, so the facade never leaks into domain code. Add feature flagging and a kill switch so you can fall back to the official SDK or raw HTTP calls without touching business logic. Keep webhook processing queued and retried, and use idempotency keys on charge creation to avoid duplicate state.