Skip to content

PHP SDK for Cybersource SOAP Toolkit API For Laravel

License

Notifications You must be signed in to change notification settings

pinaadrian/cybersource

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 

Repository files navigation

CyberSource PHP Client (Laravel port)

Laravel port of the CyberSource SOAP Toolkit API.

The CyberSource library can be found here

Install with composer

The code is available at Packagist. If you want to install SDK from Packagist, use the following command to add the dependency to your app.

composer require pinaadrian/cybersource

Prerequisites

  • Laravel 5.6 or above
  • PHP 7.1 or above
  • A CyberSource account. You can create an evaluation account here.
  • A CyberSource transaction key. You will need to set your merchant ID and transaction key in the cybersource.php file in config/cybersource.php. Instructions on obtaining a transaction key can be found here.

Configuration

Publishing vendor files

To publish the cybersource.php file to the config dir, run the following command:

php artisan vendor:publish --tag=cybersource

Before making any request, make sure to configure the merchant ID, transaction key, and the appropriate WSDL file URL in config/cybersource.php.

By default, the WSDL file for the client is for API version 1.120. Available WSDL file URLs can be browsed at the following locations:

Examples

The PHP client will generate the request message headers for you, and will contain the methods specified by the WSDL file.

Creating a simple request

The main method you'll use is runTransaction(). To run a transaction, you'll first need to construct a client to generate a request object, which you can populate with the necessary fields (see documentation for sample requests). The object will be converted into XML, so the properties of the object will need to correspond to the correct XML format.

use Pinaadrian\Cybersource\CybsSoapClient;

$referenceCode = 'reference_code';
$client = new CybsSoapClient();
$request = $client->createRequest($referenceCode);

$card = new stdClass();
$card->accountNumber = '4111111111111111';
$card->expirationMonth = '12';
$card->expirationYear = '2020';
$request->card = $card;

// Populate $request here with other necessary properties

$response = $client->runTransaction($request);

Creating a request from XML

You can create a request from XML either in a file or from an XML string. The XML request format is described in the Using XML section here. Here's how to run a transaction from an XML file:

use Pinaadrian\Cybersource\CybsSoapClient;

$referenceCode = 'your_merchant_reference_code';
$client = new CybsSoapClient();
$reply = $client->runTransactionFromFile('path/to/my.xml', $referenceCode);

Or, you can create your own XML string and use that instead:

use Pinaadrian\Cybersource\CybsSoapClient;

$xml = "";
// Populate $xml
$client = new CybsSoapClient();
$client->runTransactionFromXml($xml);

Using name-value pairs

In order to run transactions using name-value pairs, make sure to set the value for the WSDL for the NVP transaction processor in cybs.ini. Then use the CybsNameValuePairClient as so:

use Pinaadrian\Cybersource\CybsNameValuePairClient;

$client = new CybsNameValuePairClient();
$request = array();
$request['ccAuthService_run'] = 'true';
$request['merchantID'] = 'my_merchant_id';
$request['merchantReferenceCode'] = 'my_reference_code';
// Populate $request
$reply = $client->runTransaction($request);

Documentation

For more information about CyberSource services, see http://www.cybersource.com/developers/documentation