UNPKG

paymaya-integration

Version:

PayMaya payment system integration for Node.js applications

195 lines (175 loc) 5.33 kB
const PayMaya = require('./index'); const readline = require('readline'); const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); // PayMaya istemcisi const paymaya = new PayMaya({ publicKey: 'pk-Z0OSzLvIcOI2UIvDhdTGVVfRSSeiGStnceqwUE7n0Ah', secretKey: 'sk-X8qolYjy62kIzEbr0QRK1h4b4KDVHaNcwMYk39jInSl', environment: 'SANDBOX' }); // Menü function showMenu() { console.log('\n==== PAYMAYA TEST MENÜSÜ ===='); console.log('1. Ödeme Sayfası Oluştur'); console.log('2. Fatura Oluştur'); console.log('3. Webhook Ayarla'); console.log('4. Test Bilgilerini Göster'); console.log('0. Çıkış'); rl.question('\nLütfen bir seçenek girin (0-4): ', async (answer) => { switch(answer) { case '1': await createCheckout(); break; case '2': await createInvoice(); break; case '3': await setupWebhooks(); break; case '4': showTestInfo(); break; case '0': console.log('Programdan çıkılıyor...'); rl.close(); return; default: console.log('Geçersiz seçenek!'); } // Ana menüye dön setTimeout(showMenu, 1000); }); } // Ödeme Sayfası Oluştur async function createCheckout() { console.log('\n=== ÖDEME SAYFASI OLUŞTURULUYOR ==='); const checkoutData = { totalAmount: { value: 100.00, currency: 'PHP', }, buyer: { firstName: 'John', lastName: 'Doe', contact: { phone: '+639123456789', email: 'john.doe@example.com' }, shippingAddress: { line1: '123 Test Street', city: 'Manila', state: 'Metro Manila', zipCode: '1234', countryCode: 'PH' }, billingAddress: { line1: '123 Test Street', city: 'Manila', state: 'Metro Manila', zipCode: '1234', countryCode: 'PH' } }, items: [ { name: 'Test Product', quantity: 1, code: 'TST01', description: 'Test ürün', amount: { value: 100.00 }, totalAmount: { value: 100.00 } } ], redirectUrl: { success: 'https://www.example.com/success', failure: 'https://www.example.com/failure', cancel: 'https://www.example.com/cancel' }, requestReferenceNumber: 'REF-' + Date.now() }; try { const result = await paymaya.checkout.create(checkoutData); console.log('Ödeme sayfası oluşturuldu!'); console.log('Ödeme URL\'si:', result.redirectUrl); console.log('Checkout ID:', result.checkoutId); } catch (error) { console.error('Hata:', error.message); } } // Fatura Oluştur async function createInvoice() { console.log('\n=== FATURA OLUŞTURULUYOR ==='); const invoiceData = { totalAmount: { value: 150.00, currency: 'PHP', }, buyer: { firstName: 'John', lastName: 'Doe', contact: { phone: '+639123456789', email: 'john.doe@example.com' } }, title: 'Test Faturası', description: 'Test fatura açıklaması', redirectUrl: { success: 'https://www.example.com/success', failure: 'https://www.example.com/failure' }, requestReferenceNumber: 'INV-' + Date.now(), expiryDate: new Date(Date.now() + (7 * 24 * 60 * 60 * 1000)).toISOString() // 7 gün sonra }; try { const result = await paymaya.invoice.create(invoiceData); console.log('Fatura oluşturuldu!'); console.log('Fatura URL\'si:', result.redirectUrl); console.log('Fatura ID:', result.id); } catch (error) { console.error('Hata:', error.message); } } // Webhook Ayarla async function setupWebhooks() { console.log('\n=== WEBHOOK AYARLANIYOR ==='); try { // Mevcut webhook'ları listele const webhooks = await paymaya.webhooks.list(); console.log('Mevcut Webhook\'lar:', webhooks); // Yeni webhook ekle const webhook = { name: 'CHECKOUT_SUCCESS', callbackUrl: 'https://www.example.com/webhook/success' }; const result = await paymaya.webhooks.register(webhook); console.log('Webhook eklendi:', result); } catch (error) { console.error('Hata:', error.message); } } // Test bilgilerini göster function showTestInfo() { console.log('\n=== TEST BİLGİLERİ ==='); console.log('Sandbox API Keys:'); console.log('Public Key: pk-Z0OSzLvIcOI2UIvDhdTGVVfRSSeiGStnceqwUE7n0Ah'); console.log('Secret Key: sk-X8qolYjy62kIzEbr0QRK1h4b4KDVHaNcwMYk39jInSl'); console.log('\nTest Kartları:'); console.log('MASTERCARD: 5123456789012346, 12/2025, CVV: 111'); console.log('MASTERCARD (3DS): 5453010000064154, 12/2025, CVV: 111, 3DS Şifre: secbarry1'); console.log('VISA: 4123450131001381, 12/2025, CVV: 123, 3DS Şifre: mctest1'); console.log('\nMaya E-wallet Test Hesabı:'); console.log('Kullanıcı Adı: 09193890579'); console.log('Şifre: Password@1'); console.log('OTP: 123456'); } // Programı başlat console.log('PayMaya Sandbox Test Programı'); showMenu();