ipayafrica
Version:
Integrates ipay africa payment gateway in your [node/io].js applications
147 lines (132 loc) • 3.57 kB
JavaScript
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
}
}
});
}