CdvPurchase.Store
Entry class of the plugin.
- checkSupport
- defaultPlatform
- error
- findInLocalReceipts
- findInVerifiedReceipts
- get
- getAdapter
- getApplicationUsername
- initialize
- manageBilling
- manageSubscriptions
- monitor
- off
- order
- owned
- ready
- refresh
- register
- requestPayment
- restorePurchases
- update
- when
• new Store()
• Optional
applicationUsername: string
| () => string
Return the identifier of the user for your application
• log: Logger
Logger
• 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
• 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: 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
• version: string
= PLUGIN_VERSION
Version of the plugin currently installed.
• get
localReceipts(): Receipt
[]
List of all receipts present on the device.
Receipt
[]
• get
localTransactions(): Transaction
[]
List of all transaction from the local receipts.
• get
products(): Product
[]
List of all active products.
Products are active if their details have been successfully loaded from the store.
Product
[]
• get
verifiedPurchases(): VerifiedPurchase
[]
List of all purchases from the verified receipts.
• 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.
▸ checkSupport(platform
, functionality
): boolean
Returns true if a platform supports the requested functionality.
Example
store.checkSupport(Platform.APPLE_APPSTORE, 'requestPayment');
// => false
Name | Type |
---|---|
platform |
Platform |
functionality |
PlatformFunctionality |
boolean
▸ defaultPlatform(): Platform
The default payment platform to use depending on the OS.
- on iOS:
APPLE_APPSTORE
- on Android:
GOOGLE_PLAY
▸ error(error
): void
Register an error handler.
Example
store.error(function(error) {
console.error('CdvPurchase ERROR: ' + error.message);
});
Name | Type | Description |
---|---|---|
error |
Callback <IError > |
An error callback that takes the error as an argument |
void
▸ findInLocalReceipts(product
): undefined
| Transaction
Find the latest transaction for a given product, from those reported by the device.
Name | Type |
---|---|
product |
Product |
undefined
| Transaction
▸ findInVerifiedReceipts(product
): undefined
| VerifiedPurchase
Find the last verified purchase for a given product, from those verified by the receipt validator.
Name | Type |
---|---|
product |
Product |
undefined
| VerifiedPurchase
▸ get(productId
, platform?
): undefined
| Product
Find a product from its id and platform
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. |
undefined
| Product
▸ getAdapter(platform
): undefined
| Adapter
Retrieve a platform adapter.
The platform adapter has to have been initialized before.
See
Name | Type |
---|---|
platform |
Platform |
undefined
| Adapter
▸ getApplicationUsername(): undefined
| string
Get the application username as a string by either calling or returning applicationUsername
undefined
| string
▸ initialize(platforms?
): Promise
<IError
[]>
Call to initialize the in-app purchase plugin.
Name | Type | Description |
---|---|---|
platforms |
(Platform | PlatformWithOptions )[] |
List of payment platforms to initialize, default to Store.defaultPlatform(). |
Promise
<IError
[]>
▸ 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);
Name | Type |
---|---|
platform? |
Platform |
Promise
<undefined
| IError
>
▸ 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);
Name | Type |
---|---|
platform? |
Platform |
Promise
<undefined
| IError
>
▸ 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();
});
Name | Type | Description |
---|---|---|
transaction |
Transaction |
The transaction to monitor. |
onChange |
Callback <TransactionState > |
Function to be called when the transaction status changes. |
A monitor which can be stopped with monitor.stop()
▸ off<T
>(callback
): void
Remove a callback from any listener it might have been added to.
Name |
---|
T |
Name | Type |
---|---|
callback |
Callback <T > |
void
▸ order(offer
, additionalData?
): Promise
<undefined
| IError
>
Place an order for a given offer.
Name | Type |
---|---|
offer |
Offer |
additionalData? |
AdditionalData |
Promise
<undefined
| IError
>
▸ owned(product
): boolean
Return true if a product is owned
Name | Type | Description |
---|---|---|
product |
string | { id : string ; platform? : Platform } |
The product object or identifier of the product. |
boolean
▸ ready(cb
): void
Register a callback to be called when the plugin is ready.
Name | Type |
---|---|
cb |
Callback <void > |
void
▸ refresh(): void
Deprecated
- use store.initialize(), store.update() or store.restorePurchases()
void
▸ 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,
}]);
Name | Type |
---|---|
product |
IRegisterProduct | IRegisterProduct [] |
void
▸ 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.
Name | Type | Description |
---|---|---|
paymentRequest |
PaymentRequest |
Parameters of the payment request |
additionalData? |
AdditionalData |
Additional parameters |
▸ restorePurchases(): Promise
<void
>
Replay the users transactions.
This method exists to cover an Apple AppStore requirement.
Promise
<void
>
▸ update(): Promise
<void
>
Call to refresh the price of products and status of purchases.
Promise
<void
>
▸ when(): When
Setup events listener.
Example
store.when()
.productUpdated(product => updateUI(product))
.approved(transaction => transaction.verify())
.verified(receipt => receipt.finish());