Skip to content

Latest commit

 

History

History
713 lines (425 loc) · 15.6 KB

CdvPurchase.Store.md

File metadata and controls

713 lines (425 loc) · 15.6 KB

Class: Store

CdvPurchase.Store

Entry class of the plugin.

Table of contents

Constructors

Properties

Accessors

Methods

Constructors

constructor

new Store(): Store

Returns

Store

Properties

applicationUsername

Optional applicationUsername: string | () => undefined | string

Return the identifier of the user for your application


log

log: Logger

Logger


minTimeBetweenUpdates

minTimeBetweenUpdates: number = 600000

Avoid invoking store.update() if the most recent call occurred within this specific number of milliseconds.


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

CdvPurchase.Validator.Response.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

isReady

get isReady(): boolean

true if the plugin is initialized and ready

Returns

boolean


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.

Parameters

Name Type
platform Platform
functionality PlatformFunctionality

Returns

boolean

Example

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

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.

Parameters

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

Returns

void

Example

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

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.

Parameters

Name Type
platform Platform

Returns

undefined | Adapter

See

initialize


getApplicationUsername

getApplicationUsername(): undefined | string

Get the application username as a string by either calling or returning Store.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.

Parameters

Name Type
platform? Platform

Returns

Promise<undefined | IError>

Example

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

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.

Parameters

Name Type
platform? Platform

Returns

Promise<undefined | IError>

Example

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

monitor

monitor(transaction, onChange, callbackName): TransactionMonitor

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

Parameters

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

Returns

TransactionMonitor

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

Example

const monitor = store.monitor(transaction, state => {
  console.log('new state: ' + state);
  if (state === TransactionState.FINISHED)
    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.

This happens when all the platforms are initialized and their products loaded.

Parameters

Name Type
cb Callback<void>

Returns

void


refresh

refresh(): void

Returns

void

Deprecated

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

register

register(product): void

Register a product.

Parameters

Name Type
product IRegisterProduct | IRegisterProduct[]

Returns

void

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,
  }]);

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<undefined | IError>

Replay the users transactions.

This method exists to cover an Apple AppStore requirement.

Returns

Promise<undefined | IError>


update

update(): Promise<void>

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

Returns

Promise<void>


when

when(): When

Setup events listener.

Returns

When

Example

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