PayMaya Integration Module 💳
This module provides a client for integrating the PayMaya payment system into Node.js applications.
🇹🇷 Türkçe versiyonu için tıklayın
npm install paymaya-integration
const PayMaya = require('paymaya-integration');
const paymaya = new PayMaya({
publicKey: 'YOUR_PUBLIC_KEY',
secretKey: 'YOUR_SECRET_KEY',
environment: 'SANDBOX' // or 'PRODUCTION'
});
const checkoutData = {
totalAmount: {
value: 100,
currency: 'PHP',
},
buyer: {
firstName: 'John',
lastName: 'Doe',
contact: {
phone: '09123456789',
email: 'john.doe@example.com'
},
shippingAddress: {
line1: '123 Street',
line2: 'Sample Barangay',
city: 'Manila',
state: 'Metro Manila',
zipCode: '1234',
countryCode: 'PH'
},
billingAddress: {
line1: '123 Street',
line2: 'Sample Barangay',
city: 'Manila',
state: 'Metro Manila',
zipCode: '1234',
countryCode: 'PH'
}
},
items: [
{
name: 'Product 1',
quantity: 1,
code: 'PROD1',
description: 'Product description',
amount: {
value: 100,
details: {
discount: 0,
serviceCharge: 0,
shippingFee: 0,
tax: 0,
subtotal: 100
}
},
totalAmount: {
value: 100,
details: {
discount: 0,
serviceCharge: 0,
shippingFee: 0,
tax: 0,
subtotal: 100
}
}
}
],
redirectUrl: {
success: 'https://example.com/success',
failure: 'https://example.com/failure',
cancel: 'https://example.com/cancel'
},
requestReferenceNumber: 'REF123456789'
};
// Create payment transaction
paymaya.checkout.create(checkoutData)
.then(response => {
console.log('Checkout URL:', response.redirectUrl);
})
.catch(error => {
console.error('Error:', error.message);
});
Webhook Processing Example
// Express Application Example
const express = require('express');
const app = express();
app.use(express.json());
app.post('/webhook/payment', (req, res) => {
const isValid = paymaya.webhooks.verifyWebhook(req, 'YOUR_SECRET_KEY');
if (isValid) {
const event = req.body;
// Process webhook events
switch (event.type) {
case 'CHECKOUT_SUCCESS':
// Successful payment process
break;
case 'CHECKOUT_FAILURE':
// Failed payment process
break;
default:
console.log('Unknown event:', event.type);
}
res.status(200).send('OK');
} else {
res.status(400).send('Invalid webhook');
}
});
-
paymaya.checkout.create(checkoutData)
: Creates a new payment transaction
-
paymaya.checkout.retrieve(id)
: Gets the details of a payment transaction
-
paymaya.checkout.setWebhooks(webhooks)
: Sets webhook URLs
-
paymaya.checkout.getWebhooks()
: Gets webhook URLs
-
paymaya.invoice.create(invoiceData)
: Creates a new invoice
-
paymaya.invoice.retrieve(id)
: Gets the details of an invoice
-
paymaya.invoice.cancel(id, reason)
: Cancels an invoice
-
paymaya.vault.createCustomer(customerData)
: Creates a new customer
-
paymaya.vault.updateCustomer(customerId, customerData)
: Updates customer information
-
paymaya.vault.getCustomer(customerId)
: Gets customer information
-
paymaya.vault.deleteCustomer(customerId)
: Deletes a customer record
-
paymaya.vault.createCard(customerId, cardData)
: Adds a new card
-
paymaya.vault.getCard(customerId, cardId)
: Gets a saved card
-
paymaya.vault.deleteCard(customerId, cardId)
: Deletes a saved card
-
paymaya.vault.createPayment(customerId, cardId, paymentData)
: Makes a payment with a saved card
-
paymaya.webhooks.verifyWebhook(request, secretKey)
: Verifies a webhook
-
paymaya.webhooks.register(webhooks)
: Registers webhook URLs
-
paymaya.webhooks.list()
: Lists registered webhook URLs
-
paymaya.webhooks.update(id, webhookData)
: Updates webhook URLs
-
paymaya.webhooks.delete(id)
: Deletes a webhook registration
Sandbox Test Information ⚙️
Sandbox Merchant |
Public API Key |
Secret API Key |
Sandbox Party 1 |
pk-Z0OSzLvIcOI2UIvDhdTGVVfRSSeiGStnceqwUE7n0Ah |
sk-X8qolYjy62kIzEbr0QRK1h4b4KDVHaNcwMYk39jInSl |
Sandbox Party 2 |
pk-eo4sL393CWU5KmveJUaW8V730TTei2zY8zE4dHJDxkF |
sk-KfmfLJXFdV5t1inYN8lIOwSrueC1G27SCAklBqYCdrU |
Sandbox Party 3 |
pk-lNAUk1jk7VPnf7koOT1uoGJoZJjmAxrbjpj6urB8EIA |
sk-fzukI3GXrzNIUyvXY3n16cji8VTJITfzylz5o5QzZMC |
Card Type |
Number |
Expiry Month |
Expiry Year |
CVV |
3D Secure |
MASTERCARD |
5123456789012346 |
12 |
2025 |
111 |
Not Active |
MASTERCARD |
5453010000064154 |
12 |
2025 |
111 |
secbarry1 |
VISA |
4123450131001381 |
12 |
2025 |
123 |
mctest1 |
Maya E-wallet Test Account
- Username: 09193890579
- Password: Password@1
- OTP: 123456
PayMaya Entegrasyon Modülü 💳
Bu modül, PayMaya ödeme sistemini Node.js uygulamalarına entegre etmek için bir istemci sağlar.
🇬🇧 Click for English version
npm install paymaya-integration
const PayMaya = require('paymaya-integration');
const paymaya = new PayMaya({
publicKey: 'YOUR_PUBLIC_KEY',
secretKey: 'YOUR_SECRET_KEY',
environment: 'SANDBOX' // veya 'PRODUCTION'
});
const checkoutData = {
totalAmount: {
value: 100,
currency: 'PHP',
},
buyer: {
firstName: 'John',
lastName: 'Doe',
contact: {
phone: '09123456789',
email: 'john.doe@example.com'
},
shippingAddress: {
line1: '123 Street',
line2: 'Sample Barangay',
city: 'Manila',
state: 'Metro Manila',
zipCode: '1234',
countryCode: 'PH'
},
billingAddress: {
line1: '123 Street',
line2: 'Sample Barangay',
city: 'Manila',
state: 'Metro Manila',
zipCode: '1234',
countryCode: 'PH'
}
},
items: [
{
name: 'Product 1',
quantity: 1,
code: 'PROD1',
description: 'Product description',
amount: {
value: 100,
details: {
discount: 0,
serviceCharge: 0,
shippingFee: 0,
tax: 0,
subtotal: 100
}
},
totalAmount: {
value: 100,
details: {
discount: 0,
serviceCharge: 0,
shippingFee: 0,
tax: 0,
subtotal: 100
}
}
}
],
redirectUrl: {
success: 'https://example.com/success',
failure: 'https://example.com/failure',
cancel: 'https://example.com/cancel'
},
requestReferenceNumber: 'REF123456789'
};
// Ödeme işlemi oluştur
paymaya.checkout.create(checkoutData)
.then(response => {
console.log('Checkout URL:', response.redirectUrl);
})
.catch(error => {
console.error('Error:', error.message);
});
// Express Uygulaması Örneği
const express = require('express');
const app = express();
app.use(express.json());
app.post('/webhook/payment', (req, res) => {
const isValid = paymaya.webhooks.verifyWebhook(req, 'YOUR_SECRET_KEY');
if (isValid) {
const event = req.body;
// Webhook olaylarını işle
switch (event.type) {
case 'CHECKOUT_SUCCESS':
// Başarılı ödeme işlemi
break;
case 'CHECKOUT_FAILURE':
// Başarısız ödeme işlemi
break;
default:
console.log('Bilinmeyen olay:', event.type);
}
res.status(200).send('OK');
} else {
res.status(400).send('Invalid webhook');
}
});
-
paymaya.checkout.create(checkoutData)
: Yeni bir ödeme işlemi oluşturur
-
paymaya.checkout.retrieve(id)
: Bir ödeme işleminin detayını alır
-
paymaya.checkout.setWebhooks(webhooks)
: Webhook URL'lerini ayarlar
-
paymaya.checkout.getWebhooks()
: Webhook URL'lerini alır
-
paymaya.invoice.create(invoiceData)
: Yeni bir fatura oluşturur
-
paymaya.invoice.retrieve(id)
: Bir faturanın detaylarını alır
-
paymaya.invoice.cancel(id, reason)
: Bir faturayı iptal eder
-
paymaya.vault.createCustomer(customerData)
: Yeni bir müşteri oluşturur
-
paymaya.vault.updateCustomer(customerId, customerData)
: Müşteri bilgilerini günceller
-
paymaya.vault.getCustomer(customerId)
: Müşteri bilgilerini alır
-
paymaya.vault.deleteCustomer(customerId)
: Müşteri kaydını siler
-
paymaya.vault.createCard(customerId, cardData)
: Yeni bir kart ekler
-
paymaya.vault.getCard(customerId, cardId)
: Kaydedilmiş kartı alır
-
paymaya.vault.deleteCard(customerId, cardId)
: Kaydedilmiş kartı siler
-
paymaya.vault.createPayment(customerId, cardId, paymentData)
: Kaydedilmiş kart ile ödeme yapar
-
paymaya.webhooks.verifyWebhook(request, secretKey)
: Webhook doğrulaması yapar
-
paymaya.webhooks.register(webhooks)
: Webhook URL'lerini kaydeder
-
paymaya.webhooks.list()
: Kayıtlı webhook URL'lerini listeler
-
paymaya.webhooks.update(id, webhookData)
: Webhook URL'lerini günceller
-
paymaya.webhooks.delete(id)
: Webhook kaydını siler
Sandbox Test Bilgileri ⚙️
Sandbox Merchant |
Public API Key |
Secret API Key |
Sandbox Party 1 |
pk-Z0OSzLvIcOI2UIvDhdTGVVfRSSeiGStnceqwUE7n0Ah |
sk-X8qolYjy62kIzEbr0QRK1h4b4KDVHaNcwMYk39jInSl |
Sandbox Party 2 |
pk-eo4sL393CWU5KmveJUaW8V730TTei2zY8zE4dHJDxkF |
sk-KfmfLJXFdV5t1inYN8lIOwSrueC1G27SCAklBqYCdrU |
Sandbox Party 3 |
pk-lNAUk1jk7VPnf7koOT1uoGJoZJjmAxrbjpj6urB8EIA |
sk-fzukI3GXrzNIUyvXY3n16cji8VTJITfzylz5o5QzZMC |
Kart Tipi |
Numara |
Son Kullanma Ay |
Son Kullanma Yıl |
CVV |
3D Secure |
MASTERCARD |
5123456789012346 |
12 |
2025 |
111 |
Aktif Değil |
MASTERCARD |
5453010000064154 |
12 |
2025 |
111 |
secbarry1 |
VISA |
4123450131001381 |
12 |
2025 |
123 |
mctest1 |
Maya E-wallet Test Hesabı
- Kullanıcı Adı: 09193890579
- Şifre: Password@1
- OTP: 123456