【问题标题】:Error when trying to get Purchases from Android Publisher Service in a .Net Web API尝试从 .Net Web API 中的 Android Publisher Service 获取购买时出错
【发布时间】:2014-03-12 11:35:54
【问题描述】:

我有一个网络 API,需要验证从 Play 商店购买的内容。根据我在 google api 文档中阅读的内容,我需要有一个服务帐户,并使用其凭据进行身份验证,才能做我想做的事。 我有以下代码:

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();

抛出以下异常

Google.Apis.Requests.RequestError
Invalid Value [400]
Errors [
Message[Invalid Value] Location[ - ] Reason[invalid] Domain[global]
]

我不知道是什么原因造成的。我搜索了很多,但我没有找到真正有用的东西。任何善意的帮助将不胜感激。

【问题讨论】:

标签: oauth-2.0 google-api google-play


【解决方案1】:

我知道这个问题“有点”老了,但我还是想试着回答一下。

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

我的猜测是这部分并不完全正确。 Purchases 类没有Get 方法。在此之前,您必须指定(在您的情况下): service.Purchases.Products.Get(...) -> 消耗品

service.Purchases.Subscriptions.Get(...) -> 用于订阅

此答案假设您使用的是 V2。希望它可以帮助任何被卡住的人。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-05
    • 1970-01-01
    • 1970-01-01
    • 2014-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-14
    相关资源
    最近更新 更多