在 ios 获取可再生应用产品购买的收据信息

Get receipt information of renewable in app product purchase in ios

如何获取ios中可更新的应用内产品的最新收据信息,以及如何查看收据是否过期? 我的代码是: - 获取收据

            -(void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray<SKPaymentTransaction *> *)transactions
            {
                hide_HUD
                SKPaymentTransaction *transaction = transactions.lastObject;
                switch (transaction.transactionState) {
                    case SKPaymentTransactionStatePurchased:
                    {
                        [[SKPaymentQueue defaultQueue]finishTransaction:transaction];
                        NSLog(@"Order id ======>> %@",transaction.transactionIdentifier);
                        NSData *recData = [NSData dataWithContentsOfURL:[[NSBundle mainBundle] appStoreReceiptURL]];
                        NSString* receiptString = [[NSString alloc] initWithData:recData encoding:NSUTF8StringEncoding];

                        [self getReceiptFromAppStore:recData Transaction:transaction isBackground:NO];
                        break;
                    }

                    case SKPaymentTransactionStateFailed:
                        NSLog(@"Purchase failed ");
                        break;

                    case SKPaymentTransactionStateRestored:
                        [[SKPaymentQueue defaultQueue]finishTransaction:transaction];
                        break;

                    default:
                        //NSLog(@"Purchase failed ");
                        break;
                }
            }

我有收据,但我不知道如何从收据中获取数据以及如何使用它来防止用户转到应用程序的主页。

请仔细阅读收据字段,您将获得所有信息,如过期、被苹果取消、账单信息、取消等。

Link

您必须访问 latest_receipt_info 数组中的最新对象并检查字段 expires_date

订阅的到期日期,以自 1970 年 1 月 1 日以来的毫秒数表示,00:00:00 GMT。

ASN.1 字段类型 1708

ASN.1 字段值 IA5STRING,解释为 RFC 3339 日期

JSON 字段名称 expires_date

JSON 字段值字符串,解释为 RFC 3339 日期

此密钥仅适用于自动续订订阅收据。使用此值来标识订阅续订或过期的日期,以确定客户是否应该访问内容或服务。验证最新收据后,如果最新续订交易的订阅到期日期是过去的日期,则可以安全地假设订阅已过期。