Как назначить skpayment applicationusername

Мы можем назначить skpayment applicationusername?

Когда в приложении покупка завершена, я получил ноль applicationUsername in theSKPayment.

Как мне присвоить значение SKPaymentapplicationUsername?

2 ответа

Когда вы создаете SKMutablePayment Например, чтобы отправить запрос на покупку, ваше приложение может предоставить непрозрачное значение, представляющее идентификатор пользователя приложения. Это позволяет магазину iTunes обнаруживать нерегулярные действия.

Несмотря на свое название, 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 предоставляет для завершенной транзакции, являются неизменяемыми. Честно говоря, API Apple не может должным образом проинформировать клиентские приложения об обработанной транзакции.

Другие вопросы по тегам