fci*_*cio 10 google-api oauth-2.0 google-play
我有一个网络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();
Run Code Online (Sandbox Code Playgroud)
它抛出以下异常
Google.Apis.Requests.RequestError
Invalid Value [400]
Errors [
Message[Invalid Value] Location[ - ] Reason[invalid] Domain[global]
]
Run Code Online (Sandbox Code Playgroud)
我不知道可能导致它的原因.我搜索了很多,但我找不到真正有用的东西.任何善意的帮助将非常感激.
我知道这个问题“有点”旧,但我仍然想尝试回答以澄清。
var data = service.Purchases.Get("MYPACKAGE", "MYPRODUCT",
"MYTOKEN")
.Execute();
Run Code Online (Sandbox Code Playgroud)
我的猜测是这部分不完全正确。Purchases 类没有 Get 方法。在此之前,您必须指定(在您的情况下):
service.Purchases.Products.Get(...)-> 用于消费品
service.Purchases.Subscriptions.Get(...) -> 订阅
此答案假定您使用的是 V2。希望它可以帮助任何陷入困境的人。
| 归档时间: |
|
| 查看次数: |
1529 次 |
| 最近记录: |