System płatności

Ten system umożliwia przyjmowanie płatności w PCC, PLC, PLNc bez konieczności instalowania klienta sieci, ani znajomości technicznej kryptowalut. Kiedy użytkownik dokona zakupu, Twój serwer zażąda od nas indywidualny adres dla transakcji, na który użytkownik ma wpłacić monety. Ten adres będzie znajdował się w naszym portfelu. Po dokonaniu płatności, środki zostaną natychmiast przesłane ponownie na Twój zbiorczy adres, który określisz w żądaniu adresu dla transakcji, więc staniesz się posiadaczem tych środków (w portfelu na komputerze, online lub giełdzie). Zostanie również wysłana odpowiedź zwrotna informująca o dokonaniu transakcji. Bez rejestracji i opłat!

Obsługiwane waluty

Instrukcja krok po kroku

Adres wpłaty dla użytkownika

Wyślij żądanie za pomocą Twojego skryptu pod adres:
http://payments.e-waluty.net.pl/api.php?function=getaddress&forward_to=&onsuccess=&required_amount=ILE&required_confirmations=N&currency=CCC

currency
Kod obsługiwanej waluty
forward_to
Adres, na który zebrać środki wpłacane przez użytkowników. Jest to Twój adres z Twojego portfela, np. lokalnego lub na giełdzie.
onsuccessNiewymagane
Adres, który wywołamy, gdy płatność zostanie dokonana. Jeżeli nie podasz, musisz sam monitorować stan wygenerowanego adresu. Dodaj tajny identyfikator.
required_amountNiewymagane
Wymagaj wpłaty określonej kwoty zanim zostanie wywołany URL zwrotny. Użytkownik może wysłać kilka transakcji na mniejszą niż żądana kwota, po zebraniu właściwej ilości dopiero zostanie wywołany adres. Jeżeli nie określono, będzie wywoływany po każdej wpłacie na wygenerowany adres (należy samodzielnie sprawdzić wpłaconą ilość)
required_confirmationsNiewymagane
Po ilu potwierdzeniach poinformować Twoje API o zakończnej płatności? Domyślnie 0, zalecane 6.
Otrzymasz odpowiedź w JSON z następującymi kluczami:
payment_address
Adres, na który użytkownik ma dokonać wpłaty. Wyświetl go w interfejsie swojego sklepu.
forward_to
Adres, na który będą zbierane wpłaty. Jest to adres w Twoim portfelu. Zwracany w tym żądaniu w celu weryfikacji - sprawdź czy jest taki, jaki podałeś.
callback
Adres, który wywołamy, gdy płatność zostanie dokonana. Zwracany w tym żądaniu w celu weryfikacji - sprawdź czy jest taki, jaki podałeś.

Po wpłaceniu

Po dokonaniu wpłaty, środki z adresu jednorazowego zostaną przelane na określony wcześniej adres zbiorczy i zostanie wywołany wcześniej zdefiniowany adres powiadomienia. Odpowiedź zawiera:

value
Całkowita dotychczasowa przesłana wartość
payment_address
Adres, na który wpłacał użytkownik
forward_to
Adres, na który będą zbierane wpłaty. Jest to adres w Twoim portfelu. Zwracany w tym żądaniu w celu weryfikacji - sprawdź czy jest taki, jaki podałeś.
Jeżeli odpowiedzią będzie OK to adres nie będzie już wywoływany.

Przykład

shop.php


<?php
$currency 'PLNC'//Select from supported coins. You can also allow users to choose between them.
$main_address ''//enter YOUR address where paid money goes
$callback_main 'http://example.org/shop_api.php?secret=';

//product or invoice data
$invoice_id '1024';
$secret $invoice_id.'_'.substr(md5(rand(0100).time()), rand(02), 8); //try to make unique and random
$price 100;

$callback urlencode($callback_main.$secret);
$url 'http://payments.e-waluty.net.pl/api.php?function=getaddress&forward_to='.$main_address.'&onsuccess='.$callback.'&required_amount='.$price.'&required_confirmations=6&currency='.$currency;

$response json_decode(file_get_contents($url), true);

if(array_key_exists('error'$response))
{
//log()
die('error');
}
else if($response['forward_to'] != $main_address)
{
//log()
die('error');
}

$payment_address $response['payment_address'];
echo "Wpa $price.$currency na adres $payment_address.<br /><a href=\"/\">Powrt</a>"//add links, interface etc.

mysql_query("INSERT INTO payments ('invoice_id', 'secret', 'status', 'address', 'value') VALUES ('".$invoice_id."', '".$secret."', 0, '".$payment_address."', '".$price."')");
?>

shop_api.php


<?php
$secret addslashes($_GET['secret']);
$q mysql_query("SELECT * FROM payments WHERE secret = '$secret'");
$result mysql_fetch_assoc($q);

if(empty($result))
{
die('No such payment');
}

if($result['price'] > $_GET['value'])
{
die('Too small payment');
}

mysql_query("UPDATE payments SET status = 1 WHERE secret = '$secret'");
//status=1 means paid but not item not sent yet.

echo 'ok';
?>