我正在尝试获取用户通过其应用购买的微交易的购买/消费状态。用户授权它,并给我的服务器一个令牌,以知道该事务已被处理,现在我需要仔细检查它是否已经完成。为此,我认为我应该使用purchases.products.get,其Rest API建议我设置OAuth。对于服务器之间的通信,文档建议我使用Service Account,建议我使用Google API来处理JWT签名。
问题是我不知道如何从C#服务器设置purchases.products.get
请求。根据文档,我需要为要调用的API(service object)创建一个AndroidPublisherService。 From browsing the API,看来我可以创建GetRequest,它是带有正确参数的对象...但是如何实际将其发送给Google并获得响应?
var credential = GoogleCredential.FromFile(CRED_FILENAME);
var service = new AndroidPublisherService(
new Google.Apis.Services.BaseClientService.Initializer
{
HttpClientInitializer = credential,
ApplicationName = "UnityIAPTransactionHandler"
});
// What do I do with this???
new PurchasesResource.ProductsResource.GetRequest(service, PACKAGE_NAME, @"com.appname.coin_12000", @"Test");
答案 0 :(得分:0)
找到它:它不是Service上的函数,而是在新形成的请求对象上。我的代码现在看起来像这样:
var credential = GoogleCredential.FromFile(CRED_FILENAME);
service = new AndroidPublisherService(
new Google.Apis.Services.BaseClientService.Initializer
{
HttpClientInitializer = credential,
ApplicationName = "UnityIAPTransactionHandler"
});
var request = new PurchasesResource.ProductsResource.GetRequest(service, PACKAGE_NAME, @"com.astatos.coin_12000", @"Test");
var purchase = request.Execute();
它执行!尽管现在我必须找出其他错误,但我希望这也对其他人有所帮助。