@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)
}
// coming soon
export type PurchaseSuccessIos = {
product: PurchaseSuccessProduct;
transactionID: string;
originalTransactionID: string;
originalPurchaseDate: number;
purchaseDate: number;
expiresDate?: number;
price: string;
currencyCode: string;
locale: string;
};
export type PurchaseSuccessGooglePlay = {
product: PurchaseSuccessProduct;
orderId: string;
purchaseDate: number;
expiresDate?: number;
purchaseToken: string;
purchaseSource: "CAMPAIGN" | "MARKETPLACE" | "UNKNOWN";
};
export type PurchaseSuccessAmazon = {
product: PurchaseSuccessProduct;
purchaseDate: number;
expiresDate?: number;
purchaseSource: "CAMPAIGN" | "MARKETPLACE" | "UNKNOWN";
receiptId: string;
localizedPrice: string;
userId: string;
marketplace: string;
};
// coming soon
For Paywall Management-only plans
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 Paywall Management-only plan to use this interface. Contact [email protected] for details.