Manuale
Introduzione
La barra laterale sinistra contiene collegamenti alle sezioni corrispondenti:
- Nome utente - collegamenti al profilo personale.
- Dashboard - visualizza lo stato attuale sotto forma di grafici.
- Applicazioni - gestione dell'applicazione.
- Sblocca codici - codici di sblocco generati automaticamente o scaricati da te.
- Pagamenti - cronologia dei pagamenti in entrata degli utenti.
- Manuale - il manuale utente attuale.
Dashboard
È possibile impostare filtri comuni per tutti i widget nel cruscotto:
- Valuta - la valuta in cui saranno convertite le entrate e le uscite nel cruscotto.
- Periodo - è il periodo di tempo per il quale i dati vengono visualizzati nei grafici e nelle tabelle nel cruscotto. Determina l'intervallo durante il quale le informazioni e le statistiche su pagamenti, applicazioni e altri parametri vengono analizzate e visualizzate.
Saldo
Il saldo include le seguenti cifre:
- Importo lordo - l'importo totale di tutti i pagamenti degli utenti per il periodo selezionato escludendo le commissioni dei sistemi di pagamento e PayToUse.
- Importo netto - l'importo totale di tutti i pagamenti per il periodo selezionato meno le commissioni dei sistemi di pagamento e PayToUse.
- Importo in sospeso - l'importo totale di tutti i pagamenti per il periodo specificato meno le commissioni dei sistemi di pagamento e PayToUse in attesa di ritiro sul conto dello sviluppatore. Il pagamento diventa disponibile per il prelievo 7 giorni dopo il pagamento.
- Importo disponibile - l'importo totale di tutti i pagamenti di sempre meno le commissioni dei sistemi di pagamento e PayToUse, disponibile per il prelievo sul conto dello sviluppatore.
Pagamenti
Il widget Pagamenti include una tabella dei pagamenti raggruppati per applicazione per il periodo selezionato.
Campi della tabella:
- Applicazione - applicazione. Vengono visualizzate solo le applicazioni per le quali sono stati effettuati pagamenti durante il periodo selezionato.
- Pagamenti - numero di pagamenti.
- Importo lordo - l'importo totale di tutti i pagamenti degli utenti per il periodo selezionato escludendo le commissioni dei sistemi di pagamento e PayToUse.
- Importo netto - l'importo totale di tutti i pagamenti per il periodo selezionato meno le commissioni dei sistemi di pagamento e PayToUse.
Il grafico mostra la dinamica dei valori Importo netto e Importo lordo per giorno.
Nuovi utenti
Il grafico dei nuovi utenti mostra due valori in dinamica per giorno:
- Nuovi utenti - il numero di nuove chiamate API. Gli accessi API vengono registrati solo se il parametro device - un identificatore unico del dispositivo - viene passato durante l'invio di una richiesta all'API. Questo parametro deve essere veramente unico per il dispositivo. (vedi Invio di una richiesta)
- Pagamenti - il numero di pagamenti nello stesso periodo per giorno.
Conversione
La metrica Conversione si riferisce alla valutazione dell'efficienza delle tue vendite nel convertire Nuovi utenti in Pagamenti.
Il grafico mostra il rapporto tra il numero di Pagamenti e il numero di Nuovi utenti, in percentuale.
Applicazioni
Quando vai in questa sezione, si apre un elenco delle tue applicazioni.
L'elenco delle colonne nella tabella delle applicazioni:
- # - identificatore unico dell'applicazione. Utilizzato durante la verifica del codice dell'applicazione o nella visualizzazione del modulo di pagamento.
- Nome - nome dell'applicazione. Il nome viene visualizzato solo a te nei report e nel dashboard. Cliccando sul nome dell'applicazione si apre la pagina di modifica dell'applicazione.
- Stato - lo stato attuale dell'applicazione. Può essere:
- Creato - L'applicazione è stata appena creata, non è ancora configurata.
- Rilasciato - l'applicazione è in esecuzione.
- Creato - la data di creazione dell'applicazione.
- Pulsanti di controllo aggiuntivi:
- Elimina - per rimuovere l'applicazione dall'elenco.
Creazione o modifica di un'applicazione
Per accettare pagamenti, è necessario compilare in modo coerente tutti i dati necessari dell'applicazione e attivare l'applicazione.
Il pulsante per creare una nuova applicazione si trova nella barra del titolo dell'elenco delle applicazioni.
Applicazione
Campi disponibili durante la creazione di un'applicazione:
- Nome - il nome dell'applicazione visibile solo nei report o nel dashboard. Il nome sarà visualizzato nell'intestazione della pagina dell'applicazione salvata. Fino a quando l'applicazione non è salvata, al posto del nome viene visualizzato "Nuova app". Il campo è obbligatorio.
- Email di contatto - l'indirizzo email a cui verranno inviate le copie dei messaggi inviati agli utenti. Questo indirizzo è specificato anche nel campo "Rispondi a" e viene utilizzato per rispondere all'utente all'email ricevuta con il codice. Il campo è obbligatorio. Per impostazione predefinita, il campo è popolato con il valore dal profilo dello sviluppatore. Il valore può essere cambiato.
- Tipo di applicazione - tipo di applicazione. Se si seleziona un tipo di applicazione di gruppo, verrà visualizzato un elenco di applicazioni per il raggruppamento. Saranno disponibili solo le singole applicazioni per le quali sono generati i codici di sblocco.
- Consenti feedback sul pagamento - aggiunge un campo al modulo di pagamento per consentire agli utenti di inserire testo libero. Il feedback viene aggiunto alla copia dell'email del sviluppatore. Il feedback può anche essere visualizzato nei dettagli del pagamento.
Inizia a digitare cambiando i valori e compare il pulsante Salva. Il pulsante Salva ti permette di salvare le modifiche senza passare alla pagina successiva. Il pulsante Avanti salva le modifiche e passa alla pagina successiva. Puoi sempre tornare indietro per apportare modifiche in seguito.
Nell'intestazione della pagina sono disponibili solo le pagine delle applicazioni salvate per la navigazione. Puoi fare clic su Avanti o andare alla sezione nell'intestazione della pagina.
Descrizione
Seleziona una lingua dall'elenco e clicca su Aggiungi.
Verrà visualizzata una scheda con i testi localizzati dell'applicazione per la lingua selezionata.
Lingue disponibili:
- Tedesco
- Inglese
- Francese
- Spagnolo
- Russo
- Cinese semplificato
I campi nella descrizione sono utilizzati per visualizzare informazioni nel modulo di pagamento e nel messaggio di risposta all'utente:
- Nome - il nome dell'applicazione per la lingua selezionata. Viene visualizzato nel modulo di pagamento e nell'email di notifica del pagamento. Per impostazione predefinita, quando si aggiunge una lingua, viene inserito il nome dell'applicazione. È possibile impostare un nome diverso per ogni lingua. Campo obbligatorio.
- Descrizione - una breve descrizione dell'applicazione. Visualizzata nel modulo di pagamento sotto il nome dell'applicazione. Campo opzionale. Puoi lasciarlo vuoto se non vuoi che venga visualizzata alcuna descrizione.
- Rispondi - informazioni aggiuntive che verranno inviate all'utente via email al termine del pagamento. Il testo di risposta è aggiunto alla fine dell'email dopo la risposta standard.
Devi aggiungere almeno una lingua per salvare e procedere alla pagina successiva.
La lingua visualizzata nel modulo di pagamento è determinata automaticamente in base alle preferenze dell'utente specificate nelle impostazioni del browser. Puoi salvare la lingua dell'applicazione per l'applicazione stessa.
Inizia a digitare o a cambiare i valori e compare il pulsante Salva. Il pulsante Salva ti permette di salvare le modifiche senza passare alla pagina successiva. Il pulsante Avanti salva le modifiche e passa alla pagina successiva. Puoi sempre tornare indietro per apportare modifiche in seguito.
Nell'intestazione della pagina sono disponibili solo le pagine delle applicazioni salvate per la navigazione. Puoi fare clic su Avanti o andare alla sezione nell'intestazione della pagina.
Prezzo
La pagina contiene un elenco di prezzi e campi correlati al pagamento:
- Periodo di prova - durata del periodo di prova.
- Unità di tempo - l'unità di tempo del periodo di prova. Ad esempio, se si specificano 7 giorni, significa che dopo 7 giorni dalla prima chiamata API dell'applicazione restituirà una risposta che il periodo di prova è scaduto. Viene salvato il tempo della prima chiamata del dispositivo.
- Metodo di calcolo del prezzo - Il metodo di calcolo del prezzo dall'elenco:
- Calcolo del prezzo in base al periodo - Nel modulo di pagamento, l'utente specifica il periodo di attivazione del codice e il prezzo è calcolato automaticamente secondo la tabella sottostante. L'utente riceve un codice di sblocco generato automaticamente nella email di risposta.
- Calcolo del termine in base al prezzo - Nel modulo di pagamento, l'utente seleziona un prezzo dall'elenco o inserisce il proprio valore, e il periodo viene calcolato automaticamente secondo la tabella sottostante. L'utente riceve un codice generato automaticamente nel messaggio di risposta.
- Codice permanente - Nel modulo di pagamento, l'utente seleziona un prezzo dall'elenco o inserisce il proprio valore. Dopo il pagamento, ricevono un codice dall'elenco sottostante, corrispondente al prezzo selezionato, nella email di risposta.
- Donazione - Nel modulo di pagamento, l'utente seleziona un prezzo dall'elenco o inserisce il proprio valore. Per le applicazioni di tipo Donazione, non viene generato un codice di sblocco.
Il prezzo è impostato in dollari statunitensi. Il prezzo minimo è di 1 dollaro statunitense.
Inizia a digitare o a cambiare i valori e compare il pulsante Salva. Il pulsante Salva ti permette di salvare le modifiche senza passare alla pagina successiva. Il pulsante Avanti salva le modifiche e passa alla pagina successiva. Puoi sempre tornare indietro per apportare modifiche in seguito.
Nell'intestazione della pagina sono disponibili solo le pagine delle applicazioni salvate per la navigazione. Puoi fare clic su Avanti o andare alla sezione nell'intestazione della pagina.
Anteprima
Questa pagina imposta i valori:
- Lunghezza del codice - lunghezza del codice generato, se applicabile.
- Set di caratteri del codice - insieme di caratteri da cui è generato il codice:
- Codice numerico - il codice è generato utilizzando solo le cifre da 0 a 9. Possono essere inclusi zeri iniziali nel codice. Gli zeri iniziali sono significativi durante la verifica del codice.
- Codice alfanumerico - il codice è generato utilizzando i caratteri 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. Il codice è generato e inviato all'utente utilizzando caratteri maiuscoli. Il case dei caratteri non è importante durante la verifica del codice.
- Collegamento per controllare il codice - un esempio di link da utilizzare per la verifica del codice.
- Collegamento per pagare - link di pagamento. È possibile copiare il link e incollarlo nella descrizione dell'applicazione sul sito web dove l'applicazione è pubblicata. Parametri da passare:
- app - l'identificatore unico dell'applicazione. Parametro obbligatorio.
- amount - l'importo che verrà specificato nel campo prezzo durante l'acquisto. Il prezzo predefinito viene ignorato. Tuttavia, l'importo non può essere inferiore al prezzo minimo e non può essere inferiore al prezzo minimo impostato per l'applicazione. Parametro opzionale.
Per iniziare ad accettare pagamenti, è necessario attivare l'applicazione con il pulsante Avvia. Prima di attivare l'applicazione, assicurati che tutti i dati inseriti siano corretti. Le chiavi generate dall'applicazione non possono essere cambiate.
Verifica del codice
Il controllo del codice di sblocco dell'applicazione avviene in 3 fasi:
- Scrittura e invio di una richiesta di verifica del codice
- Controlli sul lato API
- Ricezione e elaborazione della risposta dell'API
Invio di una richiesta
Per verificare il codice, l'utente della tua applicazione deve inserirlo nel campo nelle impostazioni dell'applicazione.
<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>
Quindi è necessario inviare una richiesta al server API Pay-to-use:
function onTemporalEvent() as Void {
var ds = System.getDeviceSettings();
return Toybox.Communications.makeWebRequest(
"https://api.pay-to-use.com", // URL API
{
"device" => ds.uniqueIdentifier, // identificatore univoco del dispositivo
"app" => "6", // ID della tua Applicazione
"model" => ds.partNumber, // device part number
"code" => Application.Properties.getValue("UnlockCode") // valore del codice di sblocco nella tua applicazione
},
{
:method => Communications.HTTP_REQUEST_METHOD_POST,
:headers => { "Content-Type" => Communications.REQUEST_CONTENT_TYPE_JSON },
:responseType => Communications.HTTP_RESPONSE_CONTENT_TYPE_JSON
},
method(:onReceive)
);
}
Parametri della richiesta API:
- url - https://api.pay-to-use.com. Using HTTPS is mandatory.
- Corpo della richiesta (i valori passati). Un dizionario di chiavi e valori:
- device - identificatore unico del dispositivo.
- app - identificatore unico della tua applicazione.
- model - device model identifier. Optional parameter. Data is used to display statistics for new devices.
- code - codice di sblocco inserito dall'utente nelle impostazioni della tua applicazione.
- Opzioni di richiesta:
- :method - l'API supporta i metodi di richiesta GET e POST.
- :headers - per il metodo POST, i parametri devono essere passati nel formato JSON.
- :responseType - la risposta è restituita in formato JSON.
- responseCallback - un link al metodo di callback, che dovrebbe accettare due argomenti:
- responseCode - il codice di intestazione della risposta del server.
- data - il contenuto se la richiesta è stata completata con successo, altrimenti nullo.
Controlli sul lato API
Se non vengono passati parametri all'API, l'API restituisce un'intestazione HTTP/1.1 404 Not Found.
Se almeno un parametro viene passato all'API, l'API restituisce l'intestazione HTTP/1.1 200 OK.
La risposta del server consiste in:
- response - codice di risposta
- msg - descrizione testuale della risposta
- expires - timestamp UNIXTIME (se applicabile)
Viene eseguito un controllo per garantire che l'identificatore dell'applicazione passato sia corretto. L'applicazione deve essere nello stato Rilasciato al momento del pagamento. In caso di errore, viene restituito il codice di risposta 301.
Se viene trasmesso un ID dispositivo unico, viene cercato e memorizzato l'ID dispositivo. Se si verificano errori durante il controllo o il salvataggio, viene restituito il codice di errore 402. Se viene trovato un codice di ritorno del genere, scrivere immediatamente a supporto su info@pay-to-use.com
Se il codice viene passato, vengono eseguiti i seguenti passaggi per le applicazioni con i metodi di calcolo Calcolo del prezzo in base al periodo e Calcolo del termine in base al prezzo:
- Se viene trasmesso un codice vuoto, viene staccato dall'identificatore unico del dispositivo definito nei passaggi precedenti.
- Se viene trasmesso un codice non vuoto e non è attivato, il codice viene attivato a seconda delle condizioni del prezzo specificate al momento dell'acquisto del codice, indipendentemente dalla data di attivazione.
- Se non viene trasmesso alcun codice o se il codice trasmesso non viene trovato, viene restituito il codice di errore 201.
- Il codice attivato viene controllato rispetto al dispositivo e, se durante l'attivazione è stato trasmesso un identificatore unico del dispositivo diverso da quello memorizzato, viene restituito il codice di errore 202.
- Se il codice trasmesso non ha una data di scadenza e tutti i controlli precedenti sono stati superati, viene restituito il codice 101.
- Se il codice è a tempo limitato, viene eseguito un controllo. Se la chiave non è scaduta, viene restituito il codice 101. Se il codice è scaduto, viene restituito il codice di errore 203.
- Questo tipo di applicazione richiede che il codice sia vincolato al dispositivo. Se l'ID dispositivo unico non è stato trasmesso, viene restituito il codice di errore 304.
Per un'applicazione con un metodo di calcolo Codice permanente, viene verificata solo la disponibilità del codice al momento dell'acquisto. Se viene trovato un codice, viene restituito il codice 101. Se non viene trovato alcun codice, viene restituito il codice di errore 201.
Per un'applicazione con il metodo di calcolo Donazione, il codice non viene verificato. Il codice 101 viene sempre restituito.
Se i controlli precedenti non sono stati superati, viene verificato il periodo di prova. Se è trascorso più tempo dal primo contatto del dispositivo rispetto alle impostazioni correnti dell'applicazione, viene restituito il codice di errore 204. Se il periodo di prova non è ancora scaduto, viene restituito il codice di errore 102.
Se viene trasmesso solo l'ID dell'applicazione e non vengono trasmessi né il codice di sblocco né l'ID dispositivo unico, viene restituito il codice di errore 303.
Se la risposta restituita è 500, è necessario scrivere al supporto su info@pay-to-use.com
Di seguito è riportata una tabella di tutti i codici restituiti:
Risposta | Messaggio |
---|---|
101 |
Metodi di calcolo Calcolo del prezzo in base al periodo e Calcolo del termine in base al prezzo:
|
| |
Codice permanente:
| |
Donazione:
| |
102 |
|
201 |
|
202 |
|
203 |
|
204 |
|
301 |
|
302 |
|
303 |
|
304 |
|
401 |
|
402 |
|
500 |
|
Verifica della risposta
Quindi è necessario verificare la risposta dal server API Pay-to-use:
function onReceive(responseHeader, data) as Void {
if (responseHeader == 200) { Toybox.Background.exit(data); }
}
È possibile controllare tutte le intestazioni e i codici, è possibile visualizzare i propri messaggi per la comodità dell'utente, ma nella forma più semplice la verifica avrà un aspetto simile a questo:
function onBackgroundData(data) as Void {
if (data.hasKey("response")) {
if (data.hasKey("msg")) {
// Puoi mostrare data["msg"] nel campo delle proprietà con il nome "UnlockResult".
Application.Properties.setValue("UnlockResult", data["msg"]);
}
if (data["response"].toString().substring(0, 1).equals("2")) {
// Verifica del codice fallita
// Le funzioni a pagamento NON sono disponibili
...
} else {
// La verifica del codice è stata completata con successo o l'errore è dovuto a un problema tuo o dell'API
// Funzioni a pagamento sono disponibili
...
}
}
}
Sblocca codici
Quando si accede a questa sezione, si aprirà un elenco di codici di sblocco.
Elenco dei codici di sblocco
È possibile cercare nel campo dell'email o del codice nella barra di ricerca in alto. I codici trovati saranno visualizzati nell'elenco. È possibile utilizzare tutto o parte dell'email o del codice come criterio di ricerca. Le corrispondenze saranno evidenziate in colore. Ricerca e filtri funzionano simultaneamente e non si escludono a vicenda.
L'ultimo filtro utilizzato viene memorizzato per l'utente. Quindi, la prossima volta che si accede alla pagina, l'ultimo filtro utilizzato verrà applicato automaticamente. Sono disponibili filtri per l'elenco dei codici di sblocco:
- Colonne - seleziona le colonne della tabella da visualizzare nell'elenco dei codici di sblocco.
- Applicazione - mostra solo i codici di sblocco per le applicazioni selezionate.
- Stato - mostra solo i codici di sblocco che si trovano nello stato selezionato.
Elenco delle colonne nella tabella dei codici di sblocco:
- Applicazione - la tua applicazione. Puoi seguire il link per modificarne le impostazioni.
- Codice - il codice di sblocco.
- Email - l'indirizzo email associato alla registrazione del codice di sblocco. Questo indirizzo viene utilizzato per cercare i codici di sblocco dei clienti nella sezione I miei acquisti del sito web. Questa sezione è accessibile agli utenti.
- Termine - il periodo di validità del codice inviato (specificato nelle impostazioni dell'applicazione). Un periodo di validità è impostato per il codice, corrispondente alle condizioni delle impostazioni dell'applicazione al momento della sua creazione.
- Stato - lo stato del codice di sblocco. (vedi Stato del codice di sblocco)
- Creato - la data di creazione del codice di sblocco.
- Attivato - la data di attivazione del codice. Viene impostata nel momento in cui questo particolare dispositivo dell'utente contatta per la prima volta il servizio API PayToUse e invia questo codice. Lo stato del codice cambia in Attivato. Solo un codice inattivo può essere attivato. Se un codice attivo viene inviato da un dispositivo con un ID diverso, l'API restituisce l'errore 202. Solo un dispositivo può essere collegato a un singolo codice.
- Scadenza - la data di scadenza dell'attivazione del codice. Impostata per i codici che hanno un periodo di validità limitato all'attivazione del codice. Per i codici con data di scadenza illimitata, il campo rimane vuoto.
- Eliminato - la data di eliminazione del codice. Alla cancellazione, lo stato del codice viene impostato su Sconosciuto.
- Pagamento n. - numero di sequenza unico del pagamento. Puoi fare clic sul link per visualizzare i dettagli del pagamento.
- Pulsanti per le azioni con i codici di sblocco. Ad esempio, cancellazione.
Stato del codice di sblocco
Nel corso del suo ciclo di vita, il codice di sblocco passa attraverso diversi stati, che possono essere monitorati dallo stato del codice.
Stato | Descrizione |
---|---|
Disponibile | Lo stato viene assegnato a un codice di sblocco per il quale non sono state eseguite azioni o se il collegamento del dispositivo è stato ripristinato per il codice. |
Attivato | Lo stato è impostato per un codice con una data di attivazione impostata. La data di attivazione viene impostata quando il dispositivo accede con successo al servizio API PayToUse per la prima volta. Inoltre, durante l'attivazione del codice, viene impostata la data di scadenza del codice. |
Scaduto | Lo stato è impostato per un codice scaduto. Il distacco del codice dal dispositivo non ripristina la data di scadenza del codice. Il controllo del codice con questo stato restituirà l'errore 203. (vedi Controlli sul lato API) |
Sconosciuto | Lo stato è impostato quando il codice viene eliminato. Il controllo del codice con questo stato restituirà l'errore 201. (vedi Controlli sul lato API) |
Pagamenti
Quando accedi a questa sezione, si aprirà un elenco dei pagamenti degli utenti.
I seguenti sistemi di pagamento sono utilizzati per ricevere pagamenti:
Dopo le commissioni del sistema di pagamento, PayToUse addebiterà una commissione del 13%. Stiamo costantemente lavorando per ridurre le commissioni.
Se insorgono controversie o rimborsi nel sistema di pagamento, le penali del sistema di pagamento sono riassegnate allo sviluppatore. Pertanto, non dovresti permettere che si verifichino tali situazioni. Le commissioni di PayToUse non vengono addebitate in situazioni controverse.
Elenco dei pagamenti
È possibile cercare nel campo email o nel codice inviato nella barra di ricerca in alto. I pagamenti trovati saranno visualizzati nell'elenco. Puoi utilizzare tutto o parte dell'email o del codice inviato come criterio di ricerca. Le corrispondenze saranno evidenziate a colori. La ricerca e i filtri funzionano simultaneamente e non si escludono a vicenda.
Per l'utente viene memorizzato l'ultimo filtro utilizzato. Quindi, la prossima volta che si accede alla pagina, l'ultimo filtro utilizzato verrà applicato automaticamente. Sono disponibili filtri per l'elenco dei pagamenti:
- Colonne - seleziona le colonne della tabella da visualizzare nell'elenco dei pagamenti.
- Applicazione - visualizzazione dei pagamenti solo per le applicazioni selezionate.
- Sistema - visualizzazione dei pagamenti solo dai sistemi di pagamento selezionati.
- Stato - visualizzazione dei pagamenti solo con stati selezionati.
L'elenco delle colonne nella tabella dei pagamenti:
- Applicazione - la tua applicazione. Puoi seguire il link per modificarne le impostazioni.
- # - numero di sequenza univoco del pagamento. Viene assegnato automaticamente al pagamento quando l'utente passa dal modulo di pagamento alla pagina di pagamento nel sistema di pagamento. Puoi fare clic sul collegamento per visualizzare i dettagli del pagamento.
- Commenti - messaggio dall'utente inserito nel modulo di pagamento.
- Sistema - il sistema di pagamento selezionato dall'utente.
- Stato - lo stato del pagamento. (vedi Stato del pagamento)
- Email - email dell'utente indicata nel modulo di pagamento.
- Termine - periodo di validità del codice inviato (specificato nelle impostazioni dell'applicazione).
- Creato - data di creazione del pagamento.
- Importo della fattura - l'importo del pagamento addebitato all'utente. Specificato nel modulo di pagamento in base alle impostazioni dell'applicazione.
- Data del pagamento - data del pagamento.
- Importo del pagamento - l'importo del pagamento confermato dal sistema di pagamento.
- Codice inviato - codice inviato all'utente.
- Importo disponibile - importo di prelievo disponibile.
- Importo del pagamento - l'importo dei fondi prelevati per il pagamento.
Non è possibile apportare modifiche al pagamento.
Stato del pagamento
Durante il suo ciclo di vita, il pagamento passa attraverso diversi stati, che possono essere monitorati dallo stato del pagamento.
Stato | Descrizione |
---|---|
Incompleto | Lo stato è assegnato ai pagamenti per i quali non sono state eseguite azioni. Il pagamento viene creato non appena l'utente passa dal modulo di pagamento al modulo del sistema di pagamento. Al pagamento viene assegnato un numero seriale unico, così come gli attributi di base del pagamento: importo, sistema di pagamento, data. |
Completato | Lo stato è assegnato ai pagamenti che hanno ricevuto una risposta positiva dal sistema di pagamento. Il passo successivo è inviare un'email all'utente contenente il codice generato o altre informazioni a seconda delle impostazioni dell'applicazione. Se il pagamento rimane in questo stato, è necessario prestare particolare attenzione, poiché le azioni successive non sono state eseguite. |
Errore | Lo stato è assegnato ai pagamenti per i quali viene ricevuta una risposta negativa dal sistema di pagamento. Le azioni successive non vengono eseguite. È necessario prestare particolare attenzione a tali pagamenti, poiché lo stato sul lato del sistema di pagamento può essere elaborato con un ritardo. |
In attesa | Lo stato è assegnato ai pagamenti per i quali viene ricevuta una risposta positiva dal sistema di pagamento e tutti i passaggi successivi sono stati completati con successo. Il prelievo per i pagamenti con questo stato non è disponibile. I pagamenti passano automaticamente allo stato successivo in 7 giorni. |
Disponibile | Il prelievo è disponibile per i pagamenti in questo stato. |
Invio | Lo stato è attivato per i pagamenti inclusi nel prossimo prelievo. Se il prelievo viene annullato o respinto, lo stato del pagamento torna a Disponibile. |
Inviato | Lo stato è attivato per i pagamenti per i quali è stato effettuato il prelievo. È in attesa di conferma del ricevimento dei fondi. |
Completato | Lo stato è attivato per i pagamenti con prelievi completati con successo. Puoi impostare manualmente lo stato confermando il prelievo nella sezione corrispondente. Lo stato viene anche modificato automaticamente 14 giorni dopo il prelievo del pagamento. |
Rimborsato | I pagamenti per i quali è stata emessa una restituzione sono trasferiti a questo stato. Alla emissione di un rimborso, viene addebitata una commissione di rimborso. La commissione viene detratta dall'importo del prelievo. |
Prelievi
Quando accedi a questa sezione, si aprirà un elenco dei tuoi prelievi.
Elenco dei prelievi
L'ultimo filtro utilizzato viene memorizzato per l'utente. Quindi, la prossima volta che accedi alla pagina, il filtro utilizzato verrà applicato automaticamente. Sono disponibili filtri per l'elenco dei prelievi:
- Colonne - mostra solo le colonne selezionate nell'elenco dei prelievi.
- Stato - mostra solo i prelievi che sono nello stato selezionato.
L'elenco delle colonne nella tabella dei prelievi:
- # - numero di sequenza unico del prelievo. Viene assegnato automaticamente al prelievo quando viene salvato. Puoi fare clic sul link per visualizzare i dettagli del prelievo.
- Stato - lo stato del prelievo. (vedi Stato del prelievo)
- Creato - la data della richiesta di prelievo.
- Importo - l'importo del prelievo.
- Prelievo - la data in cui è stato inviato il prelievo.
- Pulsanti per le azioni con i prelievi. Ad esempio, conferma.
Puoi confermare il prelievo quando è nello stato Inviato.
Stato del prelievo
Nel corso del suo ciclo di vita, il prelievo passa attraverso diversi stati, che possono essere monitorati dallo stato del prelievo.
Stato | Descrizione |
---|---|
In attesa | Lo stato viene assegnato ai prelievi al momento della creazione, per i quali non sono state eseguite azioni. |
Annullato | Lo stato viene assegnato ai prelievi annullati. Le cancellazioni possono essere effettuate per vari motivi. Ad esempio, il metodo di ricezione dei fondi non è specificato. Tutti i pagamenti da questo prelievo vanno allo stato Disponibile e sono disponibili per il prelievo nuovamente. |
Inviato | Lo stato è impostato per il prelievo dei fondi quando viene inviato. |
Completato | Lo stato è impostato per il prelievo manuale quando viene ricevuto dal sviluppatore per confermare il ricevimento. Oppure automaticamente dopo 14 giorni dall'invio. |
Rifiutato | Lo stato è impostato per il prelievo quando la banca o il sistema di pagamento restituiscono i fondi dopo l'invio. Tutti i pagamenti da questo prelievo passano allo stato Disponibile e sono disponibili per il prelievo nuovamente. |
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
- Descrizione: 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
- Descrizione: 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)
- Descrizione: 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 della tua Applicazione
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
Внимание! Отсутствует для MET Norway - pressure: integer — atmospheric pressure in hPa
- humidity: integer — humidity in %
- precipitation: integer — precipitation probability in %
Внимание! Отсутствует для MET Norway - 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
For a detailed description of Garmin SDK weather functions and constants, refer to this link. You may store values obtained from the API or results from Garmin SDK weather functions, depending on the selected weather provider, to ensure consistency in displaying values on the screen.
ID | Descrizione | Day | Night |
---|---|---|---|
0 | Cancella |
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
Check out the icon set for OpenWeatherMap as an example here.
ID | Descrizione | 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 | Cancella | ||
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 | Descrizione | 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 | Cancella | ||
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
Check out the icon set for MET Weather as an example here.
ID | Descrizione | 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 |