在自动驾驶仪中收集货币金额时遇到一些挑战。我有一个名为GIVE的任务,人们在此发短信“ Give”,然后自动驾驶仪回复“多少?”使用类型= Twilio.NUMBER的收集操作。正在发生以下情况:
人员:给予
自动驾驶仪:多少?
人:.99
最终值是99(错误)
人员:给予
自动驾驶仪:多少?
人:1.99
值最终为1.99(正确)
人员:给予
自动驾驶仪:多少?
人:$ 1.99
价值最终为199(错误)
因此,似乎如果小数点在前,则将其删除;如果美元号在其首,则将其删除,并将小数删除。仅当以数字开头时,它才能正常工作。我可以理解其中的逻辑,但这确实使收集货币金额变得非常困难。
这是任务中的相关代码:
"collect": {
"name": "gift_amount",
"questions": [
{
"question": "How much would you like to give?",
"name": "gift_amount",
"type": "Twilio.Number"
}
],
"on_complete": {
"redirect": {
"method": "POST",
"uri": "https://blah.blah"
}
}
有什么想法吗?理想情况下,字段类型为Twilio.CURRENCY或类似的内容。
答案 0 :(得分:2)
这里是Twilio开发人员的传播者。
当前,Twilio.CURRENCY字段类型用于货币类型,即。美元。
您可以将其收集为字母数字字段类型,然后像使用验证器函数一样对其进行分解,以避免用户输入字母或非数字,而且还可以基于小数或什至空白之类的令牌分解输入。
“ $ 1.99”将不起作用,因为数字归一化器无法识别美元符号,从而导致归一化失败。然后,如果失败,则自动驾驶仪会将过滤器数字放出来,生成“ 199”。一般来说,Twilio.NUMBER在只有数字的情况下效果最好。 $ 1.99应该可以,但$ 1.99应该没有。
让我知道这是否有帮助!