Skip to content

In the callback of “restorePurchases”, verifying that the purchase always returns "notPurchased" #644

@nenhall

Description

@nenhall

Bug Report

I also encountered the same problem, and the product type is: nonConsumable; it can be verified during normal purchase, and every time the purchase is verified through restorePurchases, it will return notPurchased;
The same operation, verify that there is no problem with autoRenewable;

The following code is not a complete code, it is my approximate operation at the time

SwiftyStoreKit.restorePurchases(atomically: true, applicationUsername: "") { results in
            let successPurchases = results.restoredPurchases
            successPurchases.forEach { purchase in
                SwiftyStoreKit.verifyReceipt(using: AppleReceipt, forceRefresh: forceRefresh) { verifyReceiptResult in
                  switch verifyReceiptResult {
                case .success(let receiptInfo):
                    switch product.type {
                    case .nonConsumable:
                        let verifyPurchase = SwiftyStoreKit.verifyPurchase(productId: product.rawValue, inReceipt: receiptInfo)
                        switch verifyPurchase {
                        case .purchased(let item):
                            appendLog("✅","purchased:", product.rawValue)
                            
                        case .notPurchased:
                            appendLog("⚠️","notPurchased:", product.rawValue)
                        }
                    }
                }
            }
       }
 }

To Reproduce
Steps to reproduce the behavior:
Step 1 : Call “restorePurchases()” method
Step 2 : In the callback of restorePurchases(completion: ...) method, -> Call verifyReceipt(using: ...) method, and return case .success( receiptInfo ), -> Call verifyPurchase(productId: ...) method verifying that the purchase
Step 3 : When the product type is nonConsumable, always return "notPurchased"

Additional : In the callback of restorePurchases(completion: ...),print results.restoredPurchases, It is able to see the corresponding commodity purchase record。

Expected behavior
Able to restore purchase successfully,Actually it is a successfully purchased product。

Platform Information

  • OS: macOS 10.15、macOS11.x,
  • Purchase Type: non-consumable
  • Environment: [sandbox, production]
  • SwiftyStoreKit version: 0.16.3

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions