InApp Purchase : vérifier le receipt sur un serveur
Hello,
Jusqu'à présent, j'utilisais le Apple Host Content pour mes achats InApp. Du coup, c'était simple. Quand le paiement était validé, dans la notification, je pouvais déclencher un simple download depuis un objet retourné dans la transaction.
Je vais changer ça pour plus de souplesse (notamment, la possibilité d'offrir des Items).
J'ai donc regardé comment faire et voici ma synthèse :
=> chopper le receipt de la transaction sur l'appli
=> l'envoyer à un serveur en POST
=> depuis mon serveur, un bout de php me permettra de me connecter aux serveur de l'appleStore et de valider (ou pas) le receipt
=> si validé, je délivre la matière.
Bon. C'est plutot un bon début. Mais... Car il y a un mais...
Jusqu'à iOS 7, quand on recevait la notification comme quoi le paiement était ok, on avait le receipt attaché à la transaction. Mais depuis, y a plus...
Donc la question est simple : comment on envoie ce fameux receipt à son serveur ?
Réponses
J'ai trouvé un truc du genre :
Mais je ne vois pas le rapport avec la transaction fraichement effectuée...
Du coup, j'ai un doute...
ou alors... ou alors... c'est à mon serveur de se débrouiller ?
Genre :
=> mon appli appelle un WS de mon serveur pour downloader le contenu et transmet l'id de la transaction + le receipt trouvé dans le bundle de l'appli
=> le WS se connecte aux serveur de l'appleStore en envoyant le receipt et check dans le retour qu'il y a bien un achat correspondant à la transaction id
=> si validé, je délivre la matière.
Un truc comme ça ?
[edit] oui, c'est bien un truc comme ça. En fait, le receipt qui est dans le bundle de l'application a bien la trace de tous les achats InApp (et bien plus). Je posterai mon code quand j'aurai fait le tour.
[/edit]