UNPKG

mpesa-requests-sandbox

Version:

mpesa requests for sandbox

258 lines (182 loc) 7.14 kB
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); }); }); }