PHP code example of saba-ab / rapyd
1. Go to this page and download the library: Download saba-ab/rapyd library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
saba-ab / rapyd example snippets
use Sabaab\Rapyd\Facades\Rapyd;
$payment = Rapyd::payments()->create([
'amount' => 100,
'currency' => 'USD',
'payment_method' => [
'type' => 'us_visa_card',
'fields' => [
'number' => '4111111111111111',
'expiration_month' => '12',
'expiration_year' => '25',
'cvv' => '123',
'name' => 'John Doe',
],
],
]);
echo $payment->id; // "payment_abc123"
echo $payment->status; // PaymentStatus::Active
echo $payment->amount; // 100.0
// Lazy iteration - fetches pages on demand, memory-efficient
foreach (Rapyd::customers()->all() as $customer) {
echo $customer->name . "\n";
}
// Eager collection
$customers = Rapyd::customers()->list(['limit' => 50])->collect();
$payment = Rapyd::payments()->get('payment_abc123');
echo $payment->paid; // true
echo $payment->currencyCode; // "USD"
use Sabaab\Rapyd\Webhooks\Events\PaymentCompletedEvent;
Event::listen(PaymentCompletedEvent::class, function (PaymentCompletedEvent $event) {
$payment = $event->payment; // Hydrated Payment DTO
Order::where('payment_id', $payment->id)->update(['status' => 'paid']);
});
use Sabaab\Rapyd\Webhooks\Events\RapydWebhookReceived;
Event::listen(RapydWebhookReceived::class, function (RapydWebhookReceived $event) {
Log::info("Rapyd webhook: {$event->type}", $event->data);
});
return [
// API credentials
'access_key' => env('RAPYD_ACCESS_KEY', ''),
'secret_key' => env('RAPYD_SECRET_KEY', ''),
// Set to false for production
'sandbox' => env('RAPYD_SANDBOX', true),
// Base URLs (override only if needed)
'base_url' => [
'sandbox' => 'https://sandboxapi.rapyd.net',
'production' => 'https://api.rapyd.net',
],
// Webhook settings
'webhook' => [
'path' => env('RAPYD_WEBHOOK_PATH', '/rapyd/webhook'),
'tolerance' => env('RAPYD_WEBHOOK_TOLERANCE', 60), // seconds
'middleware' => [],
],
// HTTP timeout in seconds
'timeout' => env('RAPYD_TIMEOUT', 30),
// Retry on 5xx errors
'retry' => [
'times' => env('RAPYD_RETRY_TIMES', 3),
'sleep' => env('RAPYD_RETRY_SLEEP', 100), // milliseconds
],
];
$payment = Rapyd::payments()->get('payment_abc');
$payment->id; // string
$payment->amount; // float
$payment->status; // ?PaymentStatus enum
$payment->createdAt; // ?Carbon
$payment->paid; // bool
$payment->address; // ?Address (nested DTO)
use Sabaab\Rapyd\Enums\PaymentStatus;
if ($payment->status === PaymentStatus::Closed) {
// Payment completed successfully
}
// Lazy iteration - pages fetched on demand
foreach (Rapyd::customers()->all() as $customer) {
echo $customer->name;
}
// Eager collection
$all = Rapyd::payments()->list(['limit' => 50])->collect();
// First item only (fetches just 1 item)
$first = Rapyd::payments()->list()->first();
// Convert to array
$array = Rapyd::customers()->list()->toArray();
use Sabaab\Rapyd\Exceptions\ApiException;
use Sabaab\Rapyd\Exceptions\AuthenticationException;
use Sabaab\Rapyd\Exceptions\ValidationException;
use Sabaab\Rapyd\Exceptions\RapydException;
try {
$payment = Rapyd::payments()->create([...]);
} catch (AuthenticationException $e) {
// Invalid API keys
} catch (ValidationException $e) {
// Invalid fields - $e->fields contains details
} catch (ApiException $e) {
// API error - $e->errorCode, $e->operationId
} catch (RapydException $e) {
// Base exception for all Rapyd errors
}
use Illuminate\Support\Facades\Http;
use Sabaab\Rapyd\Facades\Rapyd;
Http::fake([
'sandboxapi.rapyd.net/v1/payments' => Http::response([
'status' => ['status' => 'SUCCESS', 'error_code' => ''],
'data' => ['id' => 'payment_test', 'amount' => 100, 'paid' => true],
]),
]);
$payment = Rapyd::payments()->create(['amount' => 100, 'currency' => 'USD']);
bash
php artisan vendor:publish --tag="rapyd-config"
bash
# Test API connectivity
php artisan rapyd:test-connection
# List payment methods for a country
php artisan rapyd:list-payment-methods US
# View webhook configuration
php artisan rapyd:webhook-info