/capacitor-plugin-glassfy

Open source SDK to quickly integrate subscriptions, stop worring about code maintenance, and getting advanced real-time data. Support CapacitorJS

Primary LanguageTypeScriptMIT LicenseMIT

Important: Glassfy SDKs are deprecated. Glassfy will be ceasing operations by the end of 2024. Read the blog post here


npm

Warning
These plugin is for Capacitor 6. For Capacitor 5, use the 3.x version.

CapacitorJS Glassfy Plugin

Glassfy is a subscription revenue optimisation infrastructure for mobile applications.

Getting Started

Check the documentation at docs.glassfy.io to learn details on implementing and using Glassfy SDK.


Plugin Install

npm install capacitor-plugin-glassfy
npx cap sync

Build plugin and example

be sure to have ionic cli installed following instructions here


npm install
npm run build
cd example
npm install
ionic capacitor sync ios
ionic capacitor open ios

API

sdkVersion()

sdkVersion() => Promise<GlassfyVersion>

Returns: Promise<GlassfyVersion>


initialize(...)

initialize(options: { apiKey: string; watcherMode: boolean; }) => Promise<void>

For more details, follow instruction at https://docs.glassfy.io/get-started/configuration

Param Type
options { apiKey: string; watcherMode: boolean; }

setLogLevel(...)

setLogLevel(options: { logLevel: GLASSFY_LOGLEVEL; }) => Promise<void>
Param Type
options { logLevel: GLASSFY_LOGLEVEL; }

offerings()

offerings() => Promise<GlassfyOfferings>

For more details, check the documentation https://docs.glassfy.io/dashboard/configure-offerings

Returns: Promise<GlassfyOfferings>


purchaseHistory()

purchaseHistory() => Promise<GlassfyPurchasesHistory>

For more details, check the documentation https://docs.glassfy.io/dashboard/configure-offerings

Returns: Promise<GlassfyPurchasesHistory>


permissions()

permissions() => Promise<GlassfyPermissions>

For more details, check the documentation https://docs.glassfy.io/dashboard/configure-permissions.html

Returns: Promise<GlassfyPermissions>


skuWithId(...)

skuWithId(options: { identifier: string; }) => Promise<GlassfySku>

For more details, check the documentation https://docs.glassfy.io/dashboard/configure-products

Param Type
options { identifier: string; }

Returns: Promise<GlassfySku>


skuWithIdAndStore(...)

skuWithIdAndStore(options: { identifier: string; store: GLASSFY_STORE; }) => Promise<GlassfySkuBase>
Param Type
options { identifier: string; store: GLASSFY_STORE; }

Returns: Promise<GlassfySkuBase>


connectCustomSubscriber(...)

connectCustomSubscriber(options: { subscriberId: string; }) => Promise<void>
Param Type
options { subscriberId: string; }

connectPaddleLicenseKey(...)

connectPaddleLicenseKey(options: { licenseKey: string; force: boolean; }) => Promise<void>
Param Type
options { licenseKey: string; force: boolean; }

connectGlassfyUniversalCode(...)

connectGlassfyUniversalCode(options: { universalCode: string; force: boolean; }) => Promise<void>
Param Type
options { universalCode: string; force: boolean; }

setEmailUserProperty(...)

setEmailUserProperty(options: { email: string; }) => Promise<void>
Param Type
options { email: string; }

setDeviceToken(...)

setDeviceToken(options: { token: string; }) => Promise<void>
Param Type
options { token: string; }

setExtraUserProperty(...)

setExtraUserProperty(options: { extra: GlassfyExtraProperty; }) => Promise<void>
Param Type
options { extra: GlassfyExtraProperty; }

getUserProperty()

getUserProperty() => Promise<GlassfyUserProperties>

Returns: Promise<GlassfyUserProperties>


purchaseSku(...)

purchaseSku(options: { sku: GlassfySku; skuToUpgrade?: GlassfySku; replacementMode?: GLASSFY_REPLACEMENT_MODE; }) => Promise<GlassfyTransaction>
Param Type
options { sku: GlassfySku; skuToUpgrade?: GlassfySku; replacementMode?: GLASSFY_REPLACEMENT_MODE; }

Returns: Promise<GlassfyTransaction>


restorePurchases()

restorePurchases() => Promise<GlassfyPermissions>

Returns: Promise<GlassfyPermissions>


storeInfo()

storeInfo() => Promise<GlassfyStoresInfo>

Returns: Promise<GlassfyStoresInfo>


setAttribution(...)

setAttribution(options: { type: GLASSFY_ATTRIBUTION; value: string; }) => Promise<void>
Param Type
options { type: GLASSFY_ATTRIBUTION; value: string; }

setAttributions(...)

setAttributions(options: { items: GlassfyAttributionItem[]; }) => Promise<void>
Param Type
options { items: GlassfyAttributionItem[]; }

_paywall(...)

