Платёжный метод CloudPayments

Как-то мне пришлось делать интеграцию данного платёжного метода. В этом нет ничего сложного, ведь есть довольно понятная документация. Я лишь опишу свой способ реализации и нюансы, с которыми мне пришлось столкнуться.

Первый нюанс в том, что для работы с этим методом я использовал библиотеку troytft/cloud-payments-client, в которой реализована большая часть методов.

Второй нюанс в том, что в этой библиотеке не реализовано создание уведомлений (notifications). Для этого мне пришлось написать простой метод:

   private function updateNotificationByType($type)
    {
        $availableTypes = [
            self::NOTIFICATION_TYPE_PAY,
            self::NOTIFICATION_TYPE_FAIL,
            self::NOTIFICATION_TYPE_CONFIRM,
            self::NOTIFICATION_TYPE_REFUND,
            self::NOTIFICATION_TYPE_RECURRENT,
            self::NOTIFICATION_TYPE_RECEIPT,
            self::NOTIFICATION_TYPE_CANCEL,
            self::NOTIFICATION_TYPE_KKT
        ];
        if (in_array($type, $availableTypes)) {
            $endpoint = "/site/notifications/{$type}/update";
            $params = [
                'IsEnabled' => true,
                'Address' => 'my-address',
                'HttpMethod' => 'POST',
            ];

            $response = $this->sendRequest($endpoint, $params);

            if (isset($response['Success']) && !$response['Success']) {
                throw new Exception($response['Message']);
            }
        }
    }

Где my-address это адрес вашего скрипта, который будет обрабатывать ответ от сервиса CloudPayments.

Третий нюанс в том, что вам в любом случае придётся использовать JavaScript, поэтому я советую использовать виджет вместо скрипта Checkout. Так будет проще.