我们可以分配 skpayment 应用程序用户名吗?
应用内购买完成后,我得到了一个空的applicationUsername in the
SKPayment。
如何为 赋值SKPayment
applicationUsername
?
我们可以分配 skpayment 应用程序用户名吗?
应用内购买完成后,我得到了一个空的applicationUsername in the
SKPayment。
如何为 赋值SKPayment
applicationUsername
?
SKPayment
您不能为;的属性赋值 当您创建SKMutablePayment
实例以提交购买请求时,您的应用程序可以提供一个表示应用程序用户 ID 的不透明值。这使 iTunes 商店能够检测到异常活动。
尽管它的名称,该applicationUsername
属性并不意味着保存实际的用户名。
In-App Purchasing Programming Guide中显示了建议的方法
请注意,您分配的值可能不会出现在SKPayment
您收到的事务队列中。
重要的
不能保证 applicationUsername 属性在您将支付交易添加到队列和队列更新交易之间持续存在。请勿尝试将此属性用于提供欺诈检测以外的目的。
您可以像这样分配它:
// MARK: purchase SKProduct from store
@objc func buy(product: SKProduct, withHandler handler: @escaping ((_ success : Bool , _ error :RiscoIAPManagerError? ) -> Void)) {
let payment = SKMutablePayment(product: product)
payment.applicationUsername = "applicationUsername"
SKPaymentQueue.default().add(payment)
// Keep the completion handler.
productBuyComplition = handler
}
并且可以再次进入
func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
print(transaction.payment.applicationUsername as Any)
}
您不能分配只读属性。iOS 在完成交易时提供的对象是不可变的。老实说,Apple 的 API 无法正确通知客户端应用程序有关已处理的交易。