Закончил большую работу по объединению всех популярных платёжных систем в семейство классов интерфейса iWallet:
interface IWallet
{
public function CreateProcessing($Amount, $OrderID, $Description); // генерация кода для оплаты в мерчанте
public function CheckPayment($Amount, $Wallet, $OrderID); // проверка оплаты
public function SendMoney($ClientWallet, $ClientAmount, $Description);// перевод средств
public function ShowBalance(); // показ баланса кошелька
public function CheckPermission($datas); // запрос на разрешение операции обмена
public function ChangeWallet($NewWallet); // смена активного кошелька
}
Теперь работать с платёжными системами типа Webmoney, Qiwi, Яндекс.Деньги, BTC (coinbase или blockchain API) возможно, достаточно просто написать:
$webmoney = new Webmoney(параметры инициализации);
$webmoney->SendMoney('Z123456790',0.1,'Тест платежа');
Нет необходимости знать детали интерфейсов, запросов токена и так далее.. Для каждой платёжной системы свои параметры инициализации. Достаточно один раз настроить платёжную систему.
Если же вы делаете обменный пункт то для гибкости вы просто создаёте класс-фабрику, которая в зависимости от входного платежа будет вам генерировать данные на оплату, проверять оплату и оплачивать с нужной платёжной системы по нужным реквизитам.
Для деталей, сотрудничества и покупки универсальных классов идём в раздел контакты.