Suj*_*rya 5 storekit in-app-purchase swift
我正在尝试在我的应用程序中添加应用程序内购买。我能够加载产品,在设备中显示和测试它们。当我单击购买选项时,我确实收到了输入凭据并在沙盒环境中确认购买的提醒[下面的屏幕截图]。但我在控制台中没有看到 paymentQueue 方法的任何显示。谁能让我知道我在这里缺少什么。下面是代码中的几行:
谢谢。
import UIKit
import StoreKit
class testing: NSObject {
private var productIds : Set<String> = []
@objc private(set) var productsArray = [SKProduct]()
func getProducts() {
productIds = ["xxxxx", "yyyyy"]
let request = SKProductsRequest(productIdentifiers: productIds)
request.delegate = self
request.start()
}
func purchase(product: String) {
guard SKPaymentQueue.canMakePayments() else {
return
}
guard SKPaymentQueue.default().transactions.last?.transactionState != .purchasing else {
return
}
guard let productToPurchase = productsArray.filter({$0.productIdentifier == product}).first else {return}
print(productToPurchase.localizedTitle)
let payment = SKPayment(product: productToPurchase)
SKPaymentQueue.default().add(payment)
}
func restorePurchases(){
print("calling restore purchases")
SKPaymentQueue.default().restoreCompletedTransactions()
}
}
extension testing: SKProductsRequestDelegate {
public func productsRequest(_ request: SKProductsRequest, didReceive response: SKProductsResponse) {
productsArray = response.products
}
}
extension testing: SKPaymentTransactionObserver {
public func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
print("inside here....")
for transaction in transactions {
switch (transaction.transactionState) {
case .purchased:
SKPaymentQueue.default().finishTransaction(transaction)
print ("purchased")
//notifyIsPurchased(transaction: transaction)
break
case .failed:
SKPaymentQueue.default().finishTransaction(transaction)
print("purchase error : \(transaction.error?.localizedDescription ?? "")")
//self.failureBlock?(transaction.error)
//cleanUp()
break
case .restored:
SKPaymentQueue.default().finishTransaction(transaction)
//notifyIsPurchased(transaction: transaction)
print("restored")
break
case .deferred:
print("defered")
break
case .purchasing:
print("purchasing")
break
default:
break
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1187 次 |
最近记录: |