Восстановление автоматически возобновляемых подписок после

lithium спросил: 14 ноября 2017 в 06:52 в: ios

Мы используем автоматически обновляемые подписки, и они работают нормально, за исключением одного случая.

Если пользователь сбросит свой iPhone до заводских настроек, он не сможет восстановить автоматически возобновляемую подписку. в нашем приложении (или, кажется, у нас есть только два таких случая).

Мы используем SwiftyStoreKit, но я считаю, что с нашей стороны есть логическая ошибка.

Прямо сейчас мы восстанавливаем покупки следующим образом:

func checkOldSubscriptions()->Bool {     //validator
     let appleValidator = AppleReceiptValidator(service: .production, sharedSecret: ss)      for i in 0..<products.count {           //checking every available product in receipt
           SwiftyStoreKit.verifyReceipt(using: appleValidator, completion: { (result) in
               switch result {
                   case .success(let receipt):                let purchaseResult = SwiftyStoreKit.verifySubscription(
                    type: .autoRenewable, 
                    productId: products[i].name,
                    inReceipt: receipt)                    switch purchaseResult {
                        case .purchased(let expiresDate):
                        print("Product is valid until \(expiresDate)")       ...
       }
       }

Моя гипотеза состоит в том, что после сброса у нас просто нет чека для подтверждения, и я должен получить его напрямую. Это довольно сложно проверить на устройстве, потому что, честно говоря, у меня нет настоящего тестового устройства, которое было бы легко убить для меня.

Поэтому я хочу добавить что-то подобное (обновить чек вручную прежде чем пытаться проверить это):

SwiftyStoreKit.verifyReceipt(using: appleValidator, forceRefresh: true) { result in
    switch result {
    case .success(let receipt):

Имеет ли это какой-то смысл? Это поможет?


0 ответов