Manuel

Introduction

La barre latérale gauche contient des liens vers les sections correspondantes :

  • Nom d'utilisateur - liens vers le profil personnel.
  • Tableau de bord - voir l'état actuel sous forme de graphiques et de diagrammes.
  • Applications - gestion des applications.
  • Codes de déverrouillage - codes de déverrouillage générés automatiquement ou téléchargés par vous.
  • Paiements - historique des paiements entrants des utilisateurs.
  • Manuel - le manuel utilisateur actuel.

Tableau de bord

Vous pouvez définir des filtres communs pour tous les widgets du tableau de bord :

  • Devise - la devise dans laquelle les montants entrants et sortants seront convertis sur le tableau de bord.
  • Période - est la période pendant laquelle les données sont affichées dans les graphiques et les tableaux sur le tableau de bord. Il détermine l'intervalle pendant lequel les informations et les statistiques sur les paiements, les applications et d'autres paramètres sont analysés et affichés.

Solde

Le solde comprend les montants suivants :

  • Montant brut - le montant total de tous les paiements des utilisateurs pour la période sélectionnée, à l'exclusion des frais des systèmes de paiement et de PayToUse.
  • Montant net - le montant total de tous les paiements pour la période sélectionnée moins les frais des systèmes de paiement et de PayToUse.
  • Montant en attente - le montant total de tous les paiements pour la période spécifiée moins les frais des systèmes de paiement et de PayToUse en attente de retrait sur le compte du développeur. Le paiement devient disponible pour retrait 7 jours après le paiement.
  • Montant disponible - le montant total de tous les paiements pour tout le temps moins les frais des systèmes de paiement et de PayToUse, disponible pour retrait sur le compte du développeur.

Paiements

Le widget Paiements comprend un tableau des paiements regroupés par application pour la période sélectionnée.

Champs de tableau :

  • Application - application. Seules les applications pour lesquelles des paiements ont été effectués pendant la période sélectionnée sont affichées dans le tableau.
  • Paiements - nombre de paiements.
  • Montant brut - le montant total de tous les paiements des utilisateurs pour la période sélectionnée, à l'exclusion des frais des systèmes de paiement et de PayToUse.
  • Montant net - le montant total de tous les paiements pour la période sélectionnée moins les frais des systèmes de paiement et de PayToUse.

Le graphique montre la dynamique des valeurs Montant net et Montant brut par jour.

Nouveaux utilisateurs

