Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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 = "[email protected]";

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.

like image 818
fciancio Avatar asked Feb 13 '14 14:02

fciancio


1 Answers

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.

like image 61
MattJ Avatar answered Nov 06 '22 04:11

MattJ