如何提出有免费试用期的 IAP 购买请求?

How to make IAP purchase request with free trial period?

我正在为我的应用实施订阅模式,我准备好了一切。我创建了一个每月订阅产品和一个每年订阅产品。我还为每月产品添加了促销优惠。促销优惠是 1 周免费试用。

当我尝试购买包月产品时,它立即开始包月。我怎样才能先提供试用优惠?

let payment = SKPayment(product: MonthlyProduct)
SKPaymentQueue.default().add(payment)

此外,当我获取可用产品时,只有 2 个产品(每月和每年)。我知道包月产品下有免费试用优惠,但我找不到如何购买免费试用优惠。

我找到了如何付款请求订阅产品有试用期。我必须使用 SKPaymentDiscount 对象设置付款 paymentDiscount

let payment = SKPayment(product: product)
payment.paymentDiscount = SKPaymentDiscount(identifier: <String>, keyIdentifier: <String>, nonce: <UUID>, signature: <String>, timestamp: <NSNumber>)
SKPaymentQueue.default().add(payment)

在申请优惠之前,我们需要将 SKProductDiscount 转换为 SKPaymentDiscount。 SKPaymentDiscount 的 init 方法提供了一些线索,说明我们需要做什么:

  • 标识符 — 订阅报价的标识符
  • keyIdentifier — 用于签署要约的订阅密钥的标识符
  • nonce — 与签名一起生成的一次性值
  • signature — 签名本身
  • timestamp — 生成签名时的时间戳。

你可以找到完整的过程this tutorial