繁体   English   中英

将应用内购买链接到用户Apple帐户

[英]Link an in-app purchase to user apple account

我正在寻找一种方法将应用内购买(不可更新的订阅)链接到用户苹果帐户,因为我的应用程序没有帐户系统,显然我希望用户保留他的订阅。

我读到我们无法获得Apple ID,但我认为有一种方法可以实现,因为大多数iOS应用都可以使用您的Apple帐户保存数据。

谢谢你的回答。

如果您没有自己的帐户系统(用户可以登录等),您可以从购买收据中检查用户购买的应用程序:

https://developer.apple.com/library/ios/releasenotes/General/ValidateAppStoreReceipt/Introduction.html

从SDK获取AppleID等个人信息是不可能的。

您应该自己在应用中跟踪已购买的产品。 我通常使用[[NSUserDefaults standardUserDefaults] setBool:YES forKey:productIdentifier]

当您的用户重新安装您的应用或购买新设备时,就会出现问题。 在这种情况下,您必须实施一种方法来恢复购买的产品。

应用程序内购买程序指南指出,实现此目的的一种方法是调用[[SKPaymentQueue defaultQueue] restoreCompletedTransactions] 这会向App Store发送请求以恢复所有应用已完成的交易。

然后paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions将调用您的事务观察者的paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions ,并且transactions包含已恢复的产品。 我的功能通常看起来像这样:

- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions {
    for (SKPaymentTransaction * transaction in transactions) {
        switch (transaction.transactionState)
        {
            case SKPaymentTransactionStatePurchased:
                [self completeTransaction:transaction];
                break;
            case SKPaymentTransactionStateFailed:
                [self failedTransaction:transaction];
                break;
            case SKPaymentTransactionStateRestored:
                [self restoreTransaction:transaction];
            default:
                break;
        }
    };
}`

restoreTransaction完成恢复过程(提供内容,更新NSUserDefaults等)。

对于非续订订阅,您必须在某处手动存储到期日期,因为Apple不会对其进行非续订。

我在我的一个应用程序中实现了这个功能,在订阅后,我曾经在服务器上存储过期日期,应用程序将在访问付费功能时检查过期日期。

如果发现过期,应用会再次要求购买订阅。

参考链接: https//developer.apple.com/library/mac/documentation/LanguagesUtilities/Conceptual/iTunesConnectInAppPurchase_Guide/Chapters/CreatingInAppPurchaseProducts.html#//apple_ref/doc/uid/TP40013727-CH3-SW1

https://www.progressconcepts.com/blog/non-renewing-subscription-app-purchases-ios/

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM