twovmodules / revenuecat-sdk
PHP SDK for RevenueCat payment service
Installs: 420
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/twovmodules/revenuecat-sdk
Requires
- php: ^8.2
- cuyz/valinor: ^1.14
- nyholm/psr7: ^1.8
- psr/http-client: ^1.0
- psr/log: ^3.0
Requires (Dev)
- guzzlehttp/guzzle: ^7.9
- monolog/monolog: ^3.8
- phpstan/phpstan: ^2.1
- phpunit/phpunit: ^9.5
- rector/rector: ^2.0
- rector/type-perfect: ^2.0
- symfony/http-client: ^7.2
- symplify/easy-coding-standard: ^12.5
README
📌 Description
This SDK provides a convenient interface for working with the RevenueCat API, following PSR standards. It supports managing projects, customers, subscriptions, entitlements, and other RevenueCat entities.
🚀 Installation
composer require twovmodules/revenuecat-sdk
🛠 Minimum Requirements
- PHP 8.2+
- PSR-7, PSR-17, PSR-18 compatible HTTP client (e.g., Guzzle)
📖 Quick Start
1. Initialize the Minimal Client
use Twovmodules\RevenueCat\RevenueCatClient; use Twovmodules\RevenueCat\Configuration; use GuzzleHttp\Psr7\HttpFactory; use GuzzleHttp\Client; $configuration = new Configuration('_your_api_key_here_'); $guzzleClient = new Client; $requestFactory = new HttpFactory(); $streamFactory = new HttpFactory(); $revenueCat = new RevenueCatClient( psrHttpClient: $guzzleClient, configuration: $configuration, requestFactory: $requestFactory, streamFactory: $streamFactory );
2. Retrieve a List of Customers
$customers = $revenueCat->customers()->list('project_id'); foreach ($customers as $customer) { echo $customer->id . "\n"; }
3. Create a New Customer
use Twovmodules\RevenueCat\Dto\Request\CreateCustomerDto; $request = new CreateCustomerDto(id: 'customer_123'); $customer = $revenueCat->customers()->create($request, 'project_id'); echo "Customer created: " . $customer->id;
📚 Available Services
apps()— Operations about apps.projects()— Operations about projects.customers()— Operations about customers.offerings()— Operations about offerings.subscriptions()— Operations about subscriptions.entitlements()— Operations about entitlements.products()— Operations about products.invoices()— Operations about invoices.overviewMetrics()— Operations about chart metrics.packages()— Operations about packages.purchases()— Operations about purchases.
⚠️ Error Handling
try { $apps = $revenueCat->apps()->list('project_id'); } catch (RevenueCatException $e) { // Handle specific RevenueCat errors echo "Error: " . $e->getMessage(); } catch (\Exception $e) { // Handle other exceptions echo "Unexpected error: " . $e->getMessage(); }
📖 More Information
📄 License
This SDK is open-sourced under MIT License.