/ / Le prix du produit SK diffère dans la confirmation d'achat intégré - iOS, achat intégré, magasin d'applications, kit de stockage

Le prix de SKProduct diffère dans la confirmation In-App-Purchase - ios, in-app-purchase, app-store, storekit

J'ai un comportement étrange avec IAP (Sandbox). Au début, je pensais avoir fait une erreur, mais j'ai ensuite chargé un autre projet (voir images) avec IAP et cela montre le même comportement. Dans mon application, je donne la possibilité d'acheter une mise à niveau. Si l'utilisateur appuie sur le bouton "Acheter", une vue d'alerte apparaît qui demande si l'utilisateur souhaite acheter la mise à niveau pour 1,99 €. Si l'utilisateur le souhaite, le processus d'achat démarre et une autre vue d'alerte apparaît, qui est une confirmation de l'achat. Mais cette confirmation montre un autre prix (2,34 €). Quelqu'un at-il une idée de pourquoi c'est?

Merci d'avance!

Première alerte Deuxième alerte "confirmation"

Réponses:

0 pour la réponse № 1

Les informations de la deuxième fenêtre contextuelle sont correctesun. Et la fenêtre contextuelle que vous affichez au début contient des informations un peu invalides. Le prix 1,99 est en fait le prix en USD. Et le symbole "€" doit être concaténé par vous dans la chaîne.

Cela se produit pour deux raisons:

  1. Lorsque l'appareil n'a pas d'identifiant Apple connecté (pour les achats intégrés). Donc SKProduct"s price la propriété aura le prix en USD.
  2. Lorsque l'appareil est connecté avec un identifiant Apple appartenant à un utilisateur d'un autre pays que le vôtre. SKProduct"s price la propriété aura le prix de ce pays.

Vous pouvez formater la chaîne qui fonctionne pour chaque pays. Voici un extrait de code qui créera une telle chaîne pour vous.

public extension SKProduct {

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

Vous pouvez utiliser localizedPrice propriété maintenant SKProduct objet sans vous écrire €.