Le graphique des nouveaux utilisateurs montre deux valeurs en dynamique par jour :

  • Nouveaux utilisateurs - le nombre de nouveaux appels API. Les accès à l'API ne sont enregistrés que si le paramètre device - un identifiant de dispositif unique - est passé lors de l'envoi d'une requête à l'API. Ce paramètre doit être vraiment unique pour le dispositif. (voir Envoi d'une demande)
  • Paiements - le nombre de paiements pour la même période par jour.

Conversion

La métrique Conversion fait référence à l'évaluation de l'efficacité de vos ventes pour convertir Nouveaux utilisateurs en Paiements.

Le graphique montre le rapport entre le nombre de Paiements et le nombre de Nouveaux utilisateurs, en pourcentage.

Applications

Lorsque vous accédez à cette section, une liste de vos applications s'ouvre.

La liste des colonnes dans le tableau des applications :

  • # - identifiant d'application unique. Utilisé lors de la vérification du code d'application ou de l'affichage du formulaire de paiement.
  • Nom - nom de l'application. Le nom n'est affiché que pour vous dans les rapports et le tableau de bord. En cliquant sur le nom de l'application, la page d'édition de l'application s'ouvre.
  • Statut - l'état actuel de l'application. Il peut être :
    • Créé - L'application vient d'être créée, elle n'est pas encore configurée.
    • Publié - l'application est en cours d'exécution.
  • Créé - la date de création de l'application.
  • Boutons de contrôle supplémentaires :
    • Supprimer - pour supprimer l'application de la liste.

Création ou modification d'une application

Pour accepter les paiements, vous devez remplir de manière cohérente toutes les données d'application nécessaires et activer l'application.

Le bouton pour créer une nouvelle application se trouve dans la barre de titre de la liste des applications.

Application

Champs disponibles lors de la création d'une application :

  • Nom - le nom de l'application que vous seul pouvez voir dans les rapports ou sur le tableau de bord. Le nom sera affiché dans l'en-tête de page de l'application enregistrée. Tant que l'application n'est pas enregistrée, "Nouvelle application" est affiché à la place du nom. Le champ est obligatoire à saisir.
  • Email de contact - l'adresse e-mail à laquelle les copies des messages envoyés aux utilisateurs seront envoyées. Cette adresse est également spécifiée dans le champ "Répondre à" et est utilisée pour répondre à l'utilisateur au courrier électronique reçu avec le code. Le champ est obligatoire à saisir. Par défaut, le champ est pré-rempli avec la valeur du profil du développeur. La valeur peut être modifiée pour une valeur différente.
  • Type d'application - type d'application. Si vous sélectionnez un type d'application de groupe, une liste d'applications sera affichée pour le regroupement. Seules les applications individuelles pour lesquelles des codes de déverrouillage sont générés sont disponibles dans la liste.
  • Autoriser les retours sur le paiement - ajoute un champ au formulaire de paiement pour que les utilisateurs saisissent un texte libre. Les retours sont ajoutés à la copie de l'e-mail du développeur. Les retours peuvent également être consultés dans les détails du paiement.

Commencez à saisir les valeurs modifiées et le bouton Enregistrer apparaît. Le bouton Enregistrer vous permet de sauvegarder vos modifications sans passer à la page suivante. Le bouton Suivant sauvegarde les modifications et passe à la page suivante. Vous pouvez toujours revenir pour apporter des modifications ultérieurement.

Dans l'en-tête de page, seules les pages d'application enregistrées sont disponibles pour la navigation. Vous pouvez cliquer sur Suivant ou aller à la section dans l'en-tête de page.

Description

Sélectionnez une langue dans la liste et cliquez sur Ajouter.

Un onglet avec les textes d'application localisés pour la langue sélectionnée apparaîtra.

Langues disponibles :

  • Allemand
  • Anglais
  • Français
  • Espagnol
  • Russe
  • Chinois simplifié

Les champs de la description sont utilisés pour afficher des informations sur le formulaire de paiement et dans le message de réponse à l'utilisateur :

  • Nom - le nom de l'application pour la langue sélectionnée. Il est affiché sur le formulaire de paiement et dans le courriel de notification de paiement. Par défaut, lors de l'ajout d'une langue, le nom de l'application est inséré. Vous pouvez définir un nom différent pour chaque langue. Champ obligatoire.
  • Description - une brève description de l'application. Affichée sur le formulaire de paiement sous le nom de l'application. Champ optionnel. Vous pouvez le laisser vide si vous ne souhaitez pas afficher de description.
  • Réponse - des informations supplémentaires qui seront envoyées à l'utilisateur par courriel lors d'un paiement réussi. Le texte de réponse est ajouté à la fin du courriel après la réponse standard.

Au moins une langue doit être ajoutée pour enregistrer et passer à la page suivante.

La langue affichée dans le formulaire de paiement est automatiquement déterminée en fonction des préférences de l'utilisateur spécifiées dans les paramètres de son navigateur. Vous pouvez enregistrer la langue de l'application pour l'application.

Commencez à taper ou à modifier les valeurs et le bouton Enregistrer apparaît. Le bouton Enregistrer vous permet d'enregistrer vos modifications sans passer à la page suivante. Le bouton Suivant enregistre les modifications et passe à la page suivante. Vous pouvez toujours revenir pour apporter des modifications ultérieurement.

Dans l'en-tête de page, seules les pages d'application enregistrées sont disponibles pour la navigation. Vous pouvez cliquer sur Suivant ou aller à la section dans l'en-tête de page.

Prix

La page contient une liste de prix et de champs liés au paiement :

  • Période d'essai - la durée de la période d'essai.
  • Unité de temps - l'unité de temps de la période d'essai. Par exemple, si vous spécifiez 7 jours, cela signifie qu'après 7 jours après le premier appel API de l'application, elle renverra une réponse indiquant que la période d'essai a expiré. L'heure du premier appel de l'appareil est enregistrée.
  • Méthode de calcul du prix - La méthode de calcul du prix dans la liste :
    • Calcul du prix en fonction du terme - Dans le formulaire de paiement, l'utilisateur spécifie la période d'activation du code, et le prix est automatiquement calculé selon le tableau ci-dessous. L'utilisateur reçoit un code de déverrouillage généré automatiquement dans l'e-mail de réponse.
    • Calcul du terme en fonction du prix - Dans le formulaire de paiement, l'utilisateur sélectionne un prix dans la liste ou saisit sa propre valeur de prix, et la période est calculée automatiquement selon le tableau ci-dessous. L'utilisateur reçoit un code généré automatiquement dans le message de réponse.
    • Code permanent - Dans le formulaire de paiement, l'utilisateur sélectionne un prix dans la liste ou saisit sa propre valeur de prix. Après paiement, il reçoit un code de la liste ci-dessous, correspondant au prix sélectionné, dans l'e-mail de réponse.
    • Donation - Dans le formulaire de paiement, l'utilisateur sélectionne un prix dans la liste ou saisit sa propre valeur de prix. Pour les applications de type Donation, un code de déverrouillage n'est pas généré.

Le prix est fixé en dollars américains. Le prix minimum est de 1 dollar américain.

Commencez à taper ou à modifier les valeurs et le bouton Enregistrer apparaît. Le bouton Enregistrer vous permet d'enregistrer vos modifications sans passer à la page suivante. Le bouton Suivant enregistre les modifications et passe à la page suivante. Vous pouvez toujours revenir pour apporter des modifications ultérieurement.

Dans l'en-tête de page, seules les pages d'application enregistrées sont disponibles pour la navigation. Vous pouvez cliquer sur Suivant ou aller à la section dans l'en-tête de page.

Aperçu

Cette page définit les valeurs :

  • Longueur du code - la longueur du code généré, le cas échéant.
  • Ensemble de caractères du code - l'ensemble de caractères à partir duquel le code est généré :
    • Code numérique - le code est généré en utilisant uniquement les chiffres 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Les zéros initiaux peuvent être inclus dans le code. Les zéros initiaux sont significatifs lors de la vérification du code.
    • Code alphanumérique - le code est généré en utilisant les caractères 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. Le code est généré et envoyé à l'utilisateur en utilisant des caractères majuscules. Le cas des caractères n'a pas d'importance lors de la vérification du code.
  • Lien pour vérifier le code - un exemple de lien à utiliser pour la vérification du code.
  • Lien pour payer - lien de paiement. Vous pouvez copier le lien et le coller dans la description de l'application sur le site web où l'application est publiée. Paramètres à passer :
    • app - l'identifiant unique de l'application. Paramètre requis.
    • amount - le montant qui sera spécifié dans le champ de prix lors de l'achat. Le prix par défaut est ignoré. Cependant, le montant ne peut pas être inférieur à le prix minimum et ne peut pas être inférieur au prix minimum défini pour le application. Paramètre facultatif.

Pour commencer à accepter les paiements, vous devez activer l'application avec le bouton Lancer. Avant d'activer l'application, assurez-vous que toutes les données saisies sont correctes. Les clés générées par l'application ne peuvent pas être modifiées.

Vérification du code

La vérification du code de déverrouillage de l'application se fait en 3 étapes :

  1. Écriture et envoi d'une demande de vérification du code
  2. Vérifications côté API
  3. Réception et traitement de la réponse de l'API
Envoi d'une demande

Pour vérifier le code, l'utilisateur de votre application doit le saisir dans le champ des paramètres de l'application.

/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>

Ensuite, vous devez envoyer une demande au serveur 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 de l'API
		{
			"device" => ds.uniqueIdentifier, // identifiant unique du périphérique
			"app" => "6", // l'identifiant de votre application
			"model" => ds.partNumber, // device part number
			"code" => Application.Properties.getValue("UnlockCode") // valeur du code de déverrouillage dans votre application
		},
		{
			:method => Communications.HTTP_REQUEST_METHOD_POST,
			:headers => { "Content-Type" => Communications.REQUEST_CONTENT_TYPE_JSON },
			:responseType => Communications.HTTP_RESPONSE_CONTENT_TYPE_JSON
		},
		method(:onReceive)
	);
}

