Created
December 7, 2018 17:50
-
-
Save johnotu/455e5747569f5d649b98ef7c61d6df3e to your computer and use it in GitHub Desktop.
Payment for Messenger - Handle Bot Postbacks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Handle postbacks received by bot server | |
* | |
*/ | |
'use strict'; | |
// Assume you have these functions defined and exported in your project folder | |
const sendTextMessage = require('../actions/sendTextMsg'); | |
const processMobilemoney = require('./process-mobilemoney-gh'); | |
const receivedPostback = (event, pageObj) => { | |
const senderID = event.sender.id; | |
const payload = event.postback.payload; | |
if (payload.split('_')[0] === 'pay') { | |
// Get order details for processing | |
const payData = payload.split('_'); | |
const payMethod = payData[1]; | |
const orderObj = { | |
orderNumber: payData[2], | |
orderTotal: payData[3], | |
orderOwnerPhone: payData[4] | |
}; | |
switch (payMethod) { | |
case 'cashondelivery': | |
sendTextMessage({ | |
recipientId: senderID, | |
messageText: `You have choosen to pay Cash on Delivery of order #${orderObj.orderNumber}. Expect your delivery soon!`, | |
page_token: pageObj.page_token | |
}); | |
break; | |
case 'mobilemoney': | |
// Get number prefix, network and route for mobile money processing | |
const numberPrefix = orderObj.orderOwnerPhone.slice(0, 3); | |
const network = ''; | |
const route = ''; | |
processMobilemoney(senderID, orderObj, numberPrefix, network, route, pageObj); | |
break; | |
// You can add more cases for other payment method implementations here | |
} | |
} | |
}; | |
module.exports = receivedPostback; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment