[résolu] Activation inApp purchase pour appli gratuite et déjà  diffusée

LeChatNoirLeChatNoir Membre, Modérateur
décembre 2011 modifié dans Apple Developer Programs #1
Salut les guss !

Voilà , je me lance dans l'in-app purchase pour mon appli.
Ohhh, rien de bien sophistiqué, juste la possibilité à  nos utilisateurs de faire un don pour supporter les dev futurs. A titre expérimental.

Alors voilà . J'ai passé pas mal d'étapes déjà  et je les partage ici avec vous :

* l'app ID doit être unique. Si vous avez un app ID avec une étoile dedans, faut en refaire un autre,

* dans iTunes Connect, "manage your application", vous devez avoir accès au bouton "Manage In-App purchases". Si vous le voyez pas, c'est que vous avez signé le contrat developper pour les appli gratuites et pas pour les payantes. Il faut aller dans "Contract, Tax & Banking" pour aller signer tout ce qu'il faut et saisir votre banque (ben oui, faut bien qu'Apple vous reverse les sous...). Le bouton apparaitra alors comme par magie  :D Et vous pourrez aller ajouter vos articles à  vendre.

* vous devez ensuite créer un compte de test. Dans "Manage User", on vous le proposera. Encore une fois, si vous n'avez pas signer le contrat pour les appli payantes, ça ne vous proposera pas le type de compte "test".

* vous voilà  fin prêt à  créer vos produit dans iTunes Connect, dans votre application, rubrique In-App. Là , c'est facile, un productID, une description, un prix, des traductions éventuelles (si besoin) et un screenshot pour la personne qui va valider votre produit.
Car oui, un produit In-App suit à  peu près le même circuit de validation qu'une appli, histoire que vous mettiez pas des images cochonnes de bouteille de Perrier citron nues par exemple... Le screenshot doit montrer une image de l'appli qui montre le produit (ou la fonctionnalité d'achat).

Pour nos tests, une simple création suffit. Pas besoin de soumettre le produit pour "Review" pour l'instant. Dès que le produit est créé, il est dispo dans l'espace de tests (sandbox).


* maintenant, vous pouvez implémenter le code dans votre appli. Là , je vous renvoie à  la doc et au net. A partir de là , vous pouvez tester dans le simulateur. Un peu partout sur le net, il est dit que c'est impossible depuis le simulateur. Et ben Apple a dû faire évoluer tout ça car maintenant, c'est possible. Bien sûr, c'est là  qu'il faut utiliser votre user de test  ::)

* je me suis heurté à  ce cas là  : dans le simu, tout est ok. Je passe donc sur device. Et là , c'est ko car on ne me demande jamais si je veux acheter mon produit ou de m'identifier.... Comme si la "transaction queue" moulinait dans le vide. Solution qui a march" pour moi : désinstallation de l'appli sur mon device et rebuild+run => tout est ok !

Voilà . Au départ, je râlais contre Apple (c'est une habitude chez moi  >:D) car je trouvais tout cela bien compliqué... Au final, en 1 jour et des brouettes, c'est en place. Pour une utilisation très restreinte de l'achat in-app certes (c'est juste un don) mais bon, quand même, faut le souligner, c'est pas si complexe que ça.

La preuve, je m'en suis sorti tout seul  ;)

Voilà , en espérant que mon expérience puisse vous servir, je vous salue !  o:)

+

Réponses

  • LeChatNoirLeChatNoir Membre, Modérateur
    décembre 2011 modifié #2
    <mode correction> C'est ici que je ralais  :P </mode correction>
  • LeChatNoirLeChatNoir Membre, Modérateur
    21:11 modifié #3
    Ah y est. J'ai fini le In-App 
    <3 <3 <3 <br />
    Enfin presque... Y a bien qques trucs à  finaliser encore... Mais la base y est.
    +
  • LonGi3LonGi3 Membre
    21:11 modifié #4
    Salut!

    Sur le device il faut que tu te déconnectes de l'app store (depuis l'app) et que tu restes déconnecté.
    Sinon à  savoir que si ton app est vendu sur plusieurs appstores différents (donc plusieurs pays différents), tu devras avoir un testeur par pays... (oui c'est embêtant mais c'est comme ça...).
    N'oublie pas de valider tes transactions sur les serveurs Apple (il y a 2 liens mais je ne me rappelle plus des adresses...) pour éviter les piratages.
    Tu es aussi responsable de sauvegarder l'historique des transactions pour pouvoir par la suite les rétablir si besoin. (sinon garde aux 1 étoiles et emails d'utilisateurs pas content).

    Voilà  en espérant que ça t'aidera.
  • LeChatNoirLeChatNoir Membre, Modérateur
    21:11 modifié #5
    dans 1323190953:

    Sinon à  savoir que si ton app est vendu sur plusieurs appstores différents (donc plusieurs pays différents), tu devras avoir un testeur par pays... (oui c'est embêtant mais c'est comme ça...).
    N'oublie pas de valider tes transactions sur les serveurs Apple (il y a 2 liens mais je ne me rappelle plus des adresses...) pour éviter les piratages.


    Slt,

    mon app est diffusée sur tous les stores... Je fais comment ? Bah... Faut pas tester partout si ?
    Et que veux tu dire par "valider tes transactions" ?

    +
  • LonGi3LonGi3 Membre
    décembre 2011 modifié #6
    dans 1323208820:

    dans 1323190953:

    Sinon à  savoir que si ton app est vendu sur plusieurs appstores différents (donc plusieurs pays différents), tu devras avoir un testeur par pays... (oui c'est embêtant mais c'est comme ça...).
    N'oublie pas de valider tes transactions sur les serveurs Apple (il y a 2 liens mais je ne me rappelle plus des adresses...) pour éviter les piratages.


    Slt,

    mon app est diffusée sur tous les stores... Je fais comment ? Bah... Faut pas tester partout si ?
    Et que veux tu dire par "valider tes transactions" ?

    +


    "Malheureusement il faut bien un testeur dans chaque pays" (citation d'un évangéliste Apple à  l'iOS 5 Tech Talk). Vu que je n'ai fais du in-app purchase sur un seul store, je ne sais pas trop comment ça se passe. Mais je suppose que tu testes déjà  sur ton store. Et vu que c'est le même code, ça devrait être bon sur les autres stores aussi. Tester sur tous les stores seraient plus pour vérifier les prix, meta-données localisés, etc.

    Sinon par valider tes transactions, je veux dire qu'une fois que le user aura acheté quelque chose dans ton store virtuel, tu reçois sur ton serveur un reçu signé par un certificat Apple. Ensuite, ce que je te conseille (c'est optionel mais à  ta place je le ferai), c'est de parser ton reçu pour y chercher la property "transactionReceipt" et de le faire vérifier en l'envoyer en format JSON à  https://buy.itunes.apple.com/verifyReceipt
    Tu recevras alors une réponse JSON que tu parseras pour y trouver la valeur de la clé "status". Si elle est égale à  0, c'est que c'est bon, tu peux ainsi débloquer le contenu que le user vient d'acheter.
    Voici la page de la doc qui t'explique tout ça en détails (et peut être de manière plus clair que moi  :P)
Connectez-vous ou Inscrivez-vous pour répondre.