Paramètres de la requête API:

  • url - https://api.pay-to-use.com. Using HTTPS is mandatory.
  • Le corps de la requête (les valeurs transmises). Un dictionnaire de clés et de valeurs :
    • device - identifiant unique du périphérique.
    • app - identifiant unique de votre application.
    • model - device model identifier. Optional parameter. Data is used to display statistics for new devices.
    • code - code de déverrouillage saisi par l'utilisateur dans les paramètres de votre application.
  • Options de la requête :
    • :method - l'API prend en charge les méthodes de requête GET et POST.
    • :headers - pour la méthode POST, les paramètres doivent être transmis au format JSON.
    • :responseType - la réponse est renvoyée au format JSON.
  • responseCallback - un lien vers la méthode de rappel, qui devrait accepter deux arguments :
    • responseCode - le code d'en-tête de réponse du serveur.
    • data - le contenu si la requête a réussi, ou null.
Vérifications côté API

Si aucun paramètre n'est transmis à l'API, l'API renvoie un en-tête HTTP/1.1 404 Not Found.

Si au moins un paramètre est transmis à l'API, l'API renvoie l'en-tête HTTP/1.1 200 OK.

La réponse du serveur se compose de :

  • response - code de réponse
  • msg - description textuelle de la réponse
  • expires - horodatage UNIXTIME (si applicable)

Une vérification est effectuée pour s'assurer que l'identifiant de l'application transmis est correct. L'application doit être dans l'état Publié au moment du paiement. En cas d'erreur, le code de réponse 301 est renvoyé.

Si un identifiant de périphérique unique est transmis, l'identifiant de périphérique est recherché et stocké. En cas d'erreurs lors de la vérification ou de l'enregistrement, un code d'erreur 402 est renvoyé. Si un tel code de retour est trouvé, écrivez immédiatement au support à [email protected]

