4

我们可以分配 skpayment 应用程序用户名吗?

应用内购买完成后,我得到了一个空的applicationUsername in theSKPayment。

如何为 赋值SKPayment applicationUsername

4

3 回答 3

2

SKPayment您不能为;的属性赋值 当您创建SKMutablePayment实例以提交购买请求时,您的应用程序可以提供一个表示应用程序用户 ID 的不透明值。这使 iTunes 商店能够检测到异常活动。

尽管它的名称,该applicationUsername属性并不意味着保存实际的用户名。

In-App Purchasing Programming Guide中显示了建议的方法

请注意,您分配的值可能不会出现SKPayment您收到的事务队列中。

重要的

不能保证 applicationUsername 属性在您将支付交易添加到队列和队列更新交易之间持续存在。请勿尝试将此属性用于提供欺诈检测以外的目的。

于 2016-05-13T06:29:31.313 回答
0

您可以像这样分配它:

   // 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)

}
于 2020-10-02T06:56:03.417 回答
-2

您不能分配只读属性。iOS 在完成交易时提供的对象是不可变的。老实说,Apple 的 API 无法正确通知客户端应用程序有关已处理的交易。

于 2017-09-26T16:53:33.787 回答