Créer des transactions numériques consommables

Ce guide explique comment ajouter des transactions numériques à votre conversation Action pour que les utilisateurs puissent acheter vos produits numériques consommables.

Termes clés: un produit numérique consommable est un SKU qui gère les stocks qu'un utilisateur peut utiliser et acheter plusieurs fois (par exemple, pour une quantité de monnaie en jeu) pour un jeu Android. Ce produit numérique est différent d'un non consommable. qu'un utilisateur ne peut acheter qu'une seule fois.

Pour en savoir plus sur les produits consommables à usage unique, reportez-vous au documentation sur fonctionnalités ponctuelles spécifiques au produit.

Flux de transactions

Ce guide décrit chaque étape de développement au fur et à mesure qu'elles se produisent dans le cas d'un produit numérique. le flux des transactions. Lorsque votre action gère des transactions pour des produits numériques, elle utilise le flux suivant:

  1. Configurez un client API d'achats numériques: votre action utilise le code Achats pour communiquer avec votre inventaire Google Play et effectuer des transactions. Avant d'effectuer toute autre action, votre action crée un client JWT avec une clé pour communiquer avec l'API des achats numériques.
  2. Recueillir des informations: votre action collecte des informations de base sur le et votre inventaire Google Play pour préparer une transaction.
    1. Valider les exigences concernant les transactions: votre action utilise l'ID les exigences relatives aux transactions au début du parcours d'achat pour pour s'assurer que l'utilisateur peut effectuer une transaction.
    2. Rassembler l'inventaire disponible: votre action vérifie votre inventaire et identifie les articles actuellement disponibles à l’achat.
  3. Créez l'ordre: votre action présente les produits numériques disponibles aux l'utilisateur afin qu'il puisse en choisir un à acheter.
  4. Finaliser l'achat : votre action utilise l'API des achats numériques pour : effectuer un achat à partir de la sélection de l'utilisateur sur le Google Play Store.
  5. Gérez le résultat: votre action reçoit un code d'état pour le paramètre transaction et notifie l'utilisateur que l'achat a réussi (ou qu'il prend étapes supplémentaires).
  6. Rendre l'achat reproductible: votre action utilise les achats numériques. API pour "consume" L'article acheté, ce qui le rend disponible à l'achat à nouveau par cet utilisateur.

Restrictions et consignes relatives aux avis

Des règles supplémentaires s'appliquent aux actions comportant des transactions. Cela peut nous prendre quelques afin d'examiner les actions incluant des transactions. planifier votre calendrier de publication. Pour faciliter le processus d'examen, assurez-vous de respecter avec le Règles et consignes concernant les transactions avant de soumettre votre action pour examen.

Les actions qui vendent des produits numériques ne peuvent être déployées que dans les pays suivants:

  • Australie
  • Brésil
  • Canada
  • Indonésie
  • Japon
  • Mexique
  • Russie
  • Singapour
  • Thaïlande
  • Turquie
  • Royaume-Uni
  • États-Unis

Prérequis

Avant d'intégrer des transactions numériques dans votre action, vous devez conditions préalables suivantes:

  • A compte de développeur et un compte marchand sur Google Play, pour gérer vos produits numériques Google Play Console :

  • Un domaine Web validées dans la Google Search Console. Il n'a pas besoin d'être associé à un site Web public. il suffit de référencer votre domaine Web.

  • Une application Android avec l'com.android.vending.BILLING autorisation dans la Google Play Console. Vos produits numériques seront des "achats via une application" associées à cette application dans la Google Play Console.

    Vous devez également créer une version dans la Play Console avec cette application, mais si si vous ne voulez pas que la version soit publique, créez une version alpha fermée version.

    Si vous n'avez pas encore d'application Android, suivez les Associer des instructions pour une application Android

  • Un ou plusieurs produits gérés dans le Google Play Console Il s'agit des produits numériques vendus avec votre action. Notez que vous devez ne peuvent pas créer de produits gérés dans la Play Console tant que vous n'avez pas configuré Conditions préalables à l'utilisation de l'application Android

    Si vous n'avez pas encore de produits gérés, suivez les Instructions pour créer vos produits numériques

