iap_purchase_details(product_id, ds_map);
| Argument | La description |
|---|---|
| product_id | La chaîne d'identification du produit pour l'achat. |
| ds_map | Le ds_map qui va stocker les informations d'achat. |
Retours: N / A
Avec cette fonction, vous pouvez remplir un fichier créé précédemment ds_map avec un certain nombre de paires clé / valeur qui décrivent les détails d'achat du produit donné. Les données suivantes sont renvoyées dans la carte:
- " product " - La chaîne d'identification du produit.
- " order " - L'identifiant de commande unique, si disponible (tous les magasins ne le supportent pas).
- " jeton " - La chaîne de jeton d'achat, si disponible (tous les magasins ne le supportent pas).
- " payload " - Charge utile retournée par le magasin cible, lorsqu'elle est disponible (tous les achats ne l'exigent pas, et tous les magasins ne le supportent pas).
- " receipt " - La chaîne de réception, si disponible (tous les magasins ne le supportent pas).
- " response " - Une réponse (en nombre réel), si disponible, basée sur les valeurs de réponse de Google Play (voir ici pour plus de détails).
La carte contiendra également une autre clé, " status ", qui peut être utilisée pour vérifier l'état actuel de l'achat. Cette clé aura l'une des constantes suivantes en tant que valeur:
| Constant | La description |
|---|---|
| iap_available | Le produit est disponible ou le jeu attend le résultat d'un achat. |
| iap_failed | La tentative d'achat a échoué. |
| iap_purchased | Le produit a été acheté avec succès. |
| iap_canceled | L'utilisateur a annulé l'achat. |
| iap_refunded | L'achat a été annulé. |
Les notes suivantes sont liées aux clés "token" et "receipt" de la carte renvoyée en référence au magasin cible utilisé:
- Pour l' Amazon Store, les entrées d'achat "token" et "receipt" sont traitées comme une seule et même entité.
- Pour Google Play, il n'y a pas de données de «réception» et vous devez vérifier les achats via la «charge utile» retournée (si vous vérifiez via une charge utile, il est recommandé de ne pas utiliser de valeurs codées en dur). GameMaker Studio 2 vérifie toujours la signature de données renvoyée lors d'un achat effectué par Google Play à l'aide de la clé publique fournie dans l'onglet IAP des options de jeu.
- Pour Google Play, le «jeton» fourni avec un achat est destiné à être utilisé avec des achats consommateurs.
- Pour les magasins cibles iOS, MacOS, Windows 8 (N et JS) et Windows Phone des données de «réception» sont disponibles pour les achats, mais le «jeton» associé est généré en interne à des fins de développement.
NOTE: Le ds_map utilisé n'est pas créé par la fonction, ce qui signifie que vous devez le créer précédemment et le retirer de la mémoire lorsqu'il n'est pas utilisé avec la fonction appropriée.
var p_map = ds_map_create();
var p_index = ds_map_find_value(iap_data, "index");
iap_purchase_details(p_index, p_map);
if ds_map_find_value(p_map, "status") == iap_purchased
{
global.Gold += 100000;
}
ds_map_destroy(p_map);
Le code ci-dessus va créer un ds_map et ensuite le remplir avec les paires clé / valeur pour l'achat avec l'ID du produit stocké dans la variable "p_index", que nous obtenons de la spéciale iap_data ds_map qui est créé exclusivement dans l' événement IAP. Si la touche "status" renvoie la constante iap_purchased, il va ensuite définir une variable globale.