Транзакция по оплате покупки в приложении не работает - PullRequest
0 голосов
/ 05 мая 2020

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

Ниже это весь соответствующий код ...

import UIKit
import QuartzCore
import StoreKit

class ViewController: UIViewController, SKPaymentTransactionObserver {



    let productID = "com.domain.app.purchase"


    override func viewDidLoad() {
        super.viewDidLoad()

        SKPaymentQueue.default().add(self)
    }


    var packsUnlocked = false



    @IBAction func selectPack1(_ sender: UIButton) {


        if SKPaymentQueue.canMakePayments() {
            let paymentRequest = SKMutablePayment()
            paymentRequest.productIdentifier = productID
            SKPaymentQueue.default().add(paymentRequest)
            print("Initiating Transaction")
        } else {
            print("No Purchased")
        }


        if packsUnlocked == false {
            print("It's locked, ‘Pack 1’ not enabled")
        } else {
            print(“Utilize Purchase”)
            //this is where you place code to use the purchased ‘Pack 1’
        }


    }



    func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
        for transaction in transactions{
            if transaction.transactionState == .purchased {
                packsUnlocked = true
                print("Transaction Successful")
                } else if transaction.transactionState == .failed {
                    print("Transaction Failed")
                    }
            }

        }

}

Однако всякий раз, когда я запускаю код и нажимаю кнопку, все, что я получаю, это следующие выходные данные в отладчике:

"
Initiating Transaction
It's locked, 'Pack 1' not enabled
Transaction Failed
"

Это мой первое приложение, и я никогда раньше не настраивал тестер песочницы, поэтому я не уверен, проблема в коде или в моей настройке App Store Connect.

Спасибо - я был застрял на этом слишком долго, так что любая помощь БОЛЬШЕ приветствуется.

1 Ответ

1 голос
/ 13 мая 2020

Вам необходимо протестировать покупки в приложении на реальном устройстве в среде песочницы.

Вот документация Apple по нему, но я также могу помочь вам.

https://developer.apple.com/documentation/storekit/in-app_purchase/testing_in-app_purchase_transactions

Основные шаги:

  1. Создайте тестовую или тестовую учетную запись пользователя в App Store Connect.

  2. Для iOS 12 или новее - не выходите из App Store; просто создайте и запустите свое приложение из Xcode. Учетные записи песочницы хранятся отдельно, и вы можете управлять своей учетной записью песочницы прямо на устройстве в настройках. (Вы должны работать на подключенном устройстве.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...