anypay-node v1.0.2
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