Associer une application Android

Si vous ne possédez pas d'application Android disposant de l'autorisation de facturation dans le dans la Google Play Console, procédez comme suit:

  1. Dans Android Studio ou l'IDE Android de votre choix, créez un projet. Choisir des options dans les invites de configuration du projet pour créer une application très basique.
  2. Attribuez au projet un nom de package, tel que com.mycompany.myapp. Ne laissez pas ce nom par défaut, car vous ne pouvez pas importer de packages qui inclure com.example à la Play Console.
  3. Ouvrez le fichier AndroidManifest.xml de votre application.
  4. Ajoutez la ligne de code suivante dans l'élément manifest:

    <uses-permission android:name="com.android.vending.BILLING" />

    Votre fichier AndroidManifest.xml doit se présenter comme suit:

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        package="com.mycompany.myapp">
        <uses-permission android:name="com.android.vending.BILLING" />
    
        <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:roundIcon="@mipmap/ic_launcher_round"
            android:supportsRtl="true"
            android:theme="@style/AppTheme" />
    </manifest>
    
  5. Créez votre application en tant qu'APK signé. Dans Android Studio, procédez comme suit:

    1. Accédez à Build (Compilation), puis à Generate Signed Bundle / APK (Générer un app bundle/APK signé).
    2. Cliquez sur Suivant.
    3. Sous Key Store Path (Chemin du keystore), cliquez sur Create new (Créer).
    4. Renseignez chaque champ, puis cliquez sur OK. Notez votre Key Store mot de passe et Mot de passe de la clé, et conservez-les en lieu sûr, vous les utiliserez plus tard.
    5. Cliquez sur Suivant.
    6. Sélectionnez Release (Version).
    7. Sélectionnez V1 (Signature JAR).
    8. Cliquez sur Terminer.
    9. Après quelques secondes, Android Studio génère un fichier app-release.apk. Localisez ce fichier pour une utilisation ultérieure.
  6. Dans Google Play Console créer une application.

  7. Accédez à Versions de l'application.

  8. Sous Versions fermées, sélectionnez Gérer, puis Alpha.

  9. Cliquez sur le bouton Créer une version.

  10. Sous Laisser Google gérer et protéger votre clé de signature, saisissez votre identifiant les informations clés.

  11. Importez votre fichier APK.

  12. Cliquez sur Enregistrer.

Créer vos produits numériques

Si vous n'avez actuellement aucun produit numérique dans la Play Console, suivez ces étapes:

  1. Dans Google Play Console accédez à Produits intégrés, puis à Produits gérés. Si un avertissement s'affiche, Suivez les instructions précédentes pour créer une application Android ou cliquez sur le lien. pour créer un profil de marchand.
  2. Cliquez sur Créer un produit géré.
  3. Remplissez les champs pour votre produit numérique. Notez l'identifiant produit, C'est ainsi que vous utiliserez ce produit à partir de votre action.
  4. Cliquez sur Enregistrer.
  5. Répétez les étapes 2 à 4 pour chaque produit que vous souhaitez vendre.

Exemples de produits consommables dans la Google Play Console

Préparer votre projet Actions

Une fois votre contenu numérique configuré dans la Google Play Console, vous devez activer transactions numériques et associer votre projet Actions à votre application Play.

Configuration

Pour activer les transactions de produits numériques dans votre projet Actions, procédez comme suit : étapes:

  1. Dans la console Actions, ouvrez votre projet ou créez-en un.
  2. Accédez à Déployer, puis à Informations sur l'annuaire.
  3. Sous Informations supplémentaires et Transactions, cochez la case Oui. sous Vos actions utilisent-elles l'API d'achat numérique pour effectuer des transactions ? de produits numériques.
  4. Cliquez sur Enregistrer.

Créer une clé API pour le contenu numérique

