Podręcznik
Wstęp
Pasek boczny po lewej zawiera odnośniki do odpowiednich sekcji:
- Nazwa użytkownika - odnośniki do profilu osobistego.
- Panel - wyświetl bieżący stan w formie wykresów i grafów.
- Aplikacje - zarządzanie aplikacją.
- Kody odblokowujące - kody odblokowujące generowane automatycznie lub pobrane przez Ciebie.
- Płatności - historia przychodzących płatności użytkowników.
- Podręcznik - obecny podręcznik użytkownika.
Panel
Możesz ustawić wspólne filtry dla wszystkich widżetów na pulpicie nawigacyjnym:
- Waluta - waluta, na którą zostaną przeliczone przychodzące i wychodzące kwoty na pulpicie nawigacyjnym.
- Okres - to okres czasu, dla którego dane są wyświetlane na wykresach i tabelach na pulpicie nawigacyjnym. Określa interwał, w którym analizowane i wyświetlane są informacje i statystyki dotyczące płatności, aplikacji i innych parametrów.
Saldo
Saldo obejmuje następujące kwoty:
- Kwota brutto - łączna kwota wszystkich płatności użytkowników za wybrany okres, pomniejszona o opłaty systemów płatności i PayToUse.
- Kwota netto - łączna kwota wszystkich płatności za wybrany okres, pomniejszona o opłaty systemów płatności i PayToUse.
- Kwota oczekująca - łączna kwota wszystkich płatności za określony okres pomniejszona o opłaty systemów płatności i PayToUse oczekujące na wypłatę na konto dewelopera. Płatność staje się dostępna do wypłaty 7 dni po dokonaniu płatności.
- Dostępna kwota - łączna kwota wszystkich płatności za cały okres pomniejszona o opłaty systemów płatności i PayToUse, dostępna do wypłaty na konto dewelopera.
Płatności
Widżet Płatności zawiera tabelę płatności pogrupowanych według aplikacji dla wybranego okresu.
Pola tabeli:
- Aplikacja - aplikacja. W tabeli wyświetlane są tylko aplikacje, dla których dokonano płatności w wybranym okresie.
- Płatności - liczba płatności.
- Kwota brutto - łączna kwota wszystkich płatności użytkowników za wybrany okres, pomniejszona o opłaty systemów płatności i PayToUse.
- Kwota netto - łączna kwota wszystkich płatności za wybrany okres, pomniejszona o opłaty systemów płatności i PayToUse.
Wykres pokazuje dynamikę wartości Kwota netto i Kwota brutto dziennie.
Nowi użytkownicy
Wykres nowych użytkowników pokazuje dwie wartości w dynamice dziennie:
- Nowi użytkownicy - liczba nowych wywołań interfejsu API. Dostępy do API są rejestrowane tylko wtedy, gdy parametr device - unikalny identyfikator urządzenia - jest przekazywany podczas wysyłania żądania do interfejsu API. Ten parametr musi być rzeczywiście unikalny dla urządzenia. (zobacz Wysyłanie żądania)
- Płatności - liczba płatności w tym samym okresie dziennie.
Konwersja
Miara konwersji odnosi się do oceny efektywności sprzedaży w przekształcaniu Nowi użytkownicy w Płatności.
Wykres pokazuje stosunek liczby Płatności do liczby Nowi użytkownicy, w procentach.
Aplikacje
Przechodząc do tej sekcji, otwiera się lista twoich aplikacji.
Lista kolumn w tabeli aplikacji:
- # - unikalny identyfikator aplikacji. Używany podczas weryfikacji kodu aplikacji lub wyświetlania formularza płatności.
- Nazwa - nazwa aplikacji. Nazwa jest wyświetlana tylko tobie w raportach i na panelu. Kliknięcie na nazwę aplikacji otwiera stronę edycji aplikacji.
- Status - aktualny status aplikacji. Może to być:
- Utworzony - Aplikacja została właśnie utworzona, nie jest jeszcze skonfigurowana.
- Wydana - aplikacja działa.
- Utworzony - data utworzenia aplikacji.
- Dodatkowe przyciski kontroli:
- Usuń - aby usunąć aplikację z listy.
Tworzenie lub edycja aplikacji
Aby akceptować płatności, musisz konsekwentnie wypełniać wszystkie niezbędne dane aplikacji i ją aktywować.
Przycisk tworzenia nowej aplikacji znajduje się na pasku tytułowym listy aplikacji.
Aplikacja
Pola dostępne podczas tworzenia aplikacji:
- Nazwa - nazwa aplikacji, którą widzisz tylko ty w raportach lub na pulpicie. Ta nazwa zostanie wyświetlona w nagłówku strony zapisanej aplikacji. Dopóki aplikacja nie zostanie zapisana, zamiast nazwy wyświetlane jest „Nowa aplikacja”. Pole jest obowiązkowe do wprowadzenia.
- Adres email kontaktowy - adres e-mail, na który będą wysyłane kopie wiadomości wysłanych do użytkowników. Ten adres jest również określony w polu „Odpowiedz do” i służy do odpowiedzi użytkownika na otrzymany e-mail z kodem. Pole jest obowiązkowe do wprowadzenia. Domyślnie pole jest wypełniane wartością z profilem dewelopera. Wartość można zmienić na inną.
- Typ aplikacji - typ aplikacji. Jeśli wybierzesz grupowy typ aplikacji, zostanie wyświetlona lista aplikacji do grupowania. W liście dostępne są tylko pojedyncze aplikacje, dla których generowane są kody odblokowujące.
- Zezwalaj na opinie o płatności - dodaje pole do formularza płatności, w którym użytkownicy mogą wprowadzić tekst. Opinia zostanie dodana do kopii e-maila dewelopera. Opinię można też zobaczyć w szczegółach płatności.
Rozpocznij pisanie lub zmianę wartości, a pojawi się przycisk Zapisz. Przycisk Zapisz umożliwia zapisanie zmian bez przechodzenia do następnej strony. Przycisk Dalej zapisuje zmiany i przechodzi do następnej strony. Zawsze można wrócić, aby dokonać późniejszych zmian.
W nagłówku strony dostępne są tylko zapisane strony aplikacji do nawigacji. Możesz kliknąć Dalej lub przejść do sekcji w nagłówku strony.
Opis
Wybierz język z listy i kliknij Dodaj.
Zostanie wyświetlona karta z zlokalizowanymi tekstami aplikacji dla wybranego języka.
Dostępne języki:
- Niemiecki
- Angielski
- Francuski
- Hiszpański
- Rosyjski
- Chiński uproszczony
Pola w opisie są używane do wyświetlania informacji na formularzu płatności i w odpowiedzi na wiadomość do użytkownika:
- Nazwa - nazwa aplikacji w wybranym języku. Wyświetla się na formularzu płatności i w e-mailu powiadomieniowym o płatności. Domyślnie, po dodaniu języka, wstawiana jest nazwa aplikacji. Możesz ustawić inną nazwę dla każdego języka. Pole wymagane.
- Opis - krótki opis aplikacji. Wyświetlany na formularzu płatności pod nazwą aplikacji. Pole opcjonalne. Możesz je pozostawić puste, jeśli nie chcesz wyświetlać żadnego opisu.
- Odpowiedź - dodatkowe informacje, które zostaną wysłane do użytkownika w e-mailu po pomyślnej płatności. Tekst odpowiedzi jest dodawany na końcu e-maila po standardowej odpowiedzi.
Aby zapisać i przejść do następnej strony, należy dodać przynajmniej jeden język.
Język wyświetlany w formularzu płatności jest automatycznie określany na podstawie preferencji użytkownika określonych w ustawieniach przeglądarki. Można także ustawić język aplikacji dla aplikacji.
Rozpocznij pisanie lub zmianę wartości, a pojawi się przycisk Zapisz. Przycisk Zapisz umożliwia zapisanie zmian bez przechodzenia do następnej strony. Przycisk Dalej zapisuje zmiany i przechodzi do następnej strony. Zawsze można wrócić, aby dokonać późniejszych zmian.
W nagłówku strony dostępne są tylko zapisane strony aplikacji do nawigacji. Możesz kliknąć Dalej lub przejść do sekcji w nagłówku strony.
Cena
Strona zawiera listę cen i pól związanych z płatnościami:
- Okres próbny - długość okresu próbnego.
- Jednostka czasu - jednostka czasu okresu próbnego. Na przykład, jeśli określisz 7 dni, oznacza to, że po 7 dniach od pierwszego wywołania interfejsu API aplikacji, zostanie zwrócona odpowiedź, że okres próbny minął. Czas pierwszego wywołania urządzenia jest zapisywany.
- Metoda obliczania ceny - Metoda obliczania ceny z listy:
- Obliczanie ceny w zależności od okresu - W formularzu płatności użytkownik określa okres aktywacji kodu, a cena jest automatycznie obliczana zgodnie z tabelą poniżej. Użytkownik otrzymuje automatycznie wygenerowany kod odblokowujący w wiadomości e-mail z odpowiedzią.
- Obliczanie okresu w zależności od ceny - W formularzu płatności użytkownik wybiera cenę z listy lub wprowadza swoją własną wartość ceny, a okres jest automatycznie obliczany zgodnie z tabelą poniżej. Użytkownik otrzymuje automatycznie wygenerowany kod w wiadomości odpowiedzi.
- Stały kod - W formularzu płatności użytkownik wybiera cenę z listy lub wprowadza swoją własną wartość ceny. Po dokonaniu płatności otrzymują kod z listy poniżej, odpowiadający wybranej cenie, w wiadomości e-mail z odpowiedzią.
- Darowizna - W formularzu płatności użytkownik wybiera cenę z listy lub wprowadza swoją własną wartość ceny. Dla aplikacji typu Donation nie generowany jest kod odblokowujący.
Cena jest podana w dolarach amerykańskich. Minimalna cena to 1 dolar amerykański.
Rozpocznij pisanie lub zmianę wartości, a pojawi się przycisk Zapisz. Przycisk Zapisz umożliwia zapisanie zmian bez przechodzenia do następnej strony. Przycisk Dalej zapisuje zmiany i przechodzi do następnej strony. Zawsze można wrócić, aby dokonać późniejszych zmian.
W nagłówku strony dostępne są tylko zapisane strony aplikacji do nawigacji. Możesz kliknąć Dalej lub przejść do sekcji w nagłówku strony.
Podgląd
Ta strona ustawia wartości:
- Długość kodu - długość wygenerowanego kodu, jeśli dotyczy.
- Zestaw znaków kodu - zestaw znaków, z którego generowany jest kod:
- Kod numeryczny - kod jest generowany wyłącznie za pomocą cyfr 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. W kodzie może być zawarta wiodąca zero. Wiodące zera są istotne podczas weryfikacji kodu.
- Kod alfanumeryczny - kod jest generowany za pomocą znaków 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, G, H, I, G, K, L, M, N, P, Q, R, S, T, U, V, X, Y, Z. Kod jest generowany i wysyłany do użytkownika za pomocą wielkich liter. Wielkość liter nie ma znaczenia podczas weryfikacji kodu.
- Link do sprawdzenia kodu - przykładowy link do użycia w weryfikacji kodu.
- Link do płatności - link płatności. Możesz skopiować link i wkleić go do opisu aplikacji na stronie, gdzie aplikacja jest publikowana. Parametry do przekazania:
- app - unikalny identyfikator aplikacji. Parametr wymagany.
- amount - kwota, która zostanie podana w polu ceny podczas zakupu. Domyślna cena jest ignorowana. Jednak kwota nie może być mniejsza niż minimalna cena i nie może być niższa niż minimalna cena ustawiona dla aplikacji. Parametr opcjonalny.
Aby zacząć akceptować płatności, musisz aktywować aplikację za pomocą przycisku Uruchom. Przed aktywacją aplikacji upewnij się, że wszystkie wprowadzone dane są poprawne. Klucze wygenerowane przez aplikację nie mogą być zmieniane.
Weryfikacja kodu
Sprawdzenie kodu odblokowującego aplikację odbywa się w 3 krokach:
- Napisanie i wysłanie żądania weryfikacji kodu
- Sprawdzenia po stronie API
- Otrzymywanie i przetwarzanie odpowiedzi API
Wysyłanie żądania
Aby zweryfikować kod, użytkownik Twojej aplikacji musi wprowadzić go w polu w ustawieniach aplikacji.
<properties>
<property id="UnlockCode" type="string"></property>
<property id="UnlockResult" type="string">Checking...</property>
...
<properties>
<settings>
<setting propertyKey="@Properties.UnlockCode" title="@Strings.UnlockCode">
<settingConfig type="alphaNumeric" maxLength="12"/>
</setting>
<setting propertyKey="@Properties.UnlockResult" title="@Strings.UnlockResult">
<settingConfig type="alphaNumeric" readonly="true"/>
</setting>
...
</settings>
Następnie należy wysłać żądanie do serwera API Płacenia za korzystanie:
function onTemporalEvent() as Void {
var ds = System.getDeviceSettings();
return Toybox.Communications.makeWebRequest(
"https://api.pay-to-use.com", // URL API
{
"device" => ds.uniqueIdentifier, // unikalny identyfikator urządzenia
"app" => "6", // id twojej aplikacji
"model" => ds.partNumber, // device part number
"code" => Application.Properties.getValue("UnlockCode") // wartość kodu odblokowującego w twojej aplikacji
},
{
:method => Communications.HTTP_REQUEST_METHOD_POST,
:headers => { "Content-Type" => Communications.REQUEST_CONTENT_TYPE_JSON },
:responseType => Communications.HTTP_RESPONSE_CONTENT_TYPE_JSON
},
method(:onReceive)
);
}
parametry żądania API:
- url - https://api.pay-to-use.com. Using HTTPS is mandatory.
- Treść żądania (przekazane wartości). Słownik kluczy i wartości:
- device - unikalny identyfikator urządzenia.
- app - unikalny identyfikator twojej aplikacji.
- model - device model identifier. Optional parameter. Data is used to display statistics for new devices.
- code - kod odblokowujący wprowadzony przez użytkownika w ustawieniach twojej aplikacji.
- Opcje żądania:
- :method - API obsługuje metody żądania GET i POST.
- :headers - dla metody POST, parametry muszą być przekazywane w formacie JSON.
- :responseType - odpowiedź jest zwracana w formacie JSON.
- responseCallback - odnośnik do metody zwrotnej, która powinna przyjmować dwa argumenty:
- responseCode - kod nagłówka odpowiedzi serwera.
- data - zawartość, jeśli żądanie było udane, lub null.
Sprawdzenia po stronie API
Jeśli do API nie są przekazywane żadne parametry, API zwraca nagłówek HTTP/1.1 404 Not Found.
Jeśli przynajmniej jeden parametr jest przekazywany do API, API zwraca nagłówek HTTP/1.1 200 OK.
Odpowiedź serwera składa się z:
- response - kod odpowiedzi
- msg - tekstowy opis odpowiedzi
- expires - znacznik czasu UNIXTIME (jeśli dotyczy)
Sprawdzana jest poprawność przekazanego identyfikatora aplikacji. Aplikacja musi być w stanie Wydana w chwili płatności. W przypadku błędu zwracany jest kod odpowiedzi 301.
Jeśli przesłano unikalny identyfikator urządzenia, identyfikator urządzenia jest wyszukiwany i przechowywany. W przypadku wystąpienia błędów podczas sprawdzania lub zapisywania, zwracany jest kod błędu 402. Jeśli zostanie znaleziony taki kod zwrotny, natychmiast napisz do pomocy technicznej pod adresem [email protected]
Jeśli kod zostanie przekazany, następujące kroki są wykonywane dla aplikacji z metodami obliczania Obliczanie ceny w zależności od okresu i Obliczanie okresu w zależności od ceny:
- Jeśli przesłany zostanie pusty kod, zostaje on odłączony od unikalnego identyfikatora urządzenia zdefiniowanego w poprzednich krokach.
- Jeśli zostanie przesłany niepusty kod i nie jest on aktywowany, kod jest aktywowany w zależności od warunków ceny określonych podczas zakupu kodu, niezależnie od daty aktywacji.
- Jeśli nie zostanie przesłany żaden kod lub jeśli przesłany kod nie zostanie znaleziony, zwracany jest kod błędu 201.
- Sprawdzany jest aktywowany kod w porównaniu z urządzeniem i w przypadku przekazania podczas aktywacji innego unikalnego identyfikatora urządzenia niż przechowywany, zwracany jest kod błędu 202.
- Jeśli przesłany kod nie ma daty wygaśnięcia i wszystkie poprzednie sprawdzenia zostały zaliczone, zwracany jest kod 101.
- Jeśli kod ma ograniczony czas ważności, następuje sprawdzenie. Jeśli klucz nie wygasł, zwracany jest kod 101. Jeśli kod wygasł, zwracany jest kod błędu 203.
- Ten rodzaj aplikacji wymaga, aby kod był przypisany do urządzenia. Jeśli nie przesłano unikalnego identyfikatora urządzenia, zwracany jest kod błędu 304.
Dla aplikacji z Stały kod, sprawdzana jest tylko dostępność kodu w chwili zakupu. Jeśli kod zostanie znaleziony, zwracany jest kod 101. Jeśli kod nie zostanie znaleziony, zwracany jest kod błędu 201.
Dla aplikacji z metodą obliczania Darowizna, kod nie jest sprawdzany. Zawsze zwracany jest kod 101.
Jeśli poprzednie sprawdzenia nie zostały zaliczone, sprawdzany jest okres testowy. Jeśli upłynęło więcej czasu od pierwszego skontaktowania się z urządzeniem niż bieżące ustawienia aplikacji, zwracany jest kod błędu 204. Jeśli okres próbny nie wygasł jeszcze, zwracany jest kod błędu 102.
Jeśli przesłano tylko identyfikator aplikacji i ani kod odblokowujący, ani unikalny identyfikator urządzenia nie został przesłany, zwracany jest kod błędu 303.
Jeśli zwrócony zostanie kod odpowiedzi 500, powinieneś napisać do wsparcia pod adresem [email protected]
Poniżej znajduje się tabela wszystkich zwróconych kodów:
Zwróć | Wiadomość |
---|---|
101 |
Metody obliczania Obliczanie ceny w zależności od okresu i Obliczanie okresu w zależności od ceny:
|
| |
Stały kod:
| |
Darowizna:
| |
102 |
|
201 |
|
202 |
|
203 |
|
204 |
|
301 |
|
302 |
|
303 |
|
304 |
|
401 |
|
402 |
|
500 |
|
Sprawdzanie odpowiedzi
Następnie powinieneś sprawdzić odpowiedź serwera API Pay-to-use:
function onReceive(responseHeader, data) as Void {
if (responseHeader == 200) { Toybox.Background.exit(data); }
}
Możesz sprawdzić wszystkie nagłówki i kody, możesz wyświetlać własne komunikaty dla wygody użytkownika, ale w najprostszej formie weryfikacja będzie wyglądać mniej więcej tak:
function onBackgroundData(data) as Void {
if (data.hasKey("response")) {
if (data.hasKey("msg")) {
// Możesz wyświetlić data["msg"] w polu właściwości pod nazwą "UnlockResult".
Application.Properties.setValue("UnlockResult", data["msg"]);
}
if (data["response"].toString().substring(0, 1).equals("2")) {
// Weryfikacja kodu nie powiodła się
// Płatne funkcje NIE są dostępne
...
} else {
// Sprawdzenie kodu zakończyło się sukcesem lub błąd jest Twoją winą lub winą interfejsu API
// Płatne funkcje są dostępne
...
}
}
}
Kody odblokowujące
Przechodząc do tej sekcji, otworzy się lista kodów odblokowujących.
Lista kodów odblokowujących
Możesz wyszukiwać w polu adresu e-mail lub kodu w górnym pasku wyszukiwania. Znalezione kody będą wyświetlane na liście. Możesz używać całego lub części adresu e-mail lub kodu jako kryterium wyszukiwania. Dopasowania będą wyróżnione kolorem. Wyszukiwanie i filtry działają jednocześnie i nie wykluczają się nawzajem.
Ostatnio używany filtr jest przechowywany dla użytkownika. To znaczy, że kolejnym razem, gdy wejdziesz na stronę, ostatnio używany filtr zostanie automatycznie zastosowany. Filtry są dostępne dla listy kodów odblokowujących:
- Kolumny - wybierz kolumny tabeli do wyświetlenia na liście kodów odblokowujących.
- Aplikacja - wyświetlaj tylko kody odblokowujące dla wybranych aplikacji.
- Status - wyświetlaj tylko kody odblokowujące znajdujące się w wybranych statusach.
Lista kolumn w tabeli kodów odblokowujących:
- Aplikacja - Twoja aplikacja. Możesz przejść do linku, aby edytować jej ustawienia.
- Kod - kod odblokowujący.
- E-mail - adres e-mail powiązany z rejestracją kodu odblokowującego. Ten adres jest używany do wyszukiwania kodów odblokowujących klientów w sekcji Moje zakupy na stronie internetowej. Ta sekcja jest dostępna dla użytkowników.
- Termin - okres ważności wysłanego kodu (określony w ustawieniach aplikacji). Okres ważności jest ustawiony dla kodu, odpowiadający warunkom ustawień aplikacji w momencie jej utworzenia.
- Status - status kodu odblokowującego. (zobacz Status kodu odblokowującego)
- Utworzony - data utworzenia kodu odblokowującego.
- Aktywowany - data aktywacji kodu. Jest ustawiana w momencie, gdy to konkretne urządzenie użytkownika po raz pierwszy kontaktuje się z usługą API PayToUse i przesyła ten kod. Status kodu zmienia się na Aktywowany. Tylko nieaktywny kod może być aktywowany. Jeśli aktywny kod zostanie przesłany przez urządzenie z innym identyfikatorem, API zwróci błąd 202. Tylko jedno urządzenie może być połączone z pojedynczym kodem.
- Wygaśnięcie - data wygaśnięcia aktywacji kodu. Ustawiona dla kodów, które mają ograniczony okres ważności po aktywacji kodu. Dla kodów z nieograniczonym terminem ważności data pozostaje pusta.
- Usunięty - data usunięcia kodu. Po usunięciu status kodu jest ustawiony na Nieznany.
- Płatność nr - unikalny numer sekwencji płatności. Możesz kliknąć na link, aby zobaczyć szczegóły płatności.
- Przyciski do działań z kodami odblokowującymi. Na przykład, usuwanie.
Status kodu odblokowującego
Podczas swojego cyklu życia kod odblokowujący przechodzi przez różne stany, które można śledzić za pomocą statusu kodu.
Status | Opis |
---|---|
Dostępny | Status jest przypisywany do kodu odblokowującego, dla którego nie wykonano żadnych działań lub jeśli połączenie urządzenia zostało zresetowane dla kodu. |
Aktywowany | Status jest ustawiany dla kodu z ustawioną datą aktywacji. Data aktywacji jest ustawiana, gdy urządzenie po raz pierwszy pomyślnie uzyskuje dostęp do usługi API PayToUse. Ponadto, podczas aktywacji kodu ustawiana jest data wygaśnięcia kodu. |
Wygasłe | Status jest ustawiany dla wygasłego kodu. Odłączenie kodu od urządzenia nie resetuje daty wygaśnięcia kodu. Sprawdzanie kodu z tym statusem zwróci błąd 203. (zobacz Sprawdzenia po stronie API) |
Nieznany | Status jest ustawiany, gdy kod jest usunięty. Sprawdzanie kodu z tym statusem zwróci błąd 201. (zobacz Sprawdzenia po stronie API) |
Płatności
Przechodząc do tej sekcji, otworzy się lista płatności użytkownika.
Do otrzymywania płatności używane są następujące systemy płatności:
Po opłatach systemu płatności PayToUse pobierze opłatę w wysokości 13%. Nieustannie pracujemy nad obniżeniem opłat.
W przypadku jakichkolwiek sporów lub zwrotów w systemie płatności, kary systemu płatności są ponownie przypisywane deweloperowi. Dlatego nie należy dopuszczać do takich sytuacji. Opłata PayToUse nie jest pobierana w sytuacjach kontrowersyjnych.
Lista płatności
Możesz wyszukiwać w polu e-mail lub wysłanym kodzie w górnym pasku wyszukiwania. Znalezione płatności zostaną wyświetlone na liście. Możesz użyć całego lub części adresu e-mail lub wysłanego kodu jako kryterium wyszukiwania. Dopasowania będą podświetlone kolorem. Wyszukiwanie i filtry działają jednocześnie i się wzajemnie nie wykluczają.
Ostatnio używany filtr jest przechowywany dla użytkownika. Oznacza to, że następnym razem, gdy wejdziesz na stronę, ostatnio używany filtr zostanie automatycznie zastosowany. Filtry są dostępne dla listy płatności:
- Kolumny - wybierz kolumny tabeli do wyświetlenia na liście płatności.
- Aplikacja - wyświetlanie płatności tylko z wybranych aplikacji.
- System - wyświetlaj płatności tylko z wybranych systemów płatności.
- Status - wyświetlaj płatności tylko z wybranymi statusami.
Lista kolumn w tabeli płatności:
- Aplikacja - Twoja aplikacja. Możesz przejść do linku, aby edytować jej ustawienia.
- # - unikalny numer sekwencyjny płatności. Jest on przypisywany automatycznie po przejściu użytkownika z formularza płatności na stronę płatności w systemie płatności. Możesz kliknąć na link, aby zobaczyć szczegóły płatności.
- Komentarze - wiadomość od użytkownika wprowadzona w formularzu płatności.
- System - system płatności wybrany przez użytkownika.
- Status - status płatności. (zobacz Status płatności)
- E-mail - e-mail użytkownika podany w formularzu płatności.
- Termin - okres ważności wysłanego kodu (określony w ustawieniach aplikacji).
- Utworzony - data utworzenia płatności.
- Kwota faktury - kwota płatności pobrana od użytkownika. Określana w formularzu płatności w zależności od ustawień aplikacji.
- Data płatności - data płatności.
- Kwota płatności - kwota płatności potwierdzona przez system płatności.
- Wysłany kod - kod wysłany do użytkownika.
- Dostępna kwota - dostępna kwota wypłaty.
- Kwota wypłaty - kwota wypłaconych środków za płatność.
Nie można wprowadzać zmian w płatności.
Status płatności
Podczas swojego cyklu życia płatność przechodzi przez różne stany, które można śledzić za pomocą statusu płatności.
Status | Opis |
---|---|
Niekompletny | Status jest przypisany do płatności, dla których nie wykonano żadnych działań. Płatność jest tworzona, gdy użytkownik przełącza się z formularza płatności na formularz systemu płatności. Płatności przypisany jest unikalny numer seryjny, a także podstawowe atrybuty płatności: kwota, system płatności, data. |
Zakończony sukcesem | Status jest przypisany do płatności, które otrzymały pozytywną odpowiedź od systemu płatności. Kolejnym krokiem jest wysłanie użytkownikowi wiadomości e-mail zawierającej wygenerowany kod lub inne dane, w zależności od ustawień aplikacji. Jeśli płatność pozostanie w tym statusie, konieczne jest poświęcenie jej szczególnej uwagi, ponieważ kolejne działania nie zostały wykonane. |
Błąd | Status jest przypisany do płatności, dla których otrzymano negatywną odpowiedź od systemu płatności. Następne kroki nie są wykonywane. Konieczne jest poświęcenie szczególnej uwagi takim płatnościom, ponieważ status po stronie systemu płatności może być przetwarzany z opóźnieniem. |
Oczekujący | Status jest przypisany do płatności, dla których otrzymano pozytywną odpowiedź od systemu płatności, a wszystkie kolejne kroki zostały wykonane pomyślnie. Wypłata dla płatności o tym statusie nie jest dostępna. Płatności przenoszone są automatycznie do następnego statusu po 7 dniach. |
Dostępny | Wypłata jest dostępna dla płatności o tym statusie. |
Wysyłanie | Status jest włączony dla płatności uwzględnionych w następnej wypłacie. Jeśli wypłata zostanie anulowana lub odrzucona, status płatności zostanie przywrócony do Dostępny. |
Wysłane | Status jest włączony dla płatności, dla których dokonano wypłaty. Oczekuje się na potwierdzenie otrzymania środków. |
Zakończony | Status jest włączony dla płatności z udanymi wypłatami. Można ręcznie ustawić status, potwierdzając wypłatę w odpowiednim dziale. Status jest również automatycznie zmieniany po 14 dniach od wypłaty płatności. |
Zwrócone | Płatności, dla których wystawiono zwrot, są przenoszone do tego statusu. Przy wystawianiu zwrotu pobierana jest opłata za zwrot. Opłata jest odliczana od kwoty wypłaty. |
Wypłaty
Przechodząc do tej sekcji, otworzy się lista twoich wypłat.
Lista wypłat
Ostatnio używany filtr jest przechowywany dla użytkownika. Oznacza to, że następnym razem, gdy wejdziesz na stronę, ostatnio używany filtr zostanie automatycznie zastosowany. Dla listy wypłat są dostępne filtry:
- Kolumny - wyświetlaj tylko wybrane kolumny na liście wypłat.
- Status - wyświetlaj tylko wypłaty znajdujące się w wybranych statusach.
Lista kolumn w tabeli wypłat:
- # - unikalny numer sekwencyjny wypłaty. Przypisywany jest automatycznie po zapisaniu wypłaty. Możesz kliknąć na link, aby wyświetlić szczegóły wypłaty.
- Status - status wypłaty. (zobacz Status wypłaty)
- Utworzony - data żądania wypłaty.
- Kwota - kwota wypłaty.
- Wypłata - data wysłania wypłaty.
- Przyciski do działań z wypłatami. Na przykład, potwierdzenie.
Możesz potwierdzić wypłatę, gdy znajduje się w statusie Wysłane.
Status wypłaty
Podczas swojego cyklu życia, wypłata przechodzi przez różne stany, które można śledzić za pomocą statusu wypłaty.
Status | Opis |
---|---|
Oczekujący | Status jest przypisywany do wypłat przy tworzeniu, dla których nie zostały podejmowane żadne działania. |
Anulowany | Status jest przypisywany do anulowanych wypłat. Anulowania mogą być przeprowadzane z różnych powodów. Na przykład, nie jest określony sposób otrzymywania środków. Wszystkie płatności z tej wypłaty przechodzą do stanu Dostępny i są ponownie dostępne do wypłaty. |
Wysłane | Status jest ustawiany dla wypłaty środków, gdy zostanie wysłana. |
Zakończony | Status jest ustawiany dla wypłaty ręcznej, gdy jest otrzymywany przez dewelopera, aby potwierdzić otrzymanie. Lub automatycznie po 14 dniach od wysłania. |
Odrzucony | Status jest ustawiany dla wypłaty, gdy bank lub system płatności zwraca środki po wysłaniu. Wszystkie płatności z tej wypłaty przechodzą do stanu Dostępny i są ponownie dostępne do wypłaty. |
API
Overview
API PayToUse performs the following functions:
- Checks the activation status of an unlock code and activates it if necessary.
- Retrieves blood glucose data from the NightScout app.
- Retrieves current weather data for a specified location.
All information can be requested and returned in a single request.
API Endpoints
You can use one of the following endpoints:
- https://api.pay-to-use.com
- https://api.p2u.io
Both endpoints handle GET and POST requests.
Request Parameters
- device: string (required) — unique device identifier
- app: integer (required) — your Application ID
- model: string (optional) — device model code, needed for collecting and displaying statistics for devices using the app
- code: string (optional) — unlock code
- bg: associative array (optional) — data for requesting blood glucose levels from the NightScout app
- url: string (optional) — address of the NightScout app
- weather: associative array (optional) — data for requesting current weather
- appid: string (optional) — weather API access key
- lat: float (optional) — latitude
- lon: float (optional) — longitude
- provider: integer (optional) — weather provider
List of Supported Weather Providers
1. OpenWeatherMap
- Description: OpenWeatherMap provides global weather data, including real-time weather, historical data, and 16-day forecasts. With wide geographic coverage and frequent updates, OpenWeatherMap is a popular choice for applications requiring both current weather and extended forecasts.
- Data Provided: Real-time temperature, humidity, wind speed, air quality, precipitation probability, and more. Offers both current and forecast data, including minute-by-minute weather data for select locations.
- Provider Selection: Include provider = 1 in the weather section of your request to select OpenWeatherMap as the weather provider.
- Usage Notes: Offers free and paid tiers, with data accessible via API key authentication. Advanced data layers and premium features are available in paid plans.
- API Documentation: Available here.
2. QWeather
- Description: QWeather, also known as HeWeather, provides comprehensive weather data focused on China but includes international data as well. It offers extensive details such as real-time weather, forecasts, air quality information, and alerts.
- Data Provided: Current temperature, humidity, UV index, pollution levels, daily and hourly forecasts, as well as warnings for severe weather conditions. Known for its granular air quality data and its real-time updates on changing weather conditions.
- Provider Selection: Include provider = 2 in the weather section of your request to select QWeather as the weather provider.
- Usage Notes: QWeather offers API access with free and premium tiers. The free tier provides limited data, while premium options expand to cover additional data points and locations.
- API Documentation: Available here.
3. MET Weather (MET Norway)
- Description: The MET Weather API, provided by MET Norway, gives access to a variety of open meteorological data, including forecasts, historical data, and specific data for Norway and the Nordic regions. Known for its accuracy and transparency, MET Weather is ideal for applications in need of highly reliable weather data.
- Data Provided: Current weather conditions, forecasts, precipitation, temperature, wind data, and UV index. MET Weather offers specialized data for the Nordic regions but also supports global weather information.
- Provider Selection: Include provider = 3 in the weather section of your request to select MET Weather as the weather provider.
- Usage Notes: All data provided by MET Weather is freely available for use under a Creative Commons license, allowing both non-commercial and commercial applications without cost. MET Norway is renowned for its environmental data, making it a trusted provider, particularly in Europe.
- API Documentation: Available here.
Example Request
function onTemporalEvent() as Void {
var ds = System.getDeviceSettings();
if (!ds.phoneConnected) { // Checks that the device is connected to the phone for sending the request
return;
}
var id = ds.uniqueIdentifier;
if (id == null) { // Verifies that the device has been assigned a unique identifier
return;
}
var request = {};
var lockCheck = Application.Storage.getValue("LastCodeCheckTimestamp");
if (lockCheck == null || lockCheck <= Time.now().value()) { // Sends the code if necessary
request.put("code", Application.Properties.getValue("UnlockCode"));
}
var ns_url = Application.Properties.getValue("NS");
if (!ns_url.equals("")) { // Sends the NightScout app URL if needed
request.put("bg", { "url" => ns_url });
}
var wP = Application.Properties.getValue("Weather");
if (wP != 0) { // Sends weather request parameters if needed
var lat = Application.Properties.getValue("latitude");
var lon = Application.Properties.getValue("longitude");
if (!lat.equals("") && !lon.equals("")) {
request.put("weather", {
"appid" => Application.Properties.getValue("appID"),
"lat" => lat,
"lon" => lon,
"provider" => wP
});
}
}
if (!request.isEmpty()) {
// Fills in the required request parameters
request.put("device", id);
request.put("app", p2uAppID); // id twojej aplikacji
request.put("model", ds.partNumber);
Toybox.Communications.makeWebRequest(
"https://api.p2u.io", // API Endpoint
request,
{
:method => 3, // Communications.HTTP_REQUEST_METHOD_POST
:headers => {
"Content-Type" => 1 // Communications.REQUEST_CONTENT_TYPE_JSON
},
:responseType => 0 // Communications.HTTP_RESPONSE_CONTENT_TYPE_JSON
},
method(:onReceive)
);
}
}
API Response
The API returns a JSON object with information on unlock status, glucose level, and weather.
Response Parameters
Unlock Code Verification Results (if a request was sent):
- response: integer — return code
- msg: string — message about the verification result
- expires: integer — expiration timestamp of the code in UNIXTIMESTAMP format
- qr: array — QR code for purchase or serial number verification, if applicable
NightScout App Response (if a request was sent):
- bg: associative array — formatted response from the NightScout app
- value: integer — blood glucose level in mg/dL
- date: integer — timestamp of the code expiration in UNIXTIMESTAMP format
- direction: string — trend in blood glucose level change
Weather API Response (if a request was sent):
- weather: associative array — formatted response from the Weather API
- provider: integer — weather provider identifier
- weather: array — current weather conditions. May return one or two values; if two values are returned, they represent day and night conditions
- temp: float — current temperature in Celsius
- feels_like: float — feels-like temperature in Celsius
- pressure: integer — atmospheric pressure in hPa
- humidity: integer — humidity in %
- precipitation: integer — precipitation probability in %
- wind: integer — wind direction in degrees
- wind_speed: float — wind speed in m/s
- temp_low: float — today’s low temperature in Celsius
- temp_high: float — today’s high temperature in Celsius
- sunrise_today: integer — today’s sunrise timestamp in UNIXTIMESTAMP format
- sunset_today: integer — today’s sunset timestamp in UNIXTIMESTAMP format
- sunrise_tomorrow: integer — tomorrow’s sunrise timestamp in UNIXTIMESTAMP format
- sunset_tomorrow: integer — tomorrow’s sunset timestamp in UNIXTIMESTAMP format
- aqi: associative array — air quality index
- level: integer — air quality index level
- value: integer — air quality index value
Example Response
{
"response": 103,
"msg": "Free for beta tester",
"expires": 0,
"qr": [
"11111110111011010110101111111",
"10000010111001001101001000001",
"10111010101100110110101011101",
"10111010110101000001001011101",
"10111010000001010100001011101",
"10000010100110001101001000001",
"11111110101010101010101111111",
"00000000010010110111100000000",
"11001110000100100100100101111",
"11111100011011011010011111111",
"01111011100111111100101000001",
"01111100101100110111011011011",
"00110110101010100101110000010",
"11001000010001011000001011111",
"01101010001001110100000001101",
"10111101100010100101100110011",
"01010111111100110100100100010",
"10000100111011011000101111011",
"00000110110110110100100000101",
"00111100011100001100101100011",
"11110111110010100111111111001",
"00000000111001011101100010001",
"11111110010001011111101011101",
"10000010100010100111100010010",
"10111010101101100111111111001",
"10111010010010110000010000001",
"10111010001111111110000001111",
"10000010111101011111101101011",
"11111110100011011110110010010"
],
"bg": {
"value": -102,
"date": 1730546101,
"direction": ""
},
"weather": {
"provider": 1,
"weather": [
89
],
"temp": 0.27,
"feels_like": -3.14,
"pressure": 999,
"humidity": 78,
"precipitation": 0,
"wind": 120,
"wind_speed": 2.96,
"temp_low": -3.8,
"temp_high": 0.27,
"sunrise_today": 1730527969,
"sunset_today": 1730551770,
"sunrise_tomorrow": 1730614492,
"sunset_tomorrow": 1730638051,
"aqi": {
"level": 1,
"value": 38
}
}
}
Notes
- Requests with bg require a connection to the NightScout app.
- For every request with a code, the API automatically checks the code status and activates it if inactive.
- Please note that API parameters may be updated or modified over time to improve functionality, compatibility, and security. It is recommended to periodically review the API documentation for any changes that might affect integration or usage.
Garmin
Project-Id-Version: PayToUse
Report-Msgid-Bugs-To:
PO-Revision-Date: 2024-06-26 18:47+0300
Last-Translator: VeshchiyOleg
ID | Opis | Day | Night |
---|---|---|---|
0 | Wyczyść |
0x53 |
0x54 |
40 | Fair | ||
23 | Mostly clear |
0x55 |
0x56 |
1 | Partly cloudy |
0x57 |
0x58 |
22 | Partly clear | ||
2 | Mostly cloudy |
0x59 |
|
52 | Thin clouds | ||
20 | Cloudy |
0x5A |
|
45 | Cloudy chance of rain | ||
31 | Drizzle |
0x3E |
|
14 | Light rain |
0x42 |
|
24 | Light showers | ||
3 | Rain |
0x43 |
|
25 | Showers | ||
27 | Chance of showers |
0x46 |
|
11 | Scattered showers | ||
15 | Heavy rain | ||
26 | Heavy showers | ||
28 | Chance of thunderstorms |
0x36 |
0x37 |
12 | Scattered thunderstorms |
0x38 |
|
6 | Thunderstorms |
0x39 |
|
8 | Fog |
0x4E |
|
9 | Hazy | ||
29 | Mist | ||
39 | Haze | ||
30 | Dust |
0x4F |
|
35 | Sand | ||
33 | Smoke | ||
38 | Volcanic ash | ||
37 | Sandstorm | ||
13 | Unknown precipitation | ||
5 | Windy |
0x52 |
|
36 | Squall | ||
48 | Flurries | ||
32 | Tornado |
0x50 |
|
41 | Hurricane | ||
42 | Tropical storm | ||
50 | Sleet |
0x45 |
|
7 | Wintry mix | ||
18 | Light rain snow | ||
19 | Heavy rain snow | ||
21 | Rain snow | ||
49 | Freezing rain | ||
44 | Chance of rain snow | ||
47 | Cloudy chance of rain snow | ||
34 | Ice | ||
51 | Ice snow | ||
43 | Chance of snow |
0x4C |
0x4D |
16 | Light snow | ||
46 | Cloudy chance of snow |
0x4A |
|
4 | Snow | ||
17 | Heavy snow |
0x4B |
|
10 | Hail |
0x3A |
Open Weather Map
Project-Id-Version: PayToUse
Report-Msgid-Bugs-To:
PO-Revision-Date: 2024-06-26 18:47+0300
Last-Translator: VeshchiyOleg
ID | Opis | Day | Night |
---|---|---|---|
2xx | Thunderstorm | ||
200 | Thunderstorm with light rain |
0x36 |
0x37 |
201 | Thunderstorm with rain |
0x38 |
|
202 | Thunderstorm with heavy rain | ||
210 | Light thunderstorm | ||
211 | Thunderstorm |
0x39 |
|
212 | Heavy thunderstorm |
0x3B |
|
221 | Ragged thunderstorm | ||
230 | Thunderstorm with light drizzle |
0x3A |
|
231 | Thunderstorm with drizzle | ||
232 | Thunderstorm with heavy drizzle | ||
3xx | Drizzle | ||
300 | Light intensity drizzle |
0x3C |
0x3D |
301 | Drizzle |
0x3E |
|
302 | Heavy intensity drizzle |
0x3F |
|
310 | Light intensity drizzle rain |
0x40 |
|
311 | Drizzle rain | ||
312 | Heavy intensity drizzle rain |
0x41 |
|
313 | Shower rain and drizzle | ||
314 | Heavy shower rain and drizzle | ||
321 | Shower drizzle | ||
5xx | Rain | ||
500 | Light rain |
0x42 |
|
501 | Moderate rain |
0x43 |
|
502 | Heavy intensity rain |
0x44 |
|
503 | Very heavy rain | ||
504 | Extreme rain | ||
511 | Freezing rain |
0x45 |
|
520 | Light intensity shower rain |
0x46 |
|
521 | Shower rain | ||
522 | Heavy intensity shower rain | ||
531 | Ragged shower rain | ||
6xx | Snow | ||
600 | Light snow |
0x4C |
0x4D |
601 | Snow |
0x4A |
|
602 | Heavy snow | ||
611 | Sleet |
0x45 |
|
612 | Light shower sleet | ||
613 | Shower sleet | ||
615 | Light rain and snow | ||
616 | Rain and snow | ||
620 | Light shower snow |
0x4B |
|
621 | Shower snow | ||
622 | Heavy shower snow | ||
7xx | Atmosphere | ||
701 | Mist |
0x4E |
|
711 | Smoke |
0x4F |
|
721 | Haze | ||
731 | Sand/ dust whirls | ||
741 | Fog | ||
751 | Sand |
0x4F |
|
761 | Dust | ||
762 | Volcanic ash | ||
771 | Squalls |
0x52 |
|
781 | Tornado |
0x50 |
|
800 | Wyczyść | ||
800 | Clear sky |
0x53 |
0x54 |
80x | Clouds | ||
801 | Few clouds 11-25% |
0x55 |
0x56 |
802 | Scattered clouds 25-50% |
0x57 |
0x58 |
803 | Broken clouds 51-84% |
0x59 |
|
804 | Overcast clouds 85-100% |
0x5A |
QWeather
You can check out the original set of weather icons by clicking here
ID | Opis | Day | Night |
---|---|---|---|
302 | Thundershower |
0x36 |
0x37 |
303 | Heavy Thunderstorm |
0x38 |
|
310 | Rainstorm |
0x39 |
|
317 | Rainstorm to Heavy Rainstorm | ||
304 | Hail |
0x3A |
|
311 | Heavy Rainstorm |
0x3B |
|
312 | Severe Rainstorm | ||
318 | Heavy to Severe Rainstorm | ||
309 | Drizzle Rain |
0x3C |
0x3D |
404 | Sleet |
0x3E |
|
305 | Light Rain |
0x42 |
|
314 | Light to Moderate Rain | ||
306 | Moderate Rain |
0x43 |
|
315 | Moderate to Heavy Rain | ||
399 | Rain | ||
308 | Extreme Rain |
0x44 |
|
316 | Heavy Rain to Rainstorm | ||
313 | Freezing Rain |
0x45 |
|
405 | Rain and Snow | ||
300 | Shower Rain |
0x46 |
|
301 | Heavy Shower Rain | ||
307 | Heavy Rain | ||
350 | Shower Rain | ||
351 | Heavy Shower Rain | ||
400 | Light Snow |
0x4C |
0x4D |
408 | Light to Moderate Snow | ||
499 | Snow | ||
401 | Moderate Snow |
0x4A |
|
402 | Heavy Snow | ||
409 | Moderate to Heavy Snow | ||
410 | Heavy Snow to Snowstorm | ||
403 | Snowstorm |
0x4B |
|
406 | Shower Rain and Snow | ||
407 | Snow Flurry | ||
456 | Shower Rain and Snow | ||
457 | Snow Flurry | ||
503 | Sand |
0x4E |
|
504 | Dust | ||
507 | Duststorm | ||
508 | Sandstorm | ||
511 | Moderate Haze | ||
512 | Heavy Haze | ||
513 | Severe Haze | ||
500 | Mist |
0x4F |
|
501 | Fog | ||
502 | Haze | ||
509 | Dense Fog | ||
510 | Strong Fog | ||
514 | Heavy Fog | ||
515 | Extra Heavy Fog | ||
100 | Sunny |
0x53 |
0x54 |
150 | Wyczyść | ||
101 | Cloudy |
0x55 |
0x56 |
151 | Cloudy | ||
102 | Few Clouds |
0x57 |
0x58 |
152 | Few Clouds | ||
103 | Partly Cloudy |
0x59 |
|
153 | Partly Cloudy | ||
104 | Overcast |
0x5A |
MET Weather
Project-Id-Version: PayToUse
Report-Msgid-Bugs-To:
PO-Revision-Date: 2024-06-26 18:47+0300
Last-Translator: VeshchiyOleg
ID | Opis | Day | Night |
---|---|---|---|
lightrainshowers | Light rain showers |
0x36 |
0x37 |
lightrainshowersandthunder | Light rain showers and thunder | ||
rainshowersandthunder | Rain showers and thunder | ||
heavyrainshowersandthunder | Heavy rain showers and thunder | ||
heavyrainandthunder | Heavy rain and thunder |
0x38 |
|
rainandthunder | Rain and thunder | ||
lightrainandthunder | Light rain and thunder |
0x39 |
|
heavysleetandthunder | Heavy sleet and thunder |
0x3B |
|
lightsleetandthunder | Light sleet and thunder |
0x3A |
|
lightssleetshowersandthunder | Light sleet showers and thunder | ||
sleetandthunder | Sleet and thunder | ||
lightsleetshowers | Light sleet showers |
0x3C |
0x3D |
sleetshowers | Sleet showers | ||
sleetshowersandthunder | Sleet showers and thunder | ||
heavysleetshowers | Heavy sleet showers | ||
heavysleetshowersandthunder | Heavy sleet showers and thunder | ||
lightsleet | Light sleet |
0x3E |
|
sleet | Sleet |
0x3F |
|
heavysleet | Heavy sleet |
0x45 |
|
lightrain | Light rain |
0x42 |
|
rain | Rain |
0x43 |
|
heavyrain | Heavy rain |
0x44 |
|
rainshowers | Rain showers |
0x46 |
|
heavyrainshowers | Heavy rain showers | ||
heavysnow | Heavy snow |
0x4B |
|
heavysnowandthunder | Heavy snow and thunder | ||
snow | Snow | ||
snowandthunder | Snow and thunder | ||
lightsnowshowers | Light snow showers |
0x4C |
0x4D |
lightssnowshowersandthunder | Light snow showers and thunder | ||
snowshowers | Snow showers | ||
snowshowersandthunder | Snow showers and thunder | ||
heavysnowshowers | Heavy snow showers | ||
heavysnowshowersandthunder | Heavy snow showers and thunder | ||
lightsnow | Light snow |
0x4A |
|
lightsnowandthunder | Light snow and thunder | ||
fog | Fog |
0x4F |
|
clearsky | Clear sky |
0x53 |
0x54 |
fair | Fair |
0x55 |
0x56 |
partlycloudy | Partly cloudy |
0x57 |
0x58 |
cloudy | Cloudy |
0x59 |