Как назначить skpayment applicationusername
Мы можем назначить skpayment applicationusername?
Когда в приложении покупка завершена, я получил ноль applicationUsername in the
SKPayment.
Как мне присвоить значение SKPayment
applicationUsername
?
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 не может должным образом проинформировать клиентские приложения об обработанной транзакции.