Подписка на iOS в приложении не возвращает чек в процессе производства
Так что это сводит меня с ума уже несколько дней. Мы реализовали подписку на покупки приложений в приложении для iOS, мы проверяем на нашем сервере, поэтому мы в основном делаем покупку, а затем отправляем квитанцию на наш сервер для проверки, и она сохраняется там в нашей базе данных. Происходит то, что при тестировании в песочнице все работает отлично, мы получаем квитанцию, проверяем на бэкэнде и сохраняем / обновляем возвращаемые данные, но когда мы опубликовали приложение в магазине приложений Мы столкнулись с серьезной проблемой, состоящей в том, что платеж проходит, и Apple взимает плату с пользователя, но не получает квитанцию.
Я пытаюсь получить квитанцию со следующим:
func loadReceipt() -> Data? {
guard let url = Bundle.main.appStoreReceiptURL else {
return nil
}
do {
let data = try Data(contentsOf: url)
return data
} catch {
print("Error loading receipt data: \(error.localizedDescription)")
return nil
}
}
func uploadReceipt(productId: String, completion: @escaping ErrorCompletion) {
if let receiptData = loadReceipt() {
let receipt = Receipt()
receipt.createdBy = User.current()
receipt.receipt = receiptData.base64EncodedString(options: [])
print(receipt.receipt)
validateReceipt(receipt: receipt.receipt!, productId: productId, completion: completion)
}
}
Я даже пытался использовать SKReceiptRefreshRequest()
если квитанция равна нулю и все еще не повезло.
У кого-нибудь есть ЛЮБОЕ представление о том, что происходит?
Заранее спасибо!