Что такое биткоин? Ответы на вопросы простыми словами

Coinbase SDK

Для работы с Coinbase вы можете воспользоваться специальными инструментами и SDK, которые доступны абсолютно каждому (с некоторой оговоркой о цене).

Условия использования:

  • Приём платежей при помощи Coinbase осуществляется абсолютно бесплатно,
  • Вы соглашаетесь заплатить взнос (1%) в случае, если захотите перевести деньги на ваш банковский счет, но только если ваши продажи превышают $1.000.000 (один миллион долларов),
  • Минимальная сумма перевода в сети Bitcoin составляет 0,001 BTC. Используя Coinbase, можно понизить этот предел до 1 Satoshi (0,00000001 BTC),

Ещё одним важный момент: вы можете подключать услугу “Мгновенный обмен”. Данная услуга преобразует сумму платежа Bitcoin сразу в выбранную вами валюту без дополнительных действий.

Что такое UTXO

UTXO

расшифровывается как Unspent Transaction Output, и на русский язык эту фразу можно перевести как «неизрасходованные выходы транзакций». Если говорить простыми словами, то это «остатки», которые отправитель получает обратно на свой кошелек после проведения транзакции. Такой способ передачи монет дает гарантию того, что у пользователя есть деньги на счету, и защищает сеть от атаки «двойного расходования».

Эта технология отправки транзакций реализована в биткоине и в целом ряде других монет (например, в Komodo).

Интересно, что во времена, когда Bitcoin находился в самом начале своего пути, пользователям приходилось вручную настраивать отправку «остатков» на свой кошелек. Кроме заполнения строки с адресом получателя, нужно было также указывать адрес, на который придут неизрасходованные биткоины. Если адрес кошелька был указан неверно, то отправитель навсегда терял свои монеты (или случайно мог сделать подарок другому пользователю, если был указан активный адрес).

Современные Bitcoin-кошельки делают эту работу за пользователя: теперь достаточно указать только адрес получателя. Благодаря UTXO процесс отправки криптовалюты стал более простым и менее рискованным.

Типы интеграции

Как и многие другие сервисы онлайн-платежей, Coinbase предлагает два основных способа интеграции. Первый быстрее и легче, второй сложнее, но предоставляет расширенные возможности, которые больше подходят для больших проектов.

Первый вариант заключается в использовании одного из инструментов Coinbase, а именно MerchantTools. Вы можете использовать кнопки, страницы и фрэймы. Если вы используете CMS или системой управления электронной коммерцией (WordPress, WooCommerce, Magento…), то наверняка найдёте много соответствующих плагинов.

Второе способ заключается в полной интеграции сервиса, исключая обращение к Coinbase. На самом деле, мы будем использовать конкретный PHP SDK.

Что мы можем сделать при помощи данного SDK?

  • продавать или покупать bitcoin-ы (или совершать валютный обмен),
  • отправить/запрашивать bitcoin-ы по электронной почте или по bitcoin адресу,
  • принимать платежи bitcoin как мерчант-сервис,
  • хранить bitcoin-ы в одном или нескольких кошельках,
  • иметь доступ к списку операций над bitcoin-ами (блоки, транзакции и т.д.),
  • обрабатывать текущие и микро платежи,

Всего по-немногу.

На данный момент существует три версии SDK: для Ruby, Java и PHP. Есть также много неофициальных библиотеки для других языков (Python, .NET, Node.js …). В нашем случае мы будем использовать PHP SDK, который вы можете найти на GitHub.

Примечание: прежде чем перейти к следующему шагу, вам необходимо быть зарегистрированным в Coinbase.

Чем биткон отличается от электронных платежных систем?

Что такое биткоин в сравнении с ЕПС? Все электронные платежные системы – это эквиваленты национальных валют. Они позволяют проводить платежи национальных валют в интернете. Каждая из ЕПС полностью привязана к конкретной валюте.

Биткоин же выступает самостоятельной валютой и имеет собственную цену по отношению к другим валютам. Выпуск монет проводится не государством, а самими пользователями по строго известной системе. Еще одно преимущество биткоина – это низкие комиссии транзакций.

PHP SDK

Установка

Давайте начнем с установки пакета библиотеки. На GitHub-овскйо странице данного SDK вы не обнаружите возможность взаимодействия с Composer. Тем не менее, при помощи простого поиска можем найти соответствующий пакет coinbase/coinbase.

