在自动驾驶仪中收集货币数量有一些挑战。我有一个任务叫做给予,在那里人们发短信“给予”,然后自动驾驶回答“多少?”使用类型= 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或类似的东西。
发布于 2020-01-30 18:57:48
两位开发人员在这里传道。
目前,Twilio.CURRENCY字段类型为money类型,即。美元。
您可以将其作为字母数字字段类型收集,然后像使用验证器函数那样将其分解,以避免用户给出字母或非数字,但也可以根据诸如十进制或空格之类的标记来分解输入。
"$1.99“不起作用,因为数字正常化器不识别美元符号,导致正常化失败。然后,如果失败,自动驾驶只过滤出数字,生成"199“。一般来说,当只有数字时,Twilio.NUMBER工作得最好。但1.99美元应该有效,但1.99美元不行。
如果这对我有帮助,请告诉我!
https://stackoverflow.com/questions/59991358
复制相似问题