我一直在这里闲逛,并在我通过这个新工具的过程中得到了大部分答案,但我现在被困住了,需要一些直接的建议。
Studio 中的 Gather 函数不符合 PCI 标准,因此我必须将调用转移到函数并返回解析后的数据——我终于想出了如何做到这一点——但是,我发现我无法调用网络服务位于单个函数中,并且必须将 with event.Digits 发送到另一个函数,以使 Web 服务调用我的令牌提供程序。这可行,但它导致了一个奇怪的结果:我的令牌被读回为 TTS,然后呼叫被挂断。我没有 TTS 动作。以下是我的代码集:
从 Studio 调用的初始函数:
const got = require('got');
exports.handler = function(context, event, callback) {
let twiml = new Twilio.twiml.VoiceResponse();
twiml.gather({
input: 'dtmf',
finishOnKey: '#',
timeout: 10,
action: 'paymenttest',
method: 'GET'
}).say('Enter CC');
console.log(twiml);
callback(null, twiml);
};
这成功地使用输入的数字调用了我的函数:
const got = require('got');
exports.handler = function(context, event, callback) {
let twiml = new Twilio.twiml.MessagingResponse();
const url ='my payment gateway' + event.Digits + '&EXPDATE=1220&CARDTYPE=VI';
got.get(url, {
headers: {
'content-Type': 'application/x-www-form-urlencoded'
}
}).then(function(response) {
// Check the response and ask your second question here
event.callback(null, response.body);
}).catch(function(error) {
// Boo, there was an error.
callback(error)
});
};
这成功地返回了令牌......但如前所述......它被读回给我,而不是包含在返回给 Studio 的数据中。