UNPKG

ipayafrica

Version:

Integrates ipay africa payment gateway in your [node/io].js applications

147 lines (132 loc) 3.57 kB
var Ipay=require("../lib/index.js"); var ipay = new Ipay.IpayAfrica({ hash_key:'demoCHANGED' //replace with own key/secret }); var transact_req={ live:0 ,oid:'123456' ,inv:'123456' ,amount:'5.00' ,tel:'0XXXXXXXXX' //customer mobile number ,eml:'user@domain.com' ,vid:"demo" //replace with own vendor id (all lowercase) ,curr:'KES' ,p1:'' ,p2:'' ,p3:'' ,p4:'' ,cbk:'https://example.com' ,cst:1 ,crl:2 } ipay.transact(transact_req,(err,res)=>{ if(err){ //process error here }else{ var body=JSON.parse(res.raw_body); if(body.header_status==200){ //check body.data for ipay parameters to process internaly //optionally you can: //1. transact mobile money transact_mobilemoney(body(; //2. Send mpesa push transact_mpesa_push(body); //3. Send airtel push transact_airtel_push(body); }else{ //check possible headers } } }); function transact_mobilemoney(body){ var mobilemoney_req={ sid:body.data.sid ,vid:"demo" //replace with own vendor id (all lowercase) }; ipay.transaction.mobilemoney(mobilemoney_req,(err,res)=>{ if(err){ //process error here }else{ var body=JSON.parse(res.raw_body); if(body.header_status==200){ //check body.data for ipay parameters to process internaly }else if(body.header_status==400){ //check body.data for possible errors } } }); } function transact_mpesa_push(body){ var mpesa_push_req={ phone:'254XXXXXXXXX' //safaricom phone number ,sid:body.data.sid ,vid:"demo" //replace with own vendor id (all lowercase) }; ipay.transaction.push_mpesa(mpesa_push_req,(err,res)=>{ if(err){ //process error here }else{ var body=JSON.parse(res.raw_body); if(body.header_status==200){//mpesa push successful //check body.data for ipay parameters to process internaly }else{//mpesa push fail //check body.data for possible errors } } }); } function transact_airtel_push(body){ var airtel_push_req={ phone:'254XXXXXXXXX' //airtel phone number ,sid:body.data.sid ,vid:"demo" //replace with own vendor id (all lowercase) }; ipay.transaction.push_airtel(airtel_push_req,(err,res)=>{ if(err){ //process error here }else{ var body=JSON.parse(res.raw_body); if(body.header_status==200){//airtel push successful //check body.data for ipay parameters to process internaly }else{//airtel push fail //check body.data for possible errors } } }); } function transaction_search(){ var search_req={ oid:'123456' ,vid:"demo" //replace with own vendor id (all lowercase) }; ipay.transaction.search(search_req,(err,res)=>{ if(err){ //process error here }else{ var body=JSON.parse(res.raw_body); if(body.header_status==200){//transaction found //check body.data for ipay parameters to process internaly }else if(body.header_status==400){//transaction not found //check body.data for possible errors } } }); } function transaction_refund(){ var refund_req={ code:'123456' //transaction code ,vid:"demo" //replace with own vendor id (all lowercase) }; ipay.transaction.refund(refund_req,(err,res)=>{ if(err){ //process error here }else{ var body=JSON.parse(res.raw_body); if(body.header_status==200){//refund successul //check body.data for ipay parameters to process internaly }else{//refund not successful //check body.data for possible errors } } }); }