Passer au contenu principal

Intégration du magasin - Meta Horizon

Guide d'intégration des achats intégrés Meta Horizon avec la vérification côté serveur brainCloud dans Unity

P
Écrit par Pierre Proulx
Mis à jour aujourd’hui

Aperçu

Ce guide explique comment implémenter un flux d'achat intégré complet à l'aide du SDK Horizon Platform de Meta pour les achats côté client et de VerifyPurchase()l'API de brainCloud pour la vérification côté serveur. Cette intégration garantit des transactions sécurisées et validées par le serveur, empêchant ainsi la fraude et les achats non autorisés.

Prérequis

Kits de développement logiciel (SDK) requis

  • Unity 2022.3.15f1 ou version ultérieure

  • Kit de développement logiciel (SDK) de la plateforme Meta XR (version UPM)

  • kit de développement logiciel (SDK) BrainCloud Unity

Comptes requis

  • Compte développeur Meta avec application configurée

  • Compte brainCloud avec configuration de l'application et du produit

  • Appareil Meta Quest pour les tests


Étape 1 : Configuration du compte développeur Meta

1.1 Créez/Configurez votre application

  1. Créez une nouvelle application ou sélectionnez une application existante

  2. Notez l'identifiant de votre application ; vous en aurez besoin pour la configuration Unity.

1.2 Activer les services d'achat intégrés

  1. Allez àDevelopment -> All Platform Services

  2. CliquezAdd-ons -> Add Service

  3. Activez la fonctionnalité IAP pour votre application

1.3 Ajouter des utilisateurs de test

  1. Naviguer versDevelopment -> Test Users

  2. Ajouter des comptes d'utilisateurs de test pour les tests de développement

  3. Ces utilisateurs peuvent effectuer des achats tests sans frais réels.

1.4 Configurer les références produits

  1. Accédez à Monetization -> Add-onsla section correspondante dans le tableau de bord de votre application.

  2. CliquezCreate Add-on

  3. Pour chaque produit, configurez :

    1. SKU (ex. : test_sku_1) - doit correspondre au code Unity

    2. Nom - nom affiché aux utilisateurs

    3. Description - description du produit

    4. Prix ​​- fixer le prix en USD ou dans d'autres devises

    5. Type - Consommable, Durable (Non consommable)

    6. Attribuer un module complémentaire - Attribuer des utilisateurs de test au module complémentaire

Important : Les identifiants SKU doivent correspondre exactement entre le tableau de bord Meta, le code Unity et la configuration brainCloud.

1.5 Vérification complète de l'utilisation des données (DUC)

  1. Allez àRequirements -> Data Use Checkup

  2. Ajouter les autorisations requises :

    1. Identifiant utilisateur - requis pour l'authentification

    2. Achats intégrés - requis pour les transactions d'achats intégrés

  3. Remplissez et soumettez le formulaire DUC

1.6 Configurer les métadonnées de l'application (facultatif)

Si vous utilisez du contenu téléchargeable (DLC) :

  1. Allez àDistribution -> App Submissions -> App Metadata -> Specs

  2. Indiquer que l'application nécessite une connexion Internet

Remarque : Cette étape s’applique uniquement si vous utilisez du contenu téléchargeable ou des fichiers de ressources. Pour les consommables et non-consommables standard des achats intégrés, vous pouvez ignorer cette étape.

Remarque : Cette étape s’applique uniquement si vous utilisez du contenu téléchargeable ou des fichiers de ressources. Pour les consommables et non-consommables standard des achats intégrés, vous pouvez ignorer cette étape.


Étape 2 : Configuration du projet Unity

2.1 Installer le SDK de la plateforme Meta XR

  1. Téléchargements Open Meta XR

  2. Trouver le kit de développement logiciel (SDK) de la plateforme Meta XR (UPM)

  3. Cliquez sur Ajouter à mes ressources (redirige vers l'Asset Store)

  4. Dans Unity, ouvrezWindow -> Package Manager

  5. Basculer le menu déroulant versMy Assets

  6. Recherchez le kit de développement logiciel (SDK) de la plateforme Meta XR et cliquezInstall

  7. Si une mise à jour vous est proposée OVRPlugin, acceptez-la et redémarrez Unity.

2.2 Installer le SDK Unity de brainCloud

  1. Ajouter le paquet brainCloud via le gestionnaire de paquets

2.3 Configurer les paramètres de la plateforme Oculus

  1. OuvrirMeta -> Platform -> Edit Settings -> Oculus

  2. Sous Platform Settingsla section :

    1. Saisissez votre identifiant d'application Oculus depuis le tableau de bord Meta.

    2. Connectez-vous au compte utilisateur de test de l'application Meta avec vos identifiants.

2.4 Ajouter un script : définir un symbole (facultatif)

  1. OuvrirEdit -> Project Settings -> Player

  2. Sélectionnez Androidl'onglet Plateforme

  3. DévelopperOther Settings

  4. TrouverScripting Define Symbols

  5. Ajouter OCULUS_PLATFORM_SDK(séparés par des virgules s'il existe d'autres symboles)

Ce symbole de définition permet la compilation conditionnelle du code du SDK Meta Platform et autorise le mode de simulation lorsque le SDK n'est pas disponible.

2.5 Passer à la cible de compilation Android

  1. OuvrirFile -> Build Settings

  2. Sélectionner Androidla plateforme

  3. CliquezSwitch Platform

  4. Configurer les paramètres de compilation Android :

    1. Niveau d'API minimal : Android 10.0 (niveau d'API 29) ou supérieur

    2. Niveau d'API cible : le plus récent disponible


Étape 3 : Configuration de brainCloud

