首先,我们通过免费试用(介绍性优惠)实施了基本订阅,并且一切顺利。之后,我们实现了 Promotional Offer
,问题如下:
即使我们遵循了 Apple 在他们的文档中提供的指南(从上到下),我们也总是会遇到同样的错误,即“签名无效”。
("Error: The operation couldn’t be completed. (SKErrorDomain error 12.)"
提及:
Purchase Offer
的按钮,当点击该按钮时,Apple 的底部模式会正确显示,价格与报价一致swift (5)
和 SwiftyStoreKit
来处理购买。以下是申请优惠的基本方法:
func proceedToApplyOffer(signatureResult: PromotionalOfferSignatureResponse, username: String, completion: @escaping ((_ purchaseResult: Result<PurchaseDetails>) -> ())) {
if #available(iOS 12.2, *) {
self.getAppleProducts() {
productsResult in
// Get the apple products in order to be able to create the discount object
switch productsResult {
case .success(products: let products):
// Create the discount object with which the purchase will be made
guard let monthlyProduct: SKProduct = products.first(where: { $0.productIdentifier == self.monthlyProductIdentifier}) else { return }
let discount = SKPaymentDiscount(identifier: self.promotionalOfferIdentifier, keyIdentifier: self.keyIdentifier, nonce: signatureResult.nonce, signature: signatureResult.signature, timestamp: NSNumber(value: signatureResult.timestamp))
let swiftyDiscount = PaymentDiscount(discount: discount)
self.paymentService.purchaseProductWithDiscount(product: monthlyProduct, username: username, discount: swiftyDiscount) {
result in
switch result {
case .error(error: let skError):
completion(.error(skError))
case .success(purchase: let purchaseDetails):
completion(.success(purchaseDetails))
}
}
case .error(error: let error):
completion(.error(error))
}
}
}
else {
debugPrint("Not available on current OS version")
}
}
我知道之前有人问过这个问题(我都读过),但他们没有任何答案,我希望这个会有答案,因为我得出的结论是,即使是发布在apple.developer 论坛仍未得到答复。 我将不胜感激任何帮助,任何想法 谢谢