Как-то мне пришлось делать интеграцию данного платёжного метода. В этом нет ничего сложного, ведь есть довольно понятная документация. Я лишь опишу свой способ реализации и нюансы, с которыми мне пришлось столкнуться.
Первый нюанс в том, что для работы с этим методом я использовал библиотеку 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. Так будет проще.