Для установки помещаем следующий код в файл composer.json:

1 {
2 «require»: {
3 «coinbase/coinbase»: «dev-master»
4 }
5 }

Далее используем composer (если он у вас установлен) для скачивания библиотеки:

1 composer update

Аутентификация

Перед тем как приступить к написанию кода, давайте поговорим об аутентификации. У разработчиков есть два варианта аутентификации, для получения доступа к методом API. Первый — это использование пары ключей API и API Secret. Второй, использование OAuth2.

Документация Coinbase вполне понятна: если вы намереваетесь взаимодействовать только с своим ??аккаунт-ом, вносить в него изменения, то можете использовать API Key. Если же вам необходимо, чтобы пользователь использовал свой аккаунт в рамках вашего приложения, то лучше всего воспользоваться OAuth2.

Ключ API + Secret

Создать ключ API очень просто, если у вас есть аккаунт Coinbase. Все, что вам нужно сделать, это перейти сюда и нажать на кнопку «+ New API Key».

Если вы делаете это впервые, то вам скорее всего придётся подтвердить аккаунт при помощи Authy.

Перед вами должна отобразиться следующая форма:

Вам нужно будет указать данные учетной записи и список прав, которые необходимо присвоить для конкретного ключа. Также вы можете выбрать один или несколько IP адресов для внесения их в “белый список”.

Для создания и активации ключа API нажмите сначала кнопку “Create”, а затем “Enable”.

OAuth 2.0

Если вы хотите использовать OAuth 2.0 , то сначала придётся пройти простую процедуру. На это раз вам нужно создавать не ключ API, тем не менее, а OAuth 2.0 приложение. Для этого отправляетесь по адресу https://coinbase.com/oauth/applications. Далее нажмите на кнопку “+ Create an Application”:

Заполните форму: укажите название вашего приложения, выберите иконку, а так же укажите список URL-адресов для будущих редиректов.

