| 12345678910111213141516171819202122232425262728293031 |
- export interface IAPProduct {
- productId: string;
- title: string;
- description: string;
- price: string;
- localizedPrice: string;
- currencyCode: string;
- }
- export interface IAPResult {
- status: 'purchased' | 'restored' | 'cancelled' | 'deferred';
- productId: string;
- transactionId?: string;
- originalTransactionId?: string;
- /** Base64 App Store receipt; send to your backend for validation. */
- receipt?: string;
- }
- export interface IAPProductsResult {
- products: IAPProduct[];
- invalidProductIds: string[];
- }
- export abstract class IAPImpl {
- abstract init(products: string[]): Promise<IAPProductsResult>;
- abstract purchase(product: string): Promise<IAPResult>;
- abstract restore(): Promise<IAPResult[]>;
- abstract getPendingTransactions(): Promise<IAPResult[]>;
- /** Only call after verification and idempotent delivery of the purchase. */
- abstract finishTransaction(transactionId: string): Promise<void>;
- abstract onTransaction(listener: (transaction: IAPResult) => void): () => void;
- }
|