Bu modül, Epoint.az elektronik ödeme platformu için Node.js desteği sağlar. API üzerinden ödeme işlemlerini, kart kaydı ve doğrulama işlemlerini kolaylıkla gerçekleştirebilirsiniz.
npm install axiosEpoint.az hesabınızı oluşturup, merchant (satıcı) hesabınızı yapılandırdıktan sonra size verilen private_key ve public_key bilgilerini kullanmanız gerekmektedir.
constEpoint=require('./epoint.js');// Kimlik bilgilerinizi tanımlayınconstprivateKey='your_private_key';constpublicKey='your_public_key';asyncfunctioncreatePayment(){try{constresponse=awaitEpoint.typeCard(privateKey,publicKey,'order123',// Siparişinize özel benzersiz ID100.50,// Ödeme tutarı'Test payment',// Açıklama'https://example.com/success',// Başarılı ödeme yönlendirme URL'i'https://example.com/error'// Başarısız ödeme yönlendirme URL'i);if(response.status==='success'){// Kullanıcıyı ödeme sayfasına yönlendirinconsole.log(`Ödeme sayfası URL: ${response.redirect_url}`);// redirect to: response.redirect_url}else{console.error('Ödeme sayfası oluşturulamadı:',response.message);}}catch(error){console.error('Ödeme hatası:',error);}}asyncfunctioncheckPaymentStatus(orderId){try{// Order ID ile sorgulamaconstresponse=awaitEpoint.checkPayment(privateKey,publicKey,orderId);console.log(`Ödeme durumu: ${response.status}`);returnresponse;// Alternatif olarak Epoint transaction ID ile de sorgulama yapabilirsiniz// const response = await Epoint.checkPayment(privateKey, publicKey, transactionId, true);}catch(error){console.error('Durum sorgulama hatası:',error);}}asyncfunctionsaveCard(){try{constresponse=awaitEpoint.saveCardForPayment(privateKey,publicKey,'Kart kaydetme işlemi','https://example.com/success','https://example.com/error');if(response.status==='success'){console.log(`Kart kayıt sayfası: ${response.redirect_url}`);// redirect to: response.redirect_url}else{console.error('Kart kayıt sayfası oluşturulamadı:',response.message);}}catch(error){console.error('Kart kaydetme hatası:',error);}}asyncfunctionpayWithSavedCard(cardUid,orderId,amount){try{constresponse=awaitEpoint.payWithSaved(privateKey,publicKey,cardUid,// Kaydedilmiş kartın ID'siorderId,// Sipariş IDamount,// Ödeme tutarı'Kaydedilmiş kart ile ödeme');if(response.status==='success'){console.log('Ödeme başarılı!');console.log('Transaction ID:',response.transaction);}else{console.error('Ödeme başarısız:',response.message);}returnresponse;}catch(error){console.error('Kaydedilmiş kart ile ödeme hatası:',error);}}asyncfunctionrefundPayment(cardUid,orderId,amount){try{constresponse=awaitEpoint.refund(privateKey,publicKey,cardUid,orderId,amount,'Ödeme iadesi');if(response.status==='success'){console.log('İade işlemi başarılı!');}else{console.error('İade başarısız:',response.message);}returnresponse;}catch(error){console.error('İade işlemi hatası:',error);}}asyncfunctioncancelTransaction(transactionId,amount=null){try{// Eğer amount belirtilmezse, işlem tamamen iptal edilir// amount belirtilirse, kısmi iptal gerçekleşirconstresponse=awaitEpoint.cancel(privateKey,publicKey,transactionId,amount);if(response.status==='success'){console.log('İşlem başarıyla iptal edildi');}else{console.error('İptal işlemi başarısız:',response.message);}returnresponse;}catch(error){console.error('İptal işlemi hatası:',error);}}Epoint.az, ödeme sonuçlarını result_url adresinize POST metodu ile gönderir. Bu verilerin gerçekten Epoint'ten geldiğini doğrulamak için:
// Express.js örneğiapp.post('/payment/callback',(req,res)=>{constdata=req.body.data;constsignature=req.body.signature;// İmzayı doğrulayınconstisValid=Epoint.validateCallback(privateKey,data,signature);if(isValid){// Veriyi işleyinconstepoint=newEpoint({private_key: privateKey,data: data,signature: signature});constpaymentData=epoint.getDataAsObject();console.log('Ödeme sonucu:',paymentData);// Örnek: Siparişi güncellemeif(paymentData.status==='success'){// Siparişi başarılı olarak işaretle}else{// Siparişi başarısız olarak işaretle}res.status(200).send('OK');}else{console.error('Geçersiz webhook imzası');res.status(400).send('Invalid signature');}});// Direkt örnek oluşturmaconstepoint=newEpoint({private_key: 'your_private_key',public_key: 'your_public_key',// Diğer parametreler...});// veya statik yardımcı metod ileconstepoint=Epoint.instantiate('your_private_key','your_public_key');typeCard(privateKey, publicKey, orderId, amount, description, successRedirectUrl, errorRedirectUrl)- Yeni ödeme oluştururpayWithSaved(privateKey, publicKey, cardUid, orderId, amount, description)- Kaydedilmiş kart ile ödeme yaparcancel(privateKey, publicKey, epointTransaction, amount)- İşlem iptali/iadesirefund(privateKey, publicKey, cardUid, orderId, amount, description)- İade işlemi
saveCardForPayment(privateKey, publicKey, description, successRedirectUrl, errorRedirectUrl)- Ödeme için kart kaydedersaveCardForRefund(privateKey, publicKey, description, successRedirectUrl, errorRedirectUrl)- İade için kart kaydeder
checkPayment(privateKey, publicKey, uid, epointTransaction)- Ödeme durumunu kontrol edervalidateCallback(privateKey, data, signature)- Webhook verilerini doğrular
Epoint nesnesi üzerinde de aşağıdaki metotları kullanabilirsiniz:
generatePaymentUrlWithTypingCard()- Ödeme sayfası URL'i oluştururgetStatus()- İşlem durumunu sorgularregisterCardForPayment()- Kart kaydederregisterCardForRefund()- İade için kart kaydederpayWithSavedCard()- Kaydedilmiş kart ile ödeme yaparcancelPayment()- İşlemi iptal ederrefundPayment()- Ödemeyi iade ederisSignatureValid()- İmzayı doğrulargetDataAsJson()- Data'yı JSON string olarak alırgetDataAsObject()- Data'yı JavaScript nesnesi olarak alır
| Kod | Açıklama |
|---|---|
| 0 | Onaylandı |
| 100 | Ret, genel, açıklama yok |
| 101 | Ret, kart süresi dolmuş |
| 102 | Ret, şüpheli dolandırıcılık |
| 103 | Ret, kart kabul eden alıcıyla iletişime geçin |
| 107, 108 | Ret, kart düzenleyicisine başvurun |
| 110 | Ret, geçersiz tutar |
| 111 | Ret, geçersiz kart numarası |
| 116 | Ret, yetersiz bakiye |
| 118 | Ret, kart kaydı yok |
| 119 | Ret, işleme kart sahibi için izin verilmedi |
| 120 | Ret, işleme terminal için izin verilmedi |
| 122 | Ret, güvenlik ihlali |
| 125 | Ret, kart etkin değil |
| 129 | Ret, şüpheli sahte kart |
| 400 | Kabul edildi (iptal için) |
| 500 | Durum mesajı, uzlaştırıldı, dengede |
| 501 | Durum mesajı, uzlaştırıldı, dengede değil |
| 907 | Ret, kart veren veya anahtar çalışmıyor |
| 908 | Ret, yönlendirme için işlem hedefi bulunamadı |
| 909 | Ret, sistem arızası |
| 911 | Ret, kart düzenleyicisi zaman aşımına uğradı |
| 912 | Ret, kart düzenleyicisi kullanılamıyor |
| 914 | Ret, orijinal işlem bulunamadı |
MIT