Pour envoyer des requêtes à l'API Digital Goods, vous devez télécharger un service JSON associée à votre projet dans la console Actions.

Pour récupérer votre clé de compte de service, procédez comme suit:

  1. Dans la console Actions, cliquez sur l'icône à trois points en haut à droite. puis sur Paramètres du projet.
  2. Recherchez l'ID de projet de votre action.
  3. Suivez ce lien, qui remplace "<project_id>" par l'ID de votre projet: https://console.developers.google.com/apis/credentials?project=project_id
  4. Dans le menu de navigation principal, accédez à Identifiants.
  5. Sur la page qui s'affiche, cliquez sur Créer des identifiants, puis sur Service clé de compte Google Ads.
  6. Accédez à Compte de service, puis cliquez sur Nouveau compte de service.
  7. Nommez le compte de service, par exemple "digitaltransactions".
  8. Cliquez sur Créer.
  9. Définissez le rôle sur Projet > Propriétaire.
  10. Cliquez sur Continuer.
  11. Cliquez sur Create Key (Créer une clé).
  12. Sélectionnez le type de clé JSON.
  13. Cliquez sur Créer une clé et téléchargez la clé de compte de service JSON.

Enregistrez cette clé de compte de service en lieu sûr. Vous utiliserez cette clé dans votre fulfillment pour créer un client pour l'API des achats numériques.

Se connecter à votre inventaire Play

Pour accéder à vos produits numériques à partir d'un projet Actions, associez votre domaine Web et application avec votre projet en tant que propriétés connectées.

Pour associer le domaine Web et l'application Play Console à votre projet Actions, procédez comme suit : procédez comme suit:

  1. Dans la console Actions, accédez à Déployer, puis à Validation de la marque.
  2. Si vous n'avez associé aucune propriété, commencez par associer un site Web:

    1. Cliquez sur le bouton du site Web (&lt;/&gt;).
    2. Saisissez l'URL de votre domaine Web, puis cliquez sur Se connecter.

    Google envoie un e-mail contenant des instructions supplémentaires à la personne validé pour ce domaine Web Google Search Console : Une fois que le destinataire de cet e-mail a suivi ces étapes, le site Web doit s'affichent sous Validation de la marque.

  3. Une fois que vous avez au moins un site Web connecté, procédez comme suit pour connectez votre application Android:

    1. Dans la console Actions, accédez à Déployer, puis à Validation de la marque.
    2. Cliquez sur Associer une application.
    3. Sur la page qui s'affiche, suivez les instructions pour valider votre site Web. domaine dans la Play Console. Sélectionnez l'application Play contenant votre produits numériques, puis saisissez l'URL du domaine Web exactement telle qu'elle apparaît sur le Page Validation de la marque.

      Une fois encore, Google envoie un e-mail de validation au propriétaire confirmé de le domaine. Une fois la validation approuvée, votre application Play s'affichent sous Validation de la marque.

    4. Activez l'option Accéder aux achats sur Play.

Image montrant le site Web et les applications associés au projet Actions.

Créer votre parcours d'achat

Une fois votre projet Actions et votre inventaire de produits numériques préparés, élaborez une stratégie dans le flux d'achat de produits dans votre webhook de traitement des conversations.

1. Configurer un client API d'achats numériques

Dans votre webhook de fulfillment de conversation, créez un client JWT avec votre service la clé JSON du compte https://www.googleapis.com/auth/actions.purchases.digital.

Le code Node.js suivant crée un client JWT pour l'API des achats numériques:

  const serviceAccount = {'my-file.json'};
  const request = require('request');
  const {google} = require('googleapis');

  const jwtClient = new google.auth.JWT(
    serviceAccount.client_email, null, serviceAccount.private_key,
    ['https://www.googleapis.com/auth/actions.purchases.digital'],
    null
  );

2. Recueillir des informations

Avant que l'utilisateur puisse effectuer un achat, votre action collecte des informations sur l'élément la capacité de l'utilisateur à effectuer des achats et quels produits sont disponibles sur votre de l'inventaire.

