Skip to content

Latest commit

 

History

History
684 lines (409 loc) · 14.8 KB

File metadata and controls

684 lines (409 loc) · 14.8 KB

Class: Store

CdvPurchase.Store

Entry class of the plugin.

Table of contents

Constructors

Properties

Accessors

Methods

Constructors

constructor

• new Store()

Properties

applicationUsername

• Optional applicationUsername: string | () => string

Return the identifier of the user for your application


log

• log: Logger

Logger


validator

• validator: undefined | string | Function | Target

URL or implementation of the receipt validation service

Example

Define the validator as a string

CdvPurchase.store.validator = "https://validator.iaptic.com/v1/validate?appName=test"

Example

Define the validator as a function

CdvPurchase.store.validator = (receipt, callback) => {
  callback({
    ok: true,
    data: {
      // see CdvPurchase.Validator.Response.Payload for details
    }
  })
}

See

Payload


validator_privacy_policy

• validator_privacy_policy: undefined | PrivacyPolicyItem | PrivacyPolicyItem[]

When adding information to receipt validation requests, those can serve different functions:

  • handling support requests
  • fraud detection
  • analytics
  • tracking

Make sure the value your select is in line with your application's privacy policy and your users' tracking preference.

Example

CdvPurchase.store.validator_privacy_policy = [
  'fraud', 'support', 'analytics', 'tracking'
]

verbosity

• verbosity: LogLevel = LogLevel.ERROR

Verbosity level used by the plugin logger

Set to:

  • LogLevel.QUIET or 0 to disable all logging (default)
  • LogLevel.ERROR or 1 to show only error messages
  • LogLevel.WARNING or 2 to show warnings and errors
  • LogLevel.INFO or 3 to also show information messages
  • LogLevel.DEBUG or 4 to enable internal debugging messages.

See

LogLevel


version

• version: string = PLUGIN_VERSION

Version of the plugin currently installed.

Accessors

localReceipts

• get localReceipts(): Receipt[]

List of all receipts present on the device.

Returns

Receipt[]


localTransactions

• get localTransactions(): Transaction[]

List of all transaction from the local receipts.

Returns

Transaction[]


products

• get products(): Product[]

List of all active products.

Products are active if their details have been successfully loaded from the store.

Returns

Product[]


verifiedPurchases

• get verifiedPurchases(): VerifiedPurchase[]

List of all purchases from the verified receipts.

Returns

VerifiedPurchase[]


verifiedReceipts

• get verifiedReceipts(): VerifiedReceipt[]

List of receipts verified with the receipt validation service.

Those receipt contains more information and are generally more up-to-date than the local ones.

Returns

VerifiedReceipt[]

Methods

checkSupport

▸ checkSupport(platform, functionality): boolean

Returns true if a platform supports the requested functionality.

Example

store.checkSupport(Platform.APPLE_APPSTORE, 'requestPayment');
// => false

Parameters

Name Type
platform Platform
functionality PlatformFunctionality

Returns

boolean


defaultPlatform

▸ defaultPlatform(): Platform

The default payment platform to use depending on the OS.

  • on iOS: APPLE_APPSTORE
  • on Android: GOOGLE_PLAY

Returns

Platform


error

▸ error(error): void

Register an error handler.

Example

store.error(function(error) {
  console.error('CdvPurchase ERROR: ' + error.message);
});

Parameters

Name Type Description
error Callback<IError> An error callback that takes the error as an argument

Returns

void


findInLocalReceipts

▸ findInLocalReceipts(product): undefined | Transaction

Find the latest transaction for a given product, from those reported by the device.

Parameters

Name Type
product Product

Returns

undefined | Transaction


findInVerifiedReceipts

▸ findInVerifiedReceipts(product): undefined | VerifiedPurchase

Find the last verified purchase for a given product, from those verified by the receipt validator.

Parameters

Name Type
product Product

Returns

undefined | VerifiedPurchase


get

▸ get(productId, platform?): undefined | Product

Find a product from its id and platform

Parameters

Name Type Description
productId string Product identifier on the platform.
platform? Platform The product the product exists in. Can be omitted if you're only using a single payment platform.

Returns

undefined | Product


getAdapter

▸ getAdapter(platform): undefined | Adapter

