Идея заключается в создании клиент-серверного OpenSource инструментария для быстрого и легкого разворачивания организации приема биткоинов на своем сайте (продажа товаров, услуг ...).
Главный принцип -
независимость от сторонних сервисов (использование сторонних мерчантов нарушает основную идею биткоина) ,
простота развертывания (с установкой должен справится даже самый далекий человек) ,
минимум кода на клиентской стороне (простота обслуживания),
универсальность ( т.е. код должен легко встраиваться в любой сервис).
Вот
тут я описывал пример , как при помощи биткоина организовать прием платежей. Не смотря на то что код достаточно прост , все же переделывать его придется каждый раз под новый проект.
В любом случае нам не обойтись без серверной стороны, на которой будет хранится наш wallet.dat и работать демон bitcoind. Дак почему бы нам не вынести весь основной код, который будет по сути универсален для всех случаев, на сервер, а легкую часть на клиента.
Т.е. выглядеть это будет так же , как и работают все основные мерчанты - на frontend стороне сервиса, будет обычная html кнопка перехода на мерчант-сервер
скрипт выписки счета на клиентской стороне будет выглядеть тоже несложно (
прошу просить за говнокод, но это чисто для наглядности, на самом деле конечно все будет немного развернутей, со всеми требуемыми проверками валидности сделки).
//выписка счета
if ($action === 'pay')
{
$sum = $_REQUEST['sum'];
$hash = md5(InvId+Account+OutSum+CLIENT_PASS);;
$InvId = GetNewInvoice();//добавление записи в базу и возврат номера
$smarty->assign('InvId',$InvId);
$smarty->assign('hash',$hash);
$smarty->assign('account',$account);
$smarty->assign('account',$sum);
$smarty->display('do_pay_bitcoin.tpl'); break;
}
//оплата
if ($action === 'result')
{
$InvId = $_REQUEST['InvId'];
//извлекаем
$InvData = GetInvoiceData($InvId);
//
//проверям валидность этого калбека через Crc
//Выдаем товар
}
?>
для оплаты, а также скрипт, который будет выписывать счет и ждать его оплаты, а после оплаты выдавать клиенту купленный товар или услугу.
Отличие будет лишь в том, что мерчант будет наш, собственный, и располагаться он будет на нашем же сервере вместе с bitcoind демоном.
Серверная часть будет универсальной для всех, и разворачиваться буквально в несколько шагов.
Клиент будет отправляться для оплаты нашему мерчант-сервису, который будет выводить адрес для оплаты и ожидать зачисления платежа. После того, как на выделенный клиенту адрес поступят BTC, скрипт сделает разноску и сравнит с требуемой суммой. Если сумма равна требуемой, он успешно отстучится на сторону магазина callback-ом и сообщит о том, что можно клиенту выдать желаемое.
Выглядеть будет как-то так:
При такой схеме реально получается минимум кода на клиентской стороне , а встраивание будет практически таким же , как и любого мерчанта WebMoney , даже проще.
Реализация будет тут достаточно несложная, а пользу такого решения для Bitcoin торговли просто сложно недооценить.
Я попробую начать и сделать рабочий прототип. Если есть желание помочь, пусть даже словом или советом, вэлкам!
Что вы думаете по этому поводу?