2. a. Valider les exigences concernant les achats numériques

Il est recommandé de s'assurer que le compte de l'utilisateur est configuré pour des transactions avant de leur donner la possibilité d'effectuer un achat. Vous devez une transition vers une scène DigitalPurchaseCheck, qui vérifie que l'utilisateur est validé, qu'ils effectuent la transaction sur une surface autorisée (écran connecté, ou Android) et qu'ils se trouvent dans un pays où la technologie les transactions sont prises en charge.

Pour créer une scène de contrôle des achats numériques, procédez comme suit:

  1. Depuis l'onglet Scenes (Scènes), ajoutez une scène nommée DigitalPurchaseCheck.
  2. Sous Remplissage de cases, cliquez sur + pour ajouter un emplacement.
  3. Sous Sélectionner un type, choisissez actions.type.DigitalPurchaseCheckResult. le type d'emplacement.
  4. Dans le champ "Nom de l'emplacement", attribuez le nom DigitalPurchaseCheck à l'emplacement.
  5. Cochez la case Personnaliser l'écriture de la valeur de l'emplacement (activée par défaut).
  6. Cliquez sur Enregistrer.

La validation des achats en ligne peut entraîner l'un des résultats suivants:

  • Si les conditions sont remplies, le paramètre de session est défini avec succès. et vous pouvez autoriser l'utilisateur à acheter des produits numériques.
  • Si une ou plusieurs des conditions ne peuvent pas être remplies, le paramètre de session est défini avec une condition d'échec. Dans ce cas, vous devez recentrer la conversation de l'expérience transactionnelle ou mettre fin à la conversation.

Pour gérer un résultat de chèque d'achat numérique, procédez comme suit:

  1. Dans l'onglet Scenes (Scènes), sélectionnez la scène DigitalPurchaseCheck que vous venez de créer.
  2. Sous Condition, cliquez sur + pour ajouter une condition.
  3. Dans le champ de texte, saisissez la syntaxe de condition suivante pour vérifier la valeur condition de réussite:

    scene.slots.status == "FINAL" && session.params.DigitalPurchaseCheck.resultType == "CAN_PURCHASE"
    
  4. Pointez sur la condition que vous venez d'ajouter, puis cliquez sur la flèche vers le haut pour la placer avant if scene.slots.status == "FINAL".

  5. Activez l'option Send invites (Envoyer des invites) et fournissez une invite simple pour avertir l'utilisateur. il est prêt à effectuer une transaction:

    candidates:
      - first_simple:
          variants:
            - speech: >-
                You are ready to purchase digital goods.
    
  6. Sous Transition, sélectionnez une autre scène, ce qui permet à l'utilisateur de continuer. la conversation et de procéder à la transaction.

  7. Sélectionnez la condition else if scene.slots.status == "FINAL".

  8. Activez l'option Send invites (Envoyer des invites) et fournissez une invite simple pour avertir l'utilisateur. s'il n'est pas en mesure d'effectuer une transaction:

    candidates:
      - first_simple:
          variants:
            - speech: Sorry you cannot perform a digital purchase.
    
  9. Sous Transition, sélectionnez End conversation (Terminer la conversation) pour mettre fin à la conversation.

2. b. Rassembler l'inventaire disponible

Utiliser l'API des achats numériques pour demander le Play Store actuellement disponible dans un inventaire, puis nous l'intégrons dans un tableau d'objets JSON pour chaque produit. Vous référencerez ce tableau plus tard pour montrer à l'utilisateur les options disponibles. à acheter.

Chacun de vos articles numériques est représenté par un SKU au format JSON. La Le code Node.js suivant décrit le formatage attendu pour chaque SKU:

body = {
  skus: [
    skuId: {
      skuType: one of "SKU_TYPE_IN_APP" or "SKU_TYPE_SUBSCRIPTION"
      id: string,
      packageName: string
    }
    formattedPrice: string,
    title: string,
    description: string
  ]
}

