首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 ><SKPaymentQueue: 0x281194d90>:用错误完成付款: Domain=ASDErrorDomain Code=500“未处理异常”

<SKPaymentQueue: 0x281194d90>:用错误完成付款: Domain=ASDErrorDomain Code=500“未处理异常”
EN

Stack Overflow用户
提问于 2021-09-14 15:57:07
回答 1查看 2.4K关注 0票数 5

我试图在我的应用程序中进行应用程序购买,但是由于某种原因,当我输入我的苹果ID和密码时,我在日志上得到了一个错误,UI上什么也没有发生。我需要上传我的应用程序在试飞或类似的东西,以便能够从我的应用程序购买项目?我已经添加了支付方法和税务信息。

我只是从我的角度调用购买产品的方法。

错误:

代码语言:javascript
运行
复制
2021-09-14 19:06:01.857244+0300 iGrow Goals[697:72415] <SKPaymentQueue: 0x2802709f0>: Payment completed with error: Error Domain=ASDErrorDomain Code=500 "Unhandled exception" UserInfo={NSUnderlyingError=0x280ec2610 {Error Domain=AMSErrorDomain Code=100 "Authentication Failed" UserInfo={NSLocalizedFailureReason=The verify credentials call failed., NSLocalizedDescription=Authentication Failed, NSUnderlyingError=0x280ec2700 {Error Domain=AMSServerErrorDomain Code=-5000 "The operation couldn’t be completed. (AMSServerErrorDomain error -5000.)" UserInfo={NSLocalizedDescription=The operation couldn’t be completed. (AMSServerErrorDomain error -5000.)}}}}, NSLocalizedFailureReason=An unknown error occurred, NSLocalizedDescription=Unhandled exception}

StoreManager.swift:

代码语言:javascript
运行
复制
//
//  StoreManager.swift
//  iGrow Goals
//
//  Created by George Sepetadelis on 30/8/21.
//

import Foundation
import StoreKit

class StoreManager: NSObject, ObservableObject, SKProductsRequestDelegate {
    
    @Published var myProducts = [SKProduct]()
    var request: SKProductsRequest!
    
    @Published var transactionState: SKPaymentTransactionState?
    
    func enablePremiumPlan() {
        
    }
    
    func purchaseProduct(product: SKProduct) {
        if SKPaymentQueue.canMakePayments() {
            let payment = SKPayment(product: product)
            SKPaymentQueue.default().add(payment)
        } else {
            print("User can't make payment.")
        }
    }
    
    
    func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
        for transaction in transactions {
            switch transaction.transactionState {
            case .purchasing:
                transactionState = .purchasing
            case .purchased:
                UserDefaults.standard.setValue(true, forKey: transaction.payment.productIdentifier)
                queue.finishTransaction(transaction)
                print("payment success")
                transactionState = .purchased
                enablePremiumPlan()
            case .restored:
                UserDefaults.standard.setValue(true, forKey: transaction.payment.productIdentifier)
                queue.finishTransaction(transaction)
                transactionState = .restored
                enablePremiumPlan()
            case .failed, .deferred:
                queue.finishTransaction(transaction)
                transactionState = .failed
                print("payment failed")
            default:
                queue.finishTransaction(transaction)
                print("default")
                
            }
        }
    }
    
    func getProducts(productIDs: [String]) {
        print("Start requesting products ...")
        let request = SKProductsRequest(productIdentifiers: Set(productIDs))
        request.delegate = self
        request.start()
    }
    
    
    func productsRequest(_ request: SKProductsRequest, didReceive response: SKProductsResponse) {
        print("Did receive response")
        
        if !response.products.isEmpty {
            for fetchedProduct in response.products {
                DispatchQueue.main.async {
                    self.myProducts.append(fetchedProduct)
                }
            }
        }
        
        for invalidIdentifier in response.invalidProductIdentifiers {
            print("Invalid identifiers found: \(invalidIdentifier)")
        }
    }
    
    func request(_ request: SKRequest, didFailWithError error: Error) {
        print("Request did fail: \(error)")
    }
    
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-15 11:23:33

尝试沙箱帐户时,测试在应用程序购买时,直接从Xcode。

您的常规帐户将在试飞和在应用商店时工作。

https://developer.apple.com/documentation/storekit/original_api_for_in-app_purchase/testing_in-app_purchases_with_sandbox

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69181009

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档