cafebazaar-purchase-validator
Version:
easily validate purchase in app billing of Cafebazaar API
76 lines (57 loc) • 2.37 kB
Markdown
# Cafebazaar Purchase Validator
This package is a simple way to receive in-app purchases in [Cafebazaar](https://cafebazaar.ir?l=en) and check the validity of a purchase.
## Installation
Using npm:
```shell
$ npm i cafebazaar-purchase-validator
```
## Cafebazaar Setup
When you want to receive or verify a user's purchase through the [Developers API](https://pishkhan.cafebazaar.ir/settings/api), you must first follow the steps related to setting up the developers api section through [Bazaar Developers](https://developers.cafebazaar.ir/en/guidelines/in-app-billing/api/setting-up).<br>
In the [Developers API](https://pishkhan.cafebazaar.ir/settings/api), it assigns you <b>Client Id</b> and <b>Client Secret</b> values for your account:<br>
```
ClientId: 0S2TBs0yskyiL3256Dwsfgm1XSlh5re8krO
Client Secret: BFaAvMsyQuZY7SYlHSAD4klh3452356kghkgGF3rfsaeq35RTsd
```
Once set up you will finally have a JSON as follows:
```json
{
"access_token": "GWObRK06KHLr8pCQzDXJ9hcDdSC3eV",
"token_type": "Bearer",
"expires_in": 3600,
"refresh_token": "yBC4br1l6OCNWnahJvreOchIZ9B6ze",
"scope": "androidpublisher"
}
```
These values are used in the next step.
## Usage
### In Node.js:
```js
// Load the full build.
const cafebazaarPurchaseValidator = require("cafebazaar-purchase-validator");
// Init configuration values from Cafebazaar Setup section
cafebazaarPurchaseValidator.init({
accessToken: "GWObRK06KHLr8pCQzDXJ9hcDdSC3eV",
clientId: "0S2TBs0yskyiL3256Dwsfgm1XSlh5re8krO",
clientSecret: "BFaAvMsyQuZY7SYlHSAD4klh3452356kghkgGF3rfsaeq35RTsd",
refreshToken: "yBC4br1l6OCNWnahJvreOchIZ9B6ze",
});
// if purchase is valid and not consumed return true
// else return false
try {
const isNotConsumed = await isNotConsumedPurchase({
packageName: "app.package.name",
productId: "productSKU",
purchaseToken: "turTRfV5E6dsXo1t",
});
} catch (e) {}
// return full purchase of user
try {
const purchase = await getPurchase({
packageName: "app.package.name",
productId: "productSKU",
purchaseToken: "turTRfV5E6dsXo1t",
});
} catch (e) {}
```
## Note
This package automatically updates the new <b>access_token</b> using <b>refresh_token</b> when <b>access_token</b> has expired or is no longer valid, and you do not need to do anything else.