mpesa-requests-sandbox
Version:
mpesa requests for sandbox
258 lines (182 loc) • 7.14 kB
JavaScript
exports.oauth = function () {
//Example POST method invocation
var Client = require('node-rest-client').Client;
var prompt = require('prompt');
var client = new Client();
prompt.get(['consumer_key', 'consumer_secret'], function (err, result) {
//
// Log the results.
//
console.log('Command-line input received:');
console.log(' consumer_key: ' + result.consumer_key);
console.log(' consumer_secret: ' + result.consumer_secret);
var auth = result.consumer_key + ":" + result.consumer_secret;
var buff = new Buffer(auth);
var base64data = buff.toString('base64');
console.log('"' + auth + '" converted to Base64 is "' + base64data + '"');
// set content-type header and data as json in args parameter
var args = {
data: {
Username: result.consumer_key,
Password: result.consumer_secret },
headers: {
"Authorization": "Basic " + base64data
}
};
client.get("https://sandbox.safaricom.co.ke/oauth/v1/generate?grant_type=client_credentials", args, function (data, response) {
// parsed response body as js object
console.log(response.statusCode);
console.log(response.statusMessage);
console.log(data);
// raw response
//console.log(response);
});
});
}
/*b2c request*/
exports.b2crequest = function () {
var Client = require('node-rest-client').Client;
var client = new Client();
//Example POST method invocation
var Client = require('node-rest-client').Client;
var prompt = require('prompt');
var client = new Client();
prompt.get(['ResultURL','QueueTimeOutURL','accesstoken'], function (err, result) {
//
// Log the results.
//
console.log('Command-line input received:');
console.log('ResultURL: ' + result.ResultURL);
console.log('QueueTimeOutURL ' + result.QueueTimeOutURL);
console.log('QueueTimeOutURL ' + result.accesstoken);
// set content-type header and data as json in args parameter
var args = {
data: {
"InitiatorName":"apiop68"
,"SecurityCredential":"DfgfHgyvlRvYDPHzr8j+m3g0WnQN+22pP5jakoawT5wviyskpzaUX1Myxik1b/rNVyZ8mqf/HaGPVLO5Jdh1fCdJBUBa+Ej6stKbnJWgXWzTXYmHESmXJnaOA8AmWE6prPW3YZqFkOE+cLhAWGFIt+XLi4I5bJRgfqRDQs/fYagASQfRP/V3iB/GuAe34gYeI27IYqAZyxl/jVJJ0eaP5CHyeat6eklHSM7fEDZc1+EWE86Ln/auqVcHSm7XAkmBkzosRiVPDQoqRZ4JFX7HmB4HkBS+Ox0wJywfp12VPcSJYfBfKyLqrrvgyUFCy3ID24fszJkXt7LqBGtxMpoNKQ=="
,"CommandID":"BusinessPayment"
,"Amount":"5"
,"PartyA":"602954"
,"PartyB":"254715826721"
,"Remarks":"Saftest"
,"QueueTimeOutURL":result.ResultURL
,"ResultURL":result.QueueTimeOutURL
,"Occassion":"Saf"
},
headers: { "Authorization": "Bearer " + result.accesstoken,
"Content-Type": "application/json"
}
};
client.post("https://sandbox.safaricom.co.ke/mpesa/b2c/v1/paymentrequest", args, function (data, response) {
console.log(data);
});
});
}
/*b2b request*/
exports.b2brequest = function () {
var Client = require('node-rest-client').Client;
var client = new Client();
//Example POST method invocation
var Client = require('node-rest-client').Client;
var prompt = require('prompt');
var client = new Client();
prompt.get(['ResultURL','QueueTimeOutURL','accesstoken'], function (err, result) {
//
// Log the results.
//
console.log('Command-line input received:');
console.log('ResultURL: ' + result.ResultURL);
console.log('QueueTimeOutURL ' + result.QueueTimeOutURL);
console.log('QueueTimeOutURL ' + result.accesstoken);
// set content-type header and data as json in args parameter
var args = {
data: {
"InitiatorName":"apiop68"
,"SecurityCredential":"DfgfHgyvlRvYDPHzr8j+m3g0WnQN+22pP5jakoawT5wviyskpzaUX1Myxik1b/rNVyZ8mqf/HaGPVLO5Jdh1fCdJBUBa+Ej6stKbnJWgXWzTXYmHESmXJnaOA8AmWE6prPW3YZqFkOE+cLhAWGFIt+XLi4I5bJRgfqRDQs/fYagASQfRP/V3iB/GuAe34gYeI27IYqAZyxl/jVJJ0eaP5CHyeat6eklHSM7fEDZc1+EWE86Ln/auqVcHSm7XAkmBkzosRiVPDQoqRZ4JFX7HmB4HkBS+Ox0wJywfp12VPcSJYfBfKyLqrrvgyUFCy3ID24fszJkXt7LqBGtxMpoNKQ=="
,"CommandID":"BusinessPayBill"
,"SenderIdentifierType": "4"
,"RecieverIdentifierType": "4"
,"Amount":"5"
,"PartyA":"602954"
,"PartyB":"600000"
,"Remarks":"Saftest"
,"QueueTimeOutURL":result.ResultURL
,"ResultURL":result.QueueTimeOutURL
,"Occassion":"Saf"
},
headers: { "Authorization": "Bearer " + result.accesstoken,
"Content-Type": "application/json"
}
};
client.post("https://sandbox.safaricom.co.ke/mpesa/b2b/v1/paymentrequest", args, function (data, response) {
console.log(data);
});
});
}
/*regsiterurl*/
exports.registerurl = function () {
var Client = require('node-rest-client').Client;
var client = new Client();
//Example POST method invocation
var Client = require('node-rest-client').Client;
var prompt = require('prompt');
var client = new Client();
prompt.get(['Shortcode','Validationurl','Confirmationurl','accesstoken'], function (err, result) {
//
// Log the results.
//
console.log('Command-line input received:');
console.log('Shortcode: ' + result.Shortcode);
console.log('Validationurl ' + result.Validationurl);
console.log('Confirmationurl ' + result.Confirmationurl);
// set content-type header and data as json in args parameter
var args = {
data: {
"ShortCode":result.Shortcode ,
"ResponseType":"Completed",
"ConfirmationURL":result.Confirmationurl,
"ValidationURL":result.Validationurl
},
headers: { "Authorization": "Bearer " + result.accesstoken,
"Content-Type": "application/json"
}
};
client.post("https://sandbox.safaricom.co.ke/mpesa/c2b/v1/registerurl", args, function (data, response) {
console.log(data);
});
});
}
/*C2B Simulate*/
exports.c2brequest = function () {
var Client = require('node-rest-client').Client;
var client = new Client();
//Example POST method invocation
var Client = require('node-rest-client').Client;
var prompt = require('prompt');
var client = new Client();
prompt.get(['Shortcode','Amount','BillRefNumber','accesstoken'], function (err, result) {
//
// Log the results.
//
console.log('Command-line input received:');
console.log('CommandID: ' + result.Shortcode);
console.log('Amount: ' + result.Amount);
console.log('BillRefNumber: ' + result.BillRefNumber);
// set content-type header and data as json in args parameter
var args = {
data: {
"ShortCode": result.Shortcode,
"CommandID": "CustomerPayBillOnline",
"Amount": result.Amount,
"Msisdn": "254715826721",
"BillRefNumber": result.BillRefNumber
},
headers: { "Authorization": "Bearer " + result.accesstoken,
"Content-Type": "application/json"
}
};
client.post("https://sandbox.safaricom.co.ke/mpesa/c2b/v1/simulate", args, function (data, response) {
console.log(data);
});
});
}