Skip to content

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.

Notifications You must be signed in to change notification settings

fastuptime/AnyPay_NodeJS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 ID
  • secretKey (string): Anypay gizli anahtarı
  • apiId (string): Anypay API ID
  • apiKey (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: '[email protected]'
});

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: '[email protected]',
  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:

  1. IP adresi kontrolü: Bildirim, Anypay'in resmi IP adreslerinden gelmelidir (185.162.128.38, 185.162.128.39, 185.162.128.88)

  2. İmza kontrolü: Bildirim, özel bir algoritma kullanılarak imzalanır:

    SHA256(currency + ":" + amount + ":" + pay_id + ":" + merchant_id + ":" + status + ":" + secretKey)
    
  3. İş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 Rublesi
  • UAH - Ukrayna Grivnası
  • BYN - Belarus Rublesi
  • KZT - Kazak Tengesi
  • USD - 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

About

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.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published