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.
npm install anypay-node
veya
yarn add anypay-node
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);
- Ö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
Anypay API'si ile etkileşim kurmak için ana sınıf.
new AnypayClient({
merchantId: 'YOUR_MERCHANT_ID',
secretKey: 'YOUR_SECRET_KEY',
apiId: 'YOUR_API_ID',
apiKey: 'YOUR_API_KEY'
})
merchantId
(string): Anypay Merchant IDsecretKey
(string): Anypay gizli anahtarıapiId
(string): Anypay API IDapiKey
(string): Anypay API anahtarı
Ö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: '[email protected]'
});
Ödeme formu HTML'i oluşturur.
const formHtml = client.createPaymentForm({
pay_id: '12345',
amount: '100.00',
currency: 'RUB',
desc: 'Test ödeme'
});
Ödeme bildirimini doğrular.
const isValid = client.validateNotification(notification, ipAddress);
Hesap bakiyesini alır.
const balance = await client.getBalance();
Döviz kurlarını alır.
const rates = await client.getRates();
Komisyon oranlarını alır.
const commissions = await client.getCommissions();
API üzerinden ödeme oluşturur.
const payment = await client.createPayment({
pay_id: '12345',
amount: '100.00',
currency: 'RUB',
desc: 'API ile test ödeme',
email: '[email protected]',
method: 'card'
});
Ö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
});
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'
});
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
});
Bildirim IP adreslerini alır.
const ipData = await client.getNotificationIPs();
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');
}
});
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.
RUB
- Rus RublesiUAH
- Ukrayna GrivnasıBYN
- Belarus RublesiKZT
- Kazak TengesiUSD
- ABD DolarıEUR
- Euro
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.
Detaylı örnekler için examples.js
dosyasına bakın.
ISC