Примечание: каждый URL должен начинаться с (https://…). Другие варианты будет игнорироваться.

Кликните окей и все готово! После этого вы должны получите письмо с вашим новым ClientID и Client Secret. Это конечно не вся информация об аутентификации, более подробное описание можете найти на соответствующей странице.

Права

Для более безопасной работы с API вам предстоит иметь дело с правами доступа. Полный список прав:

  • all: полный доступ к вашей учетной записи,
  • merchant: создание платежных кнопок, форм, доступ к основой информации о продавце, редактирование своих данных и создание новых адресов,
  • balance: доступ к вашему реальным состоянию счёта,
  • buttons: создание кнопки оплаты,
  • buy: покупка bitcoin-ов,
  • contacts: предоставление списка ваших контактных данных,
  • orders: предоставление списка принятых заказов,
  • sell: продажа bitcoin-ов,
  • transactions: предоставление истории ваших сделок,
  • send: отправка определенного количества bitcoin-ов с вашего счета,
  • request: запрос bitcoin-ов с вашего счета,
  • transfers: предоставляет историю о покупках и продажах,
  • recurring_payments: предоставляет список регулярных платежей,
  • oauth_apps: просматривать, создавать и редактировать OAuth приложения,
  • reports: получение и создание новых отчетов,

Принципы работы с SDK

Теперь, когда у нас есть ключи и скачанная библиотека, можем приступать к дальнейшим шагам.

Прежде всего, давайте взглянем на осуществлении процедуры аутентификации.

Доступ по ключам API и Secret

1 $coinbase = Coinbase::withApiKey($coinbaseAPIKey, $coinbaseAPISecret),

Вставьте ключ API и API Secret в качестве параметров в метод withApiKey(). Далее для работы с SDK мы будем использовать объект $coinbase.

Доступ через OAuth

После создания OAuth приложения, нам нужно создать объект $coinbaseOauth, указав Client ID и Client Secret которые мы получили ранее. Как в этом примере:

1 $coinbaseOauth = new Coinbase_OAuth($_CLIENT_ID, $_CLIENT_SECRET, $_REDIRECT_URL),
2 header(«Location: » . $coinbaseOauth-&gt,createAuthorizeUrl(«all»)),

После успешной аутентификации пользователь будет перенаправлен на URL, указанный ранее во время установки. Для получения валидного токена, так же нужно передать параметр code:

1 $tokens = $coinbaseOauth-&gt,getTokens($_GET[‘code’]),

Далее нам необходимо создать объект $coinbase, используя токен:

1 $coinbase = Coinbase::withOauth($coinbaseOauth, $tokens),

Независимо от того, каким способом мы прошли аутентификацию, процесс работы с объектом $coinbase один и тот же.

Доступ к данным

Получить ваши данные очень просто. Для этого воспользуемся объектом $coinbase.

Для проверки вашего баланса, выполните следующий код:

1 echo $coinbase-&gt,getBalance() . » BTC»,

Вот как получить данные пользователя:

1 $user = $coinbase-&gt,getUser()
2
3 echo $user-&gt,name,
4 echo $user-&gt,email,
5 echo $user-&gt,time_zone,
6 echo $user-&gt,native_currency,

Используя объект $coinbase, мы так же можем получить информацию о продавце.

1 $user-&gt,merchant-&gt,company_name,
2 $user-&gt,merchant-&gt,logo,

Примечание: свойство logo возвращает URL-адрес логотипа.

Кроме того, мы можем получить контактные данные, вызвав метод getContacts().

1 $response = $coinbase-&gt,getContacts(«user»),
2
3 foreach($response-&gt,contacts as $contact)
4 {
5 echo $contact,
6 // ‘[emailprotected]
7 }

Данные о валютах

SDK так же позволяет получить данные о валютах:

1 $currencies = $coinbase-&gt,getCurrencies(),
2 echo $currencies[0]-&gt,name,

Метод getCurrencies() возвращает список всех активных валют (в формате ISO), доступных в системе Bitcoin. Вот как, можно получить некоторую информацию о валютных курсах:

1 $rates = $coinbase-&gt,getExchangeRate(),
2
3 echo $rates-&gt,btc_to_usd,
4 // is the same as…
5 echo $coinbase-&gt,getExchangeRate(‘btc’, ‘usd’),

В зависимости от параметров, которые мы передадим в getExchangeRate(), получим разный результат.

Так же вы можете получить информацию о валютном курсе при помощи методов getBuyPrice() и getSellPrice():

1 echo $coinbase-&gt,getBuyPrice(‘1’),
2 // ‘125.31’
3 echo $coinbase-&gt,getSellPrice(‘1’),
4 // ‘122.41’

Примечание: в данную сумму входит 1% сбора Coinbase и $0.15 банка.

Создание кнопки оплаты

Для создания кнопки оплаты воспользуйтесь методом createButton() с определенным набором параметров:

1 createButton($name, $price, $currency, $custom=NULL, $options=array())

… а вот и пример:

1 $paymentButton = $coinbase-&gt,createButton(
2 «Order #1»,
3 «19.99»,
4 «EUR»,
5 «TRACKING_CODE_1»,
6 array(
7 «description» =&gt, «1 item at 19.99»
8 )
9 ),

Довольно просто, не так ли?

Первый параметр $name — это “название” платежа, который вы хотите создать. Далее идёт $price, сумма платежа. Потом этого, выберите валюту платежа , и $custom настройки для конкретного кода транзакций который будет отправлен вам после процедуры оплаты.

И наконец, $options позволит настроить внешний вид кнопки, настроить URL-адрес на который необходимо отправить пользователя при успешной или не успешной оплате. Больше информации об этом параметре можете найти на странице документации.

Для вывода самой кнопки, воспользуйтесь следующими полями:

1 echo $response-&gt,button-&gt,code,
2 // ‘93865b9cae83706ae59220c013bc0afd’
3
4 echo $response-&gt,embedHtml,
5 // ‘
https://coinbase.com/assets/button.js» type=»text/javascript»&gt,’

Остаётся вывести кнопку $response-&gt,embedHtml с помощью оператора echo.

Как появился биткоин?

Как появился биткоин?

Впервые зафиксирована информация о биткоине появилась 31 октября 2008 года – это было техническое описание концепции сети. Автором этой валюты является Сатоши Накамото, но его личность так и осталась не раскрыта. На сегодняшний день управление биткоином осуществляется сообществом разработчиков и всеми участниками сети. Разработчики предлагают улучшение и после того как большая часть пользователей согласится на это оно вступает в силу.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий