itelmenko / alba-client-php

Alba 客户端

1.0.8 2019-06-20 14:51 UTC

This package is auto-updated.

Last update: 2024-09-18 20:25:32 UTC


README

库包含两个基本类 AlbaService 和 AlbaCallback,用于继承。

AlbaService - Alba 中的服务。允许获取可用的支付方式列表,初始化交易,获取交易信息。每个现有服务都需要创建一个实例。

AlbaCallback - Alba 的回调处理器。检查签名并调用相应于“command”参数的方法。

工作过程中可能会抛出 AlbaException 异常。

初始化交易的示例使用

   $service = new AlbaService(<service-id>, '<service-secret>');
   try {
       $service->initPayment('mc', 10, 'Test', 'test@example.com', '71111111111');
   } catch (AlbaException $e) {
       echo $e->getMessage();
   }

回调使用的示例

   class MyAlbaCallback extends AlbaCallback {

       public function callbackSuccess($data) {
           // фиксирование успешной транзакции
       }
   }

   $service1 = new AlbaService(<service1-id>, '<service1-secret>');
   $service2 = new AlbaService(<service2-id>, '<service2-secret>');
   $callback = new MyAlbaCallback(array($service1, $service2]));
   $callback->handle(<массив-c-POST-данными>)

进行递归支付使用的示例

   $service = new AlbaService(<service-id>, '<service-secret>');
   
   try {
        // Получение токена. 
        // Доступно олько для тех сервисов у которых доступна данная опция
        // Остальные сервисы должны иницировать оплату без использования background API
        $token = $service->createCardToken(
            '4300000000000777', 11, '19', '123', True
        );
        echo "Card token: " . $token;

    } catch (AlbaException $e) {
        echo $e->getMessage();
    }

    try {
        // Инициация первого рекуррентного платежа
        $first_order_id = 'first-' . uniqid();
        $recurrent_params = RecurrentParams::first_pay(
            // Ссылка на подробное описание правил предоставления рекуррентного платежа
            'http://example.com/rules', 
             // Текстовое описание за что производится регистрация РП	
            'Test'
        );
        $service->initPayment(
             'spg_test',
             10,
             'Test',
             'test@example.com',
             '71111111111',
             $first_order_id, 
             'partner',
             $token,
             $recurrent_params
        );
     } catch (AlbaException $e) {
        echo $e->getMessage();
     }

     try {
        // Инициация последующего рекуррентного платежа
        $recurrent_params = RecurrentParams::next_pay(
            // order_id первого рекуррентного платежа
            $first_order_id  
        );
        $service->initPayment(
            'spg_test',
            10,
            'Test',
            'test@example.com',
            '71111111111',
            uniqid(),  // order_id текущего платежа
            'partner',
            $token,
            $recurrent_params
        );
      } catch (AlbaException $e) {
        echo $e->getMessage();
      }