Использование SDK для приложений на PHP

Схемы интеграции платежной формы с Интернет-магазином:

Платежная форма находится на стороне PayOnline. Данная схема используется в случае, если у мерчанта отсутствует сертификат PCI DSS.

Код сервера:

<?
//подключаем библиотеку
require "payment.class.php";

//Указываем локализацию (доступно ru | en | fr)
$Language = "en";
// Указываем идентификатор мерчанта
$MerchantId='57211';
//Указываем приватный ключ (см. в ЛК PayOnline в разделе Сайты -> настройка -> Параметры интеграции)
$PrivateSecurityKey='3df0c3fa-de74-4548-8a5f-910883691c6f';
//Номер заказа (Строка, макс.50 символов)
$OrderId='1242212й33';
//Валюта (доступны следующие валюты | USD, EUR, RUB)
$Currency='RUB';
//Сумма к оплате (формат: 2 знака после запятой, разделитель ".")
$Amount=2;
//Описание заказа (не более 100 символов, запрещено использовать: адреса сайтов, email-ов и др.) необязательный параметр
$OrderDescription="Оплата коммунальных услуг за Август 2013. Cумма 100,00 ФЛС 113";
//Срок действия платежа (По UTC+0) необязательный параметр
//$ValidUntil="2013-10-10 12:45:00";
//В случае неуспешной оплаты, плательщик будет переадресован, на данную страницу.
$FailUrl="http://payonline.ru";
// В случае успешной оплаты, плательщик будет переадресован, на данную страницу.
$ReturnUrl="yandex.ru";

//Создаем класс
$pay = new GetPayment;
//Показываем ссылку на оплату
$result=$pay->GetPaymentURL(
        $pay->Language=$Language,
        $pay->MerchantId=$MerchantId,
        $pay->PrivateSecurityKey=$PrivateSecurityKey,
        $pay->OrderId=$OrderId,
        $pay->Amount=number_format($Amount, 2, '.', ''),
        $pay->Currency=$Currency,
        $pay->OrderDescription=$OrderDescription,
        $pay->ValidUntil=$ValidUntil,
        $pay->ReturnUrl=$ReturnUrl,
        $pay->FailUrl=$FailUrl);

echo "<meta http-equiv='refresh'  content='0; URL=".$result."'>";

?>

Схемы интеграции платежной формы с Интернет-магазином:
Платежная форма находится на стороне интернет-магазина. Данная схема используется в случае, если у мерчанта имеется сертификат PCI DSS.
Код серверного обработчика:

<?

require "payment.class.php";
$Currency='RUB';
$Amount=$_REQUEST['ammount'];
$OrderId=$_REQUEST['orderId'];
$ContentType="text";
$Email=$_REQUEST['email'];
$CardNumber=$_REQUEST['pan'];
$CardExpDate=$_REQUEST['valid_thru_month'].$_REQUEST['valid_thru_year'];
$CardCvv=$_REQUEST['cvv2'];
$Country=$_REQUEST['country'];
$City=$_REQUEST['city'];
$Address=$_REQUEST['address'];
$Zip="";
$State=$_REQUEST['state'];
$Phone=$_REQUEST['phone'];
$Issuer=$_REQUEST['issuer'];
$Ip="92.50.189.146";
$CardHolderName=$_REQUEST['сardholer_name'];

//Создаем новый класс
    $pay = new GetPayment;
//Вызываем метод Complete (с получением результатов)
    $pay->PaymentAuth(
        $pay->MerchantId=57211,
        $pay->PrivateSecurityKey='3df0c3fa-de74-4548-8a5f-910883691c6f',
        $pay->Ip=$Ip,
        $pay->Email=$Email,
        $pay->CardHolderName=$CardHolderName,
        $pay->CardNumber=$CardNumber,
        $pay->CardExpDate=$CardExpDate,
        $pay->CardCvv=$CardCvv,
        $pay->Country=$Country,
        $pay->City=$City,
        $pay->Address=$Address,
        $pay->Zip=$Zip,
        $pay->State=$State,
        $pay->Phone=$Phone,
        $pay->Issuer=$Issuer,
        $pay->ContentType=$ContentType,
        $pay->OrderId=$OrderId,
        $pay->Amount=number_format($Amount, 2, '.', ''),
        $pay->Currency=$Currency,
        $pay->OrderDescription=$OrderDescription,
        $pay->ValidUntil=$ValidUntil);

// В переменной $Result находится ответ сервера на  команду PaymentAuth

?>

HTML-код платежной формы:

<html>
<head>
    <meta charset="utf-8" />
    <title>Payment SDK</title>
</head>
<body>
    <form action="auth.php" method="post">

        <!-- информация о заказе -->
        <div>

            <!-- идентификатор заказа (это пример, не храните эту информацию на клиенте)-->
            <input type="hidden" name="orderId" value="идентификатор заказа" />

            <!-- сумма заказа (это пример, не храните эту информацию на клиенте)-->
            <input type="hidden" name="ammount" value="200.00" />

        </div>

        <!-- информация о плательщике -->
        <div>
            <!-- номер карты -->
            <input type="text" name="pan" value="" />
            <!-- cvv2/cvc2 -->
            <input type="text" name="cvv2" value="" />
            <!-- держатель карты -->
            <input type="text" name="сardholer_name" value="" />
            <!-- срок действия карты - год -->
            <input type="text" name="valid_thru_year" value="" />
            <!-- срок действия карты - месяц -->
            <input type="text" name="valid_thru_month" value="" />
            <!-- email плательщика -->
            <input type="text" name="email" value="" />
            <!-- страна плательщика -->
            <input type="text" name="country" value="" />
            <!-- город плательщика -->
            <input type="text" name="city" value="" />
            <!-- адрес плательщика -->
            <input type="text" name="address" value="" />
            <!-- область/штат плательщика -->
            <input type="text" name="state" value="" />
            <!-- телефон плательщика -->
            <input type="text" name="phone" value="" />
            <input type="submit" name="submit" value="Провести платеж" />
        </div>
    </form>
