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 :
- Écriture et envoi d'une demande de vérification du code
- Vérifications côté API
- 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.
<properties>
<property id="UnlockCode" type="string"></property>
<property id="UnlockResult" type="string">Checking...</property>
...
<properties>
<settings>
<setting propertyKey="@Properties.UnlockCode" title="@Strings.UnlockCode">
<settingConfig type="alphaNumeric" maxLength="12"/>
</setting>
<setting propertyKey="@Properties.UnlockResult" title="@Strings.UnlockResult">
<settingConfig type="alphaNumeric" readonly="true"/>
</setting>
...
</settings>
Ensuite, vous devez envoyer une demande au serveur API Pay-to-use :
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 :
|
| |
Code permanent:
| |
Donation:
| |
102 |
|
201 |
|
202 |
|
203 |
|
204 |
|
301 |
|
302 |
|
303 |
|
304 |
|
401 |
|
402 |
|
500 |
|
Vérification de la réponse
Ensuite, vous devez vérifier la réponse du serveur API Pay-to-use :
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 :
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 :
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:
- Checks the activation status of an unlock code and activates it if necessary.
- Retrieves blood glucose data from the NightScout app.
- Retrieves current weather data for a specified location.
All information can be requested and returned in a single request.
API Endpoints
You can use one of the following endpoints:
- https://api.pay-to-use.com
- https://api.p2u.io
Both endpoints handle GET and POST requests.
Request Parameters
- device: string (required) — unique device identifier
- app: integer (required) — your Application ID
- model: string (optional) — device model code, needed for collecting and displaying statistics for devices using the app
- code: string (optional) — unlock code
- bg: associative array (optional) — data for requesting blood glucose levels from the NightScout app
- url: string (optional) — address of the NightScout app
- weather: associative array (optional) — data for requesting current weather
- appid: string (optional) — weather API access key
- lat: float (optional) — latitude
- lon: float (optional) — longitude
- provider: integer (optional) — weather provider
List of Supported Weather Providers
1. OpenWeatherMap
- Description: OpenWeatherMap provides global weather data, including real-time weather, historical data, and 16-day forecasts. With wide geographic coverage and frequent updates, OpenWeatherMap is a popular choice for applications requiring both current weather and extended forecasts.
- Data Provided: Real-time temperature, humidity, wind speed, air quality, precipitation probability, and more. Offers both current and forecast data, including minute-by-minute weather data for select locations.
- Provider Selection: Include provider = 1 in the weather section of your request to select OpenWeatherMap as the weather provider.
- Usage Notes: Offers free and paid tiers, with data accessible via API key authentication. Advanced data layers and premium features are available in paid plans.
- API Documentation: Available here.
2. QWeather
- Description: QWeather, also known as HeWeather, provides comprehensive weather data focused on China but includes international data as well. It offers extensive details such as real-time weather, forecasts, air quality information, and alerts.
- Data Provided: Current temperature, humidity, UV index, pollution levels, daily and hourly forecasts, as well as warnings for severe weather conditions. Known for its granular air quality data and its real-time updates on changing weather conditions.
- Provider Selection: Include provider = 2 in the weather section of your request to select QWeather as the weather provider.
- Usage Notes: QWeather offers API access with free and premium tiers. The free tier provides limited data, while premium options expand to cover additional data points and locations.
- API Documentation: Available here.
3. MET Weather (MET Norway)
- Description: The MET Weather API, provided by MET Norway, gives access to a variety of open meteorological data, including forecasts, historical data, and specific data for Norway and the Nordic regions. Known for its accuracy and transparency, MET Weather is ideal for applications in need of highly reliable weather data.
- Data Provided: Current weather conditions, forecasts, precipitation, temperature, wind data, and UV index. MET Weather offers specialized data for the Nordic regions but also supports global weather information.
- Provider Selection: Include provider = 3 in the weather section of your request to select MET Weather as the weather provider.
- Usage Notes: All data provided by MET Weather is freely available for use under a Creative Commons license, allowing both non-commercial and commercial applications without cost. MET Norway is renowned for its environmental data, making it a trusted provider, particularly in Europe.
- API Documentation: Available here.
Example Request
function onTemporalEvent() as Void {
var ds = System.getDeviceSettings();
if (!ds.phoneConnected) { // Checks that the device is connected to the phone for sending the request
return;
}
var id = ds.uniqueIdentifier;
if (id == null) { // Verifies that the device has been assigned a unique identifier
return;
}
var request = {};
var lockCheck = Application.Storage.getValue("LastCodeCheckTimestamp");
if (lockCheck == null || lockCheck <= Time.now().value()) { // Sends the code if necessary
request.put("code", Application.Properties.getValue("UnlockCode"));
}
var ns_url = Application.Properties.getValue("NS");
if (!ns_url.equals("")) { // Sends the NightScout app URL if needed
request.put("bg", { "url" => ns_url });
}
var wP = Application.Properties.getValue("Weather");
if (wP != 0) { // Sends weather request parameters if needed
var lat = Application.Properties.getValue("latitude");
var lon = Application.Properties.getValue("longitude");
if (!lat.equals("") && !lon.equals("")) {
request.put("weather", {
"appid" => Application.Properties.getValue("appID"),
"lat" => lat,
"lon" => lon,
"provider" => wP
});
}
}
if (!request.isEmpty()) {
// Fills in the required request parameters
request.put("device", id);
request.put("app", p2uAppID); // 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
{
"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
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
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
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 |