Si le code est transmis, les étapes suivantes sont effectuées pour les applications avec les méthodes de calcul Calcul du prix en fonction du terme et Calcul du terme en fonction du prix :

  • Si un code vide est transmis, il est détaché de l'identifiant de périphérique unique défini dans les étapes précédentes.
  • Si un code non vide est transmis et n'est pas activé, le code est activé en fonction des conditions de prix spécifiées lors de l'achat du code, indépendamment de la date d'activation.
  • Si aucun code n'a été transmis ou si le code transmis n'est pas trouvé, le code d'erreur 201 est renvoyé.
  • Le code activé est vérifié par rapport au périphérique et, si un identifiant de périphérique unique autre que celui stocké a été transmis pendant l'activation, un code d'erreur 202 est renvoyé.
  • Si le code transmis n'a pas de date d'expiration et que tous les contrôles précédents ont été réussis, le code 101 est renvoyé.
  • Si le code est limité dans le temps, une vérification est effectuée. Si la clé n'a pas expiré, le code 101 est renvoyé. Si le code a expiré, le code d'erreur 203 est renvoyé.
  • Cette application nécessite que le code soit lié au périphérique. Si l'ID de périphérique unique n'a pas été transmis, le code d'erreur 304 est renvoyé.

Pour une application avec un Code permanent, seule la disponibilité du code au moment de l'achat est vérifiée. Si un code est trouvé, le code 101 est renvoyé. Si aucun code n'est trouvé, le code d'erreur 201 est renvoyé.

Pour une application avec la méthode de calcul Donation, le code n'est pas vérifié. Le code 101 est toujours renvoyé.

Si les contrôles précédents n'ont pas été passés, la période de test est vérifiée. Si plus de temps s'est écoulé depuis le premier contact du périphérique que les paramètres d'application actuels, le code d'erreur 204 est renvoyé. Si la période d'essai n'a pas encore expiré, le code d'erreur 102 est renvoyé.

Si seul l'ID de l'application est transmis et ni le code de déverrouillage ni l'ID de périphérique unique ne sont transmis, le code d'erreur 303 est renvoyé.

Si la réponse retournée est 500, vous devriez écrire au support à l'adresse [email protected]

Ci-dessous se trouve un tableau de tous les codes retournés :

Renvoyer Message
101 Méthodes de calcul Calcul du prix en fonction du terme et Calcul du terme en fonction du prix :
  • Actif pour toujours
{
	"response":101,
	"msg":"Active forever",
	"expires":0
}
  • Actif jusqu'au [date]
{
	"response":101,
	"msg":"Active until 4 Aug 2025",
	"expires":1754298280
}
Code permanent:
{
	"response":101,
	"msg":"The code check was successfull",
	"expires":0
}
Donation:
{
	"response":101,
	"msg":"No code check required",
	"expires":0
}
102
{
	"response":102,
	"msg":"Trial period expires in 7h 19m",
	"expires":1732206244
}
201
{
	"response":201,
	"msg":"Code not found"
}
202
{
	"response":202,
	"msg":"Used on the another device"
}
203
{
	"response":203,
	"msg":"Expiration: 12 Nov 2024",
	"expires":1731402280
}
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"
}
Vérification de la réponse

Ensuite, vous devez vérifier la réponse du serveur API Pay-to-use :

/source/background.mc
function onReceive(responseHeader, data) as Void {
	if (responseHeader == 200) { Toybox.Background.exit(data); }
}

Vous pouvez vérifier tous les en-têtes et les codes, vous pouvez afficher vos propres messages pour la commodité de l'utilisateur, mais de la manière la plus simple, la vérification ressemblera à ceci :

/source/app.mc
function onBackgroundData(data) as Void {
	if (data.hasKey("response")) {
		if (data.hasKey("msg")) {
			// Vous pouvez afficher data["msg"] dans le champ de propriétés avec le nom "UnlockResult".
			Application.Properties.setValue("UnlockResult", data["msg"]);
		}
		if (data["response"].toString().substring(0, 1).equals("2")) {
			// La vérification du code a échoué
			// Les fonctions payantes ne sont PAS disponibles
			...
		} else {
			// La vérification du code a réussi ou l'erreur est de votre faute ou celle de l'API
			// Les fonctions payantes sont disponibles
			...
		}
	}
}

Codes de déverrouillage

Lorsque vous accédez à cette section, une liste de codes de déverrouillage s'ouvrira.

Liste des codes de déverrouillage

Vous pouvez rechercher le champ d'e-mail ou le code dans la barre de recherche en haut. Les codes trouvés seront affichés dans la liste. Vous pouvez utiliser tout ou partie de l'e-mail ou du code comme critère de recherche. Les correspondances seront surlignées en couleur. La recherche et les filtres fonctionnent simultanément et ne s'excluent pas mutuellement.

Le dernier filtre utilisé est enregistré pour l'utilisateur. Ainsi, la prochaine fois que vous accéderez à la page, le dernier filtre utilisé sera appliqué automatiquement. Les filtres sont disponibles pour la liste des codes de déverrouillage :

  • Colonnes - sélectionnez les colonnes du tableau à afficher dans la liste des codes de déverrouillage.
  • Application - afficher uniquement les codes de déverrouillage pour les applications sélectionnées.
  • Statut - afficher uniquement les codes de déverrouillage qui sont dans les statuts sélectionnés.

La liste des colonnes dans le tableau des codes de déverrouillage :

  • Application - votre application. Vous pouvez suivre le lien pour modifier ses paramètres.
  • Code - le code de déverrouillage.
  • Email - l'adresse e-mail associée à l'enregistrement du code de déverrouillage. Cette adresse est utilisée pour rechercher les codes de déverrouillage client dans la section Mes achats du site Web. Cette section est accessible aux utilisateurs.
  • Terme - la période de validité du code envoyé (spécifiée dans les paramètres de l'application). Une période de validité est définie pour le code, correspondant aux conditions des paramètres de l'application au moment de sa création.
  • Statut - le statut du code de déverrouillage. (voir Statut du code de déverrouillage)
  • Créé - la date de création du code de déverrouillage.
  • Activé - la date d'activation du code. Elle est définie au moment où ce dispositif utilisateur particulier contacte pour la première fois le service d'API PayToUse et soumet ce code. Le statut du code passe à Activé. Seul un code inactif peut être activé. Si un code actif est soumis par un dispositif avec un identifiant différent, l'API renvoie l'erreur 202. Un seul dispositif peut être lié à un seul code.
  • Expiration - la date d'expiration de l'activation du code. Définie pour les codes qui ont une période de validité limitée à l'activation du code. Pour les codes avec une date d'expiration illimitée, la case reste vide.
  • Supprimé - la date de suppression du code. Lors de la suppression, le statut du code est défini sur Inconnu.
  • Paiement # - numéro de séquence unique du paiement. Vous pouvez cliquer sur le lien pour afficher les détails du paiement.
  • Boutons pour les actions sur les codes de déverrouillage. Par exemple, la suppression.

Statut du code de déverrouillage

Pendant son cycle de vie, le code de déverrouillage passe par différents états, qui peuvent être suivis par le statut du code.

Statut Description
Disponible Le statut est attribué à un code de déverrouillage pour lequel aucune action n'a été effectuée ou si le lien du dispositif est réinitialisé pour le code.
Activé Le statut est défini pour un code avec une date d'activation définie. La date d'activation est définie lorsque le dispositif accède avec succès au service API PayToUse pour la première fois. De plus, lors de l'activation du code, la date d'expiration du code est définie.
Expiré Le statut est défini pour un code expiré. Détacher le code du dispositif ne réinitialise pas la date d'expiration du code. Vérifier le code avec ce statut renverra l'erreur 203. (voir Vérifications côté API)
Inconnu Le statut est défini lorsque le code est supprimé. Vérifier le code avec ce statut renverra l'erreur 201. (voir Vérifications côté API)

Paiements

En accédant à cette section, une liste des paiements des utilisateurs s'ouvrira.

Les systèmes de paiement suivants sont utilisés pour recevoir des paiements :

Système Description
Les frais du système de paiement sont de 2.9% + 0.30 USD par transaction réussie. Les cartes, les portefeuilles et autres options de paiement sont pris en charge. Les frais dépendent du mode de paiement et peuvent différer des frais de paiement par carte. Vous trouverez des informations détaillées sur les frais facturés par le système de paiement sur le site Web du système de paiement.
Les frais du système de paiement sont de 3.4% + 0.30 USD par transaction réussie. Les cartes et PayPal sont pris en charge. Vous trouverez des informations détaillées sur les frais facturés par le système de paiement sur le site Web du système de paiement.
Les frais du système de paiement sont de 3.9% par transaction réussie. Les cartes et autres options de paiement sont pris en charge. Les frais dépendent du mode de paiement. Vous trouverez des informations détaillées sur les frais facturés par le système de paiement sur le site Web du système de paiement.

Après les frais du système de paiement, PayToUse facturera des frais de 13%. Nous travaillons constamment à réduire les frais.

Si des litiges ou des remboursements surviennent dans le système de paiement, les pénalités du système de paiement sont réémises au développeur. Vous ne devriez donc pas permettre que de telles situations se produisent. Les frais de PayToUse ne sont pas facturés dans les situations controversées.

Liste des paiements

Vous pouvez rechercher le champ d'e-mail ou le code envoyé dans la barre de recherche en haut. Les paiements trouvés seront affichés dans la liste. Vous pouvez utiliser tout ou partie de l'e-mail ou du code envoyé comme critère de recherche. Les correspondances seront mises en surbrillance en couleur. La recherche et les filtres fonctionnent simultanément et ne s'excluent pas mutuellement.

Le dernier filtre utilisé est enregistré pour l'utilisateur. Ainsi, la prochaine fois que vous accéderez à la page, le dernier filtre utilisé sera appliqué automatiquement. Des filtres sont disponibles pour la liste des paiements :

  • Colonnes - sélectionnez les colonnes du tableau à afficher dans la liste de paiements.
  • Application - affichage des paiements uniquement pour les applications sélectionnées.
  • Système - afficher les paiements uniquement à partir des systèmes de paiement sélectionnés.
  • Statut - afficher les paiements uniquement avec les statuts sélectionnés.

La liste des colonnes dans le tableau des paiements :

  • Application - votre application. Vous pouvez suivre le lien pour modifier ses paramètres.
  • # - numéro de séquence unique du paiement. Il est attribué au paiement automatiquement lorsque l'utilisateur passe du formulaire de paiement à la page de paiement dans le système de paiement. Vous pouvez cliquer sur le lien pour afficher les détails du paiement.
  • Commentaires - message de l'utilisateur saisi dans le formulaire de paiement.
  • Système - le système de paiement sélectionné par l'utilisateur.
  • Statut - le statut du paiement. (voir État du paiement)
  • Email - e-mail de l'utilisateur indiqué dans le formulaire de paiement.
  • Terme - la période de validité du code envoyé (spécifiée dans les paramètres de l'application).
  • Créé - la date de création du paiement.
  • Montant de la facture - le montant du paiement facturé à l'utilisateur. Spécifié dans le formulaire de paiement en fonction des paramètres de l'application.
  • Date de paiement - la date du paiement.
  • Montant du paiement - le montant du paiement confirmé par le système de paiement.
  • Code envoyé - code envoyé à l'utilisateur.
  • Montant disponible - montant de retrait disponible.
  • Montant du paiement - le montant des fonds retirés pour le paiement.

Il n'est pas possible de modifier le paiement.

État du paiement

Durant son cycle de vie, le paiement passe par différents états, qui peuvent être suivis par le statut du paiement.

Statut Description
Incomplet Le statut est attribué aux paiements pour lesquels aucune action n'a été effectuée. Le paiement est créé dès que l'utilisateur passe du formulaire de paiement au formulaire de système de paiement. Le paiement se voit attribuer un numéro de série unique, ainsi que les attributs de base du paiement : montant, système de paiement, date.
Réussi Le statut est attribué aux paiements qui ont reçu une réponse positive du système de paiement. L'étape suivante consiste à envoyer un e-mail à l'utilisateur contenant le code généré ou d'autres données en fonction des paramètres de l'application. Si le paiement reste dans ce statut, il est nécessaire d'y prêter une attention particulière, car les actions ultérieures n'ont pas été effectuées.
Erreur Le statut est attribué aux paiements pour lesquels une réponse négative est reçue du système de paiement. Les étapes suivantes ne sont pas effectuées. Il est nécessaire de porter une attention particulière à de tels paiements, car le statut du côté du système de paiement peut être traité avec un certain délai.
En attente Le statut est attribué aux paiements pour lesquels une réponse positive est reçue du système de paiement, et toutes les étapes ultérieures ont été terminées avec succès. Le retrait des paiements avec ce statut n'est pas disponible. Les paiements passent automatiquement au statut suivant dans 7 jours.
Disponible Le retrait est disponible pour les paiements dans ce statut.
Envoi Le statut est activé pour les paiements inclus dans le prochain retrait. Si le retrait est annulé ou refusé, le statut du paiement est revenu à Disponible.
Envoyé Le statut est activé pour les paiements pour lesquels le retrait est effectué. La confirmation de la réception des fonds est en attente.
Terminé Le statut est activé pour les paiements avec des retraits réussis. Vous pouvez définir manuellement le statut en confirmant le retrait dans la section correspondante. Le statut est également automatiquement modifié 14 jours après le retrait du paiement.
Remboursé Les paiements pour lesquels un remboursement a été émis sont transférés dans ce statut. Lors de l'émission d'un remboursement, des frais de remboursement sont facturés. Les frais sont déduits du montant du retrait.

Retraits

Lorsque vous accédez à cette section, une liste de vos retraits s'ouvrira.

Liste des retraits

Le dernier filtre utilisé est stocké pour l'utilisateur. Ainsi, la prochaine fois que vous accéderez à la page, le dernier filtre utilisé sera appliqué automatiquement. Des filtres sont disponibles pour la liste des retraits :

  • Colonnes - n'afficher que les colonnes sélectionnées dans la liste des retraits.
  • Statut - n'afficher que les retraits qui sont dans les statuts sélectionnés.

La liste des colonnes dans le tableau des retraits :

  • # - numéro de séquence unique du retrait. Il est attribué au retrait automatiquement lors de l'enregistrement du retrait. Vous pouvez cliquer sur le lien pour afficher les détails du retrait.
  • Statut - le statut du retrait. (voir Statut du retrait)
  • Créé - la date de la demande de retrait.
  • Montant - le montant du retrait.
  • Retrait - la date à laquelle le retrait a été envoyé.
  • Boutons pour les actions concernant les retraits. Par exemple, confirmation.

Vous pouvez confirmer le retrait lorsqu'il est dans le statut Envoyé.

Statut du retrait

Durant son cycle de vie, le retrait passe par différents états, qui peuvent être suivis par le statut du retrait.

Statut Description
En attente Le statut est attribué aux retraits lors de la création, pour lesquels aucune action n'a été effectuée.
Annulé Le statut est attribué aux retraits annulés. Les annulations peuvent être effectuées pour diverses raisons. Par exemple, la méthode de réception des fonds n'est pas spécifiée. Tous les paiements de ce retrait passent au statut Disponible et sont à nouveau disponibles pour un retrait.
Envoyé Le statut est défini pour le retrait des fonds lorsqu'il est envoyé.
Terminé Le statut est défini pour le retrait manuel lorsqu'il est reçu par le développeur pour confirmer la réception. Ou automatiquement 14 jours après l'envoi.
Refusé Le statut est défini pour le retrait lorsque la banque ou le système de paiement retourne les fonds après l'envoi. Tous les paiements de ce retrait passent au statut Disponible et sont à nouveau disponibles pour un retrait.

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

  • Description: OpenWeatherMap provides global weather data, including real-time weather, historical data, and 16-day forecasts. With wide geographic coverage and frequent updates, OpenWeatherMap is a popular choice for applications requiring both current weather and extended forecasts.
  • Data Provided: Real-time temperature, humidity, wind speed, air quality, precipitation probability, and more. Offers both current and forecast data, including minute-by-minute weather data for select locations.
  • Provider Selection: Include provider = 1 in the weather section of your request to select OpenWeatherMap as the weather provider.
  • Usage Notes: Offers free and paid tiers, with data accessible via API key authentication. Advanced data layers and premium features are available in paid plans.
  • API Documentation: Available here.

2. QWeather

  • Description: QWeather, also known as HeWeather, provides comprehensive weather data focused on China but includes international data as well. It offers extensive details such as real-time weather, forecasts, air quality information, and alerts.
  • Data Provided: Current temperature, humidity, UV index, pollution levels, daily and hourly forecasts, as well as warnings for severe weather conditions. Known for its granular air quality data and its real-time updates on changing weather conditions.
  • Provider Selection: Include provider = 2 in the weather section of your request to select QWeather as the weather provider.
  • Usage Notes: QWeather offers API access with free and premium tiers. The free tier provides limited data, while premium options expand to cover additional data points and locations.
  • API Documentation: Available here.

3. MET Weather (MET Norway)

  • Description: The MET Weather API, provided by MET Norway, gives access to a variety of open meteorological data, including forecasts, historical data, and specific data for Norway and the Nordic regions. Known for its accuracy and transparency, MET Weather is ideal for applications in need of highly reliable weather data.
  • Data Provided: Current weather conditions, forecasts, precipitation, temperature, wind data, and UV index. MET Weather offers specialized data for the Nordic regions but also supports global weather information.
  • Provider Selection: Include provider = 3 in the weather section of your request to select MET Weather as the weather provider.
  • Usage Notes: All data provided by MET Weather is freely available for use under a Creative Commons license, allowing both non-commercial and commercial applications without cost. MET Norway is renowned for its environmental data, making it a trusted provider, particularly in Europe.
  • API Documentation: Available here.

Example Request

/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); // l'identifiant de votre application
		request.put("model", ds.partNumber);

		Toybox.Communications.makeWebRequest(
			"https://api.p2u.io", // API Endpoint
			request,
			{
				:method => 3, // Communications.HTTP_REQUEST_METHOD_POST
				:headers => {
					"Content-Type" => 1 // Communications.REQUEST_CONTENT_TYPE_JSON
				},
				:responseType => 0 // Communications.HTTP_RESPONSE_CONTENT_TYPE_JSON
			},
			method(:onReceive)
		);
	}
}

API Response

The API returns a JSON object with information on unlock status, glucose level, and weather.

Response Parameters

Unlock Code Verification Results (if a request was sent):

  • response: integer — return code
  • msg: string — message about the verification result
  • expires: integer — expiration timestamp of the code in UNIXTIMESTAMP format
  • qr: array — QR code for purchase or serial number verification, if applicable

NightScout App Response (if a request was sent):

  • bg: associative array — formatted response from the NightScout app
    • value: integer — blood glucose level in mg/dL
    • date: integer — timestamp of the code expiration in UNIXTIMESTAMP format
    • direction: string — trend in blood glucose level change

Weather API Response (if a request was sent):

  • weather: associative array — formatted response from the Weather API
    • provider: integer — weather provider identifier
    • weather: array — current weather conditions. May return one or two values; if two values are returned, they represent day and night conditions
    • temp: float — current temperature in Celsius
    • feels_like: float — feels-like temperature in Celsius
    • pressure: integer — atmospheric pressure in hPa
    • humidity: integer — humidity in %
    • precipitation: integer — precipitation probability in %
    • wind: integer — wind direction in degrees
    • wind_speed: float — wind speed in m/s
    • temp_low: float — today’s low temperature in Celsius
    • temp_high: float — today’s high temperature in Celsius
    • sunrise_today: integer — today’s sunrise timestamp in UNIXTIMESTAMP format
    • sunset_today: integer — today’s sunset timestamp in UNIXTIMESTAMP format
    • sunrise_tomorrow: integer — tomorrow’s sunrise timestamp in UNIXTIMESTAMP format
    • sunset_tomorrow: integer — tomorrow’s sunset timestamp in UNIXTIMESTAMP format
    • aqi: associative array — air quality index
      • level: integer — air quality index level
      • value: integer — air quality index value

Example Response

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

Project-Id-Version: veshchiyoleg.com Report-Msgid-Bugs-To: PO-Revision-Date: 2024-06-26 19:06+0300 Last-Translator: VeshchiyOleg Language-Team: Language: fr MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n > 1); X-Poedit-KeywordsList: _;gettext;gettext_noop X-Poedit-Basepath: ../../.. X-Poedit-SourceCharset: UTF-8 X-Generator: Poedit 3.4.4 X-Poedit-SearchPath-0: . X-Poedit-SearchPathExcluded-0: vendor X-Poedit-SearchPathExcluded-1: www/vendor X-Poedit-SearchPathExcluded-2: mail X-Poedit-SearchPathExcluded-3: api

ID Description Day Night
0 Effacer
0x53

0x54
40 Fair
23 Mostly clear
0x55

0x56
1 Partly cloudy
0x57

0x58
22 Partly clear
2 Mostly cloudy
0x59
52 Thin clouds
20 Cloudy
0x5A
45 Cloudy chance of rain
31 Drizzle
0x3E
14 Light rain
0x42
24 Light showers
3 Rain
0x43
25 Showers
27 Chance of showers
0x46
11 Scattered showers
15 Heavy rain
26 Heavy showers
28 Chance of thunderstorms
0x36

0x37
12 Scattered thunderstorms
0x38
6 Thunderstorms
0x39
8 Fog
0x4E
9 Hazy
29 Mist
39 Haze
30 Dust
0x4F
35 Sand
33 Smoke
38 Volcanic ash
37 Sandstorm
13 Unknown precipitation
5 Windy
0x52
36 Squall
48 Flurries
32 Tornado
0x50
41 Hurricane
42 Tropical storm
50 Sleet
0x45
7 Wintry mix
18 Light rain snow
19 Heavy rain snow
21 Rain snow
49 Freezing rain
44 Chance of rain snow
47 Cloudy chance of rain snow
34 Ice
51 Ice snow
43 Chance of snow
0x4C

