【问题标题】:How to make IAP purchase request with free trial period?如何在免费试用期内提出 IAP 购买请求?
【发布时间】:2020-01-03 21:15:53
【问题描述】:

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

当我尝试购买包月产品时,它会立即开始包月。我如何提供先试用优惠?

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

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

【问题讨论】:

  • 免费试用不会同时拥有每月和每月。您只需每月免费试用。用户购买该产品并且计费延迟一周。如果他们在一周内取消,那么他们永远不会被计费,并且订阅不会在一周后续订。所有三个订阅都在同一个组中吗?
  • 我有一个月度订阅产品,我为此月度产品添加了免费试用优惠。我认为您没有理解我的要求,或者您不知道该怎么做。
  • 如果您已将免费试用添加到现有的月度产品中,那么用户只是购买了月度产品,直到免费试用期结束后才会向他们收费
  • 我知道,但我问如何将优惠应用于付款请求。我找到了它并写在下面的答案。感谢您的帮助。
  • 我的问题没有答案,但有人在没有任何评论或反对的情况下否决了这个问题。真的很难理解。

标签: ios swift in-app-purchase subscription


【解决方案1】:

我找到了如何在试用期内进行付款请求订阅产品。我必须使用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 方法提供了一些线索来说明我们需要什么来实现这一点:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-26
    • 2012-12-01
    相关资源
    最近更新 更多