This method is for customers who have implemented their own in-app purchases or subscription code directly with the App Store, Google Play, etc. or who are using another third-party for subscription or purchase management.
Your Nami account needs to be on a Paywalls only plan to use this interface. Contact support@nami.ml for details.
@objc public class NamiPurchaseSuccess: NSObject, Codable {
let product: NamiSKU
let transactionID: String
let originalTransactionID: String
let originalPurchaseDate: Date
let expiresDate: Date?
let purchaseDate: Date
let price: Decimal
let currencyCode: String
let locale: Locale
let purchaseSource: NamiPurchaseSource
}
sealed class NamiPurchaseSuccess(
open val product: NamiSKU,
open val expiresDate: Date?,
open val purchaseDate: Date,
open val purchaseSource: NamiPurchaseSource,
open val description: String?
) {
data class GooglePlay(
override val product: NamiSKU,
override val expiresDate: Date?,
override val purchaseDate: Date,
override val purchaseSource: NamiPurchaseSource,
override val description: String?,
val orderId: String,
val purchaseToken: String,
) : NamiPurchaseSuccess(product, expiresDate, purchaseDate, purchaseSource, description)
data class Amazon(
override val product: NamiSKU,
override val expiresDate: Date?,
override val purchaseDate: Date,
override val purchaseSource: NamiPurchaseSource,
override val description: String?,
val receiptId: String,
val localizedPrice: String,
val userId: String,
val marketplace: String
) : NamiPurchaseSuccess(product, expiresDate, purchaseDate, purchaseSource, description)
}