A Node.js client for the Xsolla API. Written in TypeScript to provide you with all the type checking and auto-completion convenience supported by most modern JS IDEs. 👌
Pull in the package with npm:
npm install xsolla
Initialize Xsolla:
const Xsolla = require('xsolla').default;
const client = new Xsolla({
merchantId: 123456,
apiKey: 'abc123',
})
The Xsolla client exposes a projects
property that can be used to create, update and read projects attached to your
merchant account.
client.projects.create({
name: ["My brand new Xsolla project"],
url: 'https://example.com',
}).then((project) => console.log('Created new project', project));
Returns a promise for a Project
model.
const project = await client.projects.get({ project_id: 123456 })
Returns a promise for a Project
model.
const projects = client.projects.all();
Returns a promise for an array of Project
models.
The Project model is an instance of a project that you've either created or fetched
You can create payment tokens directly from a Project model.
(Obtained by either Xsolla.projects.get()
or Xsolla.projects.create()
)
const { token } = await project.createPaymentToken({
user: {
id: {
value: '47',
}
},
settings: {
mode: 'sandbox',
},
purchase: {
checkout: {
amount: 13.37,
currency: 'USD',
}
}
});
const url = await project.createPaymentUrl({
user: {
id: {
value: '47',
}
},
settings: {
mode: 'sandbox',
},
purchase: {
checkout: {
amount: 13.37,
currency: 'USD',
}
}
});
const updatedProject = await project.update({
name: ["Some other Xsolla project name"],
});
Returns a promise for an updated Project
model.
app.post('/webhooks/xsolla', (req, res) => {
try {
project.validateWebhookRequest(req.getHeader('authorization'), req.rawBody);
} catch (xsollaException) {
res.send(xsollaException.jsonResponse());
res.status(xsollaException.httpResponseCode).end();
}
});
Project's validateWebhookRequest()
method throws an
XsollaException
for unauthorized requests.
This repository is licensed under the ISC license.
Copyright (c) 2019, Jørgen Vatle.