Auch wenn wir den von Apple in ihrer Dokumentation (von oben nach unten) bereitgestellten Richtlinien befolgt haben, erhalten wir immer den gleichen Fehler, was ist, was ist, was ist. dass die "Signatur ungültig ist". < /p>
(
Code: Select all
"Error: The operation couldn’t be completed. (SKErrorDomain error 12.)"< /code> < /p>
Erwähnungen: < /p>
[*] Die Signatur wurde auf unserer Serverseite implementiert < /li>
Die Signatur wird verifiziert, um gültig zu sein. li>
Auf der Benutzeroberfläche haben wir eine Schaltfläche zum Kaufangebot
Die Tests wurden mit Sandbox -Konten durchgeführt (Dev & TestFlight Builds) < /li>
< /ul>
Hier ist die grundlegende Methode, um das Angebot anzuwenden: < /p>
func proceedToApplyOffer(signatureResult: PromotionalOfferSignatureResponse, username: String, completion: @escaping ((_ purchaseResult: Result) -> ())) {
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")
}
}< /code>
< /div>
< /div>
< /p>
Ich bin mir bewusst, dass diese Frage bereits gestellt wurde (ich habe sie alle gelesen ), aber sie hatten keine Antwort und ich hoffe, diese wird eine haben, da ich zu dem Schluss kam, dass selbst die Fragen, die im Apple.Developer Forum gestellt wurden Idee
Danke < /p>