Envoyez une requête POST à https://actions.googleapis.com/v3/packages/{packageName}/skus:batchGet point de terminaison, où {packageName} correspond au nom du package de votre application dans console (par exemple, com.myapp.digitalgoods), puis mettez en forme le résultat dans un d'objets SKU.

Pour ne récupérer que des produits numériques spécifiques dans le tableau obtenu, listez le produit Les identifiants de produits numériques (tels qu'ils apparaissent sous chaque produit intégré dans Console) que vous souhaitez rendre disponible à l'achat dans body.ids.

Le code Node.js suivant demande la liste des produits disponibles API Achats et met en forme le résultat sous la forme d'un tableau de SKU:

return jwtClient.authorize((err, tokens) => {
    if (err) {
      throw new Error(`Auth error: ${err}`);
    }

    const packageName = 'com.example.projectname';

    request.post(`https://actions.googleapis.com/v3/packages/${packageName}/skus:batchGet`, {
      'auth': {
        'bearer': tokens.access_token,
      },
      'json': true,
      'body': {
        'conversationId': conv.session.id,
        'skuType': 'SKU_TYPE_IN_APP',
        // This request is filtered to only retrieve SKUs for the following product IDs
        'ids': ['consumable.1']
      },
    }, (err, httpResponse, body) => {
      if (err) {
        throw new Error(`API request error: ${err}`);
      }
      console.log(`${httpResponse.statusCode}: ${httpResponse.statusMessage}`);
      console.log(JSON.stringify(body));
    });
  });
});

3. Créer la commande

Pour commencer l'achat numérique de l'utilisateur, présentez une liste de vos produits numériques. disponibles à l'achat. Vous pouvez utiliser différents types de réponses enrichies pour représenter et inviter l'utilisateur à faire une sélection.

Le code Node.js suivant lit un tableau d'inventaire d'objets SKU et crée un Réponse "list" avec un élément de liste pour chacun:

const items = [];
const entries = [];
skus.forEach((sku) => {
   const key = `${sku.skuId.skuType},${sku.skuId.id}`
   items.push({
       key: key
   });
   entries.push({
       name: key,
       synonyms: [],
       display: {
           title: sku.title,
           description: `${sku.description} | ${sku.formattedPrice}`,
       }
   });
});

conv.session.typeOverrides = [{
   name: 'type_name',
   mode: 'TYPE_REPLACE',
   synonym: {
       entries: entries
   }
}];

conv.add(new List({
   title: 'List title',
   subtitle: 'List subtitle',
   items: items,
}));

Créer un achat à partir de la sélection de l'utilisateur

Une fois que l'utilisateur a sélectionné un article, vous pouvez créer l'ordre. Pour ce faire, l'emplacement associé à l'élément sélectionné, vous pouvez appeler votre webhook créer la commande. À partir du traitement, enregistrez les données de commande dans une session. . L'objet d'ordre est utilisé dans toutes les scènes pour la même session.

conv.session.params.purchase = {
  "@type": "type.googleapis.com/google.actions.transactions.v3.CompletePurchaseValueSpec",
  "skuId": {
    "skuType": "<SKU_TYPE_IN_APP>",
    "id": "<SKU_ID>",
    "packageName": "<PACKAGE_NAME>"
  },
  "developerPayload": ""
};

Dans Actions Builder, vous pouvez plutôt utiliser l'éditeur JSON pour configurer l'emplacement avec l'objet "order" ci-dessus. Les deux implémentations utilisent le même format pour CompletePurchaseValueSpec, disponible dans la Documentation de référence sur la charge utile du webhook JSON

4. Finaliser l'achat

Une fois que l'utilisateur a sélectionné un article, vous pouvez finaliser l'achat. Une fois que vous avez rempli l'emplacement associé à l'élément sélectionné, vous devez passer à une scène effectue un achat complet.

