asciisd / cybersource-laravel
Laravel package for CyberSource payment gateway integration with focus on Visa card processing
Requires
- php: ^8.2
- cybersource/rest-client-php: ^0.0.62
- illuminate/config: ^9.0|^10.0|^11.0
- illuminate/database: ^9.0|^10.0|^11.0
- illuminate/http: ^9.0|^10.0|^11.0
- illuminate/support: ^9.0|^10.0|^11.0
Requires (Dev)
- orchestra/testbench: ^6.0|^7.0|^8.0
- phpunit/phpunit: ^9.0|^10.0
This package is auto-updated.
Last update: 2025-07-01 14:29:06 UTC
README
A Laravel package for integrating with the CyberSource payment gateway, with a focus on Visa card processing.
Installation
You can install the package via composer:
composer require asciisd/cybersource-laravel
After installing the package, publish the configuration file and migrations:
php artisan cybersource:install
This will publish the configuration file to config/cybersource.php
and the migrations to your migrations directory.
Run the migrations:
php artisan migrate
Configuration
Set your CyberSource API credentials in your .env
file:
CYBERSOURCE_MERCHANT_ID=your-merchant-id
CYBERSOURCE_API_KEY_ID=your-api-key-id
CYBERSOURCE_SECRET_KEY=your-secret-key
CYBERSOURCE_ENVIRONMENT=apitest.cybersource.com # Use api.cybersource.com for production
Usage
Process a Payment with Visa Card
use Asciisd\CyberSource\Facades\CyberSource; // For authorization only (no capture) $transaction = CyberSource::authorize([ 'reference' => 'order-123', 'amount' => '100.00', 'currency' => 'USD', 'card' => [ 'number' => '4111111111111111', // Visa card number 'expiration_month' => '12', 'expiration_year' => '2025', 'security_code' => '123' ], 'billing' => [ 'first_name' => 'John', 'last_name' => 'Doe', 'address' => '1 Market St', 'city' => 'San Francisco', 'state' => 'CA', 'postal_code' => '94105', 'country' => 'US', 'email' => 'customer@example.com', 'phone' => '4158880000' ] ]); // Check if the transaction was successful if ($transaction->isSuccessful()) { // Get the transaction ID $transactionId = $transaction->getId(); // Get the transaction status $status = $transaction->getStatus(); // Store the transaction ID for future operations // ... } // For authorization with immediate capture (sale) $transaction = CyberSource::charge([ 'reference' => 'order-123', 'amount' => '100.00', 'currency' => 'USD', 'card' => [ 'number' => '4111111111111111', // Visa card number 'expiration_month' => '12', 'expiration_year' => '2025', 'security_code' => '123' ], 'billing' => [ 'first_name' => 'John', 'last_name' => 'Doe', 'address' => '1 Market St', 'city' => 'San Francisco', 'state' => 'CA', 'postal_code' => '94105', 'country' => 'US', 'email' => 'customer@example.com', 'phone' => '4158880000' ] ]);
Capture a Previously Authorized Payment
$transaction = CyberSource::capture('transaction-id', 100.00, [ 'reference' => 'capture-123', 'currency' => 'USD' ]);
Void a Transaction
$transaction = CyberSource::void('transaction-id', [ 'reference' => 'void-123' ]);
Refund a Transaction
$transaction = CyberSource::refund('transaction-id', 100.00, [ 'reference' => 'refund-123', 'currency' => 'USD' ]);
Retrieve a Transaction
$transaction = CyberSource::retrieveTransaction('transaction-id');
Error Handling
The package throws Asciisd\CyberSource\Exceptions\CyberSourceException
when an error occurs. You can catch this exception to handle errors:
use Asciisd\CyberSource\Exceptions\CyberSourceException; use Asciisd\CyberSource\Facades\CyberSource; try { $transaction = CyberSource::charge([ // Payment details... ]); // Process successful transaction } catch (CyberSourceException $e) { // Handle the error $errorMessage = $e->getMessage(); $errorCode = $e->getCode(); $errorData = $e->getErrorData(); // Log the error or display a message to the user }
License
The MIT License (MIT). Please see License File for more information.