IAP product details

  • Android

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • IAP product details

    Hallo gm-d,

    da ich jetzt das delta timing später mache, habe ich mich einmal an IAP (in APp-pruchases) gemacht. Läuft eigentlich alles super (für Leute die nicht wissen wie das geht, hier ein super Example von YOYO <HIER> ) jedoch würde ich jetzt gerne bei meinen Button die Preise aus den Shop anzeigen (weil wenn ich jetzt Dollar hinschreibe, sehen Leute die mit Euro zahlen was anderes). Da gibt es eine Variable namens "iap_product_details(purchase_id, ds_map)". Für pruchase_id steht die im Google playstore verwendete id, sagen wir "coindouble". In ds_map werden alle Information gespeichert. Dann muss ich es noch auslesen mit "ds_map_find_value(p_map, "price")" das würde dann so aussehen:

    GML-Quellcode

    1. ds1_map = ds_map_create();
    2. iap_product_details("coindouble", ds1_map);
    3. global.coindodubleprice=ds_map_find_value(ds1_map, "price")


    bei mehreren mache ich:

    GML-Quellcode

    1. ds1_map = ds_map_create();
    2. iap_product_details("coindouble", ds1_map);
    3. global.coindodubleprice=ds_map_find_value(ds1_map, "price")
    4. ds2_map = ds_map_create();
    5. iap_product_details("noads", ds2_map );
    6. global.noadsprice=ds_map_find_value(ds2_map , "price")


    Jedoch wird nichts angezeigt... also nicht einmal null. Hat irgendwer einen Schimmer was hier falsch ist? (Google spuckt wirklich nix aus)

    LG Afroman
  • Ich habe gerade iap_store_status abgefragt und anscheinend ist er nicht "avaible"! Denn es kommt bei den Button immer ein Fehler, dass die global.variable nicht existiert.
    Vielleicht hilft dir mal mein Code weiter:

    GML-Quellcode

    1. purchaseList=ds_list_create()
    2. //IAP 1
    3. purchasedouble = ds_map_create()
    4. ds_map_add(purchasedouble, "id" , "coindouble")
    5. ds_map_add(purchasedouble, "title" , "Coin double")
    6. //IAP 2
    7. purchasenoads = ds_map_create()
    8. ds_map_add(purchasenoads, "id" , "noads")
    9. ds_map_add(purchasenoads, "title" , "No ads")
    10. //IAP 3
    11. purchasecoin1 = ds_map_create()
    12. ds_map_add(purchasecoin1, "id" , "small_coinpack")
    13. ds_map_add(purchasecoin1, "title" , "Small coinpack")
    14. //IAP 4
    15. purchasecoin2 = ds_map_create()
    16. ds_map_add(purchasecoin2, "id" , "medium_coinpack")
    17. ds_map_add(purchasecoin2, "title" , "Medium coinpack")
    18. //IAP 5
    19. purchasecoin3 = ds_map_create()
    20. ds_map_add(purchasecoin3, "id" , "huge_coinpack")
    21. ds_map_add(purchasecoin3, "title" , "Huge coinpack")
    22. //IAP 6
    23. purchasecoin4 = ds_map_create()
    24. ds_map_add(purchasecoin4, "id" , "king_coinpack")
    25. ds_map_add(purchasecoin4, "title" , "King coinpack")
    26. ds_list_add(purchaseList, purchasedouble)
    27. ds_list_add(purchaseList, purchasenoads)
    28. ds_list_add(purchaseList, purchasecoin1)
    29. ds_list_add(purchaseList, purchasecoin2)
    30. ds_list_add(purchaseList, purchasecoin3)
    31. ds_list_add(purchaseList, purchasecoin4)
    32. iap_activate(purchaseList)
    33. ds_map_destroy(purchasedouble)
    34. ds_map_destroy(purchasenoads)
    35. ds_map_destroy(purchasecoin1)
    36. ds_map_destroy(purchasecoin2)
    37. ds_map_destroy(purchasecoin3)
    38. ds_map_destroy(purchasecoin4)
    39. ds_list_destroy(purchaseList)
    40. if (iap_is_purchased("coindouble"))
    41. {
    42. global.coindouble=true
    43. }
    44. if (iap_is_purchased("noads"))
    45. {
    46. global.noads=true
    47. }
    48. iap_restore_all()
    49. //PRICES
    50. if (iap_store_status() == "Available")
    51. {
    52. ds1_map = ds_map_create();
    53. iap_product_details("coindouble", ds1_map);
    54. global.coindoubleprice=string(ds_map_find_value(ds1_map, "price"))
    55. ds2_map = ds_map_create();
    56. iap_product_details("noads", ds2_map);
    57. global.noadsprice=ds_map_find_value(ds2_map, "price")
    58. ds3_map = ds_map_create();
    59. iap_product_details("small_coinpack", ds3_map);
    60. global.small_coinpackprice=ds_map_find_value(ds3_map, "price")
    61. ds4_map = ds_map_create();
    62. iap_product_details("medium_coinpack", ds4_map);
    63. global.medium_coinpackprice=ds_map_find_value(ds4_map, "price")
    64. ds5_map = ds_map_create();
    65. iap_product_details("huge_coinpack", ds5_map);
    66. global.huge_coinpackprice=ds_map_find_value(ds5_map, "price")
    67. ds6_map = ds_map_create();
    68. iap_product_details("king_coinpack", ds6_map);
    69. global.king_coinpackprice=ds_map_find_value(ds6_map, "price")
    70. ds_map_destroy(ds1_map)
    71. ds_map_destroy(ds2_map)
    72. ds_map_destroy(ds3_map)
    73. ds_map_destroy(ds4_map)
    74. ds_map_destroy(ds5_map)
    75. ds_map_destroy(ds6_map)
    76. }
    Alles anzeigen


    Es ist irgendwie ziemlich unlogisch... Es funktioniert alles, also auch das kaufen. Nur das auslesen nicht... ka
  • Ich habe gerade iap_store_status abgefragt und anscheinend ist er nicht "avaible"! Denn es kommt bei den Button immer ein Fehler, dass die global.variable nicht existiert.


    Wenn der store Status not_available ist, dann kann es eigentlich auch nicht zum Kauf kommen, ist die .apk denn im GooglePlay hochgeladen?
  • Hallo Fin,

    Wenn der store Status not_available ist, dann kann es eigentlich auch nicht zum Kauf kommen, ist die .apk denn im GooglePlay hochgeladen?


    Das ist ja das hoch interessante! ich kann Käufe tätigen und ich habe die .apk im google play store hochgeladen. Darum verstehe ich nicht ganz, was falsch daran ist. Ich habe das ganze im Create event, falls das jemandem weiterhilft...

    LG Afroman

  • Es ist irgendwie ziemlich unlogisch... Es funktioniert alles, also auch das kaufen. Nur das auslesen nicht... ka

    lol, kaufst du etwa deine eigenen Items?
    Kopiere dies in deine Signatur, um es in deiner Signatur zu haben.
    Achtung: Dieser Beitrag läuft ende des Monats ab, bitte lese ihn noch vor dem Monatswechsel...
    Nach langer zeit wieder im Forum aktiv :D
  • Wie gesagt, ich hab jetzt folgendes gemacht:

    GML-Quellcode

    1. if (iap_store_status() == "Available")
    2. {
    3. ds1_map = ds_map_create();
    4. iap_product_details("coindouble", ds1_map);
    5. global.coindoubleprice=string(ds_map_find_value(ds1_map, "price"))
    6. ds2_map = ds_map_create();
    7. iap_product_details("noads", ds2_map);
    8. global.noadsprice=ds_map_find_value(ds2_map, "price")
    9. ds3_map = ds_map_create();
    10. iap_product_details("small_coinpack", ds3_map);
    11. global.small_coinpackprice=ds_map_find_value(ds3_map, "price")
    12. ds4_map = ds_map_create();
    13. iap_product_details("medium_coinpack", ds4_map);
    14. global.medium_coinpackprice=ds_map_find_value(ds4_map, "price")
    15. ds5_map = ds_map_create();
    16. iap_product_details("huge_coinpack", ds5_map);
    17. global.huge_coinpackprice=ds_map_find_value(ds5_map, "price")
    18. ds6_map = ds_map_create();
    19. iap_product_details("king_coinpack", ds6_map);
    20. global.king_coinpackprice=ds_map_find_value(ds6_map, "price")
    21. ds_map_destroy(ds1_map)
    22. ds_map_destroy(ds2_map)
    23. ds_map_destroy(ds3_map)
    24. ds_map_destroy(ds4_map)
    25. ds_map_destroy(ds5_map)
    26. ds_map_destroy(ds6_map)
    27. }
    28. else
    29. {
    30. global.coindoubleprice="/"
    31. //USW
    32. }
    Alles anzeigen

    und tätsichlich wird nur "/" angezeigt. Ergo -> der store ist nicht avaible oder ich mach irgendwo irgendetwas falsch. Vielleicht habe ich auch ein Häckchen wo falsch gesetzt oder vielleicht funktioniert der Code erst nach der Veröffentlichung vom Spiel.

    LG Afroman
  • Erst nach Veröffentlichung des Spiels wird der Code auch nicht anders funktionieren als wenn das Spiel bereits in der Alpha/Beta Phase freigegeben ist. Was für mich komisch erscheint ist, dass der iap_store_status "not available" rausgibt, wie ich schon davor erwähnt habe, wenn du die .apk als Beta veröffentlichst und diese auch aus dem GooglePlay auf dein Testgerät runterlädst - sollte dein Code komplett funktionieren.

    Für mich ist allgemein sehr fragwürdig wie du In App Purchases machen kannst wenn dein Spiel keine Connection zum Store hat.


    Edit: Sandbox Modus weg!

    - Beta freigeben
    - groups.google.com >>> Testergruppe anlegen
    - in der Android Console bitte die Testergruppe adden
    - play.google.com/apps/testing/com.companyname.package zum installieren auf Testgeräten (dein package name bitte davor eintragen)
  • Erst nach Veröffentlichung des Spiels wird der Code auch nicht anders funktionieren als wenn das Spiel bereits in der Alpha/Beta Phase freigegeben ist. Was für mich komisch erscheint ist, dass der iap_store_status "not available" rausgibt, wie ich schon davor erwähnt habe, wenn du die .apk als Beta veröffentlichst und diese auch aus dem GooglePlay auf dein Testgerät runterlädst - sollte dein Code komplett funktionieren.

    Für mich ist allgemein sehr fragwürdig wie du In App Purchases machen kannst wenn dein Spiel keine Connection zum Store hat.


    Edit: Sandbox Modus weg!

    - Beta freigeben
    - groups.google.com >>> Testergruppe anlegen
    - in der Android Console bitte die Testergruppe adden
    - play.google.com/apps/testing/com.companyname.package zum installieren auf Testgeräten (dein package name bitte davor eintragen)


    Sandbox Modus ist weg. Was genau meinst du mit "BETA freigeben"? Einfach die APK im Sektor Beta hochladen? Habe ich gemacht! Ich habe eine Gruppe erstellt und die Gruppe auch hinzugefügt. Ich bekomme bei der Seite immer eine Fehlermeldung (404)... und ja, ich habe meine Packet daten hochgeladet... Ich glaube, ich werde einfach "BUY" hinschreiben, falls das nicht klappen sollte und in einem Update es vielleicht beheben...

    LG Afroman
  • Sandbox Modus ist weg. Was genau meinst du mit "BETA freigeben"? Einfach die APK im Sektor Beta hochladen? Habe ich gemacht! Ich habe eine Gruppe erstellt und die Gruppe auch hinzugefügt. Ich bekomme bei der Seite immer eine Fehlermeldung (404)... und ja, ich habe meine Packet daten hochgeladet... Ich glaube, ich werde einfach "BUY" hinschreiben, falls das nicht klappen sollte und in einem Update es vielleicht beheben...

    LG Afroman


    > Die apk in beta hochladen - gemacht;
    > Gruppe erstellt - gemacht
    > dein Googlekonto auf dem Telefon == Googlekonto in der GoogleGruppe?
    > GoogleGruppe zu den Testern hinzugefügt?
    > Dann den Link folgen und die .apk aufs Telefon über den Rechner installieren (kann ein Paar Stunden dauern bis der Link aktiv wird, also wie beim Final Release auch)
  • Hallo Fin,
    > Die apk in beta hochladen - gemacht;
    > Gruppe erstellt - gemacht
    > dein Googlekonto auf dem Telefon == Googlekonto in der GoogleGruppe?
    > GoogleGruppe zu den Testern hinzugefügt?
    > Dann den Link folgen und die .apk aufs Telefon über den Rechner installieren (kann ein Paar Stunden dauern bis der Link aktiv wird, also wie beim Final Release auch)


    Googlekonto in der GoogleGruppe = Yes
    GoogleGruppe zu den Testern hinzugefügt = Yes
    Welchen Link nun? play.google.com/apps/testing/com.ROSSGames.worm funktioniert noch immer nicht. Könnte es seien, dass ich die BETA Version "veröffentlichen" kann?! Das heißt, das sowohl Bilder usw. nicht fehlen dürfen. Falls dies der Fall ist, werde ich mich an dieses iPA erst ganz am Schluss setzten, immerhin ist es ja wirklich nebensächlich. Im Prinzip fehlt mir eigentlich nur ein Name vom Spiel, der mir nicht einfallen will... Naja, falls es so weit ist werde ich diesen Thread wieder ins Rollen bringen.

    LG Afroman (und danke Fin für deine Hilfsbereitschaft)