首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IAP - Swift 3.0

IAP - Swift 3.0
EN

Stack Overflow用户
提问于 2017-02-16 19:15:24
回答 2查看 590关注 0票数 1

我想为我的Swift应用程序做IAP,每当我尝试通过代码连接intunes时,我的xcode中缺少权利,请参阅附件。

这是我连接itunes connect的代码。

代码语言:javascript
复制
func loadStoreProducts(){


    if (SKPaymentQueue.canMakePayments()){
        KVNProgress.show(withStatus: "Loading payment options")
        let productsRequest:SKProductsRequest = SKProductsRequest(productIdentifiers: Set([productID]));
        productsRequest.delegate = self;
        productsRequest.start();
    }else{
        AppDelegate.getAppDelegate().showMessage("Your Apple account doesn't allow payments, you cannot have a JustAskMe subscription.")
    }
}

func restoreTransactions(){
    SKPaymentQueue.default().restoreCompletedTransactions()
}

func buyMembership(product:SKProduct){
    let payment = SKPayment(product: product)
    SKPaymentQueue.default().add(payment);
}

func productsRequest(_ request: SKProductsRequest, didReceive response: SKProductsResponse) {

    DispatchQueue.main.async(){
        KVNProgress.dismiss()
    }


    if (!response.products.isEmpty) {

        let  validProduct: SKProduct = response.products[0] as SKProduct

        if (validProduct.productIdentifier == self.productID) {
            print(validProduct.localizedTitle)
            print(validProduct.localizedDescription)
            print(validProduct.price)
            buyMembership(product: validProduct);
        } else {
            // got a product that wasn't the one we asked for?
            print("Invalid product found: \(validProduct.productIdentifier)")
        }
    } else {
        AppDelegate.getAppDelegate().showMessage("Problems processing your payment, please try again.")
    }
}

func request(_ request: SKRequest, didFailWithError error: Error) {

    DispatchQueue.main.async(){
        KVNProgress.dismiss()
    }
    // notify the user
    AppDelegate.getAppDelegate().showMessage("Problems processing your payment, please try again.")
    //log the issue.
    print(error.localizedDescription)

}


func paymentQueueRestoreCompletedTransactionsFinished(_ queue: SKPaymentQueue) {
    DispatchQueue.main.async(){
        KVNProgress.dismiss()
    }

    for transaction:AnyObject in queue.transactions
    {
        let trans : SKPaymentTransaction = transaction as! SKPaymentTransaction
        let identifier : NSString = trans.payment.productIdentifier as NSString
        print(identifier)
    }

}

func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
    DispatchQueue.main.async(){
        KVNProgress.dismiss()
    }

}

func paymentQueue(_ queue: SKPaymentQueue, restoreCompletedTransactionsFailedWithError error: Error) {
    DispatchQueue.main.async(){
        KVNProgress.dismiss()
    }
    // notify the user
    AppDelegate.getAppDelegate().showMessage("Problems loading your previous purchases, please try again.")
    //log the issue.
    print(error.localizedDescription)
}

enter image description here

EN

回答 2

Stack Overflow用户

发布于 2017-02-16 19:52:46

你是否在Xcode的Capabilities Pane中打开了应用程序购买?

票数 0
EN

Stack Overflow用户

发布于 2017-02-16 20:05:20

登录到开发人员中心,然后导航到证书、标识符和配置文件、应用程序In并检查是否启用了应用内购买,然后重试。

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

https://stackoverflow.com/questions/42272376

复制
相关文章

相似问题

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