web-dev-qa-db-fra.com

Comment vérifions-nous Android reçu de facturation dans l'application côté serveur?

J'implémente la facturation via l'application dans un jeu Android et nous voulons utiliser un serveur pour stocker les informations d'achat.

Selon ce que j'ai compris jusqu'à présent, Android Market renverra un rappel à l'application sous la forme d'un récepteur de diffusion sur le statut d'achat. Mais puisque nous conservons les informations de transaction sur le serveur, mon l'application doit effectuer une demande de publication http et mettre à jour mon serveur. Il est très probable que cette demande de publication http puisse être imitée manuellement par un pirate. Comment puis-je valider cela Android informations de réception du marché de mon code serveur?

Existe-t-il un rappel Google Checkout sur mon serveur? Ou existe-t-il un moyen de valider la réponse IAB fournie par le client http est authentique et c'est un achat effectué dans mon application uniquement!

Sur le Apple IOS processus IAP, ils ont une API Web de validation @ https: //sandbox.iTunes .Apple.com/verifyReceipt pour lesquels nous pouvons passer

req.method = URLRequestMethod.POST;
req.data = "{\"receipt-data\" : \""+ t.receipt +"\"}";

et il indique si le reçu est correct ou non. Avons-nous quelque chose comme ça pour Android?

30
Gopinath

Mise à jour : vous pouvez utiliser la méthode getPurchases() pour récupérer les achats "non consommés", comme expliqué dans la documentation du développeur:
http://developer.Android.com/google/play/billing/billing_reference.html#getPurchases

Réponse originale (maintenant obsolète)

L'API Google Checkout est obsolète. Vous devez maintenant utiliser l'API du statut d'achat.

Si vous prévoyez d'utiliser l'API du statut d'achat, le lien ci-dessus mentionne ces limitations:

  • Vous pouvez utiliser l'API pour vérifier le statut des articles individuels uniquement - les demandes groupées de statut de commande ne sont pas prises en charge pour le moment.
  • Vous pouvez rechercher les détails des commandes passées le 12 juin 2013 ou après, mais pas les commandes passées plus tôt.
  • Vous pouvez interroger les achats de tout type d'élément effectués avec l'API In-app Billing v3, ou les achats d'éléments gérés effectués avec In-app Billing v1 et v2. Vous ne pouvez pas utiliser l'API du statut d'achat pour interroger les achats d'articles non gérés effectués avec la facturation via l'application v1 ou v2.
23
Dan J

EDIT: cette réponse est obsolète, voir la réponse de Dan J.

Il n'y a pas de rappel, mais Google Checkout dispose d'une API. Vos réponses sont ici .

3
Seva Alekseyev

Ceci est un ancien poste, mais j'espère aider les autres.

Il existe un moyen de valider les achats côté serveur, vous devez utiliser cette API de repos.

https://developers.google.com/Android-publisher/api-ref/purchases/products/get