andersoncontreira/worldpay-xml-direct-sdk-php

This package is abandoned and no longer maintained. No replacement package was suggested.

This package has no released version yet, and little information is available.


README

Build Status License codecov

Summary

  • Resources
  • Getting Started
  • Prerequisites
  • License
  • Running unit tests with your credentials
  • Quick Examples
  • Related

Resources

  • [API Docs][docs-api] – For details about operations, parameters, and responses
  • [Quick Examples][sdk-examples] - A quick, examples to help get you started
  • [Issues][sdk-issues] – Report issues, submit pull requests, and get involved

Getting Started

Obtaining the credentials

To use this SDK you need the credentials of Worldpay.

Installing via composer

composer require andersoncontreira/worldpay-xml-direct-sdk-php:dev-master

Prerequisites

License

Read License for more licensing information.

Running unit tests with your credentials

You can run the tests with you Worldpay credentials, create a file named .env in root of the project with the follow configurations:

API_USERNAME=someuser
API_PASSWORD=somepassword
API_MERCHANTCODE=somemerchantcode

Quick Examples

Create a Payment (Authorize)

<?php

require __DIR__ . '/vendor/autoload.php';

use Worldpay\XmlDirect\Core\Credentials;
use Worldpay\XmlDirect\Entities\Amount;
use Worldpay\XmlDirect\Entities\Request\Card;
use Worldpay\XmlDirect\Entities\Request\CardAddress;
use Worldpay\XmlDirect\Entities\Request\CardExpiryDate;
use Worldpay\XmlDirect\Entities\Request\Order;
use Worldpay\XmlDirect\Entities\Request\PaymentDetails;
use Worldpay\XmlDirect\Entities\Request\Shopper;
use Worldpay\XmlDirect\Enums\CountryCode;
use Worldpay\XmlDirect\Enums\CurrencyCode;
use Worldpay\XmlDirect\Enums\CurrencyCodeExponency;
use Worldpay\XmlDirect\Enums\PaymentServiceVersion;
use Worldpay\XmlDirect\WorldpayXmlDirect;


$username = '';
$password = '';
$merchantCode = '';
$version = PaymentServiceVersion::V14;
$env = \Worldpay\XmlDirect\Enums\Environment::SANDBOX;

$credentials = new Credentials($username, $password, $merchantCode);
$gateway = new WorldpayXmlDirect($credentials, $version, $env);

$orderCode = 'Order-123';
$description = 'Test order';
$shopper = new Shopper('shopper@mail.com');

$card = new Card(
    '4532-3318-5478-7932',
    'Marietta Canela',
    '141',
    new CardExpiryDate('01', '2022'),
    new CardAddress(
        '982 Merry Wharf',
        $postalCode = '02112-1579',
        $city = 'Richs Corner, Massachusetts',
        $countryCode = CountryCode::COUNTRY_CODE_US
    )
);
$payment = new PaymentDetails($card);

$amount = new Amount(250.00,
    CurrencyCode::CC_USD
);

$order = new Order(
    $orderCode,
    $description,
    $shopper,
    $payment,
    $amount
);


$response = $gateway->authorizeOrder($order);

if ($response->isSuccess()) {

    $order = $response->getObject();
    echo 'Success: ';
    echo sprintf('%s - %s', $order->getOrderCode(), $order->getPayment()->getAuthorizationId());

} else {

    $error = $response->getError();
    echo 'Error: ';
    echo sprintf('%s - %s', $error->getCode(), $error->getMessage());

}

Capture a Payment (Modify)

<?php

require __DIR__ . '/vendor/autoload.php';

use Worldpay\XmlDirect\Core\Credentials;
use Worldpay\XmlDirect\Entities\Amount;
use Worldpay\XmlDirect\Enums\CurrencyCode;
use Worldpay\XmlDirect\Enums\CurrencyCodeExponency;
use Worldpay\XmlDirect\Enums\PaymentServiceVersion;
use Worldpay\XmlDirect\WorldpayXmlDirect;

$username = '';
$password = '';
$merchantCode = '';
$version = PaymentServiceVersion::V14;
$env = \Worldpay\XmlDirect\Enums\Environment::SANDBOX;

$credentials = new Credentials($username, $password, $merchantCode);
$gateway = new WorldpayXmlDirect($credentials, $version, $env);

$orderCode = 'Order-123';
$amount = new Amount(150.00,
    CurrencyCode::CC_USD
);

/** @var \Worldpay\XmlDirect\Http\Response\Modify\CaptureResponse $response */
$response = $gateway->captureOrder($orderCode, $amount);

if ($response->isSuccess()) {

    $captureObject = $response->getObject();
    echo 'Success: ';
    echo sprintf('%s - %s, %s %s', $captureObject->getOrderCode(), $captureObject->getAmount()->getValue(),
        $captureObject->getAmount()->getCurrencyCode());

} else {

    $error = $response->getError();
    echo 'Error: ';
    echo sprintf('%s - %s', $error->getCode(), $error->getMessage());

}

Refund a Payment (Modify)

<?php

require __DIR__ . '/vendor/autoload.php';

use Worldpay\XmlDirect\Core\Credentials;
use Worldpay\XmlDirect\Entities\Amount;
use Worldpay\XmlDirect\Enums\CurrencyCode;
use Worldpay\XmlDirect\Enums\CurrencyCodeExponency;
use Worldpay\XmlDirect\Enums\PaymentServiceVersion;
use Worldpay\XmlDirect\WorldpayXmlDirect;

$username = '';
$password = '';
$merchantCode = '';
$version = PaymentServiceVersion::V14;
$env = \Worldpay\XmlDirect\Enums\Environment::SANDBOX;

$credentials = new Credentials($username, $password, $merchantCode);
$gateway = new WorldpayXmlDirect($credentials, $version, $env);

$orderCode = 'Order-123';
$amount = new Amount(150.00,
    CurrencyCode::CC_USD
);

/** @var \Worldpay\XmlDirect\Http\Response\Modify\RefundResponse $response */
$response = $gateway->refundOrder($orderCode, $amount);

if ($response->isSuccess()) {

    $refundObject = $response->getObject();
    echo 'Success: ';
    echo sprintf('%s - %s, %s %s', $refundObject->getOrderCode(), $refundObject->getAmount()->getValue(),
        $refundObject->getAmount()->getCurrencyCode());

} else {

    $error = $response->getError();
    echo 'Error: ';
    echo sprintf('%s - %s', $error->getCode(), $error->getMessage());

}

Cancel a Payment (Modify)

<?php

require __DIR__ . '/vendor/autoload.php';

use Worldpay\XmlDirect\Core\Credentials;
use Worldpay\XmlDirect\Enums\PaymentServiceVersion;
use Worldpay\XmlDirect\WorldpayXmlDirect;

$username = '';
$password = '';
$merchantCode = '';
$version = PaymentServiceVersion::V14;
$env = \Worldpay\XmlDirect\Enums\Environment::SANDBOX;

$credentials = new Credentials($username, $password, $merchantCode);
$gateway = new WorldpayXmlDirect($credentials, $version, $env);

$orderCode = 'Order-123';

/** @var \Worldpay\XmlDirect\Http\Response\Modify\CancelResponse $response */
$response = $gateway->cancelOrder($orderCode);

if ($response->isSuccess()) {

    $cancel = $response->getObject();
    echo 'Success: ';
    echo sprintf('%s - %s', $cancel->getOrderCode());

} else {

    $error = $response->getError();
    echo 'Error: ';
    echo sprintf('%s - %s', $error->getCode(), $error->getMessage());

}

Inquiry an Order

<?php

require __DIR__ . '/vendor/autoload.php';

use Worldpay\XmlDirect\Core\Credentials;
use Worldpay\XmlDirect\Enums\PaymentServiceVersion;
use Worldpay\XmlDirect\WorldpayXmlDirect;

$username = '';
$password = '';
$merchantCode = '';
$version = PaymentServiceVersion::V14;
$env = \Worldpay\XmlDirect\Enums\Environment::SANDBOX;

$credentials = new Credentials($username, $password, $merchantCode);
$gateway = new WorldpayXmlDirect($credentials, $version, $env);

$orderCode = 'Order-123';

/** @var \Worldpay\XmlDirect\Http\Response\InquiryResponse $inquiryResponse */
$inquiryResponse = $gateway->inquiryOrder($orderCode);

if ($inquiryResponse->isSuccess()) {

    $order = $inquiryResponse->getObject();
    echo 'Success: ';
    echo sprintf('%s - %s', $order->getOrderCode(), $order->getPayment()->getAuthorizationId());

} else {

    $error = $inquiryResponse->getError();
    echo 'Error: ';
    echo sprintf('%s - %s', $error->getCode(), $error->getMessage());
    
}

Contributors

Related