3.1 Créer une application brainCloud

  1. Connectez-vous au portail brainCloud

  2. Créer une nouvelle application ou sélectionner une application existante

  3. Veuillez noter les informations d'identification suivantesCore App Info -> Application IDs ; elles seront utilisées dans le code de votre projet Unity :

    1. ID de l'application

    2. Secret de l'application

  4. Accédez à Oculusl'onglet correspondant dans la Configure Platformssection, puis saisissez votre identifiant Meta App et votre clé secrète d'application dans les champs prévus à cet effet.

3.2 Ajouter des définitions de produit

Pour chaque produit configuré dans Meta Dashboard :

  1. Allez àDesign -> Marketplace -> Products

  2. CliquezCreate Product

  3. Configurer le produit :

    1. ID de l'élément - identifiant interne brainCloud

    2. Titre - nom du produit

    3. Description - description du produit

    4. Type : Consommable, non consommable ou abonnement

    5. Monnaie virtuelle - monnaie virtuelle à offrir lors de l'achat (facultatif)

  4. Associer à la référence Meta :

    1. SousAdd Platform

    2. Sélectionnez la boutique Meta Horizon

    3. Saisissez la référence exacte (SKU) depuis le tableau de bord Meta.

    4. Associer l'identifiant produit brainCloud à la méta-référence.

      Important : Pour que la vérification réussisse, la référence SKU dans Meta Dashboard doit correspondre exactement à la référence SKU associée dans brainCloud.


Étape 4 : Exemples de code d’implémentation

4.1 Méthodes MetaPlatform

Principales responsabilités :

  • Initialiser le kit de développement logiciel (SDK) de la plateforme Meta

  • Vérifier les droits de l'utilisateur

  • Récupérer l'identifiant de l'utilisateur connecté et la preuve (nonce)

  • Lancer le processus de paiement

  • Gérer les rappels de succès/échec d'achat

Articles de code critiques :
Initialisation :

void Start() 
{
#if OCULUS_PLATFORM_SDK
Core.AsyncInitialize().OnComplete(m => {
if (m.IsError) {
Debug.LogError("Échec de l'initialisation de la plateforme Meta : " + m.GetError().Message);
} else {
Entitlements.IsUserEntitledToApplication().OnComplete(e => {
if (!e.IsError) {
GetLoggedInUser();
}
});
}
});
#else
// Mode simulation pour les tests sans SDK
RefreshAuthentication();
#endif
}

Flux d'achat :

public void LaunchPurchaseFlow(string sku) 
{
#if OCULUS_PLATFORM_SDK
IAP.LaunchCheckoutFlow(sku).OnComplete(m => {
if (!m.IsError) {
var purchase = m.Data;
// Émettre un événement de succès avec les données du reçu
OnPurchaseSuccess?.Invoke(
purchase.Sku,
purchase.ID,
_loggedInUserId
);
}
});
#endif
}

4.2 Méthodes BrainCloud

Principales responsabilités :

  • Initialiser le wrapper SDK brainCloud

  • Authentifier l'utilisateur avec ses identifiants Oculus

  • Appelez VerifyPurchase()avec metaHorizonl'identifiant du magasin

  • Gérer la réussite/l'échec de la vérification

Sections de code critiques : Authentification
Oculus

public void AuthenticateOculus(string userId, string nonce) 
{
_bc.AuthenticateOculus(userId, nonce, true,
(response, cbObject) => {
Debug.Log("Authentification Braincloud réussie");
OnStatusChanged?.Invoke("Authentification Braincloud réussie");
},
(status, code, error, cbObject) => {
Debug.LogError($"Échec de l'authentification : {status} {code} {error}");
}
);
}

Vérification d'achat
:

public void VerifyMetaPurchase(string sku, string transactionId, string metaUserId) 
{
// Construction des données de reçu pour le magasin metaHorizon
Dictionary<string, object> receiptData = new Dictionary<string, object>();
receiptData["userId"] = metaUserId;
receiptData["sku"] = sku;
receiptData["transactionId"] = transactionId;
receiptData["consumeOnVerify"] = true; // true pour les consommables

string receiptJson = JsonWriter.Serialize(receiptData);

_bc.AppStoreService.VerifyPurchase(
"metaHorizon", // ID de la boutique
receiptJson, // Données du reçu JSON
(response, cbObject) => {
Debug.Log("Achat vérifié ! Récompenses accordées.");
OnStatusChanged?.Invoke("Achat vérifié");
},
(status, code, error, cbObject) => {
Debug.LogError($"Échec de la vérification : {status} {code} {error}");
}
);
}

Étape 5 : Tests

5.1 Tests de l'appareil Quest

Prérequis :

  • Appareil Quest en mode développeur

  • L'utilisateur de test s'est connecté à Quest

  • Configuration de la connexion USB ou ADB sans fil

Étapes du test :

  1. Créer et déployer sur un appareil Quest

  2. Lancer l'application sur Quest

  3. Vérifier l'initialisation de Meta Platform dans les journaux

  4. Flux d'authentification de test

  5. Lancer un achat test

  6. Flux d'achat complet

  7. Vérifier les journaux de vérification brainCloud

  8. Consultez les récompenses accordées sur le portail brainCloud.

Conseil : Cette DllNotFoundException: ovrplatform assemblyerreur indique que la ovrplatformbibliothèque native n'est pas disponible pour l'environnement d'exécution actuel, car les bibliothèques natives de la plateforme Meta sont exclusivement compatibles avec les plateformes Windows et Android.

Pour un exemple de code complet, veuillez consulter notre dépôt GitHub Unity ici .

Avez-vous trouvé la réponse à votre question ?