我正在尝试实现具有自动续订订阅的应用程序。用户应付费才能访问我的应用程序的所有功能。我已经使用 Parse 作为我的应用程序的后端。它为应用程序购买提供了一些API方法,但没有提到自动可再生类型。我唯一发现的是博客中大约两年前的线程,据说收据验证仅适用于可下载的购买。
我尝试使用文档中所说的"简单购买",它工作正常,但我无法弄清楚如何检查我的用户是否已经购买了订阅。
有谁知道有没有办法通过解析 API 做到这一点,或者这应该以另一种方式实现?
如前所述,收据验证仅内置于 Parse SDK 中,用于可下载内容,但创建一个云代码函数相当简单,该函数将应用程序收据发布到 iTunes Store 进行验证。以下是用于服务器端验证的 Apple 文档:使用 App Store 验证收据
下面是一个基本函数的样子:
Parse.Cloud.define('validateReceipt', function (request, response) {
var receiptAsBase64EncodedString = request.params.receiptData;
var postData = {
method: 'POST',
url: 'http://buy.itunes.apple.com/verifyReceipt',
body: { 'receipt-data': receiptAsBase64EncodedString,
'password': SHARED_SECRET }
}
Parse.Cloud.httpRequest(postData).then(function (httpResponse) {
// httpResponse is a Parse.Cloud.HTTPResponse
var json = httpResponse.data; // Response body as a JavaScript object.
var validationStatus = json.status; // App Store validation status code
var receiptJSON = json.receipt; // Receipt data as a JSON object
// TODO: You'll need to check the IAP receipts to retrieve the
// expiration date of the auto-renewing subscription, and
// determine if it is expired yet.
var subscriptionIsActive = true;
if (subscriptionIsActive) {
return response.success('Subscription Active');
}
else {
return response.error('Subscription Expired');
}
});
});
有关解释收据 JSON 的详细信息,请参阅收据字段。对于iOS 7 +来说,这相当简单,但是iOS 6及更早版本的自动续订订阅收据很乏味。