</body>
</html>

Схемы интеграции платежной формы с Интернет-магазином:
Платежная форма на строне интернет-магазина. Данная схема используется в случае, если у мерчанта есть PCI DSS. Использование 3DS. Для реализации работы с 3DS необходимо на стороне сервиса реализовать метод, который будет вызываться при завершении прохождения 3DS.
Код серверного обработчика платежа с использованием 3DS:

<?

require "payment.class.php";
$Currency='RUB';
$Amount=$_REQUEST['ammount'];
$OrderId=$_REQUEST['orderId'];
$ContentType="xml";
$Email=$_REQUEST['email'];
$CardNumber=$_REQUEST['pan'];
$CardExpDate=$_REQUEST['valid_thru_month'].$_REQUEST['valid_thru_year'];
$CardCvv=$_REQUEST['cvv2'];
$Country=$_REQUEST['country'];
$City=$_REQUEST['city'];
$Address=$_REQUEST['address'];
$Zip="";
$State=$_REQUEST['state'];
$Phone=$_REQUEST['phone'];
$Issuer=$_REQUEST['issuer'];
$Ip="92.50.189.146";
$CardHolderName=$_REQUEST['сardholer_name'];
//Обязательно!: Адрес TermURL должен быть указан на данную страницу (абсолютный путь)
$TermUrl="http://test1.ru/api/standart/sample/auth3ds.php";


//Создаем новый класс
            $pay = new GetPayment;
//Вызываем метод Complete (с получением результатов)
  if (ISSET($_POST['MD']) AND ISSET($_POST['PaRes']))
  {
            $TransactionId=substr($_POST['MD'],0,8);
            $pd=substr(strstr($_POST['MD'],';'),1);
            $pares=$_POST['PaRes'];
            $pay->Payment3DS(
                        $pay->MerchantId=57211,
                        $pay->PrivateSecurityKey='3df0c3fa-de74-4548-8a5f-910883691c6f',
                        $pay->PD=$pd,
                        $pay->PARes=$pares,
                        $pay->TransactionId=$TransactionId,
                        $pay->ContentType=$ContentType);

  }
  else
  {
            $pay->PaymentAuth3DS(
                        $pay->MerchantId=57211,
                        $pay->PrivateSecurityKey='3df0c3fa-de74-4548-8a5f-910883691c6f',
                        $pay->Ip=$Ip,
                        $pay->Email=$Email,
                        $pay->CardHolderName=$CardHolderName,
                        $pay->CardNumber=$CardNumber,
                        $pay->CardExpDate=$CardExpDate,
                        $pay->CardCvv=$CardCvv,
                        $pay->Country=$Country,
                        $pay->City=$City,
                        $pay->Address=$Address,
                        $pay->Zip=$Zip,
                        $pay->State=$State,
                        $pay->Phone=$Phone,
                        $pay->Issuer=$Issuer,
                        $pay->ContentType=$ContentType,
                        $pay->OrderId=$OrderId,
                        $pay->Amount=number_format($Amount, 2, '.', ''),
                        $pay->Currency=$Currency,
                        $pay->TermUrl=$TermUrl);
}

// В переменной $Result находится ответ сервера на  команду PaymentAuth

?>

HTML-код платежной формы:

<html>
<head>
    <meta charset="utf-8" />
    <title>Payment SDK</title>
</head>
<body>
    <form action="auth3ds.php" method="post">

        <!-- информация о заказе -->
        <div>

            <!-- идентификатор заказа (это пример, не храните эту информацию на клиенте)-->
            <input type="hidden" name="orderId" value="идентификатор заказа" />

            <!-- сумма заказа (это пример, не храните эту информацию на клиенте)-->
            <input type="hidden" name="ammount" value="200.00" />

        </div>

        <!-- информация о плательщике -->
        <div>
            <!-- номер карты -->
            <input type="text" name="pan" value="" />
            <!-- cvv2/cvc2 -->
            <input type="text" name="cvv2" value="" />
            <!-- держатель карты -->
            <input type="text" name="сardholer_name" value="" />
            <!-- срок действия карты - год -->
            <input type="text" name="valid_thru_year" value="" />
            <!-- срок действия карты - месяц -->
            <input type="text" name="valid_thru_month" value="" />
            <!-- email плательщика -->
            <input type="text" name="email" value="" />
            <!-- страна плательщика -->
            <input type="text" name="country" value="" />
            <!-- город плательщика -->
            <input type="text" name="city" value="" />
            <!-- адрес плательщика -->
            <input type="text" name="address" value="" />
            <!-- область/штат плательщика -->
            <input type="text" name="state" value="" />
            <!-- телефон плательщика -->
            <input type="text" name="phone" value="" />
            <input type="submit" name="submit" value="Провести платеж" />
        </div>
    </form>
</body>
</html>