Skip to content

Latest commit

 

History

History
684 lines (409 loc) · 14.8 KB

CdvPurchase.Store.md

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