自动续订订阅续订?

auto-renewable subscription renew?

我是自动续订订阅的新手。 我已经实施了订阅。我的问题是,如果用户第一次购买订阅,应用程序将会收费。但无论如何,他的第二笔付款因为任何原因都没有发生。我怎么知道支付不成功和/或支付成功?我按照 WWDC 教程进行了应用内购买。使用 storekit 2 实现。

func purchase(_ product: Product) async throws -> Transaction? {
        //Begin a purchase.
        let result = try await product.purchase()
        
        switch result {
        case .success(let verification):
            let transaction = try checkVerified(verification)
            print(transaction)
            print(transaction.expirationDate as Any)
            
           
            
            //Deliver content to the user.
            await updatePurchasedIdentifiers(transaction)
            
            if !purchasedIdentifiers.isEmpty{
                IAP.premiumEndDate = transaction.expirationDate
            }
            //Always finish a transaction.
            await transaction.finish()
            
            return transaction
        case .userCancelled, .pending:
            return nil
        default:
            return nil
        }
    }

在 IAP 的 apple 中,针对每笔交易生成收据,其中包含大量信息,例如用于验证购买的数字签名、交易历史(包括成功和不成功的交易)、订阅的当前状态、到期日等等.

您必须通过从 Apple 服务器获取所有这些信息来验证收据。您可以查看 this 了解如何获取收据数据。

为了验证,我们可以使用 2 种技术

  1. On-device 验证(如果您没有在应用中使用服务器,则在本地设备上进行验证)
  2. Server-side 验证(推荐)

您可以阅读有关选择收据验证技术的更多信息here

当您获取收据时,它会给您一个 receiptData,您将其转换为 base64EncodedString 并点击 API收据.

对于 SandBox 使用 https://sandbox.itunes.apple.com/verifyReceipt and for production use https://buy.itunes.apple.com/verifyReceipt。传递给它两个参数 Receipt base64String 和 App-Specific Shared Secret 你可以在 in-app 购买的右上角的 App store 上找到 App-Specific Shared Secret列表。

您将收到包含有关订阅的所有信息的回复。

查看来自 WWDC 2018this 标题为 Engineering Subscriptions 的视频。这个视频对理解订阅很有帮助。