Swift iOS14.0.1订阅失败 导入基础 进口存储套件 类grammayQueueMgr:NSObject{ 静态let`default`=grammayPayQueueMgr() var产品:[SKProduct]=[] 函数设置(){ SKPaymentQueue.default().add(self) fetchProduct() } 函数restoreAction(){ SKPaymentQueue.default().restoreCompletedTransactions() } func bugyAction(p:SKProduct){ let payment=SKPayment(产品:p) SKPaymentQueue.default().add(付款) } 变量weekProcut:SKProduct{ 退货产品[0] } func fetchProduct(){ let req=SKProductsRequest(产品标识符:[“清洁剂”\u week\u premium”]) req.delegate=self 请求启动() } func刷新收据(){ let req=SKReceiptRefreshRequest() req.delegate=self 请求启动() } } 扩展队列管理器:SKRequestDelegate{ func requestdidfish(u请求:SKRequest){ 打印(“子-请求完成") } func请求(请求:SKRequest,DIDFILEWERROR错误:error){ 打印(“子-请求失败错误=\(错误)“”) } } 扩展名:SKProductsRequestDelegate{ func productsRequest(uRequest:SKProductsRequest,didReceive response:SKProductsResponse){ 打印(“子-获取到商品\(答复.产品)“) 产品=响应。产品 } } // 复现步骤: 损失14下 ,点击恢复恢复完成后,然后点击购买,看更新的事务代理回调打印输出,(第13章)下先加载一会, 然后显示购买弹框,返回一个采购交易,输入密码后购买成功返回购买)但是在损失14下立即返回一个恢复就结束了。 // 点击购买后,正常情况下应该先回调一个采购交易,购买完成后返回,购买。但是在损失14下会返回一个恢复 扩展语法PayQueueMgr:SKPaymentTransactionObserver{ func paymentQueue(queue:SKPaymentQueue,updatedTransactions事务:[SKPaymentTransaction]){ 打印(“子-交易状态来更新了\(transactions.count)”) guard let fobj=transactions.first-else{return} 开关fobj.transactionState{ 案例。购买: 打印(“转购购买成功") DispatchQueue.main.asyncAfter(截止日期:.now()+1){ self.finsihTrans(trans:transactions) } 案件.恢复: 打印(“子系统”)已恢复恢复") finsihTrans(trans:交易) 案例。失败: 打印(“子系统”)失败失败") finsihTrans(trans:交易) 案例.采购: 打印(“子采购链购买中。。。") 违约: finsihTrans(trans:交易) } } func finsihTrans(trans:[SKPaymentTransaction]){ 在trans中为t{ 打印(“亚精加工处理完成\(t.transactionIdentifier)-状态=-\(t.transactionState)” SKPaymentQueue.default().finishTransaction(t) } } func paymentQueue(queue:SKPaymentQueue,removedTransactions交易:[SKPaymentTransaction]){ } func paymentQueue(queue:SKPaymentQueue,RestoreCompletedTransactionsFailedWither错误:错误){ 打印(“子-恢复完成 错误") } func paymentQueueRestoreCompletedTransactionsFinished(队列:SKPaymentQueue){ 打印(“子-恢复完成") } }

Swift iOS14.0.1订阅失败 导入基础 进口存储套件 类grammayQueueMgr:NSObject{ 静态let`default`=grammayPayQueueMgr() var产品:[SKProduct]=[] 函数设置(){ SKPaymentQueue.default().add(self) fetchProduct() } 函数restoreAction(){ SKPaymentQueue.default().restoreCompletedTransactions() } func bugyAction(p:SKProduct){ let payment=SKPayment(产品:p) SKPaymentQueue.default().add(付款) } 变量weekProcut:SKProduct{ 退货产品[0] } func fetchProduct(){ let req=SKProductsRequest(产品标识符:[“清洁剂”\u week\u premium”]) req.delegate=self 请求启动() } func刷新收据(){ let req=SKReceiptRefreshRequest() req.delegate=self 请求启动() } } 扩展队列管理器:SKRequestDelegate{ func requestdidfish(u请求:SKRequest){ 打印(“子-请求完成") } func请求(请求:SKRequest,DIDFILEWERROR错误:error){ 打印(“子-请求失败错误=\(错误)“”) } } 扩展名:SKProductsRequestDelegate{ func productsRequest(uRequest:SKProductsRequest,didReceive response:SKProductsResponse){ 打印(“子-获取到商品\(答复.产品)“) 产品=响应。产品 } } // 复现步骤: 损失14下 ,点击恢复恢复完成后,然后点击购买,看更新的事务代理回调打印输出,(第13章)下先加载一会, 然后显示购买弹框,返回一个采购交易,输入密码后购买成功返回购买)但是在损失14下立即返回一个恢复就结束了。 // 点击购买后,正常情况下应该先回调一个采购交易,购买完成后返回,购买。但是在损失14下会返回一个恢复 扩展语法PayQueueMgr:SKPaymentTransactionObserver{ func paymentQueue(queue:SKPaymentQueue,updatedTransactions事务:[SKPaymentTransaction]){ 打印(“子-交易状态来更新了\(transactions.count)”) guard let fobj=transactions.first-else{return} 开关fobj.transactionState{ 案例。购买: 打印(“转购购买成功") DispatchQueue.main.asyncAfter(截止日期:.now()+1){ self.finsihTrans(trans:transactions) } 案件.恢复: 打印(“子系统”)已恢复恢复") finsihTrans(trans:交易) 案例。失败: 打印(“子系统”)失败失败") finsihTrans(trans:交易) 案例.采购: 打印(“子采购链购买中。。。") 违约: finsihTrans(trans:交易) } } func finsihTrans(trans:[SKPaymentTransaction]){ 在trans中为t{ 打印(“亚精加工处理完成\(t.transactionIdentifier)-状态=-\(t.transactionState)” SKPaymentQueue.default().finishTransaction(t) } } func paymentQueue(queue:SKPaymentQueue,removedTransactions交易:[SKPaymentTransaction]){ } func paymentQueue(queue:SKPaymentQueue,RestoreCompletedTransactionsFailedWither错误:错误){ 打印(“子-恢复完成 错误") } func paymentQueueRestoreCompletedTransactionsFinished(队列:SKPaymentQueue){ 打印(“子-恢复完成") } },swift,storekit,ios14,Swift,Storekit,Ios14,在iOS13中,当用户单击订阅按钮时,func paymentQueue(queue:SKPaymentQueue,updatedTransactions事务:[SKPaymentTransaction])将回调一个购买交易,在用户输入密码后,回调一个购买交易。但是,在iOS14.0.1和沙盒环境中,用户单击subcribe按钮后,只回调一个过期的还原交易,这导致订阅始终失败。是否有人遇到这种问题,请帮助

在iOS13中,当用户单击订阅按钮时,
func paymentQueue(queue:SKPaymentQueue,updatedTransactions事务:[SKPaymentTransaction])
将回调一个购买交易,在用户输入密码后,回调一个购买交易。但是,在iOS14.0.1和沙盒环境中,用户单击subcribe按钮后,只回调一个过期的还原交易,这导致订阅始终失败。是否有人遇到这种问题,请帮助