适用于iOS的Passbook使用您的服务器可用于识别特定传递的序列号。
是否有人知道存折序列号中哪些字符有效?我知道数字和字母是有效的,但符号/标点符号也有效(例如“ - ”和“。”)?
序列号的最大长度是多少?
谢谢。
答案 0 :(得分:5)
几乎任何角色都可以使用,包括' - '和'。',只要序列保持唯一。特殊字符(如'\')需要正确转义,但这些字符可能与您的数据库不兼容,或者如果代码中其他地方处理不当,可能会导致其他问题。
我刚试过一个带有以下序列的传递,它没有问题地添加到Passbook。
"serialNumber":"[]{}-_)(*&^%$#@!`~+=|\\\/?.><,:;"
UTF8编码的字符也很好:
"serialNumber":"\u9127\u6a02\u611a" // Chinese characters 鄧樂愚
至于最大长度,我不知道有任何限制,虽然实验起来很简单。
这个400个字符的序列也可以摄取。
"serialNumber":"0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"
我建议不要对串口使用任何类型的用户输入,因为这可能会导致非唯一的冲突,并使您受到注入攻击。如果您更改架构(比如AWS DynamoDB等Web服务解决方案),那么遵守XML标准并不是一个不好的做法。 Base64编码您的序列将确保广泛的兼容性。
序列号也可用于在通行证中存储元数据。
"serialNumber":"UniqueID|data1|data2|data3|etc."