@alneo
Интернет программист

Интеграция bitcoinpay на сайт?

Кто работал с bitcoin? Нашел сервис bitcoinpay.com он предлагает API (docs.bitcoinpaycom.apiary.io/#reference/payment/cr... действую по инструкции, но видимо не могу понять сам смысл bitcoin.
При совершении операции оплаты через сайт (по API использую Create Payment Request) у клиента не происходит ни какого запроса.
В админке bitcoinpay есть "Transaction history" в котором появляется запись с статусом "Pending" которую можно открыть и есть кнопка "Оплатить" при нажатии идет запрос на приложение bitcoin - получается клиент на сайте не оплачивал а делал запрос на вывод денег.
А в систему клиент должен ввести сам деньги? т.е. открыть свой кошелек и перевести деньги на кошелек сайта?
  • Вопрос задан
  • 200 просмотров
Пригласить эксперта
Ответы на вопрос 1
@j7sx
Недавно озадачился этим вопросом. После того как ты создал post запрос тебе приходит ответ в формате json. из этого ответа тебе нужно взять строку "payment_url" это и будет ссылка для пользователя, по которой он пройдёт(у меня сразу на сайте в фрейме грузится) для оплаты.
Использую python и у меня это выглядит так:
html:
<form action="../cgi-bin/btc/satoshi_transit.cgi" method="post" id="form">
        <div id="text">
            Логин:
          </div>
            <div id="input_login">
                <input type="text" name="login">
            </div><br>
        <div id="text">
            email:
        </div>
            <div id="input_login">
                <input type="text" name="email">
            </div><br>
        <div id="text">
            Сколько купить?:
        </div>
            <div id="input_pwd">
                <input type="text" name="satoshi">
            </div><br>
        <div id="ibutton">
            <input type="submit" value="Купить" class="button">
        </div>
</div> 
</form>


и обработчик на python:
#!/usr/bin/python
#--*--coding: utf-8--*--

import cgi
import json
from urllib2 import Request, urlopen

form = cgi.FieldStorage()

# присваиваем переменным имена с формы
login = form.getfirst("login", "")
email = form.getfirst("email", "")
satoshi = form.getfirst("satoshi", "")

login = cgi.escape(str(login))
email = cgi.escape(str(email))
satoshi = (float(satoshi))

values = {
    "settled_currency": "BTC",
    "return_url": "http://mysite.ru/buy/thankyou.html",
    "notify_url": "https://mysite.ru/cgi-bin/btc/order-received.cgi",
    "notify_email": "myemai@mail.ru",
    "price": satoshi,
    "currency": "BTC",
    "reference": {
      "customer_name": login,
      "order_number": 123,
      "customer_email": email
    },
    "item": "la2coin",
    "description": "buy la2coin"
  }

data = json.dumps(values)
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Token your_key_here'
}
request = Request('https://www.bitcoinpay.com/api/v1/payment/btc',
                     data=data, headers=headers)

response_body = urlopen(request).read()
responce = json.loads(response_body)
url = responce["data"]["payment_url"]
print "Content-Type: text/html; charset=utf-8"
print ""
print "<meta http-equiv=\"refresh\" content=\"1;URL=%s\" />" % url


Проверки на введенные в форму значения опустил.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы