chyba dojrzałem do tego kroku, czyli wprowadzenia możliwości płatności kryptowalutami w e-sklepie. Nie jestem w tym temacie ani alfą ani omegą wiec liczę na waszą pomoc. Będzie długo, za co z góry przepraszam, no ale temat jest dosc pojemny i nie da się go omówić w 3 zdaniach.
1. Założenia:
a. Płatności chcę zrealizować sam, bez pośredników. Potrafię to zrobić od strony technicznej (skrypty). Zakładam, że (przynajmniej na razie- diabli wiedzą co przyniesie przyszłość) będą sporadyczne (o ile w ogóle) przypadki zakupów z wybraniem zapłaty kryptowalutą, więc nie chcę się wiązać z pośrednikami, płacić kilosy PLN za realizację itd.- choć nie wykluczam niczego w przyszłości.
b. Płatności krypto chcę zrobić w najprostszy możliwy sposób, aby niewiele się różniły od zrobienia zwykłego przelewu z konta w banku (oczywiście dla kogoś kto już jest oblatany w temacie, posiada jakiś portfel z kryptowalutą i nią obraca, a nie dla kogoś kto właśnie się dowiedział o istnieniu kryptowalut- nie przewiduję dla siebie roli edukatora)
c. "Najprostszy możliwy sposób" dotyczy także nakładu pracy związanego z wprowadzeniem tej opcji, czyli na początek - nie chcę spędzić nie wiadomo ile czasu robiąc i dbając o milion ficzerów- ma być tylko to co konieczne.
d. Płatności kryptowalutami chcę traktować tak jak płatności w każdej innej obcej walucie. Czyli nie zamierzam budować portfela z kryptowalutami, spekulować nimi na giełdach itd - krypto będę chciał jak najszybciej zamienić na złotówki a te przelać na konto firmowe w banku. Przynajmniej dopóki moi dostawcy nie zaczną przyjmować płatności bitcoinami

e. Chcę zminimalizować ryzyko, że poniosę jakieś straty, np. z powodu spadku kursu. Oczywiście 100% komfortu sobie nie zapewnię, ale zależy mi na możliwie jak największym.
-------------
2. Jak to ma wyglądać w sklepie
a. Standardowo klient wrzuca produkt do koszyka, wchodzi w koszyk, klika "zamawiam", przechodzi do podania danych adresowych i wyboru płatności - i tu wybiera opcję płatności kryptowalutą (na tym etapie nie ma wyboru konkretnej, widzi tylko jakie będa honorowane - patrz pkt 1 c )
b. Po zatwierdzeniu zamówienia pojawia się std. informacja że zamówienie zostało przyjęte itd. "blablabla" oraz lista wyboru kryptowaluty (myślę o BTC, BCC, BTG, ETH i DASH) oraz przycisk płatności.
c. Wybiera z listy konkretną kryptowalutę, klika przycisk "Płacę"
d. Pojawia sie wyskakujące okno z podsumowaniem. Będą w nim: nr zamówienia, kwota zamówienia w PLN (z wliczonym kosztem dostawy jeśli taki jest), kwota kosztu obsługi transakcji w PLN, suma w PLN, kurs dla wybranej kryptowaluty, kwota kryptowaluty, adres do wpłaty
e. Koszt obsługi transakcji wyszedł mi na poziomie 2% kwoty zamówienia (przy wartości do 1000zł) i 1,5% przy wartości powyżej 1000zł. Dużo to? Mało? Wliczyłem w to prowizję za sprzedaż krypto, koszt przelewu PLN na konto w banku po sprzedaży krypto + dodatkowo jakiś ułamek procenta jako jakieś tam zabezpieczenie przez ryzykiem spadku kursu. Gdyby płatności się upowszechniły i były częstsze - wtedy ten koszt pewnie by jeszcze spadł (np. 1,5% i 1%).
f. Klient kopiuje adres do wpłaty i kwotę kryptowaluty do swojego portfela, wysyła płatność, płatność dochodzi- i na tym koniec, zamówienie trafia do realizacji, sprzedaję krypto, przelewam PLN na konto w banku.
-------------
3. Kwestie techniczne
a. Ściągam z giełdy zlecenia zakupu danej krytpowaluty ("bids"), po kolei (od zlecenia z najwyższym kursem w dół) przeliczam kurs * ilość kryptowaluty w każdym "bidzie"- tak aby suma przeliczonych w ten sposób "bidów" na PLN przekroczyła o 50% wartość zamówienia w PLN. Ustalam kurs kryptowaluty wg "bida" w którym ten warunek zostanie spełniony. Dlaczego o 50% więcej niz wartość zamówienia? Bo tak sobie wykombinowałem