Créer une scène d'achat complet

  1. Dans l'onglet Scenes (Scènes), ajoutez une scène nommée CompletePurchase.
  2. Sous Remplissage de cases, cliquez sur + pour ajouter un emplacement.
  3. Sous Sélectionner un type, choisissez actions.type.CompletePurchaseValue le type d'emplacement.
  4. Dans le champ "Nom de l'emplacement", attribuez le nom CompletePurchase à l'emplacement.
  5. Cochez la case Personnaliser l'écriture de la valeur de l'emplacement (activée par défaut).
  6. Sous Configurer l'emplacement, sélectionnez Use session parameter dans le menu déroulant.
  7. Sous Configurer l'emplacement,saisissez le nom du paramètre de session utilisé pour enregistrer la commande dans le champ de texte (par exemple, $session.params.purchase).
  8. Cliquez sur Enregistrer.

5. Gérer le résultat

Un emplacement de type actions.type.CompletePurchaseValue peut avoir les éléments suivants : résultats:

  • PURCHASE_STATUS_OK: l'achat a bien été effectué. La transaction est terminée à ce stade. Vous devez donc quitter le flux transactionnel et revenir à votre conversation.
  • PURCHASE_STATUS_ALREADY_OWNED: la transaction a échoué, car l'utilisateur possède déjà cet article. Pour éviter cette erreur, vérifiez l'historique et d'adapter les articles présentés afin qu'ils n'aient pas la possibilité racheter des articles qu'ils possèdent déjà.
  • PURCHASE_STATUS_ITEM_UNAVAILABLE: la transaction a échoué, car le l'élément demandé n'est pas disponible. Pour éviter cette erreur, vérifiez les SKU plus proches du moment de l'achat.
  • PURCHASE_STATUS_ITEM_CHANGE_REQUESTED: la transaction a échoué, car le l'utilisateur a décidé d'acheter autre chose. Relancer la création de votre commande afin que l'utilisateur puisse prendre une autre décision immédiatement.
  • PURCHASE_STATUS_USER_CANCELLED: la transaction a échoué, car l'utilisateur a annulé le parcours d'achat. Puisque l'utilisateur a quitté prématurément le flux, Demander à l'utilisateur s'il souhaite réessayer ou quitter la transaction dans son ensemble.
  • PURCHASE_STATUS_ERROR: la transaction a échoué pour une raison inconnue. Informez l'utilisateur que la transaction a échoué et demandez-lui s'il souhaite réessayer.
  • PURCHASE_STATUS_UNSPECIFIED: la transaction a échoué pour une raison inconnue. entraînant un état inconnu. Gérez cet état d'erreur en autorisant l'utilisateur sait que la transaction a échoué et lui demande s'il veut réessayer.

Vous devez gérer chacun de ces résultats à partir de votre scène CompletePurchase.

  1. Dans l'onglet Scenes (Scènes), sélectionnez la scène CompletePurchase que vous venez de créer.
  2. Sous Condition, cliquez sur + pour ajouter une condition.
  3. Dans le champ de texte, saisissez la syntaxe de condition suivante pour vérifier la valeur condition de réussite:

    scene.slots.status == "FINAL" && session.params.CompletePurchase.purchaseStatus == "PURCHASE_STATUS_OK"
    
  4. Pointez sur la condition que vous venez d'ajouter, puis cliquez sur la flèche vers le haut pour la placer avant if scene.slots.status == "FINAL".

  5. Activez l'option Send invites (Envoyer des invites) et fournissez une invite simple pour avertir l'utilisateur. il est prêt à effectuer une transaction:

    candidates:
      - first_simple:
          variants:
            - speech: >-
                Your purchase was successful.
    
  6. Sous Transition, sélectionnez End conversation (Terminer la conversation) pour mettre fin à la conversation.

Répétez les étapes ci-dessus pour chaque type de résultat d'achat que vous souhaitez proposer.

6. Rendre l'achat reproductible

Après une transaction réussie, envoyez une requête POST aux achats numériques API pour utiliser l'article, ce qui permet à l'utilisateur de l'acheter à nouveau. Envoyez votre cette requête à l'https://actions.googleapis.com/v3/conversations/{sessionId}/entitlement:consume point de terminaison avec l'ID de la session trouvée dans session.id.

