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:

  1. Scrittura e invio di una richiesta di verifica del codice
  2. Controlli sul lato API
  3. 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.

/resources/settings/properties.xml
<properties>
	<property id="UnlockCode" type="string"></property>
	<property id="UnlockResult" type="string">Checking...</property>
	...
<properties>
/resources/settings/settings.xml
<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:

/source/background.mc
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:
  • Attivo per sempre
{
	"response":101,
	"msg":"Active forever",
	"expires":0
}
  • Attivo fino al [data]
{
	"response":101,
	"msg":"Active until 18 Aug 2025",
	"expires":1755555200
}
Codice permanente:
{
	"response":101,
	"msg":"The code check was successfull",
	"expires":0
}
Donazione:
{
	"response":101,
	"msg":"No code check required",
	"expires":0
}
102
{
	"response":102,
	"msg":"Trial period expires in 17h 43m",
	"expires":1746287782
}
201
{
	"response":201,
	"msg":"Code not found"
}
202
{
	"response":202,
	"msg":"Used on the another device"
}
203
{
	"response":203,
	"msg":"Expiration: 15 Mar 2025",
	"expires":1742076800
}
204
{
	"response":204,
	"msg":"Trial period expired"
}
301
{
	"response":301,
	"msg":"Application not found"
}
302
{
	"response":302,
	"msg":"Term undefined"
}
303
{
	"response":303,
	"msg":"Not enought arguments"
}
304
{
	"response":304,
	"msg":"Device is nesessary"
}
401
{
	"response":401,
	"msg":"Error code saving"
}
402
{
	"response":402,
	"msg":"Error device saving"
}
500
{
	"response":500,
	"msg":"Unknown error"
}
Verifica della risposta

Quindi è necessario verificare la risposta dal server API Pay-to-use:

/source/background.mc
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:

/source/app.mc
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:

Sistema Descrizione
Il costo del sistema di pagamento è del 2.9% + 0.30 USD per ogni transazione con carta di credito riuscita. Sono supportate carte, portafogli e altre opzioni di pagamento. Il costo dipende dal metodo di pagamento e può differire dal costo delle transazioni con carta di credito. Trovi informazioni dettagliate sulle commissioni addebitate dal sistema di pagamento sul sito web del sistema di pagamento.
Il costo del sistema di pagamento è del 3.4% + 0.30 USD per ogni pagamento riuscito. Sono supportate carte e PayPal. Trovi informazioni dettagliate sulle commissioni addebitate dal sistema di pagamento sul sito web del sistema di pagamento.
Il costo del sistema di pagamento è del 3.9% per ogni pagamento riuscito. Sono supportate carte e altre opzioni di pagamento. Il costo dipende dal metodo di pagamento. Trovi informazioni dettagliate sulle commissioni addebitate dal sistema di pagamento sul sito web del sistema di pagamento.

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:

  1. Checks the activation status of an unlock code and activates it if necessary.
  2. Retrieves blood glucose data from the NightScout app.
  3. 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

/source/background.mc
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

https://api.p2u.io
{
	"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