Buenas noches a todos, en esta ocasión necesito su ayuda!
En este momento estoy implementando las compras integradas a la aplicación en Game Maker, sin embargo a la hora de querer comprar el producto me avisa que hubo un Error, y me dice: El artículo que solicitaste no está disponible para la compra. No obstante todo está al día en la consola de desarrolladores, (los productos están activados y la aplicación publicada).
Este es el código que estoy utlizando:
Create Event - Obj_Control_Game (Es el primer código que se ejecuta en todo el juego) Carga y activa los productos.
// Cargar y Activar los productos.
var productList = ds_list_create();
var pVidas = ds_map_create();
ds_map_add(pVidas, "id", "deadfish_vida");
ds_map_add(pVidas, "title", "Continua el juego x 10");
//ds_map_add(pVidas, "type", "Durable");
var pRayo = ds_map_create();
ds_map_add(pRayo, "id", "deadfish_rayo");
ds_map_add(pRayo, "title", "Truenos x 5!");
//ds_map_add(pArma, "type", "Durable");
var pTiempo = ds_map_create();
ds_map_add(pTiempo, "id", "deadfish_tiempo");
ds_map_add(pTiempo, "title", "Detén el tiempo 3 segundos x 10");
//ds_map_add(pTiempo, "type", "Durable");
ds_list_add(productList, pVidas);
ds_list_add(productList, pRayo);
ds_list_add(productList, pTiempo);
iap_activate(productList);
ds_map_destroy(pVidas);
ds_map_destroy(pRayo);
ds_map_destroy(pTiempo);
ds_list_destroy(productList);
Y el código para comprar los productos está separado en 2, uno mouse_check_Left_pressed y un IAP Event en el objeto de compra de un producto X
Mouse_check_left_pressed en el objeto de compra de un producto X
if(room == Room_Final){
if(mouse_y >= 554 and mouse_y <= 786){
// Tiempo.
if(mouse_x >= 18 and mouse_x <= 157){
var product = deadfish_tiempo; comprar = 1;
// Vidas.
}else if(mouse_x >= 168 and mouse_x <= 311){
var product = deadfish_vida; comprar = 1;
// Arma
}else if(mouse_x >= 322 and mouse_x <= 459){
var product = deadfish_rayo; comprar = 1;
}
}
}else if(room == Room_Game){
if(mouse_y >= 319 and mouse_y <= 550){
// Tiempo.
if(mouse_x >= 20 and mouse_x <= 158){
var product = deadfish_tiempo; comprar = 1;
// Vidas.
}else if(mouse_x >= 168 and mouse_x <= 311){
var product = deadfish_vida; comprar = 1;
// Rayo
}else if(mouse_x >= 322 and mouse_x <= 459){
var product = deadfish_rayo; comprar = 1;
}
}
}
if(comprar){
audio_play_sound(sound_click,1,0);
comprar = 0;
show_message(product);
if(iap_status() == iap_status_available){
iap_acquire(string(product), ""); // Evento A.
}else{
if(idioma == "en"){
show_message_async("Store is not available.");
}else if(idioma == "es"){
show_message_async("La tienda no está disponible.");
}
}
}
IAP Event en el objeto de compra de un producto X
var val = ds_map_find_value(iap_data, "type");
switch(val){
case iap_ev_purchase:
//
show_message('iap_ev_purchase');
var map = ds_map_create();
var purchase_id = ds_map_find_value(iap_data, "index");
//
show_message(purchase_id);
iap_purchase_details(purchase_id, map);
//
show_message(ds_map_find_value(map, "status"));
if(ds_map_find_value(map, "status") == iap_purchased){
var product_id = ds_map_find_value(map, "product");
iap_consume(product_id);
}
ds_map_destroy(map);
break;
case iap_ev_consume:
var product_id = ds_map_find_value(map, "product");
if(ds_map_find_value(iap_data, "consumed")){
switch(product_id){
case deadfish_vida:
global.vidas += 10; // Aumentar la cantidad de vidas.
break;
case deadfish_tiempo:
global.tiempo += 10; // Aumentar la cantidad de vidas.
break;
case deadfish_rayo:
global.rayo += 5;
break;
}
}
break;
}
if(file_exists(working_directory + 'tienda.sav')){
file_delete(working_directory + 'tienda.sav');
}
ini_open(working_directory + 'tienda.sav');
ini_write_real("tiempo","KIREOJ5E2",tiempo);
ini_write_real("vidas","kjhwep235",vidas);
ini_write_real("rayo","5i92ghjr3YHY",rayo);
//ini_write_real("municion","5i92ghjr3YHY",municion);
ini_close();
Cuando pueda solucionar este problema me tomaré el tiempo en escribir una guía para que no se traben como yo lo estoy :(
Cuando te da ese error es porque estás accediendo a la compra con el mismo usuario que usas en la consola developers. Prueba a hacer la compra con otro usuario Google. Si está bien el código funcionará sin problema.