Як приймати платежі біткоіни (bitcoin) на своєму сайті

Біткоіни - досить привабливий метод оплати для онлайн-підприємців, в основному через те, що комісія при використанні цього методу вкрай незначна в порівнянні з PayPal або кредитними картами. Відповідно, це дозволяє отримати більш високий прибуток і пропонувати послуги клієнтам у всьому світі за доступними цінами. Більш того, біткоіни формально не обкладаються податком, оскільки не уявляють собою грошову форму, що видається урядом. Також серед переваг системи «біткоіни» можна виділити відсутність необхідності звернення до посередників.

У цій статті ми спробуємо додати біткоіни в якості способу оплати на сайті. Для прийняття платежів ми будемо використовувати Blockchain.info Receive Payments API V2, так як він простий, безпечний і може бути реалізований менш ніж за 10 хвилин.

Blockchain.info's API V2

Як отримати ключ API?

Малюнок 1. Форма заявки на отримання Receive Payments V2 API

Як приймати платежі біткоіни (bitcoin) на своєму сайті

Отримання розширеного публічного ключа (Extended Public Key)

Малюнок 2. Отримання ключа xPub

Як приймати платежі біткоіни (bitcoin) на своєму сайті

Нижче розглянемо параметри, які використовуються в наведеному 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.

Схожі статті