Retrieve a platform adapter.

The platform adapter has to have been initialized before.

See

initialize

Parameters

Name Type
platform Platform

Returns

undefined | Adapter


getApplicationUsername

▸ getApplicationUsername(): undefined | string

Get the application username as a string by either calling or returning applicationUsername

Returns

undefined | string


initialize

▸ initialize(platforms?): Promise<IError[]>

Call to initialize the in-app purchase plugin.

Parameters

Name Type Description
platforms (Platform | PlatformWithOptions)[] List of payment platforms to initialize, default to Store.defaultPlatform().

Returns

Promise<IError[]>


manageBilling

▸ manageBilling(platform?): Promise<undefined | IError>

Opens the billing methods page on AppStore, Play, Microsoft, ...

From this page, the user can update their payment methods.

If platform is not specified, the first available platform will be used.

Example

if (purchase.isBillingRetryPeriod)
    store.manageBilling(purchase.platform);

Parameters

Name Type
platform? Platform

Returns

Promise<undefined | IError>


manageSubscriptions

▸ manageSubscriptions(platform?): Promise<undefined | IError>

Open the subscription management interface for the selected platform.

If platform is not specified, the first available platform will be used.

Example

const activeSubscription: Purchase = // ...
store.manageSubscriptions(activeSubscription.platform);

Parameters

Name Type
platform? Platform

Returns

Promise<undefined | IError>


monitor

▸ monitor(transaction, onChange): TransactionMonitor

Setup a function to be notified of changes to a transaction state.

Example

const monitor = store.monitor(transaction, state => {
  console.log('new state: ' + state);
  if (state === TransactionState.FINISHED)
    monitor.stop();
});

Parameters

Name Type Description
transaction Transaction The transaction to monitor.
onChange Callback<TransactionState> Function to be called when the transaction status changes.

Returns

TransactionMonitor

A monitor which can be stopped with monitor.stop()


off

▸ off<T>(callback): void

Remove a callback from any listener it might have been added to.

Type parameters

Name
T

Parameters

Name Type
callback Callback<T>

Returns

void


order

▸ order(offer, additionalData?): Promise<undefined | IError>

Place an order for a given offer.

Parameters

Name Type
offer Offer
additionalData? AdditionalData

Returns

Promise<undefined | IError>


owned

▸ owned(product): boolean

Return true if a product is owned

Parameters

Name Type Description
product string | { id: string ; platform?: Platform } The product object or identifier of the product.

Returns

boolean


ready

▸ ready(cb): void

Register a callback to be called when the plugin is ready.

Parameters

Name Type
cb Callback<void>

Returns

void


refresh

▸ refresh(): void

Deprecated

  • use store.initialize(), store.update() or store.restorePurchases()

Returns

void


register

▸ register(product): void

Register a product.

Example

store.register([{
      id: 'subscription1',
      type: ProductType.PAID_SUBSCRIPTION,
      platform: Platform.APPLE_APPSTORE,
  }, {
      id: 'subscription1',
      type: ProductType.PAID_SUBSCRIPTION,
      platform: Platform.GOOGLE_PLAY,
  }, {
      id: 'consumable1',
      type: ProductType.CONSUMABLE,
      platform: Platform.BRAINTREE,
  }]);

Parameters

Name Type
product IRegisterProduct | IRegisterProduct[]

Returns

void


requestPayment

▸ requestPayment(paymentRequest, additionalData?): PaymentRequestPromise

Request a payment.

A payment is a custom amount to charge the user. Make sure the selected payment platform supports Payment Requests.

Parameters

Name Type Description
paymentRequest PaymentRequest Parameters of the payment request
additionalData? AdditionalData Additional parameters

Returns

PaymentRequestPromise


restorePurchases

▸ restorePurchases(): Promise<void>

Replay the users transactions.

This method exists to cover an Apple AppStore requirement.

Returns

Promise<void>


update

▸ update(): Promise<void>

Call to refresh the price of products and status of purchases.

Returns

Promise<void>


when

▸ when(): When

Setup events listener.

Example

store.when()
     .productUpdated(product => updateUI(product))
     .approved(transaction => transaction.verify())
     .verified(receipt => receipt.finish());

Returns

When