b. Przeliczam wartość zamówienia wg kursu kryptowaluty (ustalonego wg procedury w pkt 3 a) z precyzją do 5-go miejsca po przecinku - mam wartość zamówienia w kryptowalucie.
c. Do wartości w kryptowalucie (np. 0.81023) dodaję 3 cyfry, będące jednocześnie trzema ostatnimi cyframi zamówienia. Czyli np. klient złożył zamówienie nr 18372 a więc wartość w kryptowaucie będzie np. 0.81023372. Po co? Ano po to, żeby bez problemu dało się zidentyfikować wpłatę i przypisac ją do konkretnego zamówienia i klienta. Zakładam, że w sklepie nie pojawi się 1000 nowych zamówień w bardzo krótkim czasie ani że ten, który złoży zamówienie nr 19372 też będzie chciał płacić taką samą kryptowalutą i taką samą kwotę.
d. Mamy już kwotę do zapłaty przeliczoną na krytpowalutę - wiec wypada podać adres do wpłaty, czyli prezentowany jest adres portfela- zgodny z wybraną kryptowalutą.
e. Na adres email wysyłam wygenerowany link do otworzenia okna z podsumowaniem płatności (pkt 2 d), czyli płatnosc można zrealizowac od razu, ale można też później
f. Kliknięcie linka w emailu wyświetlającego podsumowanie płatności każdorazowo powoduje potwórzenie procedury (pkt 3 a-d), czyli przy każdym kliknięciu kwota kryptowaluty do zapłaty może być inna, bo zlecenia "bids" i kursy mogą być zupełnie inne.
g. Od momentu pojawienia się okna z podsumowaniem płatności będzie czas np. 15 minut na wykonanie płatności. Po tym czasie wartości w tym oknie się wyzerują i pojawi się komunikat że czas minął.
h. Myślę o "zablokowaniu" dokonywania płatności w godzinach nocnych, np. wykonanie płatności (a także wyświetlanie okna podsumowania płatności po kliknięciu na link) byłoby możliwe np. w godz. 9-21. Oczywiście transferu poza tymi godzinami nie zablokuję, ale w regulaminie będzie zapis, że taka wpłata może zostać zwrócona i od zwracanej kwoty zostanie potrącona opłata za transfer. To samo dotyczy dokonania płatności po upływie 15 minut od kliknięcia w link - oczywiście jestem w stanie sprawdzić kiedy link został kliknięty i powiązać to z wpłatą. Wiadomo, że jak wpłata przyjdzie kilka czy kilkanaście minut później to nie będę robił tragedii, ale zawsze się może zdarzyć, że ktoś sobie kliknie w link, skopiuje wartość do zapłaty i adres portfela- a transfer zrobi wtedy kiedy np. kurs krypto spadnie o 30%- takie coś nie przejdzie. To byłoby oczywiście rozwiązanie tymczasowe, gdyby krytpopłatności się upowszechniły- albo skorzystam z jakiejś usługi albo sam się szarpnę i napiszę jakiś automat.
-------------
To tyle. Jeśli ktoś dobrnął do końca - przybijam "piątkę", a jeśli ktoś ma uwagi albo zauważył jakiś błąd w mojej rozkmince - bardzo chętnie się dowiem i poczytam/podyskutuję.
Aha, na koniec wrzucam okno podsumowania płatności o którym pisałem w pkt. 2 d, pkt. 3 e-h, link do jego wyświetlania oczywiście działa na realnych wartościach (parametry to na razie: skrót kryptowaluty, skrót waluty fiat, wartość zamowienia, numer zamówienia) - a okno roboczo wygląda w ten sposób:
