Chuyển tới nội dung chính

NodeJS SDK

Tài liệu đầy đủ

Để biết thêm chi tiết về các phương thức, tham số và tính năng nâng cao (pagination, error handling, logging, v.v.), vui lòng xem GitHub Repository.

Cài đặt

Cài đặt gói @payos/node thông qua npm hoặc yarn:

npm install @payos/node
# hoặc
yarn add @payos/node

Khởi tạo

Khởi tạo đối tượng PayOS với Client ID, API Key và Checksum Key từ kênh thanh toán:

import { PayOS } from '@payos/node';

const payOS = new PayOS({
clientId: process.env.PAYOS_CLIENT_ID,
apiKey: process.env.PAYOS_API_KEY,
checksumKey: process.env.PAYOS_CHECKSUM_KEY,
});

Sử dụng phương thức paymentRequests.create() để tạo link thanh toán:

const paymentData = {
orderCode: 123456,
amount: 50000,
description: 'Thanh toán đơn hàng',
items: [
{
name: 'Sản phẩm A',
quantity: 1,
price: 50000,
},
],
cancelUrl: 'https://your-domain.com/cancel',
returnUrl: 'https://your-domain.com/success',
};

const paymentLink = await payOS.paymentRequests.create(paymentData);
console.log(paymentLink.checkoutUrl);

Xác minh webhook

Sử dụng phương thức webhooks.verify() để xác thực dữ liệu webhook:

app.post('/webhook', (req, res) => {
try {
const webhookData = payOS.webhooks.verify(req.body);
console.log('Thanh toán thành công:', webhookData);
res.status(200).send('OK');
} catch (error) {
console.error('Webhook không hợp lệ:', error);
res.status(400).send('Invalid webhook');
}
});

Tạo payout

Sử dụng phương thức payouts.batch.create() để tạo payout theo lô:

const referenceId = `payout_${Date.now()}`;
const payoutBatch = await payOS.payouts.batch.create({
referenceId,
category: ['salary'],
validateDestination: true,
payouts: [
{
referenceId: `${referenceId}_1`,
amount: 2000,
description: 'Thanh toán lương',
toBin: '970422',
toAccountNumber: '0123456789',
},
{
referenceId: `${referenceId}_2`,
amount: 3000,
description: 'Thanh toán thưởng',
toBin: '970422',
toAccountNumber: '0987654321',
},
],
});

console.log('Payout ID:', payoutBatch.id);