我在我的应用中集成了应用内购买,并使用创建的测试帐户对其进行了测试。它工作正常,但当我将它提交到应用程序商店进行实时应用程序审核时,我的应用程序因以下原因被拒绝:
准则2.1 - 表现 - 应用完整性
验证服务器上的收据时,您的服务器需要能够处理生产签名的应用程序从Apple的测试环境获取收据。建议的方法是让您的生产服务器始终首先根据生产App Store验证收据。如果验证失败并显示错误代码“生产中使用的沙箱收据”,则应该针对测试环境进行验证。
答案 0 :(得分:0)
从WWDC 2013 Session 308 44:00开始:
“应用程序审核人员实际上正在测试您的生产已签名,准备进入商店的二进制文件,但是针对测试环境。因此,您的生产签名应用程序将看到测试环境收据”。
这意味着如果您使用服务器验证收据,请确保首先针对生产服务器验证收据,如果验证失败,则根据沙箱服务器验证收据。
这是你收到拒绝理由的指示:
“建议的方法是让您的生产服务器始终首先针对生产App Store验证收据。如果验证失败并显示错误代码”生产中使用的沙盒收据“,则应该针对测试环境进行验证< /强>“。
请同时查看类似问题的以下答案:
答案 1 :(得分:0)
其实我正在使用此功能购买:
func purchase(_ purchase: RegisteredPurchase) {
self.view.showLoad()
// NetworkActivityIndicatorManager.NetworkOperationStarted()
SwiftyStoreKit.purchaseProduct(bundleId + "." + purchase.rawValue, atomically: true) { result in
// NetworkActivityIndicatorManager.NetworkOperationFinished()
self.view.hideLoad()
print(result)
if case .success(let purchase) = result {
self.refrenceNumber = purchase.transaction.transactionIdentifier!
// print(purchase.transaction.transactionDate)
self.sendRefrence()
if purchase.needsFinishTransaction {
SwiftyStoreKit.finishTransaction(purchase.transaction)
}
}else{
if let alert = self.alertForPurchaseResult(result) {
self.showAlert(alert)
}
}
}
}
它在测试环境中运行良好,但在审核中它的响应是: 的 paymentInvalid 强>
如何更改购买环境。
答案 2 :(得分:0)
其实我理解这个问题,但是当我在app购买产品时购买。我没有验证收据。我是直接购买,并在调用购买功能后,我上面更新它给出错误 .paymentinvalid 。在哪里我必须验证或更改或我必须提供沙箱或生产网址购买或检查。因为我的函数没有直接检查任何东西会给出错误。