iTunes Connect 错误:“应用内购买已被退回”

作者:编程家 分类: objective 时间:2025-05-01

解决 “应用内购买已被退回” 错误的方法

在使用 iTunes Connect 进行应用内购买时,有时会遇到错误提示:“应用内购买已被退回”。这个错误通常表示用户购买的产品未成功交付给应用,或者用户在购买过程中取消了交易。本文将介绍一些解决这个错误的常见方法,并提供相应的案例代码。

检查应用内购买设置

首先,我们需要确保在 iTunes Connect 中正确设置了应用内购买项目。进入 iTunes Connect,选择您的应用,然后点击“App 内购买”选项卡。确保您已创建了正确的产品,且价格、描述等信息都正确填写。另外,还需要检查您的应用是否已正确配置了应用内购买功能。

以下是一个示例代码片段,用于在应用内购买项目中获取产品信息:

swift

// 导入 StoreKit 框架

import StoreKit

// 遵循 SKProductsRequestDelegate 协议

class MyStoreDelegate: NSObject, SKProductsRequestDelegate {

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

// 处理请求失败的情况

print("请求失败:\(error.localizedDescription)")

}

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

// 处理请求成功的情况

let products = response.products

for product in products {

print("产品 ID:\(product.productIdentifier)")

print("产品标题:\(product.localizedTitle)")

print("产品描述:\(product.localizedDescription)")

print("产品价格:\(product.price)")

}

}

}

// 创建请求对象

let request = SKProductsRequest(productIdentifiers: ["com.example.product1", "com.example.product2"])

// 设置请求的代理

let delegate = MyStoreDelegate()

request.delegate = delegate

// 发送请求

request.start()

检查应用内购买代码

如果您已正确设置了应用内购买项目,接下来需要检查应用内购买代码是否正确。请确保您的代码中包含了正确的购买流程和错误处理机制。

以下是一个示例代码片段,用于执行应用内购买:

swift

// 导入 StoreKit 框架

import StoreKit

// 遵循 SKPaymentTransactionObserver 协议

class MyPaymentObserver: NSObject, SKPaymentTransactionObserver {

func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {

for transaction in transactions {

switch transaction.transactionState {

case .purchased:

// 处理购买成功的情况

print("购买成功,交易 ID:\(transaction.transactionIdentifier)")

// TODO: 提供购买内容

// ...

// 完成交易

queue.finishTransaction(transaction)

case .restored:

// 处理恢复购买的情况

print("恢复购买,交易 ID:\(transaction.transactionIdentifier)")

// TODO: 提供购买内容

// ...

// 完成交易

queue.finishTransaction(transaction)

case .failed:

// 处理购买失败的情况

print("购买失败,错误信息:\(transaction.error?.localizedDescription ?? "")")

// 完成交易

queue.finishTransaction(transaction)

default:

break

}

}

}

}

// 将自己设为支付队列的观察者

SKPaymentQueue.default().add(MyPaymentObserver())

// 发起购买请求

let productID = "com.example.product1"

let payment = SKPayment(productIdentifier: productID)

SKPaymentQueue.default().add(payment)

联系 Apple 支持

如果您已经检查了应用内购买设置和代码,并且仍然遇到问题,建议您联系 Apple 支持寻求进一步的帮助。Apple 支持团队将为您解答问题并提供必要的支持。

当您遇到 iTunes Connect 错误:“应用内购买已被退回”时,首先应检查应用内购买设置,确保产品信息正确无误。接着,检查应用内购买代码,确保购买流程和错误处理机制正确无误。如果问题仍然存在,建议您联系 Apple 支持以获得进一步的帮助。

希望本文能对您解决 “应用内购买已被退回” 错误提供一些帮助。祝您的应用内购买功能顺利运行!