0
我正在嘗試測試我的應用內購買,並且當我去購買它時,我會一遍又一遍地收到登錄框。她是我的助手連續登錄對話框進行沙箱測試
import Foundation
import StoreKit
class IAPHelper: NSObject {
private final let productIdentifiers: Set<String> = ["non-consumable"]
static let sharedIntance = IAPHelper()
private var request: SKProductsRequest!
private var products: [SKProduct] = []
func performProductRequestForIdentifiers() {
request = SKProductsRequest(productIdentifiers: productIdentifiers)
request.delegate = self
request.start()
}
func setupPurchases(_ handler: @escaping (Bool) -> Void) {
if SKPaymentQueue.canMakePayments() {
handler(true)
SKPaymentQueue.default().add(self)
return
}
handler(false)
}
func createPaymentRequestForProduct() {
guard let product = products.first else { return }
print(product.localizedTitle)
let payment = SKMutablePayment(product: product)
payment.quantity = 1
SKPaymentQueue.default().add(payment)
}
}
extension IAPHelper: SKProductsRequestDelegate {
func productsRequest(_ request: SKProductsRequest, didReceive response: SKProductsResponse) {
products = response.products
}
}
extension IAPHelper: SKPaymentTransactionObserver {
func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
for transaction in transactions {
switch transaction.transactionState {
case .purchasing:
print("purchasing")
break
case .purchased:
print("purchased")
queue.finishTransaction(transaction)
break
case .failed:
print("failed")
queue.finishTransaction(transaction)
break
case .restored:
print("restored")
queue.finishTransaction(transaction)
break
case .deferred:
print("deferred")
break
}
}
}
}
在App-代表,我檢查進行購買,並開始觀測
IAPHelper.sharedIntance.setupPurchases { (success) in
if success {
IAPHelper.sharedIntance.performProductRequestForIdentifiers()
}
}
的能力,並在我的主要ViewControoller
在UIButton
我打電話IAPHelper.sharedIntance.createPaymentRequestForProduct()
我有我的沙盒用戶在連接和應用程序內購買做連接也。我在iPhone上退出了我的真實帳戶,並登錄了沙箱。任何幫助都會很棒。