zvook/php-skrill-quick-checkout

PHP package for Skrill QuickCheckout interface

2.1.2 2022-11-26 12:53 UTC

This package is not auto-updated.

Last update: 2024-05-11 20:04:52 UTC


README

Latest Stable Version Total Downloads

Installation

{
  "require": {
    "zvook/php-skrill-quick-checkout": "^2"
  }
}

Usage

use Xaerobiont\Skrill\QuickCheckout;
use Xaerobiont\Skrill\PaymentProcessor;

$qc = new QuickCheckout([
    'pay_to_email' => 'mymoneybank@mail.com',
    'amount' => 100500,
    'currency' => 'EUR'
]);

$qc->setReturnUrl('https://my-domain.com')
    ->setStatusUrl('https://my-domain.com/listen-skrill')
    ->setReturnUrlTarget(QuickCheckout::URL_TARGET_BLANK);
// See QuickCheckout class to find complete list of parameters

$api = new PaymentProcessor($q);
$url = $api->getPaymentUrl();
// Redirect user to this URL

In your status listener

use Xaerobiont\Skrill\StatusResponse;
use Xaerobiont\Skrill\SkrillException;

$data = $_POST;
$response = new StatusResponse($data, skipUndefined: true);

if (
    !$response->verifySignature('your Skrill secret word') || 
    $response->getPayToEmail() !== 'mymoneybank@mail.com'
) {
    // hm, angry hacker?
}

switch ((int)$response->getStatus()) {
    case StatusResponse::STATUS_PROCESSED:
        // Payment is done. You need to return anything with 200 http code, otherwise, Skrill will retry request
        break;
    case StatusResponse::STATUS_CANCELED:
    case StatusResponse::STATUS_CHARGEBACK:
    case StatusResponse::STATUS_PENDING:
        // Process other statuses
        break;
    case StatusResponse::STATUS_FAILED:
        // Note that you should enable receiving failure code in Skrill account
        $errorCode = $data['failed_reason_code'];
        
// Note that StatusResponse contains parameters required for signature validation only.
// Check $_POST to find all of them
}

Information