संभाल नहीं करता है। मेरे ऐप में इन-एप खरीद है (मैंने tutorial का पालन किया), खरीद कार्यक्षमता काम करती है। हालांकि, जब मैं इन-ऐप खरीद उत्पादों में से किसी एक के लिए ऐप स्टोर में प्रोमो कोड रिडीम करता हूं, तो मेरा ऐप इसका जवाब नहीं देता है। यहां तक कि ऐप स्टोर का कहना है कि उत्पाद को सफलतापूर्वक रिडीम किया गया है, मेरा ऐप इसका जवाब नहीं देता है।जब इन-एप खरीद प्रोमो कोड को रिडीम किया जाता है, तो मेरा ऐप इसे
क्या कोई भी व्यक्ति जिसने ऐप-ऐप खरीद की है, यदि आपका ऐप प्रोमो कोड संसाधित कर सकता है? क्या आप समाधान साझा करना चाहते हैं?
मैं इस के साथ शुरू किया:
override func viewDidLoad() {
NotificationCenter.default.addObserver(self,
selector: #selector(applicationDidBecomeActive(notification:)),
name: NSNotification.Name.UIApplicationDidBecomeActive,
object: nil
)
}
func applicationDidBecomeActive(notification: NSNotification){
let store = IAPHealper()
//what needs to be put here?
}
extension IAPHelper: SKPaymentTransactionObserver {
public func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
for transaction in transactions {
switch (transaction.transactionState) {
case .purchased:
completeTransaction(transaction)
break
case .failed:
failedTransaction(transaction)
break
case .restored:
restoreTransaction(transaction)
break
case .deferred:
break
case .purchasing:
break
}
}
}
fileprivate func completeTransaction(_ transaction: SKPaymentTransaction) {
print("completeTransaction...")
deliverPurchaseNotificatioForIdentifier(transaction.payment.productIdentifier)
defaultQueue.finishTransaction(transaction)
purchaseCompletionHandler?(true, transaction)
}
fileprivate func restoreTransaction(_ transaction: SKPaymentTransaction) {
guard let productIdentifier = transaction.original?.payment.productIdentifier else { return }
print("restoreTransaction... \(productIdentifier)")
deliverPurchaseNotificatioForIdentifier(productIdentifier)
defaultQueue.finishTransaction(transaction)
}
fileprivate func failedTransaction(_ transaction: SKPaymentTransaction) {
print("failedTransaction...")
if transaction.error!._code != SKError.paymentCancelled.rawValue {
print("Transaction Error: \(String(describing: transaction.error?.localizedDescription))")
purchaseCompletionHandler?(false, transaction)
}
defaultQueue.finishTransaction(transaction)
}
fileprivate func deliverPurchaseNotificatioForIdentifier(_ identifier: String?) {
guard let identifier = identifier else { return }
purchasedProductIdentifiers.insert(identifier)
//NSNotificationCenter.defaultCenter().postNotificationName(IAPHelper.IAPHelperPurchaseNotification, object: identifier)
}
public func paymentQueue(_ queue: SKPaymentQueue, removedTransactions transactions: [SKPaymentTransaction]){
print("Removed from queue.")
print(transactions)
}
}
धन्यवाद।
कृपया इस [वीडियो] को फेंक दें (https://www.youtube.com/watch?v=dwPFtwDJ7tc) इससे आपको बहुत मदद मिलेगी। – Rex