//Code untuk penggunaan/pengujian menggunakan eval code // Channel WhatsApp /* - https://whatsapp.com/channel/0029VbBAUUd4dTnQIJYRlX3T */ const createTransactionComplete = async (transactionData) => { const crypto = require('crypto'); const axios = require('axios'); const apiKey = "PAYKU_1234567890"; const secretKey = "11111aaaaa22222bbbbbb333333cccccccc"; const baseURL = "https://payku.my.id"; const timestamp = Date.now().toString(); const payload = { ...transactionData, timestamp }; const sortedKeys = Object.keys(payload).sort(); const stringToSign = sortedKeys.map(k => `${k}=${payload[k]}`).join('&'); const signature = crypto.createHmac('sha256', secretKey).update(stringToSign).digest('hex'); try { const response = await axios.post(`${baseURL}/api/create-transaction`, transactionData, { headers: { 'x-api-key': apiKey, 'x-signature': signature, 'x-timestamp': timestamp, 'Content-Type': 'application/json' } }); if (response.data && response.data.success) { return { success: true, data: response.data.data, message: response.data.message || 'Transaction created successfully' }; } else { throw new Error(response.data?.message || 'Unknown error from API'); } } catch (error) { if (error.response) { const errorMsg = error.response.data?.message || error.response.statusText || 'API Error'; throw new Error(`API Error [${error.response.status}]: ${errorMsg}`); } else if (error.request) { throw new Error('Network Error: Unable to connect to payment gateway'); } else { throw new Error(`Transaction failed: ${error.message}`); } } }; (async () => { try { const timestamp = Date.now().toString(); const result = await createTransactionComplete({ external_id: "EVAL" + timestamp, amount: 1000, // Ganti nominal test (Bebas) description: "Test Payku", customer_name: "Demo", customer_email: "demo@gmail.com", customer_phone: "08123456789", webhook_url: "https://payku.my.id/webhook" }); if (result.success && result.data) { console.log('Transaction ID:', result.data.transaction_id); console.log('Payment URL:', result.data.payment_url); console.log('QRIS URL:', result.data.qris_url); } } catch (error) { console.error('❌ Transaction Error:', error.message); } })();