SDK PHP
PHP 7.4+Dodaj płatności krypto do aplikacji PHP za pomocą Composera.
composer require whollycrypto/php-sdkPIERWSZE KROKI
Zainstaluj, przyjmuj płatności i dbaj o swój serwer.
Użyj nowego VPS z Linuxem i dostępem root, a nie istniejącego serwera witryny lub bazy danych. Nie potrzebujesz Dockera, kompilatora ani węzłów blockchain.
| VPS | Minimum Niewielkie obciążenie | Zalecane |
|---|---|---|
| CPU | 1 vCPU | 2 vCPU |
| RAM | 2 GB | 4 GB |
| SSD | 20 GB | 60 GB |
Minimum to punkt wyjścia dla niewielkiego obciążenia na minimalnych obrazach Ubuntu/Debian, nie gwarancja wydajności. Rozmiary dysku obejmują Linux; przed instalacją pozostaw co najmniej 3 GiB wolnego miejsca oraz przestrzeń na aktualizacje, historię i kopie zapasowe.
Instalator natywny wymaga x86-64, systemd 247+ i Python 3.9+. ARM64 i Alpine/OpenRC nie są uwzględnione.
Wybierz wydanie utrzymywane przez dostawcę. Wyższe wymagania systemu mają pierwszeństwo: openSUSE Leap 16 wymaga ponad 40 GB miejsca na dysku.
Więcej blockchainów i równoczesnych faktur może wymagać więcej CPU i RAM. Większy VPS nie usuwa limitów RPC. Procesy instalacji mają testy automatyczne; pełne testy na nowych VPS nie zostały ukończone dla każdej dystrybucji.
Skieruj te domyślne nazwy hostów na swój VPS lub wybierz własne:
merchant.example.com: panelpay.example.com: strona płatnościapi.example.com: APIPodczas instalacji używaj rekordów tylko DNS. Otwórz TCP 80/443 w obu zaporach i zachowaj dostęp SSH. Nigdy nie wystawiaj PostgreSQL ani aplikacji na portach 5432/8080.
bash <(curl -fsSL https://releases.whollycrypto.com/setup_wholly.sh)Instalator weryfikuje pobrane pliki i konfiguruje PostgreSQL, Nginx, HTTPS oraz usługi. Wolisz kontenery? Zobacz opcjonalną instalację w Dockerze.
Potrzebujesz konkretnego wydania? Na nowym VPS dodaj --version 7.8.1 aby zainstalować dokładnie tę podpisaną wersję. Bez tego instalator używa najnowszego stabilnego wydania.
Wznowienie zachowuje wybrane wydanie i ukończone kroki, również z zapasowym źródłem GitHub. Nigdy nie obniża wersji istniejącej instalacji.
Sprawdź instalator. Dodaj --check do polecenia, aby sprawdzić zgodność bez instalowania, lub --help aby zobaczyć opcje.
Wznów zapisany postęp bez zastępowania kluczy lub ustawień:
bash <(curl -fsSL https://releases.whollycrypto.com/setup_wholly.sh) --resumeDodatkowe domeny bazowe mogą używać tych samych nazw usług. Wszystkie rekordy IPv6 również muszą wskazywać ten VPS. Włącz proxy Cloudflare dopiero po weryfikacji domen.
Kody QR żądają pełnej pozostałej kwoty. Tolerancja jedynie dopuszcza niedopłaty; potwierdzenia nadal obowiązują.
Nowe wyceny rozpoznanych stablecoinów są zaokrąglane w górę: 1.321 USDC → 1.33 USDC, nawet przy zerowej tolerancji. Minimum: 0.01 tokena.
Istniejące faktury, salda i pozostałe kwoty płatności częściowych zachowują dokładność. Inne/własne tokeny zachowują zwykłą precyzję.
Rejestracja administratora automatycznie zakłada konto środków na przetwarzanie przy użyciu twojego e-maila, z jednorazowymi środkami powitalnymi o równowartości 10 USD . Kod aktywacyjny nie jest potrzebny.
Utwórz fakturę. Oczekująca aktywacja jest automatycznie ponawiana; ponowne połączenia nigdy nie przyznają środków ponownie.
Twój login Basic Auth jest zapisany w /root/whollycrypto/config/setup-credentials.txt. Jest niezależny od e-maila/hasła do panelu.
Nowe projekty dziedziczą domyślną walutę i strefę czasową systemu; sklepy używają waluty projektu. Strefami czasowymi istniejących kont zarządzasz oddzielnie w Ustawienia → Konto.
whollycrypto welcome pokazuje adres URL panelu.
Nowe instalacje od 7.0.0 wybierają tryb podczas konfiguracji pierwszego administratora. Tej decyzji nie można cofnąć; zmiana trybu wymaga nowej instalacji. Instalacje sprzed wersji 7 pozostają w trybie Merchant, nawet bez administratora.
Merchant: prowadź własne projekty i sklepy. Operator: hostuj oddzielne firmy sprzedawców w jednej instalacji i pobieraj własną przedpłaconą opłatę za przetwarzanie. Twoja firma jest uwzględniona bez wewnętrznej opłaty operatora.
Konfiguracja operatora wymaga czwartego adresu, takiego jak operator.example.com, oraz własnej nazwy użytkownika i hasła Basic Auth. Wybierz nazwę, skieruj DNS na VPS, sprawdź DNS i aktywuj HTTPS. Panel otwiera się bezpośrednio pod tym adresem. Adresy panelu sprzedawcy, płatności i API pozostają oddzielne.
Użyj nowego loginu Basic Auth operatora, a następnie e-maila/hasła administratora. Basic Auth sprzedawcy pozostaje bez zmian. Konfigurację można wznowić po błędach DNS lub certyfikatu. Operatorzy aktualizujący z 7.0.0 również wykonują ten krok; istniejące aktywne adresy pozostają dostępne.
Przy 3% faktura na 100 EUR kosztuje 3 EUR z salda sprzedawcy. Jeśli waluta salda jest inna, wraz z opłatą zapisywany jest kurs fiat z chwili utworzenia.
Operator oddzielnie płaci zwykłą opłatę instalacji Wholly Crypto. Środki klientów nie są dzielone on-chain. Zakupy środków na przetwarzanie nie są obciążane ponownie.
Doładowanie jest uznawane tylko po automatycznie zweryfikowanym rozliczeniu. Otwarcie strony płatności lub ręczne zaakceptowanie faktury nie wystarcza. Cofnięcia tworzą wpisy księgowe; cofnięte doładowanie, które ponownie wpłynie, wymaga przeglądu przez operatora.
Niskie saldo hostowanego sprzedawcy wstrzymuje IPN, webhooki, operacje sweep i tworzenie nowych projektów/sklepów. Istniejące faktury klientów i odbieranie płatności działają dalej. Niskie saldo instalacji może wstrzymać automatyzację we wszystkich hostowanych firmach. Wyłączenie sprzedawcy blokuje też logowanie i nowe faktury, podczas gdy stare płatności nadal są monitorowane.
To izolacja na poziomie aplikacji, nie osobny VPS dla każdego sprzedawcy. Sprzedawcy nie mają dostępu do projektów, portfeli, danych dostępu API, giełd ani sald innych sprzedawców. Administrator serwera ma dostęp do kluczy hostowanych gorących portfeli. Poinformuj o tym sprzedawców przed rejestracją; korzystaj z zaufanego hostingu, niezależnych kopii zapasowych i zasobów odpowiednich dla wspólnego obciążenia.
Dostępne w trybie Operator od 7.1.0.
Od 7.2.0 sekcja Portfele zarządza saldami odbiorczymi, adresami i kopiami zapasowymi; Sweep obsługuje wysyłki i reguły automatyczne. Zachowaj ETH na opłaty za tokeny. Doładowania sprzedawców pokazują ich zakupy. Saldo w nagłówku oddzielnie pokrywa opłaty instalacji. Moja firma otwiera twój własny panel w nowej karcie.
Otwórz Finanse aby zobaczyć zarobione opłaty, zweryfikowane koszty instalacji, szacowaną marżę i bieżące salda sprzedawców. Filtruj według daty, sprzedawcy lub waluty raportowej; eksportuj CSV.
Raporty grupują faktury według pierwszego rozliczenia i uwzględniają najnowsze cofnięcia opłat. Salda przedpłacone nie są przychodem. Koszty własnej firmy pozostają oddzielne. Oczekujące opłaty lub brak kursów uniemożliwiają obliczenie powiązanych marż. Przeliczone kwoty korzystają z bieżących kursów fiat w pamięci podręcznej; gaz i koszty działania nie są uwzględnione.
Dodaj sprzedawcę tworzy zaproszenie. Od 7.3.0 wybierz bezpłatne środki początkowe w walucie salda sprzedawcy; zero jest dozwolone. Nie uzupełnia to salda operatora. Wyślij zaproszenie e-mailem jest domyślnie zaznaczone.
Najpierw skonfiguruj dostawcę SMTP w Ustawienia → E-maile z zaproszeniami z użyciem TLS lub STARTTLS. Test połączenia nie wysyła e-maila. Możesz też odznaczyć e-mail i przekazać link prywatnie. Nieudany e-mail nie usuwa konta ani środków; nie twórz sprzedawcy ponownie.
Aby uzyskać kolejny link lub zresetować hasło, otwórz Sprzedawcy → Zarządzaj → Konta użytkowników. Przyjęcie przez SMTP nie gwarantuje dostarczenia do skrzynki. Udostępniaj Basic Auth sprzedawcy oddzielnie, nigdy dane operatora.
Zaproszenia są ważne 48 godzin; linki resetowania jedną godzinę. Każdy działa raz. Zastąp lub unieważnij link na tym samym ekranie. Reset wylogowuje istniejące sesje, ale pozostawia 2FA włączone. Basic Auth sprzedawcy nadal jest wymagane.
Automatyzuj obsługę hostowanych sprzedawców za pomocą SDK 2.6.0 i Wholly Crypto 7.4.0+. Włącz Operator → Ustawienia → API operatora, a następnie utwórz klucz serwerowy z ograniczonym zakresem.
Twórz konta bezpośrednio z hasłem lub wysyłaj zaproszenia. Zarządzaj użytkownikami, projektami, sklepami, opłatami i lokalnymi środkami przedpłaconymi; czytaj raporty i subskrybuj podpisane zdarzenia cyklu życia. Zgoda na przechowywanie środków przy pierwszym logowaniu, 2FA i izolacja najemców pozostają w mocy.
Każdy zapis wymaga zachowanego klucza idempotencji. Przyznanie środków jest lokalną korektą konta, nie doładowaniem instalacji. Sekrety portfeli, wysyłanie środków i konfiguracja serwera nie są dostępne przez to API.
Użyj api.your-domain.com/v1/operator. Przechowuj klucze Operator na backendzie, nigdy w przeglądarce ani u hostowanego sprzedawcy.
Dokumentacja API operatora i uprawnienia → · Oficjalne SDK i przykłady →
Sekcja Ustawienia → Tokeny ładuje najpierw 250 tokenów, a następnie pozostałą część katalogu.
Projekt → Portfele → Kopia wszystkich eksportuje TXT lub przeszukiwalny HTML offline z kodami QR. Oba ujawniają klucze i frazy odzyskiwania. Przechowuj prywatną kopię poza serwerem; nigdy jej nie udostępniaj ani nie przesyłaj online.
Root ma dostęp do kluczy. Poradniki odzyskiwania portfeli wyjaśniają adresy faktur, gaz w natywnej monecie i kopie zewnętrznych portfeli Monero/Lightning.
Ustawienia → Książka adresowa: zapisz blockchain/adres. Natywne monety i dopasowane tokeny CoinGecko pojawiają się automatycznie. Tylko do odczytu, zarządzane przez administratora; akceptacja na stronie płatności pozostaje bez zmian.
Moduły odczytu tokenów obejmują 22 blockchainy. Prywatne salda i warstwy Bitcoin/CashTokens/Kaspa wymagają oddzielnego dostępu lub indeksatorów. Nieudane odczyty pokazują błędy, nie zera.
Zbierz salda faktur do innego portfela za pomocą ręcznej wysyłki lub automatycznych operacji sweep. Transfery tokenów wymagają też natywnej monety blockchaina na opłaty.
Cena niedostępna dotyczy kursów, nie sald.
Sieć i liczba miejsc dziesiętnych są sprawdzane. Ceny obowiązujące w całym projekcie nie zmieniają istniejących wycen. Samo dopasowanie w katalogu nie włącza płatności.
DEX Screener wymaga puli dla dokładnego kontraktu, płynności $10,000 i transakcji w ciągu godziny. Kursy odświeżają się co minutę; błędne lub pięciominutowe kursy blokują nowe wyceny.
Cenami DEX można manipulować; kontrole nie są audytami. Używaj zaufanych standardowych tokenów ERC-20 lub klasycznych SPL. Token-2022 i rozszerzenia nie są obsługiwane. Bez odpowiedniej puli użyj stałej ceny.
Ustawienia → System → Domyślne ustawienia regionalne określa walutę/strefę czasową nowych projektów i strefę czasową nowych kont. Istniejące ustawienia i środki pozostają bez zmian; walutę panelu nadal można nadpisać.
Osobista strefa czasowa: Ustawienia → Konto → Edytuj użytkownika.
Użyj Metody płatności → Wybierz dla tej faktury aby zawęzić akceptowane blockchainy/tokeny. Wszystkie metody płatności sklepu zachowuje ustawienia domyślne.
Przetestuj małą płatność każdą metodą przed uruchomieniem produkcyjnym. Sprawdź fakturę przed realizacją zamówienia: adres powrotu nie jest dowodem zapłaty.
W integracjach weryfikuj podpisane IPN/webhooki i potwierdzaj status przez API faktur. Traktuj zduplikowane zdarzenia jako to samo zdarzenie.
API: filtruj payment_methods według chain_slug i asset_tickers. Nieaktywne wybory są ignorowane; brak dopasowań oznacza ustawienia sklepu. Wybór samego blockchaina obejmuje wszystkie aktywne aktywa. Wspólne symbole wymagają ID aktywów. Portfele i kursy nadal są wymagane.
Skaner offline? Faktury zachowują skonfigurowane metody, gdy wykrywanie oczekuje. Sprawdź obsługiwane API w Połączenia blockchain; sprawny węzeł nie oznacza zgodności ze skanerem. Domyślnie: dwóch niezależnych dostawców.
Portfele/kursy nadal są wymagane. Usługi Monero/Lightning muszą wystawiać żądania płatności.
Błędy API/MCP obejmują error.details.payment_methods. SDK 2.4.0 dodaje bezpieczne objaśnienia: PHP getPaymentMethodIssues(), Python payment_method_issues, Node paymentMethodIssues. Dokumentacja błędów →
Wyceny krypto są zaokrąglane w górę i uwzględniają narzut sklepu. Faktura wyceniona w fiat nie zamienia otrzymanego krypto w saldo bankowe.
Zero potwierdzeń oznacza rozliczenie po wykryciu, bez ochrony zapewnianej przez potwierdzenia sieci. Natywne płatności EVM są wykrywane jako bezpośrednie transfery. Sprawdzaj nietypowe lub niepewne płatności w Wymaga uwagi.
Sprawdź Połączenia blockchain aby sprawdzić zgodne API, pełną historię i niezależnych dostawców. Nadrabianie historii przez surowe węzły trwa. Wszystkie API odbioru →
Płatności, salda i prace utrzymaniowe współdzielą limity dostawców. Kontrole bez aktywności zwalniają. Starsze faktury zachowują monitorowanie spóźnionych płatności/reorganizacji, po nadrobieniu historii nawet co godzinę. Dostępne sygnały WSS uzupełniają skanowanie HTTP. Zamknięcie strony płatności nigdy nie zatrzymuje wykrywania. Publiczne węzły nadal mają limity; Wholly Crypto nie uruchamia węzłów.
Domyślnie zablokowane. Włącz Sklepy → Faktura → Zezwalaj na faktury z kwotą zerową aby dopuszczać zerowe sumy ręcznie/przez API. Są kończone natychmiast, bez płatności, adresu odbiorczego, transakcji lub opłaty za przetwarzanie.
Sklep → Strona płatności: kolory, logo, metody, linki, rozmiary czcionek tekstów wstępnych/końcowych oraz widoczność nazwy projektu/sklepu. Nowe sklepy dziedziczą wygląd sklepu domyślnego. Zmiany zapisują się automatycznie.
Podglądy nie mogą przyjmować płatności. Bez własnego HTML/CSS/JavaScript.
IPN wysyła każde zdarzenie faktury na adres sklepu lub adres faktury ipn_url. Webhooki wysyłają wybrane zdarzenia. Oba wysyłają ten sam snapshot JSON metodą POST.
Kiedy realizować zamówienie? Przy obsłudze opartej na zdarzeniach użyj event_type = invoice.settled z status = settled. Zweryfikuj bieżącą fakturę i swoje zamówienie, a następnie zrealizuj je tylko raz. payment.received samo nie wystarcza.
status to stan faktury w momencie utworzenia zdarzenia; event_type informuje, co się wydarzyło.
payment.received + processing, następnie invoice.settled + settled.payment.received i invoice.settled oba zawierają settled.Oba przebiegi mogą wystąpić w innych blockchainach. To odrębne zdarzenia, niekoniecznie dwie płatności. Mogą mieć wspólne sequence ale różne wartości event_id . Kolejność dostarczenia nie jest gwarantowana; nie wymagaj processing jako pierwszego.
| Status faktury | Znaczenie |
|---|---|
new | Oczekiwanie na płatność |
processing | Płatność częściowa lub oczekiwanie na ostateczność |
settled | Zaakceptowana zgodnie z regułami faktury lub ręcznie |
expired | Termin minął; monitorowanie spóźnionych płatności może trwać |
invalid | Płatność wymaga przeglądu lub została odrzucona |
cancelled | Anulowana, bez zwrotu |
Zdarzenia: invoice.created, payment.received, invoice.processing, invoice.settled, invoice.expired, invoice.invalid, invoice.cancelled. Pełna tabela zdarzeń i reguły wyjątków →
amount_status: none, partial, paid, overpaid. paid uwzględnia tolerancję, nie ostateczność. timing_status: on_time lub late. resolution: automatic, manually_settled lub manually_invalidated. Zastosuj swoje zasady wyjątków, gdy requires_review ma wartość true.
invoice_id odpowiada odpowiedzi API. amount, currency i order_id opisują pierwotne zamówienie. payment_info dodaje transfery, dokładne kwoty krypto, zablokowaną wycenę/narzut/tolerancję i orientacyjne kursy. Dane klientów i metadane są prywatne.
paid_chain, paid_asset, paid_payment_method_id, paid_asset_amount, paid_asset_amount_received i settlement_exchange_rate podsumowują rozliczenie. Pozostają niezmienne; brak dowodów/historii pozostaje null. Dla późniejszych wpływów użyj payment_info lub API płatności.
Używaj ciągów dziesiętnych. Nigdy nie łącz aktywów ani nie traktuj niepotwierdzonych środków jako brakujących. Jawnie obsługuj wyjątki; samo ostrzeżenie nigdy nie upoważnia do realizacji lub zwrotu. Zweryfikowane wewnętrzne doładowania gazu nie są płatnościami klientów i nie wyzwalają payment.received.
Oddzielne sekrety podpisywania: Sklep → IPN podpisuje dostarczenia IPN, w tym własny adres faktury ipn_url. Każdy endpoint w Sklep → Webhooki ma własny sekret, wyświetlany przy tworzeniu lub rotacji.
Oba używają Wholly-Signature i tego samego weryfikatora SDK, ale wymagają odpowiedniego sekretu, nie klucza API. Rotacja sekretu IPN nie zmienia sekretów webhooków.
Weryfikuj surową treść, znacznik czasu i zakres projektu/sklepu. Zapisz trwale, a potem zwróć HTTP 2xx. Worker sprawdza bieżącą fakturę przez skonfigurowany host API i realizuje zamówienie raz w transakcji bazy danych. Nagłówki są niepodpisane; używaj podpisanej tożsamości w treści wersji 2.
Na podstawie zdarzeń: usuwaj duplikaty podpisanych event_id, następnie filtruj invoice.settled. SDK oparte na stanie: scalaj projekt + invoice_id + sequence, następnie sprawdzaj stan niezależnie od typu zdarzenia. Po takim scaleniu nie dodawaj filtra zdarzeń. Oba podejścia wymagają oddzielnej ochrony przed duplikatami na poziomie zamówienia.
Ponowienia zachowują pierwotną treść i ID zdarzenia. Starsze rewizje nie mogą nadpisywać nowszych. IPN wykonuje do ośmiu prób; ponowienia webhooków są opcjonalne. Niskie saldo wstrzymuje dostarczanie, nie płatności.
Sklep → IPN / Webhooki → Historia → Szczegóły pokazuje zapisaną treść i wynik. Payloady wygasają po 90 dniach. Ponowne wysłanie nie jest dowodem rozliczenia.
Wysyłaj obsługiwane aktywa do Kraken, Binance lub Coinbase. Zachowaj monetę lub wymień zaksięgowane wpłaty. Fiat pozostaje na giełdzie.
Minimalne wpłaty obowiązują dla każdej transakcji, nie całego sweepa. Wpłaty poniżej minimum zatrzymują plan. Najpierw połącz małe salda we własnym portfelu; obowiązują dodatkowe opłaty sieciowe.
Rynki odświeżają się co dwie minuty. Wymienić można tylko dopasowane, zaksięgowane wpłaty; nieaktualne rynki blokują nowe zlecenia. Rezerwa 1% kwoty źródłowej pozostaje na giełdzie na opłaty/zaokrąglenia, niezależnie od środków na przetwarzanie.
Zachowaj minimalną kwotę rezerwuje monety/tokeny w całym projekcie po automatycznych operacjach sweep. Jest niezależne od progu uruchomienia; zero nic nie zachowuje. Opłaty korzystają z nadwyżki. Ręczne wysyłki pozostają bez zmian.
Wznawiaj niepewne transfery; nigdy ich nie zastępuj. Portfele pozostają zarezerwowane do potwierdzenia lub wygaśnięcia niewykorzystanej wyceny. Duże operacje sweep wymagają partii.
Obowiązują przechowywanie środków przez giełdę, KYC, ograniczenia regionalne i opłaty. Bez wypłat bankowych i dźwigni. Niskie saldo wstrzymuje nowe wymiany; wysłane zlecenia nadal są uzgadniane.
Nadal odbierasz płatności, gdy skończą się środki na przetwarzanie. Istniejące sklepy zachowują faktury, stronę płatności i monitorowanie płatności. Brak zweryfikowanego połączenia rozliczeniowego lub zawieszenie konta to inna sytuacja i może blokować nowe faktury.
| Nadal dostępne | Wstrzymane bez dostępnych środków |
|---|---|
| Faktury, strona płatności i potwierdzenia | IPN/webhooki, w tym ponowienia |
| Portfele, salda i kopie zapasowe | Sweep: wysyłki, gaz, zwroty i nowe wymiany giełdowe |
| Raporty, API odczytu i istniejące ustawienia | Tworzenie projektów i sklepów |
| Sprawdzanie aktualizacji i odzyskiwanie po przerwanej aktualizacji | Instalowanie nowych wersji |
Doładuj przez ikonę salda. Po zweryfikowanym przywróceniu środków włączona automatyzacja zostaje wznowiona, w tym reguły Sweep wysyłające środki. Wyłącz reguły, których nie chcesz wznawiać.
Otwórz Automatyczne doładowanie za sekcją Żądania. Wybierz portfel odbiorczy z kopią zapasową, próg, kwotę zakupu, limit dzienny i limit opłat sieciowych. Autoryzuj i zapisz. Początkowo jest wyłączone.
Używaj BTC, ETH lub USDC/USDT na Ethereum, jeśli są dostępne. Adresy wysyłające tokeny potrzebują ETH; ta reguła nie finansuje brakującego gazu. Operatorzy używają dedykowanych portfeli odbiorczych; hostowani sprzedawcy płacą swojemu Operatorowi.
Zatwierdzone doładowanie może działać, gdy niskie saldo wstrzymuje Sweep. Tylko usługa odbierająca potwierdza środki. Jednocześnie działa jeden automatyczny zakup. Wyłączenie zatrzymuje niewysłane zadania, nie przekazane transakcje.
W Automatyczne doładowanie użyj Sprawdź płatność. Wznów tę samą ważną płatność albo zamknij zweryfikowany nieudany transfer Ethereum i wstrzymaj regułę. Oczekujące lub niepewne płatności pozostają wstrzymane, aby zapobiec podwójnemu wysłaniu. Wygaśnięcie wyceny nie jest dowodem niepowodzenia.
Domyślne 1% jest liczone od pierwotnej wartości rozliczonej faktury w fiat. Płatności krypto klientów nie są dzielone.
Opłaty nadal się naliczają, prowadząc do ujemnego salda. Spłać ujemną kwotę i przywróć dostępne środki powyżej progu tolerancji konta. Przy sprawnym połączeniu zmiany salda zwykle pojawiają się w ciągu 10–15 sekund.
Instalowanie aktualizacji wymaga zweryfikowanego salda powyżej zera, nawet przy okresie tolerancji dla automatyzacji. Doładowania nigdy nie instalują aktualizacji automatycznie.
Wstrzymane powiadomienia nie zużywają prób. Zachowane dostarczenia są wznawiane; zwykłe terminy wygaśnięcia nadal obowiązują. Uzgadniaj pominięte zdarzenia przez API faktur.
Jeśli operator wyłączy opłaty za przetwarzanie, nowe opłaty i ograniczenia salda nie obowiązują. Poprzednie obciążenia pozostają w historii. Niesparowana instalacja może konfigurować projekty/sklepy, ale potrzebuje zweryfikowanych rozliczeń, aby wystawiać faktury. Wcześniej wystawione faktury pozostają monitorowane.
Wykresy przychodów i filtry pozostają nad kartami: Projekty i sklepy, Faktury, Portfele i Operacje sweep. Wyszukiwarka znajduje się poniżej. Sekcja Projekty i sklepy obejmuje eksport CSV. Własne zakresy dat mogą obejmować do 366 dni. Portfele używają sald z pamięci podręcznej.
Opcjonalny dostęp ograniczony do projektu pod api.example.com/mcp. Odczytuj płatności lub zatwierdź tworzenie faktur. Konfiguracja i uprawnienia MCP →
Używaj naszych oficjalnych SDK do tworzenia faktur, sprawdzania płatności i weryfikacji IPN/webhooków.
Dodaj płatności krypto do aplikacji PHP za pomocą Composera.
composer require whollycrypto/php-sdkPołącz aplikację lub backend w Pythonie bez zależności wykonawczych.
python -m pip install whollycryptoJavaScript lub TypeScript, jeden pakiet npm z wbudowanymi typami.
npm install whollycryptoDodaj gałąź main w Xcode. Konfiguracja Swift i bezpieczeństwo aplikacji →
https://github.com/whollycrypto-com/whollycrypto-swift-sdk.gitUżywaj domeny API swojej instalacji i przechowuj klucze API po stronie serwera. Wszystkie SDK mają licencję MIT.
Otwórz Projekt → Narzędzia płatnicze i wybierz sklep. Udostępnij wielokrotny link płatniczy, przyjmuj płatności w punkcie sprzedaży lub zaplanuj e-mailowe prośby o płatność.
Wygląd sklepu, potwierdzenia i callbacki nadal obowiązują. Wstrzymanie narzędzia zatrzymuje nowe żądania, nie istniejące płatności. Historia prowadzi do każdej faktury. Pominięte okresy nie wywołują lawiny e-maili; ponowne wysłanie używa tej samej nieopłaconej i niewygasłej faktury.
Strona płatności klienta, linki płatnicze i zaplanowane e-maile obsługują angielski, niemiecki, hiszpański, portugalski brazylijski, włoski, rosyjski, chiński uproszczony, francuski, koreański i japoński.
Sklep → Faktura → Język płatności ustawia język domyślny. Nadpisz go dla faktury lub narzędzia płatniczego. E-maile i ponowienia zachowują język faktury. Twój tekst pozostaje bez zmian; panele Merchant i Operator pozostają po angielsku.
W Ustawienia → System, pod Ograniczenia źródłowego IP, włącz SMTP z publiczną nazwą hosta dostawcy, loginem, nadawcą i opcjonalnym adresem odpowiedzi. Używaj TLS na porcie 465 lub STARTTLS na 587.
Zapisz, przetestuj połączenie, a następnie wyślij sobie e-mail testowy. Skonfiguruj SPF/DKIM u dostawcy. Przyjęcie przez SMTP nie gwarantuje dostarczenia do skrzynki.
Zaplanowane prośby używają systemowego SMTP. Kanały powiadomień też mogą je wybrać; istniejące ustawienia kanałów i zaproszeń Operator pozostają bez zmian. Tymi zaszyfrowanymi danymi dostępu zarządza wyłącznie administrator instalacji. Nieudane wysłanie e-maila wymaga jawnego ponowienia.
Dzwonek otwiera skrzynkę powiadomień. Wybór motywu znajduje się w menu ustawień.
Powtarzające się problemy są grupowane. Historia obejmuje 30 dni; uprawnienia projektów nadal obowiązują. Odczytanie alertu nie rozwiązuje problemu. Alerty dla ludzi nie zastępują IPN ani webhooków sklepu.
Włącz Projekt → Marketplace, wybierz sklepy i zarejestruj sprzedających z niezależnie zweryfikowanymi adresami docelowymi. Utwórz jedną fakturę z dokładnymi udziałami sprzedających; zatwierdzaj wypłaty ręcznie lub ustaw ograniczone zasady automatyczne.
Tylko mainnet Bitcoin i obsługiwane monety EVM/ERC-20. Klienci płacą najpierw do portfeli kontrolowanych przez projekt, nie bezpośrednio sprzedającym. Zachowaj wolne natywne monety na opłaty. Zwykłe operacje sweep pomijają chronione adresy odbiorcze.
Opłata za przetwarzanie dotyczy pierwotnej faktury tylko raz, niezależnie od twojej prowizji. Niedopłaty i niepewne wpływy wymagają przeglądu. Zwroty po wypłacie sprzedającym wymagają oddzielnych środków, a nie automatycznego odebrania wypłat.
Skonfiguruj płatności dla wielu sprzedających · Dokumentacja API Marketplace
Otwórz Ustawienia → Księgowość, aby przejść do Raportów, Transakcji, Eksportów i Kontroli. Pulpit pozostaje oddzielny.
Potwierdzone wpływy, zwroty i zapisane koszty są oddzielone od transferów między portfelami i zakupów środków przedpłaconych. Sumy faktur są liczone raz, nawet przy wielu płatnościach.
Wartości historyczne korzystają z zachowanych dowodów, nie dzisiejszych cen. Starsze kursy i rzeczywiste opłaty mogą być niedostępne; brakujących kosztów nigdy nie uznaje się za zero. Niepełne dowody sprawiają, że suma netto pozostaje niedostępna.
Obejmuje to zapisy śledzone przez Wholly Crypto, nie każdą zewnętrzną transakcję portfelową lub giełdową. To pomoc księgowa, nie deklaracja podatkowa ani rachunek zysków. Udostępniaj eksporty bezpiecznie: mogą zawierać e-maile klientów.
Przenieś otrzymane środki do wybranego miejsca. Zarządzaj regułami i historią w Projekt → Sweep.
Wysyłaj natywne monety w 29 blockchainach; Monero pozostaje tylko do podglądu. Tokeny: zweryfikowane ERC-20 i klasyczne SPL. Ręczne wysyłki i automatyczne operacje sweep używają tych samych zabezpieczeń.
Do BTC, EVM, SOL i TRX dołącza 18 adapterów natywnych. Używaj dostawcy umożliwiającego nadawanie transakcji. ZEC tylko transparentne; ADA zachowuje wyjścia z tokenami; DOT używa Asset Hub; HBAR wymaga przekaźnika. Adresy wymagające wychodzącego memo/tagu/komentarza potrzebują zewnętrznego portfela.
Finansowanie gazu, potwierdzenia i wysyłanie tokenów trwają w tle po zatwierdzeniu. Śledź Aktywność transferów, także po zamknięciu okna. Nadanie transakcji nie jest potwierdzeniem.
Zachowaj w portfelu projektu ETH: 0 nie dodaje rezerwy; nie wydaje całego twojego ETH. 0.005 zachowuje co najmniej 0.005 ETH na później, więc potrzebujesz dodatkowych środków na ten proces. Zapisane reguły automatyczne pozostają bez zmian.
Limit dzienny ogranicza gaz w natywnej monecie przydzielany przez daną regułę tokena w ruchomym okresie 24 godzin. €1 może być początkowym limitem przy niewielkim użyciu, nie gwarantowanym kosztem ani opłatą dzienną. Transakcje finansujące również mają opłaty. Maksymalna opłata sieciowa % może ograniczać łączne opłaty finansowania/transferu.
Kontrole działają automatycznie. Gaz otrzymują tylko kwalifikujące się adresy z tokenami; puste adresy nie. Niedofinansowany adres poniżej minimum sweepa czeka. Wyjaśnienie limitów gazu →
Wysyłanie wyłączone? Sprawdź whollycrypto transfers status. Przejrzyj każdą włączoną regułę przed whollycrypto transfers enable: dotyczy to całego serwera i może natychmiast uruchomić zapisane reguły. Zatrzymanie przyszłych kroków nie cofa nadanych transakcji.
Ustawienia → System: wybierz Zarządzaj lub Dodaj domenę. Zapisz, sprawdź DNS i opublikuj. Niezmienione hosty pomijają kontrole DNS/SSL.
Sklep → Podstawowe: wybierz aktywne hosty panelu/płatności/API. Linki preferują sklep → sklep domyślny → system; wycofane nazwy korzystają z wartości zapasowych. Hosty SDK konfiguruj oddzielnie. Podpisane ponowienia zachowują pierwotne linki.
HTTPS działa automatycznie. Przełącz proxy Cloudflare po konfiguracji; Let's Encrypt pozostaje aktywne.
/.well-known/acme-challenge/ na porcie 80 bez przekierowań/wyzwań, aby umożliwić odnawianie.Kontrole odpytują autorytatywny DNS i weryfikują serwer źródłowy: bezpośrednio lub przez Cloudflare. Odwiedzający mogą mieć starszy DNS w pamięci podręcznej.
Zapisy/usunięcia w panelu używają POST od 5.6.2; wyjątek „Not GET or POST” nie jest potrzebny. Logowanie i CSRF pozostają aktywne. Na api.*, zezwól na udokumentowane metody publicznego API.
Skonfiguruj 2FA w Ustawienia → Konto. Użytkownicy z dostępem wyłącznie do projektów używają Moje bezpieczeństwo w stopce. Potwierdź hasło, zeskanuj QR/klucz TOTP i wpisz sześciocyfrowy kod.
Wypróbuj Verifyr Authenticator dla iOS lub Android, lub inną standardową aplikację TOTP. Zapisz jednorazowe kody odzyskiwania oddzielnie od hasła. Pozostaw ochronę HTTP Basic włączoną.
Wymiana kodów lub wyłączenie 2FA wymaga hasła oraz kodu z aplikacji albo niewykorzystanego kodu odzyskiwania. Inne sesje zostaną wylogowane. Synchronizuj zegary telefonu/serwera; 2FA nie zabezpiecza przejętego serwera.
Ikona motywu przełącza Jasny → Przygaszony → Ciemny i zapamiętuje wybór tej przeglądarki. Motywy stron płatności sklepów są oddzielne.
merchant.* lub api.* . Bieżący adres IP panelu musi pozostać dozwolony.pay.* otwarte: klienci muszą móc płacić z dowolnego miejsca.Opcjonalnie dodaj reguły dostępu Cloudflare. Wyłącz wyzwania odnawiania HTTPS z ograniczeń; unikaj interaktywnych wyzwań logowania dla API i płatności. Sam tryb proxy nie jest ograniczeniem IP.
Nie masz dostępu? Uruchom whollycrypto access-reset --domain merchant.example.com przez SSH. Tylko ta nazwa hosta zostanie ponownie otwarta w ciągu pięciu sekund; uwierzytelnianie konta pozostaje włączone.
whollycrypto ssl
whollycrypto ssl --fixPierwsze polecenie sprawdza aktywne certyfikaty. --fix naprawia pliki pomocnicze TLS i odnawia brakujące/wygasające certyfikaty. Nginx musi działać; pozostaw porty 80/443 otwarte.
Uruchom whollycrypto ssl --domain merchant.example.com --reissue aby wymusić zastąpienie. Obowiązują limity wystawiania. Jeśli Cloudflare blokuje wyzwanie HTTP, tymczasowo użyj tylko DNS. Portfele, uwierzytelnianie i domeny pozostają bez zmian.
Decyzje wymagają powodu. Zwroty wymagają oddzielnego potwierdzonego transferu; zmiany statusu faktury nigdy nie wysyłają pieniędzy.
Przeczytaj informacje o wydaniu, a następnie użyj Ustawienia → System → Aktualizacje oprogramowania lub CLI. Aktualizacje weryfikują podpisy, tworzą kopie zapasowe i sprawdzają stan. Strona płatności jest wstrzymywana podczas instalacji.
whollycrypto update --check
whollycrypto updateAktualizacje czekają do dwóch minut na zadania w tle; płatności pozostają online. Przekroczenie czasu przywraca timery.
Starszy aktualizator zablokowany? Uruchom to raz. Zainstalowany klucz weryfikuje program pomocniczy.
bash <(curl -fsSL https://releases.whollycrypto.com/update_wholly.sh)Przechowuj przetestowane kopie zapasowe poza serwerem PostgreSQL, konfiguracji, kluczy szyfrowania portfeli i eksportów portfeli. Lokalne archiwa odzyskiwania nie są szyfrowane.
Przywracaj razem pasujące kopie bazy danych/konfiguracji. Nigdy nie przerywaj migracji ani nie uruchamiaj starszych plików wykonywalnych z nowszymi bazami. Zasady salda nadal obowiązują.
Instalacja i aktualizacje automatycznie próbują użyć oficjalnej kopii na GitHubie. Kontrole podpisu, sumy kontrolnej i salda nadal są wymagane.
Polecenia root przez SSH.
whollycrypto status
whollycrypto doctor
whollycrypto backup| Polecenie | Cel |
|---|---|
whollycrypto version | Zainstalowana wersja. |
whollycrypto status | Stan aplikacji i bazy danych. |
whollycrypto logs | Ostatnie 80 wierszy logu aplikacji. |
whollycrypto restart | Uruchom ponownie i sprawdź stan. |
whollycrypto doctor | Kontrole instalacji tylko do odczytu. |
whollycrypto doctor --fix | Napraw zarządzane uprawnienia i brakujący link CLI. |
whollycrypto htaccess | Zresetuj login Basic Auth. |
whollycrypto admin-reset | Zresetuj hasło administratora. |
whollycrypto 2fa-reset | Zresetuj aplikację uwierzytelniającą jednego konta bez zmiany hasła. |
whollycrypto transfers statuswhollycrypto transfers enablewhollycrypto transfers disable | Sprawdź, włącz lub wstrzymaj wysyłanie dla wszystkich projektów. Włączenie restartuje aplikację i może natychmiast uruchomić zapisane reguły; wymagane jest potwierdzenie. Aktualizacje zachowują wstrzymania. |
whollycrypto ssl | Sprawdź HTTPS; dodaj --fix aby naprawić. |
whollycrypto access-reset --domain HOST | Usuń ograniczenie IP jednej nazwy hosta. |
whollycrypto update --check | Sprawdź podpisane aktualizacje. |
whollycrypto update | Wykonaj kopię, zaktualizuj i uruchom ponownie. |
whollycrypto backup | Archiwum dostępne tylko dla root w /root/whollycrypto/backups/releases/. |
whollycrypto recover | Odzyskaj po przerwanych pracach utrzymaniowych lub aktualizacji bez zmiany schematu. Nigdy nie przywraca bazy danych automatycznie. |
whollycrypto reset | Wybierz jeden projekt, wszystkie projekty firmowe lub samą naprawę. |
whollycrypto uninstall --checkwhollycrypto uninstall | Wyświetl podgląd, a następnie usuń natywne środowisko wykonawcze. Baza danych, klucze i kopie zapasowe pozostają. |
whollycrypto welcome | URL panelu i linki. |
whollycrypto --help | Polecenia; dodaj --help po wybranym poleceniu, aby zobaczyć jego opcje. |
Kontrole są tylko do odczytu i kończą się kodem różnym od zera, gdy potrzebna jest uwaga. --fix naprawia jedynie zarządzane uprawnienia i brakujący link CLI. Nigdy nie zmienia rozliczeń, nie usuwa danych ani nie restartuje usług.
whollycrypto reset
# Preview without changing anything:
whollycrypto reset --scope business --check
whollycrypto reset --scope project --project YOUR_PROJECT_IDENTIFIER --checkWybierz jeden projekt, wszystkie projekty firmowe lub samą naprawę. Resetowanie projektów trwale usuwa wybrane projekty, sklepy, zapisy portfeli i historię płatności. Sama naprawa tylko sprawdza i poprawia zarządzane uprawnienia oraz link CLI.
Najpierw wyłącz wybrane projekty, rozwiąż otwarte płatności/transfery i przenieś znane salda portfeli. Konta, domeny, węzły, środki na przetwarzanie, tożsamość rozliczeniowa i tryb instalacji pozostają. Portfele odbiorcze operatora i zapisy sald hostowanych sprzedawców są chronione. To nie otwiera ponownie kreatora konfiguracji.
Destrukcyjne resetowanie wymaga wpisanego potwierdzenia i tworzy zweryfikowaną kopię odzyskiwania przed usunięciem. Zachowaj też kopię portfela poza serwerem: stare adresy nadal mogą otrzymywać środki, ale usunięte projekty przestają je śledzić. Salda z pamięci podręcznej nie dowodzą, że portfele są puste.
whollycrypto uninstall --check
whollycrypto uninstallZatrzymuje płatności, API i workery; usuwa pliki wykonawcze oraz zarządzaną integrację serwera po wykonaniu kopii i wpisaniu potwierdzenia. Oczekujące płatności lub transfery blokują usunięcie. Pliki są przenoszone do kopii odzyskiwania zamiast kasowane.
Baza danych, konfiguracja, klucze i kopie zapasowe pozostają. Wspólne pakiety Nginx/PostgreSQL i certyfikaty TLS pozostają nietknięte. Polecenie wyświetla komendę odzyskiwania offline; nie uruchamiaj nowej instalacji na zachowanych danych.
Polecenia resetowania/usuwania są przeznaczone dla natywnych instalacji VPS, nie Dockera ani Umbrel. Dla kontenerów używaj poleceń tworzenia kopii i zatrzymywania swojej integracji; zachowaj wolumeny. Żadne z poleceń destrukcyjnych nie akceptuje --yes.
whollycrypto htaccessWybierz użytkownika, nazwę/hasło i potwierdź. Resetuje to pierwszy monit logowania w przeglądarce, nie konto panelu. Inni użytkownicy i dane dostępu API pozostają bez zmian.
whollycrypto admin-resetWybierz administratora według e-maila i potwierdź nowe hasło. Sesje i blokady logowania konta są usuwane; ograniczenia IP pozostają.
Zwykłe resetowanie zachowuje 2FA. Jeśli utracono zarówno aplikację uwierzytelniającą, jak i kody odzyskiwania, jawnie uruchom whollycrypto admin-reset --email admin@example.com --reset-2fa. Po zalogowaniu ponownie skonfiguruj 2FA.
Wymaga bazy danych, nie aplikacji ani starego hasła. Inne konta, portfele i uprawnienia pozostają bez zmian; wyłączone konta pozostają wyłączone.
Nie masz aplikacji uwierzytelniającej ani kodów odzyskiwania? Wybierz konto jako root.
whollycrypto 2fa-reset
# Or select the account directly:
whollycrypto 2fa-reset --email user@example.comUsuwa sesje, konfigurację aplikacji uwierzytelniającej i kody odzyskiwania. Zaloguj się dotychczasowym hasłem i ponownie skonfiguruj 2FA. Uprawnienia, portfele i Basic Auth pozostają bez zmian; wyłączone konta pozostają wyłączone.
Wymaga bazy danych, nie aplikacji ani środków na przetwarzanie. Nieinteraktywnie: --email i --yes.
Enter generuje hasło w /root/whollycrypto/config/credential-resets/: prywatne, niezaszyfrowane, użyteczne po powodzeniu. Hasła wpisane ręcznie nie są zapisywane.
whollycrypto htaccess --user admin --new-user operator
whollycrypto admin-reset --email admin@example.comBez terminala podaj istniejące konto oraz --generate lub --password-file /root/private-password.txt, i --yes. Pliki haseł muszą należeć do root i mieć tryb 600. Nigdy nie umieszczaj haseł w poleceniach ani zmiennych środowiskowych.
--yes pomija tylko potwierdzenie. Najpierw zakończ odzyskiwanie po przerwanej aktualizacji; równoczesne zmiany konta zatrzymują resetowanie.