community-sdks / payment-providers-php
Language-agnostic payment provider contract implementation for PHP with built-in Stripe, Paddle, and PayPal adapters.
Package info
github.com/community-sdks/payment-providers-php
pkg:composer/community-sdks/payment-providers-php
dev-main
2026-03-09 13:50 UTC
Requires
- php: ^8.1
- paddlehq/paddle-php-sdk: ^1.16
- paypal/paypal-server-sdk: ^2.2
- stripe/stripe-php: ^19.0
Requires (Dev)
- phpunit/phpunit: ^10.5
This package is not auto-updated.
Last update: 2026-03-10 12:06:22 UTC
README
PHP package implementing provider-agnostic payment contracts defined in contracts.
Features
- Unified provider interface aligned with shared contracts.
- Built-in providers included in package:
- Stripe (
stripe/stripe-php) - Paddle (
paddlehq/paddle-php-sdk) - PayPal (
paypal/paypal-server-sdk)
- Stripe (
- Register custom providers outside of this package.
- PHPUnit tests for registry, gateway routing, and custom provider registration.
Install
composer install community-sdks/payment-providers-php
Quick Start
<?php use PaymentProviders\PaymentGateway; use PaymentProviders\ProviderRegistry; $registry = ProviderRegistry::createWithBuiltins([ 'stripe' => ['api_key' => 'sk_test_xxx'], 'paddle' => ['api_key' => 'pdl_xxx'], 'paypal' => [ 'client_id' => 'client_id', 'client_secret' => 'client_secret', 'environment' => 'sandbox', ], ]); $gateway = new PaymentGateway($registry); $provider = $gateway->provider('stripe'); $intent = $provider->createPaymentIntent([ 'amount' => ['amount' => 1099, 'currency' => 'usd'], 'capture_method' => 'automatic', 'idempotency_key' => 'order-1001', ]);
Register Custom Provider
<?php use PaymentProviders\ProviderRegistry; use YourCompany\Payments\AcmePayProvider; $registry = ProviderRegistry::createWithBuiltins(); $registry->registerProvider('acmepay', new AcmePayProvider());