Ios 如何分配skpayment applicationusername
我们可以指定skpayment applicationusername吗 当应用内购买完成时,我在SKPayment中得到一个空的Ios 如何分配skpayment applicationusername,ios,objective-c,in-app-purchase,skpaymenttransaction,Ios,Objective C,In App Purchase,Skpaymenttransaction,我们可以指定skpayment applicationusername吗 当应用内购买完成时,我在SKPayment中得到一个空的applicationUsername 如何将值分配给SKPaymentapplicationUsername?您不能将值分配给SKPayment的属性;当您创建SKMutablePayment实例以提交购买请求时,您的应用程序可以提供一个表示应用程序用户id的不透明值。这使iTunes商店能够检测到不规则活动 尽管名称不同,applicationUsername属性
applicationUsername
如何将值分配给SKPayment
applicationUsername
?您不能将值分配给SKPayment
的属性;当您创建SKMutablePayment
实例以提交购买请求时,您的应用程序可以提供一个表示应用程序用户id的不透明值。这使iTunes商店能够检测到不规则活动
尽管名称不同,applicationUsername
属性并不用于保存实际用户名
建议的方法如图所示
请注意,您在交易队列中收到的SKPayment
中分配的值
重要
applicationUsername属性不保证在将支付事务添加到队列和队列更新事务之间保持不变。除提供欺诈检测外,请勿尝试将此财产用于其他目的
您不能指定只读属性。iOS在完成事务时提供的对象是不可变的。老实说,苹果的API未能正确地将处理后的交易通知客户端应用程序 您可以像这样分配它:
// 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)
}
该问题似乎是指已完成的购买。当他在paymentQueue:updatedTransactions:method中收到SKPaymentTransaction时。返回的对象是不可变的。是的,我知道。我没说要对返回的对象进行变异。我说你需要在提交购买时指定一个值。我不确定这个问题问得是否正确,或者我对英语的理解不好,但是当有人说“应用内购买完成时”我假设您已收到包含在paymentQueue:updatedTransactions:observer方法中的SKPaymentTransaction的SKPaymentTransaction。一个不可变的对象。对,问题是如何分配一个值,使该属性在已完成的事务中不是nil
;答案是,您必须在将付款请求作为SKMutablePayment提交给Apple之前指定一个值。@property(非原子、复制、读写)NSString*applicationUsername NS\u AVAILABLE\u IOS(7\u 0);我想从iOS 7开始,我们可以给applicationUsername赋值,我从SKPayment.hWe是指SKPayment,对吗?Readwrite属性是SKMutablePayment.h的一部分,在第44行可以找到SKPayment.h文件的副本。applicationUsername属性的重新声明是从第42行开始的SKMutablePayment的一部分。(裁判:)对不起,你是对的,哦,是的,对不起,我知道了。我在下面的问题中有问题,你能引导我吗?从Apple server获取空白响应订阅状态URL IAP、状态更新通知、状态更新通知