Votre requête POST doit également inclure l'objet de jeton d'achat associé à l'achat de l'utilisateur, figurant dans la requête JSON de l'utilisateur sous packageEntitlements.entitlements.inAppDetails.inAppPurchaseData.purchaseToken

Le code suivant envoie une requête consume à l'API pour les achats numériques et indique si la demande a abouti:

request.post(`https://actions.googleapis.com/v3/conversations/${conv.session.id}/entitlement:consume`, {
  'auth': {
    'bearer': tokens.access_token,
  },
  'json': true,
  'body': {
  // This purchase token is in both the purchase event and the user's entitlements
  // in their request JSON
    "purchaseToken": entitlement.purchaseToken
  },
  }, (err, httpResponse, body) => {
    if (err) {
     throw new Error(`API request error: ${err}`);
    }
  console.log(`${httpResponse.statusCode}: ${httpResponse.statusMessage}`);
  console.log(JSON.stringify(httpResponse));
  console.log(JSON.stringify(body));
  resolve(body);
});

// Make sure the consume request was successful. In production, don't notify the user; handle failures on the back end
return consumePromise.then(body => {
  const consumed = Object.keys(body).length === 0;
  if (consumed) {
    conv.add(`You successfully consumed ${id}`);
  } else {
    conv.add(`Failed to consume: ${id}`);
  }
});

reflètent les achats de l'utilisateur ;

Lorsqu'un utilisateur interroge votre action, l'objet user de la requête JSON inclut un la liste de leurs achats. Vérifiez ces informations et modifiez en fonction du contenu payé par l'utilisateur.

L'exemple de code suivant montre l'objet user d'une requête qui inclut packageEntitlements des précédents achats via une application qu'ils ont effectués pour Package com.digitalgoods.application:

{
  "handler": {
    "name": "handler_name"
  },
  "intent": {
    "name": "actions.intent.MAIN",
    "params": {},
    "query": ""
  },
  "scene": {
    "name": "SceneName",
    "slotFillingStatus": "UNSPECIFIED",
    "slots": {}
  },
  "session": {
    "id": "example_session_id",
    "params": {},
    "typeOverrides": []
  },
  "user": {
    "locale": "en-US",
    "params": {
      "verificationStatus": "VERIFIED"
      "packageEntitlements": [
        {
          "packageName": "com.digitalgoods.application",
          "entitlements": [
            {
              "sku": "non-consumable.1",
              "skuType": "SKU_TYPE_IN_APP"
            }
            {
              "sku": "consumable.2",
              "skuType": "SKU_TYPE_IN_APP"
            }
          ]
        },
        {
          "packageName": "com.digitalgoods.application",
          "entitlements": [
            {
              "sku": "annual.subscription",
              "skuType": "SKU_TYPE_SUBSCRIPTION",
              "inAppDetails": {
                "inAppPurchaseData": {
                  "autoRenewing": true,
                  "purchaseState": 0,
                  "productId": "annual.subscription",
                  "purchaseToken": "12345",
                  "developerPayload": "HSUSER_IW82",
                  "packageName": "com.digitalgoods.application",
                  "orderId": "GPA.233.2.32.3300783",
                  "purchaseTime": 1517385876421
                },
                "inAppDataSignature": "V+Q=="
              }
            }
          ]
        }
      ]
     }
   },
  "homeStructure": {
    "params": {}
  },
  "device": {
    "capabilities": [
      "SPEECH",
      "RICH_RESPONSE",
      "LONG_FORM_AUDIO"
    ]
  }
}

Tester votre projet

Lorsque vous testez votre projet, vous pouvez activer le mode bac à sable dans la console Actions pour tester votre action sans facturer de mode de paiement. Pour activer le mode bac à sable, procédez comme suit:

  1. Dans la console Actions, cliquez sur Test (Tester) dans le menu de navigation.
  2. Cliquez sur Paramètres.
  3. Activez l'option Bac à sable de développement.