swift - 应用内购买付款交易无法正常运行
问题描述
当用户单击特定按钮时,我的应用程序会显示提示。我想为非消耗性应用内购买提供额外的提示包(单击要购买的包,然后如果购买,您可以使用相同的按钮来打开和关闭包)。
以下是所有相关代码...
import UIKit
import QuartzCore
import StoreKit
class ViewController: UIViewController, SKPaymentTransactionObserver {
let productID = "com.domain.app.purchase"
override func viewDidLoad() {
super.viewDidLoad()
SKPaymentQueue.default().add(self)
}
var packsUnlocked = false
@IBAction func selectPack1(_ sender: UIButton) {
if SKPaymentQueue.canMakePayments() {
let paymentRequest = SKMutablePayment()
paymentRequest.productIdentifier = productID
SKPaymentQueue.default().add(paymentRequest)
print("Initiating Transaction")
} else {
print("No Purchased")
}
if packsUnlocked == false {
print("It's locked, ‘Pack 1’ not enabled")
} else {
print(“Utilize Purchase”)
//this is where you place code to use the purchased ‘Pack 1’
}
}
func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
for transaction in transactions{
if transaction.transactionState == .purchased {
packsUnlocked = true
print("Transaction Successful")
} else if transaction.transactionState == .failed {
print("Transaction Failed")
}
}
}
}
但是,每当我运行代码并单击按钮时,我得到的只是调试器中的以下输出:
"
Initiating Transaction
It's locked, 'Pack 1' not enabled
Transaction Failed
"
这是我的第一个应用程序,我之前从未设置过沙盒测试器,所以我不确定代码是否存在问题,或者是否与我的 App Store Connect 设置有关。
谢谢 - 我已经被困在这个问题上太久了,所以非常感谢任何帮助。
解决方案
您需要在沙盒环境中的实际设备上测试应用内购买。
这是上面的 Apple 文档,但我也可以为您提供指导。
主要步骤是:
在 App Store Connect 中创建沙盒或测试用户帐户。
对于 iOS 12 或更高版本——不要退出 App Store;只需从 Xcode 构建和运行您的应用程序。沙盒帐户单独存储,您可以直接在设备上的“设置”中控制您的沙盒帐户。(您必须在连接的设备上运行。)
推荐阅读
- json - 不断收到 HTTP 代码 422,不确定 json 有效负载有什么问题
- datetime - 如何将特定的日期格式转换为合适的数据类型并查询日期之间的相关记录?
- acumatica - 处理页面上的自动化计划和处理所有操作之间的行为差异
- docker - docker-compose:权限被拒绝错误:在启动 ASP.NET Core 2.2 项目时遇到错误
- c++ - 在 C++ / Qt 的 lambda 函数中作为参数的插槽
- sql - Insert into table with type casting and condition in INSERT statement
- postgresql - psql cannot connect without -h flag
- django - Can localtunnel services like ngrok see your source code?
- visual-studio - How to open project properties in VS 2017?
- r - How to add multiple numeric values in a single cell of a large list in R