Platební brána Bitcash (API)

Bitcoin platby – platební brána Bitcash.cz

Probíhá testování brány s vybranými eshopy. Pokud máte zájem o implementaci Bitcoin plateb do vašeho eshopu - kontaktujte nás.

Výhody:

  • snadná implementace skrze XML/RPC calls
  • nezávislost na platformě (PHP, .NET, Ruby, Java, AJAX) - stačí mít možnost otevřít spojení přes HTTP s platební bránou
  • nemusíte provozovat vlastní bitcoind node (což je spojeno s vyššími náklady na provoz)
  • integrováno s Bitcash peněženkou (příchozí i odchozí platby zdarma)
  • přidělování unikátní bitcoin adresy pro každý nákup zněmožňuje konkurenci sledování vašich tržeb

Proces platby Bitcoinem v eshopu

Proces platby za zboží či služby v eshopu či na webových stránkách probíhá v těchto krocích:

  • uživatel dokončí objednávku v eshopu, je známa cena celkové objednávky v btc
  • aplikace obchodníka zavolá bitcash server s požadavkem vytvoření objednávky v určité výši v bitcoinech, bitcash vrátí obchodníkovi unikátní id a bitcoinovou adresu
  • aplikace obchodníka zobrazí uživateli bitcoinovou adresu a částku v btc k úhradě
  • zákazník uhradí částku v bitcoinech na zadanou adresu
  • bitcash server detekuje příchozí platbu a zavolá aplikaci obchodníka s oznámením platby
  • aplikace obchodníka zaúčtuje přijatou platbu a potvrdí objednávku jako uhrazenou.

Platební brána Bitcash.cz - Dokumentace
Verze: Development Draft 1
(dokumentace zatím není finální)

Vytvoření přístupu k API.

V nastavení platební brány můžete vytvářet jednotlivé projekty. Každý projekt má vlastní API účet. Pro přístup k API je použito ID projektu (jako uživatelské jméno) a Heslo, které si zvolíte.

Současně je možné navolit, do jaké peněženky připisovat přijaté bitcoin platby.

Vytvoření objednávky:

createorder (username, password, amount, orderid)

username – ID projektu
password – heslo, které si zvolíte v konfiguraci platební brány bitcash.cz
amount – částka v bitcoinech (FIXME: formát)
orderid – id objednávky ve vašem systému – pro callback i zjištění stavu

V případě úspěchu vrátí:

1KwxKTJ8Vx5YKLhqzT3grcxjRwQL4f1GBp 

bitcoinaddress (string) – adresa v bitcoin síti (začíná znakem 1)

Veškeré vytvořené objednávky jsou na webu bitcash v sekci „očekávané platby“.

Zjištění stavu objednávky:

checkorder (username, password, orderid)

username – ID projektu
password – heslo, které si zvolíte v konfiguraci platební brány bitcash.cz
orderid – id objednávky ve vašem systému

V případě úspěchu vrátí:

Array
(
    [0] => Array
        (
            [orderid] => 4531
            [projectid] => 1
            [timecreated] => 1371409465
            [amount] => 50.00000000
            [amount_int] => 5000000000
            [balance_int] => 85498239
            [status] => partly paid
            [bitcoinaddress] => 1KwxKTJ8Vx5YKLhqzT3grcxjRwQL4f1GBp 
            [minconf] => 312
            [lastreceived] => 1371242724
            [payments] => Array
                (
                    [0] => Array
                        (
                            [paymentid] => 1
                            [orderid] => 3
                            [amount] => 0.45222617
                            [amount_int] => 45222617
                            [timereceived] => 1370466178
                            [timeconfirmed] => 1370469298
                            [method] => send
                            [blockid] => 239954
                            [confirmations] => 1965
                            [txid] => 10ed3907ec9b2e6bcda878b4fb37c0525911d4a892ad376fe5bb33f8524d306f
                            [blockhash] => 00000000000000bee901ddf3cc51943b22e0915ede7818131597c4f4cc5b3d13
                            [notifytries] => 1
                            [timenotified] => 1370475263
                            [txidcleared] => move
                            [timecleared] => 1371254532
                        )

                    [1] => Array
                        (
                            [paymentid] => 8
                            [orderid] => 3
                            [amount] => 0.40275622
                            [amount_int] => 40275622
                            [timereceived] => 1371242724
                            [timeconfirmed] => 1371243041
                            [method] => send
                            [blockid] => 241550
                            [confirmations] => 369
                            [txid] => e42c6c35571f0f65aad8702f1dcb61eb73ad6c7228de873e7d321de04c9593cc
                            [blockhash] => 00000000000000c80cf7a22fd8257fc0cead60f8743d28d8635aa7351447bdbc
                            [notifytries] => 1
                            [timenotified] => 1371243645
                            [txidcleared] => move
                            [timecleared] => 1371254532
                        )

                )

        )

)

Životní cyklus objednávky:

Objednávka prochází těmito stavy:

  • not paid
  • partly paid
  • paid
  • overpaid
V nastavení projektu je možné zvolit minimální počet konfirmací z bitcoin sítě k tomu, aby platba byla považována za potvrzenou a zaúčtovanou. (Bitcoiny přesunuté mezi peněženkami Bitcash jsou potvrzeny okamžitě)

Obecně je doporučeno vyžadovat nejméně 6 konfirmací z bitcoin sítě. Brána samozřejmě monitoruje též nepotvrzené transakce (0 konfirmací).

Rozhodující pro stav objednávky je suma přijatých a potvrzených transakcí (s dostatečným počtem konfirmací z bitcoin sítě).

Nově založené objednávky jsou označeny “not paid”.

Jakmile suma finálně potvrzených transakcí je rovna (očekávané, fakturované) částce objednávka je označena jako “paid”.

Objednávky uhrazené jen z části jsou označeny “partly paid”. Naopak přeplacené objednávky, kde je přijatá částka vyšší než fakturovaná jsou označeny “overpaid”.

Nastavení notifikací a Callback

Četnost notifikací:

Systém poskytuje dva režimy notifikací. Základní a detailní. V základním režimu je obchodník skrze callback informován pouze o každé uhrazené objednávce (ve stavu paid nebo overpaid).

V detailním je informován o každé přijaté a potvrzené platbě (po dosažení potřebného počtu konfirmací) bez ohledu na stav objednávky.

Pro snazší implementaci doporučujeme režim základní. Pro systémy typu předplatného je vhodný režim detailní.

Pro sledování stavu objednávek mimo callback funkci je možne volat přímo Bitcash API funkcí checkorder.

Callback URL

V nastavení projektu specifikujte URL v aplikaci obchodníka, které bude voláno z bitcash serveru.

Například:

http://www.vas-eshop.cz/bitcoin.php

Na uvedené URL je skrze XML-RPC předáno pole s aktuálně přijatými platbami a jejich stavem - viz výše.

Při nemožnosti spojení se Bitcash pokuší zopakovat notifikaci o platbě ještě třikrát, poté je odeslán email obchodníkovi s varováním.

Kurzy Bitcoin a jejich konverze

Ziskat aktuální kurz BTC pro zobrazení cen zboží či služeb je možné skrze konvertor měn:

https://staker.cz/gw/server.php

convertcurrency (username, password, amount, fromcurrency ,tocurrency )

Podporovány jsou následující měny: USD, CZK, BTC
(Upozornění: kurzy přebíráme z webů třetích stran, za jejich aktuálnost neneseme odpovědnost)
Development Kit

K dispozici je vývojový kit pro PHP, s jehož pomocí můžete začít okamžitě testovat naši bránu. Kontaktujte admina buď skrze PM anebo emailem: info@bitcash.cz a devkit vám zašleme.

Generování QR kódů:

https://staker.cz/lib/phpqrcode/qr.php?code=XY

(XY dosaďte Bitcoin adresu nebo klíč)

PHP třída pro Bitcash (nejen platební bránu :sunglasses: )
https://staker.cz/forum/showthread.php?s=&threadid=1312

Zaokrouhlování cen v BTC při fluktuacích kurzu (PHP)
https://staker.cz/forum/showthread.php?s=&threadid=1281

Hezký :slight_smile: Jen taková drobnost; píšeš

a přitom z příkazu createorder spíše vyplývá, že si id zvolí obchodník, ne Bitcash.

A otázky:

  1. Co se stane, když člověk zaplatí méně než je požadováno?
  2. Co se stane, když zaplatí více?
  3. Je nějaký timeout, po kterém se adresa zahodí?
  4. Lze zjistit, že platba je na cestě, ale nemá ještě dost potvrzení? (dobré pro to zobrazit uživateli, že platba je přijímána, počkejte na potvrzení…)

Mně se to líbí, ale osobně to nemám kam zaintegrovat, takže zatím jen tak prudím :slight_smile:

Rád bych si udělal představu o tom, za kolik můžu tuto bránu implementovat svým klientům. Budou platit provizi, paušál, licenci, nebo je služba zdarma? Kdy bude brána dotestovaná a bude k vidění nějaká referenční instalace? Momentálně jsem už téměř rozhodnutý pro bitpay, ale chci zvážit všechny varianty. Díky předem za info.

API je k dispozici overenym clenum, prichozi i odchozi platby z penezenky jsou zdarma. Automaticky prodej bitcoinu skrze Mt.Gox 0.6% (dle poplatku Mt.Gox) a skrze Bitstamp 0.5% (dle poplatku bitstamp).

Na referencni instalaci stale pracujeme. API je prakticky hotovo, predelavame vsak penezenku tak aby byla integrovana s platebni branou (je to idealni zpusob testovani realnych plateb skrz branu bez poplatku bitcoin siti).

K Alesovym otazkam:
Bitcoin adresu vystavujeme permanentni tak, aby bylo mozne ji vyuzit jak pro jednorazovy nakup tak pro opakovane platby napr. predplatneho.

Obchodnik je notifikovan pri kazde platbe na danou adresu. Obchodnik si muze zvolit, po kolika konfirmacich je objednavka povazovana za uhrazenou (0 konfirmaci = platba na ceste je tez mozna na vlastni riziko obchodnika). V ten okamzik dojde tez k notifikaci na dane URL systemu obchodnika.

Po prijeti 6 konfirmaci je prijata platba presunuta z poductu “projektu obchodnika” do Bitcash penezenky daneho uzivatele ci na specifikovanou BTC adresu.

Mimo to je tez mozne manualne volat Bitcash api s dotazem na danou objednavku. Obratem jsou vypsany vsechny probehle transakce na danou adresu i se stavem aktualniho zpracovani (pocet konfirmaci, stav objednavky, apod.). Opet v tomto vypisu jsou zahrnuty i dosud nepotvrzene transakce nezarazene do bloku (0 konfirmaci).

Rozumím tomu dobře, že používání platební brány bude zdarma, stačí být jen ověřeným členem? To je dočasný stav nebo je to plánováno natrvalo?

Ano, budeme se snažit základní bránu poskytovat zdarma. Vyhrazujeme si však možnost dohodnout individuální podmínky v případě, že to bude potřeba (např. kvůli zvýšení poplatků bitcoin sítě z podúčtu projektu, náročnosti reklamací, technické podpory apod.)

Zdravím,

plánujete bránu naprogramovat jako modul do Prestashop 1.4 až 1.5?

Eventuálně, je tu někdo, kdo by mi modul vytvořil?

Díky!

Ak chceš API cez bitpay.com, tu máš modulov do halelúja:
Bitcoin shopping cart plugins

bol vytvoreny modul na Prestashop 1.4.x,

ak ma niekto zaujem tak PM, resp. staci zakricat.

kedy planujete EUR do API zakomponovat ???

Myslíš EUR ve funkci pro konverzi kurzů?

ano, myslim to presne

Jestli se podari, tak zitra kurzy EUR doplnim…

mezitim u konkurence