Error when trying to get Purchases from Android Publisher Service in a .Net Web API

google-api, google-play, oauth-2.0

Solution

I know this question is "a little" old, but I still want to try to answer for clarification.

var data = service.Purchases.Get("MYPACKAGE", "MYPRODUCT",
            "MYTOKEN")
            .Execute();

My guess would be that this part is not entirely right. The Purchases class does not have a Get method. Before that you have to specify either (in your case): `service.Purchases.Products.Get(...)` -> for consumable products

`service.Purchases.Subscriptions.Get(...)` -> for subscriptions

This answer assumes you are using V2. Hope it helps anyone who is stuck.

Problem

I have a web Api, which needs to validate purchases from Play Store. According to what I read in the google api documentation, I need to have a service account, and use its credentials to be authenticated, to be able to do what i want. I have the following code: ``` String serviceAccountEmail = "MYSERVICEACCOUNTEMAIL@developer.gserviceaccount.com"; var certificate = new X509Certificate2(@"C:\privatekey.p12", "notasecret", X509KeyStorageFlags.Exportable); ServiceAccountCredential credential = new ServiceAccountCredential( new ServiceAccountCredential.Initializer(serviceAccountEmail) { Scopes = new[] { "https://www.googleapis.com/auth/androidpublisher" } }.FromCertificate(certificate)); // Create the service. var service = new AndroidPublisherService(new BaseClientService.Initializer() { HttpClientInitializer = credential }); var data = service.Purchases.Get("MYPACKAGE", "MYPRODUCT", "MYTOKEN") .Execute(); ``` It throws the following exception ``` Google.Apis.Requests.RequestError Invalid Value [400] Errors [ Message[Invalid Value] Location[ - ] Reason[invalid] Domain[global] ] ``` I have NO IDEA of what can be causing it. I searched a lot, but I didn't find something really helpful. Any kind help will be really appreciated.

Original source

Related problems