Кнопки и API для приема оплаты

Кнопки для приема оплаты

Чтобы принимать оплату за товары или услуги через шлюз PaymentBar, нужно направлять плательщиков на URL, сформированный для него.
Одним из простейших способов является вставка кнопки оплаты (см. Generator) либо редирект пользователя на URL, сгенерированный в этой утилите.

Пример кода:

<a href="https://go.paymentbar.com/api/v2/make?pay_to_btc=161GZJfEqRk3gt2ueuBUdYyVk12BXEuaZe&amount=14.95&note_url=http://example.com/callback.php&shop_name=My%20sample%20webshop" target=_self>Pay by Bitcoin</a>

Чтобы узнать об успешно прошедшей оплате, вам необходимо также интегрировать в свою систему скрипт проверки статуса платежа, вызывающий метод «check» при получении от системы callback (скачать пример) – именно его URL указывается в аргументе note_url.

Описание для разработчиков

HTTP REQUEST:
GET / POST https://go.paymentbar.com/api/v2/[make|check]?arguments

METHODS:
make, check

Метод «make» – выставление счета

Метод «make» возвращает страницу оплаты (если не указан аргумента format=json, при котором возвращаются данные в JSON формате).

Пример:
GET https://go.paymentbar.com/api/v2/make?pay_to_btc=161GZJfEqRk3gt2ueuBUdYyVk12BXEuaZe&amount=14.95&note_url=http://example.com/callback.php&shop_name=My%20sample%20webshop

Обязательные параметры:

pay_to_[btc|ltc|doge] адрес кошелька криптовалюты, на него придут средства после поступления от покупателя. В запросе должен быть указан один из кошельков: pay_to_btc, pay_to_ltc, pay_to_doge.

amount цена товара в USD, минимум $0.05

Факультативные параметры:

note_url URL для callback-нотификаций (отправятся два параметра invoice_id и ctx)

shop_name название магазина

desc описание продукта

format json|redirect (default: redirect), redirect – редиректит на нашу форму оплаты, json – вывод информации о счете в JSON формате

shop_url URL магазина

back_url URL страницы, на которую отправлять покупателя после успешной оплаты

cancel_url URL страницы отмены операции

email email продавца, на который будут приходить уведомления об очередном подтверждении транзакции (до 6-ти транзакций)

ctx содержимое этого параметра вернется при callback в неизменном виде. Например, в нем вы можете указать id товара в системе магазина, или id пользователя, или набор данных)


Callback-нотификации

Callback вызовы производятся методом POST на URL, указанный в аргументе note_url, в следующих случаях:

  • первое появление транзакции в сети,

  • первые 6 подтверждений транзакций,
  • отправка средств на кошелек магазина.

В нотификациях приходят два параметра:

invoice_id id счета в нашей системе,

ctx содержимое этого параметра передается в неизменном виде, в точности так, как он был задан в методе «make».

Как только пришла нотификация, магазин должен вызвать метод «check» для проверки статуса платежа.

Метод «check» – проверка статуса платежа

GET https://go.paymentbar.com/api/v2/check?id=invoice_id

Аргумент у вызова может быть только один – invoice_id, который был получен во время callback.

Если ID счета не существует, то возвратится null.

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

status – оплаченный счет имеет статус «fill», «soft», «hard», «closed» (детали ниже),
data.amount – сумма должна совпадать с тем, что передавалось методом «make»,
data.currencies[N].amount – должно совпадать с data.currencies[N].filled,
data.currencies[N].confirmations – должно быть не нулевым
data.currencies[N].pay_to – номер кошелька должен совпадать с тем, что передавался в методе «make», чтобы быть уверенным в отсутствии вмешательства в систему.

В зависимости от статуса счета и кол-ва подтверждений магазин может сам принять решение о том, оплачен товар или нет. Но в общем случае стоит считать, что счет оплачен, если получил статус «hard»

Параметры в ответе:

id ID счета

status статус платежа. Возможные значения:
new – счет создан
fill – транзакция появилась в сети криптовалюты
soft – получено 1 подтверждение
hard – получено 6 подтверждений
closed – средства отправлены на кошелек магазина
invalid – со счетом oшибка

created дата создания платежа (GMT+0)

expires дата обновления курса обмена, если status=new (GMT+0)

data.shop_name Название магазина

data.desc описание товара

data.msg сообщение покупателю

data.lang язык интерфейса

data.ttl время жизни курса обмена

data.ctx параметр для callback-URL

data.shop_url URL магазина

data.note_url URL для нотификаций

data.back_url URL для возврата в магазин после оплаты

data.cancel_url URL для отмены платежа

data.error_url URL страницы ошибки

data.icon_url URL иконки магазина

data.email email продавца

data.amount кол-во денег в USD

data.currencies[N].amount должно совпадать с data.currencies[N].filled

data.currencies[N].confirmations кол-во подтверждений транзакции,

data.currencies[N].pay_to номер вашего кошелька, куда выводится оплата, должен совпадать с тем, что передавался в методе

data.currencies[N].filled сколько всего попало в кошелек

data.currencies[N].pay_from кошелек системы PaymentBar, на который попадут средства, включая процент за услуги и комиссию за транзацкию

Пример ответа:

{
    "id": "d6767cc37fdk333c6ea52d0f134b8bf3", 
    "status": "new",
    "created": "2015-06-09 08:24:34", 
    "expires": "2015-06-09 08:39:34", 
    "data": {
        "shop_name": "asdad", 
        "desc": "", 
        "msg": null,
        "lang": null, 
        "ttl": 900, 
        "ctx": null, 
        "shop_url": null, 
        "note_url":   "http:\/\/www.example.com\/paymentbar_callback.php",  
        "back_url": null, /
        "cancel_url": null,
        "error_url": null, 
        "icon_url": null, 
        "email": null, 
        "amount": 0.49, 
        "currencies": [
            {   
                "label": "btc",
                "amount":  0.00212029,  
                "pay_to":   "161GZJfEqRk3gt2ueuBUdYyVk12BXEuaZe",
                "pay_from": "1GUgQwkdutm27wLrmFBXfpy6Az2dQ36f5x", 
                "filled": 0, 
                "confirmations": 0 
            },
            { 
                "label": "ltc",
                "amount": 0.27176927,
                "pay_to": "LSA7HpG6khzYXY5mCMEBGbiUHZYqUJQz4A",
                "pay_from": "LKkxCvkpi5EQvTzH1HdHeSEycvCGxQTmUs",
                "filled": 0,
                "confirmations": 0
            },
            { 
                "label": "doge",
                "amount": 3154.16800772,
                "pay_to": "D88Tp4Bkx4nDXRxD2St69s1okBKnHqMUt6",
                "pay_from": "DHNLkAQwjmoVHVzBg2LbwaanBMRtJZS58H",
                "filled": 0,
                "confirmations": 0
            }
        ]
    },
    "created_timestamp": "1433838274",
    "expires_timestamp": "1433839174"
}