DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Fonctions spécifiques Mobile / Fonctions Achats In-App
  • Cas particuliers
  • Application en arrière-plan : Spécificité à partir de Android 10
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Envoie :
  • une demande d'achat d'un produit "In-App" associé à l'application.
  • une demande de souscription à un abonnement.
Remarque : La demande d'achat est asynchrone. Une procédure de type "Callback" est exécutée lors de lors de la réception de la réponse à la demande d'achat.
Exemple
MonProduit est un inAppProduit = tabProduit[nIndex]
inAppAchèteProduit(MonProduit, ValideAchatProduit)
PROCÉDURE ValideAchatProduit(bSuccès est un booléen, Produit est un inAppProduit, Reçu)
 
SI PAS bSuccès ALORS
ToastAffiche(ErreurInfo())
RETOUR
SINON
// Cas Android
SI EnModeAndroid() ALORS
// Consommation du produit (optionnel)
inAppConsommeProduit(Produit, Reçu, ConsommationProduit)
FIN
// Cas iOS
SI EnModeiOS() ALORS
// Activation du produit dans l'application
ActiveProduit(Produit)
// Mémorisation de l'achat dans les préférences de l'application
SauveParamètre(Produit..Identifiant, 1)
FIN
FIN
Syntaxe
iPhone/iPad

iOS : Envoyer une demande d'achat Masquer les détails

<Résultat> = inAppAchèteProduit(<Produit à acheter> , <Quantité> , <Procédure WLangage>)
<Résultat> : Booléen
  • Vrai si la demande d'achat a été effectuée,
  • Faux dans le cas contraire. Pour plus de détails sur l'erreur, utilisez la fonction ErreurInfo.
<Produit à acheter> : Variable de type inAppProduit
Nom de la variable de type inAppProduit correspondant :
  • au produit à acheter.
  • à l'abonnement à souscrire ou à renouveler.
<Quantité> : Entier
Quantité à acheter.
  • Dans le cas d'un abonnement, ce paramètre doit correspondre à 1.
  • Si ce paramètre a pour valeur 0, <Résultat> vaut Faux et la procédure n'est pas appelée.
<Procédure WLangage> : Nom de procédure
Nom de la procédure WLangage (également nommée "callback") exécutée lors de la réception de la réponse à la demande d'achat. Pour plus de détails sur cette procédure, consultez Paramètres de la procédure utilisée par la fonction inAppAchèteProduit.
Android

Android : Envoyer une demande d'achat Masquer les détails

<Résultat> = inAppAchèteProduit(<Produit à acheter> , <Procédure WLangage>)
<Résultat> : Booléen
  • Vrai si la demande d'achat a été effectuée,
  • Faux dans le cas contraire. Pour plus de détails sur l'erreur, utilisez la fonction ErreurInfo.
<Produit à acheter> : Variable de type inAppProduit
Nom de la variable de type inAppProduit correspondant :
  • au produit à acheter.
  • à l'abonnement à souscrire ou à renouveler.
<Procédure WLangage> : Nom de procédure
Nom de la procédure WLangage (également nommée "callback") exécutée lors de la réception de la réponse à la demande d'achat. Pour plus de détails sur cette procédure, consultez Paramètres de la procédure utilisée par la fonction inAppAchèteProduit.
Remarques

Cas particuliers

  • Si l'achat est valide, l'application doit fournir le contenu de l'achat à l'utilisateur.
  • iPhone/iPad Si l'achat a été effectué, l'application doit mémoriser cette information. Il est par exemple possible de stocker cette information dans les préférences grâce à la fonction SauveParamètre.
  • Si la fonction inAppAchèteProduit est utilisée pour souscrire un abonnement déjà actif pour l'utilisateur, cet abonnement est alors automatiquement prolongé de la période correspondante.
  • Android Il n'est pas possible d'acheter un produit que l'utilisateur a déjà acheté. Il est nécessaire de consommer le produit (avec la fonction inAppConsommeProduit) avant de pouvoir l'acheter à nouveau.
    La fonction inAppListeAchat permet de récupérer les produits achetés par l'utilisateur et pas encore consommés.
  • Android Il n'est pas possible d'indiquer la quantité de produits à acheter. Il est nécessaire de créer dans la console développeur Google Play des produits correspondant à la quantité voulue. Il appartient alors à l'application de gérer l'utilisation des quantités achetées.
  • Android Il n'est pas possible de lancer simultanément plusieurs demandes d'achat. Il est nécessaire d'attendre la réponse à une demande d'achat avant d'effectuer une nouvelle demande.
  • Android La fonction inAppAchèteProduit sera sans effet si elle est exécutée depuis le simulateur ou l'émulateur Android.
Android

Application en arrière-plan : Spécificité à partir de Android 10

A partir de Android 10, il n'est plus possible d'ouvrir une fenêtre lorsque l'application est en arrière-plan.
La fonction inAppAchèteProduit peut provoquer l'ouverture d'une fenêtre. Si cette fonction est utilisée alors que l'application est en arrière-plan, une erreur fatale sera générée.
Conseils :
  • Il est possible de savoir si l'application est en arrière-plan grâce à la fonction EnModeArrièrePlan.
  • Si une application a besoin d'interagir avec l'utilisateur alors qu'elle se trouve en arrière-plan, la solution consiste à afficher une notification (via le type Notification). Lors du clic sur la notification, l'application sera remise au premier plan si la propriété ActiveApplication est à Vrai. Il est également possible d'ouvrir une fenêtre depuis la procédure passée à la propriété ActionClic.
Composante : wd300android.aar
Version minimum requise
  • Version 19
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 22/06/2023

Signaler une erreur ou faire une suggestion | Aide en ligne locale