0x4D
16 Light snow
46 Cloudy chance of snow
0x4A
4 Snow
17 Heavy snow
0x4B
10 Hail
0x3A

Open Weather Map

Project-Id-Version: veshchiyoleg.com Report-Msgid-Bugs-To: PO-Revision-Date: 2024-06-26 19:06+0300 Last-Translator: VeshchiyOleg Language-Team: Language: fr MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n > 1); X-Poedit-KeywordsList: _;gettext;gettext_noop X-Poedit-Basepath: ../../.. X-Poedit-SourceCharset: UTF-8 X-Generator: Poedit 3.4.4 X-Poedit-SearchPath-0: . X-Poedit-SearchPathExcluded-0: vendor X-Poedit-SearchPathExcluded-1: www/vendor X-Poedit-SearchPathExcluded-2: mail X-Poedit-SearchPathExcluded-3: api

ID Description 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 Effacer
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 Description 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 Effacer
101 Cloudy
0x55

0x56
151 Cloudy
102 Few Clouds
0x57

0x58
152 Few Clouds
103 Partly Cloudy
0x59
153 Partly Cloudy
104 Overcast
0x5A

MET Weather

Project-Id-Version: veshchiyoleg.com Report-Msgid-Bugs-To: PO-Revision-Date: 2024-06-26 19:06+0300 Last-Translator: VeshchiyOleg Language-Team: Language: fr MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n > 1); X-Poedit-KeywordsList: _;gettext;gettext_noop X-Poedit-Basepath: ../../.. X-Poedit-SourceCharset: UTF-8 X-Generator: Poedit 3.4.4 X-Poedit-SearchPath-0: . X-Poedit-SearchPathExcluded-0: vendor X-Poedit-SearchPathExcluded-1: www/vendor X-Poedit-SearchPathExcluded-2: mail X-Poedit-SearchPathExcluded-3: api

ID Description 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