Anypay Node.js Entegrasyonu
Bu modül, Anypay ödeme geçidi için Node.js entegrasyonu sağlar. Ödeme formları oluşturma, ödeme bildirimleri doğrulama ve Anypay API'sini kullanma gibi işlevler sunar.
Kurulum
npm install anypay-node
veya
yarn add anypay-node
Hızlı Başlangıç
const { AnypayClient } = require('anypay-node');
// AnypayClient örneği oluşturma
const client = new AnypayClient({
merchantId: 'YOUR_MERCHANT_ID',
secretKey: 'YOUR_SECRET_KEY',
apiId: 'YOUR_API_ID',
apiKey: 'YOUR_API_KEY'
});
// Ödeme formu oluşturma
const formHtml = client.createPaymentForm({
pay_id: '12345',
amount: '100.00',
currency: 'RUB',
desc: 'Test ödeme'
});
console.log(formHtml);
Özellikler
- Ödeme formu oluşturma
- Ödeme bildirimi doğrulama
- Hesap bakiyesi sorgulama
- Döviz kurlarını alma
- Komisyon oranlarını alma
- API üzerinden ödeme oluşturma
- Ödeme işlemlerini listeleme
- Para çekme işlemi oluşturma
- Para çekme işlemlerini listeleme
- Bildirim IP adreslerini alma
API Referansı
AnypayClient
Anypay API'si ile etkileşim kurmak için ana sınıf.
Constructor
new AnypayClient({
merchantId: 'YOUR_MERCHANT_ID',
secretKey: 'YOUR_SECRET_KEY',
apiId: 'YOUR_API_ID',
apiKey: 'YOUR_API_KEY'
})
Parametreler
merchantId
(string): Anypay Merchant IDsecretKey
(string): Anypay gizli anahtarıapiId
(string): Anypay API IDapiKey
(string): Anypay API anahtarı
Ödeme İşlemleri
createPaymentFormData(params)
Ödeme formu verilerini oluşturur.
const formData = client.createPaymentFormData({
pay_id: '12345',
amount: '100.00',
currency: 'RUB',
desc: 'Test ödeme',
success_url: 'https://example.com/success',
fail_url: 'https://example.com/fail',
email: 'customer@example.com'
});
createPaymentForm(params)
Ödeme formu HTML'i oluşturur.
const formHtml = client.createPaymentForm({
pay_id: '12345',
amount: '100.00',
currency: 'RUB',
desc: 'Test ödeme'
});
validateNotification(notification, ipAddress)
Ödeme bildirimini doğrular.
const isValid = client.validateNotification(notification, ipAddress);
async getBalance()
Hesap bakiyesini alır.
const balance = await client.getBalance();
async getRates()
Döviz kurlarını alır.
const rates = await client.getRates();
async getCommissions()
Komisyon oranlarını alır.
const commissions = await client.getCommissions();
async createPayment(params)
API üzerinden ödeme oluşturur.
const payment = await client.createPayment({
pay_id: '12345',
amount: '100.00',
currency: 'RUB',
desc: 'API ile test ödeme',
email: 'customer@example.com',
method: 'card'
});
async getPayments(params)
Ödeme işlemlerini listeler.
const payments = await client.getPayments({
trans_id: '12345', // isteğe bağlı
pay_id: '12345', // isteğe bağlı
offset: 0 // isteğe bağlı, varsayılan: 0
});
async createPayout(params)
Yeni para çekme işlemi oluşturur.
const payout = await client.createPayout({
payout_id: '54321',
payout_type: 'card',
amount: '1000.00',
wallet: '4000000000000000',
wallet_currency: 'RUB',
commission_type: 'payment'
});
async getPayouts(params)
Para çekme işlemlerini listeler.
const payouts = await client.getPayouts({
trans_id: '12345', // isteğe bağlı
payout_id: '12345', // isteğe bağlı
offset: 0 // isteğe bağlı, varsayılan: 0
});
async getNotificationIPs()
Bildirim IP adreslerini alır.
const ipData = await client.getNotificationIPs();
Ödeme Bildirimleri İşleme
Anypay, ödeme tamamlandığında belirttiğiniz callback URL'sine bir bildirim gönderir. Bu bildirimi doğrulamak için:
// Express.js örneği
app.post('/payment-callback', (req, res) => {
const notification = req.body;
const ipAddress = req.ip;
// Bildirimi doğrula
const isValid = client.validateNotification(notification, ipAddress);
if (isValid) {
// Ödeme geçerli, işlem yapın
console.log('Geçerli ödeme:', notification);
// Ödeme verilerini işle
const { transaction_id, pay_id, amount, currency, status } = notification;
if (status === 'paid') {
// Siparişi onayla, krediyi etkinleştir, vb.
// Veritabanında işlem durumunu güncelle
// Örn: await db.updateOrder(pay_id, 'paid');
} else if (status === 'partially-paid') {
// Kısmi ödeme alındı
} else if (status === 'waiting') {
// Hala ödeme bekleniyor
}
// İşlem başarılı - Anypay'in beklediği "OK" yanıtını gönder
res.send('OK');
} else {
// Geçersiz bildirim
console.error('Geçersiz ödeme bildirimi!');
res.status(400).send('Invalid notification');
}
});
Bildirim Doğrulama Detayları
Anypay bildirim doğrulama şu adımları içerir:
IP adresi kontrolü: Bildirim, Anypay'in resmi IP adreslerinden gelmelidir (185.162.128.38, 185.162.128.39, 185.162.128.88)
İmza kontrolü: Bildirim, özel bir algoritma kullanılarak imzalanır:
SHA256(currency + ":" + amount + ":" + pay_id + ":" + merchant_id + ":" + status + ":" + secretKey)
İşlem doğrulama: Ödeme miktarı, para birimi ve diğer önemli bilgileri orijinal sipariş verileriyle karşılaştırın.
Desteklenen Para Birimleri
RUB
- Rus RublesiUAH
- Ukrayna GrivnasıBYN
- Belarus RublesiKZT
- Kazak TengesiUSD
- ABD DolarıEUR
- Euro
Desteklenen Ödeme Yöntemleri
Modül, Anypay tarafından desteklenen tüm ödeme yöntemlerini destekler:
- Banka Kartları
- Elektronik Cüzdanlar (ЮMoney, Webmoney, vb.)
- Kripto Para Birimleri (Bitcoin, Ethereum, vb.)
- Mobil Ödemeler
- ve daha fazlası
Her ödeme yöntemi için tam liste constants.js
dosyasında bulunabilir.
Örnekler
Detaylı örnekler için examples.js
dosyasına bakın.
License
ISC