Біткоіни - досить привабливий метод оплати для онлайн-підприємців, в основному через те, що комісія при використанні цього методу вкрай незначна в порівнянні з PayPal або кредитними картами. Відповідно, це дозволяє отримати більш високий прибуток і пропонувати послуги клієнтам у всьому світі за доступними цінами. Більш того, біткоіни формально не обкладаються податком, оскільки не уявляють собою грошову форму, що видається урядом. Також серед переваг системи «біткоіни» можна виділити відсутність необхідності звернення до посередників.
У цій статті ми спробуємо додати біткоіни в якості способу оплати на сайті. Для прийняття платежів ми будемо використовувати Blockchain.info Receive Payments API V2, так як він простий, безпечний і може бути реалізований менш ніж за 10 хвилин.
Blockchain.info's API V2
Як отримати ключ API?
Малюнок 1. Форма заявки на отримання Receive Payments V2 API
Отримання розширеного публічного ключа (Extended Public Key)
Малюнок 2. Отримання ключа xPub
Нижче розглянемо параметри, які використовуються в наведеному URL:
RESPONSE: 200 OK, APPLICATION / JSON
Нижче наведено приклад реалізації на PHP:
$ My_callback_url = 'INSERT YOUR CALLBACK URL HERE +/- that can include customer identification parameters such as? Invoice_id = 058921123secret ='. $ Secret;
$ Parameters = 'xpub ='. $ My_xpub. 'Callback =' .urlencode ($ my_callback_url). 'Key ='. $ My_api_key;
$ Response = file_get_contents ($ root_url. '?'. $ Parameters);
echo 'Send Payment To. '. $ Object-> address;
Реалізація зворотних дзвінків Blockchain.info
Нижче наведено приклад PHP-коду на зворотній дзвінок, отриманого в результаті раніше представленого скрипта:
$ Invoice_id = $ _GET [ 'invoice_id']; // invoice_id is passed back to the callback URL
$ Value_in_btc = $ value_in_satoshi / 100000000;
// Commented out to test, uncomment when live
if ($ _GET [ 'test'] == true)
// create or open the database
$ Database = new SQLiteDatabase ( 'db.sqlite', 0666, $ error);
// Add the invoice to the database
$ Stmt = $ db-> prepare ( "replace INTO invoice_payments (invoice_id, transaction_hash, value) values (.)");
$ Stmt-> bind_param ( "isd", $ invoice_id, $ transaction_hash, $ value_in_btc);
Відповідь на зворотній дзвінок
Щоб підтвердити, що зворотний виклик був успішно оброблений, ваш сервер повинен відповідати ok в текстовому форматі, а не HTML. Якщо ваш сервер повертає будь-якої іншої відповідь або не діє, сервер blockchain.info буде повторно відправляти запит кожні 10 хвилин протягом одного тижня. Домени, що не повертають жодної відповіді, можуть бути повністю заблоковані службою.
Безпека
Ми повинні додати унікальний параметр $ secret в URL зворотного виклику. Цей параметр буде перевірений кодом перевірки дійсності для того, щоб запобігти ситуації, коли непорядні користувачі спробують позначити рахунок сплаченим.
На додаток до біткоіни ви можете використовувати свою місцеву валюту. Для цього потрібно буде скористатися API обмінного курсу Blockchain.info.
У цій статті ми коротко розглянули один з можливих шляхів додавання платежів «біткоіни» на ваш сайт, дізналися всі плюси, мінуси та нюанси використання цієї системи. Це допоможе вам спростити процес оплати ваших послуг або товарів, пропонованих на сайті. Варто зазначити, що ми працювали з реалізацією на PHP, але це можна зробити і в Python, і в Ruby.