/ / SKProduct ціна відрізняється підтвердженням покупки через додаток - ios, покупка через додаток, магазин додатків, storekit

Ціна SKPпродукту відрізняється підтвердженням In-App-Purchase - ios, in-app-purchase, app-store, storekit

У мене є якась дивна поведінка з IAP (Sandbox). Спочатку я думав, що помилився, але потім завантажив інший проект (див. Зображення) з IAP, і він демонструє таку саму поведінку. У своєму додатку я надаю можливість придбати оновлення. Я користувач натискає кнопку "Купити", з'являється попереджувальний перегляд, який запитує, чи хоче він придбати оновлення за 1,99 євро. Якщо користувач хоче цього, процес закупівлі починається, і з’являється інший перегляд попередження, що є підтвердженням для покупки. Але це підтвердження показує іншу ціну (2,34 євро). Хтось має уявлення, чому це так?

Спасибі заздалегідь!

Перший сигнал попередження Друге "підтвердження" попередження

Відповіді:

0 для відповіді № 1

Інформація у другому спливаючому вікні правильнаодин. І спливаюче вікно, яке ви показуєте спочатку, має якусь недійсну інформацію. Ціна 1,99 - це фактично ціна в доларах США. І символ "€" повинен бути з'єднаний вами в рядку.

Це відбувається через дві причини:

  1. Якщо на пристрої немає входу в систему Apple Id (для покупок у програмі). Тому SKProductс price нерухомість буде мати ціну в доларах США.
  2. Коли пристрій увійшов за допомогою Apple ID, який належить користувачеві, що не є вашою країною. SKProductс price нерухомість матиме ціну цієї країни.

Ви можете відформатувати рядок, який працює для кожної країни. Ось фрагмент коду, який створить такий рядок для вас.

public extension SKProduct {

public var localizedPrice: String? {
let numberFormatter = NumberFormatter()
numberFormatter.locale = self.priceLocale
numberFormatter.numberStyle = .currency
return numberFormatter.string(from: self.price)
}
}

Ви можете використовувати localizedPrice майно зараз в SKProduct об'єкт, не записуючи себе €.