_paywall(options: { remoteConfig: string; awaitLoading: boolean; }) => Promise<void>
Param Type
options { remoteConfig: string; awaitLoading: boolean; }

_closePaywall()

_closePaywall() => Promise<void>

_openUrl(...)

_openUrl(options: { url: string; }) => Promise<void>
Param Type
options { url: string; }

Interfaces

GlassfyVersion

Prop Type
version string

GlassfyOfferings

Prop Type
all GlassfyOffering[]

GlassfyOffering

Prop Type
offeringId string
skus GlassfySku[]

GlassfySku

Prop Type
introductoryEligibility GLASSFY_ELEGIBILITY
promotionalEligibility GLASSFY_ELEGIBILITY
extravars { [key: string]: string; }
product GlassfyProduct
basePlanId string
offerId string
discount GlassfyProductDiscount

GlassfyProduct

Prop Type
title string
identifier string
description string
price number
currencyCode string
period string
introductoryPrice GlassfyProductDiscount
discounts GlassfyProductDiscount[]
basePlanId string

GlassfyProductDiscount

Prop Type
identifier string
price number
currencyCode string
period string
numberOfPeriods number
type string

GlassfyPurchasesHistory

Prop Type
all GlassfyPurchaseHistory[]

GlassfyPurchaseHistory

Prop Type
productId string
skuId string
type GLASSFY_EVENT_TYPE
store GLASSFY_STORE
purchaseDate string
expireDate string
transactionId string
subscriberId string
currencyCode string
countryCode string
isInIntroOfferPeriod boolean
promotionalOfferId string
offerCodeRefName string
licenseCode string
webOrderLineItemId string

GlassfyPermissions

Prop Type
installationId string
subscriberId string
originalApplicationVersion string
originalApplicationDate string
all GlassfyPermission[]

GlassfyPermission

Prop Type
permissionId string
entitlement GLASSFY_ENTITLEMENT
isValid boolean
expireDate string
accountableSkus GlassfyAccountableSku[]

GlassfyAccountableSku

Prop Type
isInIntroOfferPeriod boolean
isInTrialPeriod boolean
basePlanId string
offerId string

GlassfySkuBase

Prop Type
skuId string
productId string
store GLASSFY_STORE

GlassfyUserProperties

Prop Type
email string
token boolean
extra GlassfyExtraProperty

GlassfyTransaction

Prop Type
productId string
receiptValidated boolean
permissions GlassfyPermissions

GlassfyStoresInfo

Prop Type
all (GlassfyStoreInfo | GlassfyPaddleStoreInfo)[]

GlassfyStoreInfo

Prop Type
store Exclude<GLASSFY_STORE, GLASSFY_STORE.Paddle>
extravars { [key: string]: string; }

GlassfyPaddleStoreInfo

Prop Type
store GLASSFY_STORE.Paddle
extravars { [key: string]: string; }
userid string
planId string
subscriptionId string
updateURL string
cancelURL string

GlassfyAttributionItem

Prop Type
type GLASSFY_ATTRIBUTION
value string

Type Aliases

GlassfyExtraProperty

{ [key: string]: string }

Exclude

Exclude from T those types that are assignable to U

T extends U ? never : T

Enums

GLASSFY_LOGLEVEL

Members Value
OFF 0
ERROR 1
DEBUG 2
INFO 3
ALL 3

GLASSFY_ELEGIBILITY

Members Value
ELEGIBLE 1
NON_ELEGIBLE -1
UNKNOWN 0

GLASSFY_EVENT_TYPE

Members Value
InitialBuy 5001
Restarted 5002
Renewed 5003
Expired 5004
DidChangeRenewalStatus 5005
IsInBillingRetryPeriod 5006
ProductChange 5007
InAppPurchase 5008
Refund 5009
Paused 5010
Resumed 5011
ConnectLicense 5012
DisconnectLicense 5013

GLASSFY_STORE

Members Value
AppStore 1
PlayStore 2
Paddle 3
Stripe 4
Glassfy 5

GLASSFY_ENTITLEMENT

Members Value
NEVERBUY -9
OTHERREFUND -8
ISSUEREFUND -7
UPGRADED -6
EXPIREDVOLUNTARY -5
PRODUCTNOTAVAILABLE -4
FAILTOACCEPTINCREASE -3
EXPIREDFROMBILLING -2
INRETRY -1
MISSINGINFO 0
EXPIREDINGRACE 1
OFFPLATFORM 2
NONRENEWING 3
AUTORENEWOFF 4
AUTORENEWON 5

GLASSFY_REPLACEMENT_MODE

Members Value
UNKNOWN_REPLACEMENT_MODE 0
WITH_TIME_PRORATION 1
CHARGE_PRORATED_PRICE 2
WITHOUT_PRORATION 3
CHARGE_FULL_PRICE 5
DEFERRED 6

GLASSFY_ATTRIBUTION

Members Value
AdjustID 1
AppsFlyerID 2
IP 3
IDFA 4
IDFV 5
GAID 6
ASID 7
AID 8