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-nodeveya
yarn add anypay-nodeconst { 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: 'customer@example.com' });Ö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: 'customer@example.com', 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