检查用户是否具有有效的自动续期订阅,并已使用 Parse iOS SDK



我正在尝试实现具有自动续订订阅的应用程序。用户应付费才能访问我的应用程序的所有功能。我已经使用 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及更早版本的自动续订订阅收据很乏味。

最新更新