iOS 存折序列号 : What characters are valid? 最大长度是多少?

标签 ios passbook

iOS 存折使用序列号,您的服务器可以使用该序列号来识别特定通行证。

有谁知道存折序列号中哪些字符有效?我知道数字和字母是有效的,但符号/标点符号是否也有效(例如“-”和“.”)?

还有序列号的最大长度是多少?

谢谢。

最佳答案

几乎可以使用任何字符,包括“-”和“.”,只要序列号保持唯一即可。特殊字符(如“\”)需要正确转义,尽管它们可能与您的数据库不兼容,或者如果在代码的其他地方处理不当可能会导致其他问题。

我刚刚尝试使用以下序列号进行通行证并将其添加到 Passbook 中没有任何问题。

"serialNumber":"[]{}-_)(*&^%$#@!`~+=|\\\/?.><,:;"

UTF8 编码的字符也可以:

"serialNumber":"\u9127\u6a02\u611a" // Chinese characters 鄧樂愚

至于最大长度,我不知道有什么限制,尽管实验起来会很简单。

这个400字的连载也可以摄取。

"serialNumber":"0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"

我建议不要对序列号使用任何类型的用户输入,因为这可能会导致非唯一冲突并使您容易受到注入(inject)攻击。如果您更改架构(比如 AWS DynamoDB 之类的 Web 服务解决方案),遵守 XML 标准也不是避免任何问题的坏习惯。对序列号进行 Base64 编码可确保广泛的兼容性。

序列号也可以用来存储通行证中的元数据。

"serialNumber":"UniqueID|data1|data2|data3|etc."

关于iOS 存折序列号 : What characters are valid? 最大长度是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14390351/

相关文章:

ios - Crashlytics 日志异常

c# - 使用 pushsharp 发送存折更新

ios - 在 Passbook 中编码二进制条码

mobile-safari - 如何指定可下载文件的内容类型

objective-c - TPMultiLayoutViewController的ARC转换; ARC不允许将Objective-C指针隐式转换为“const void *”

ios - 写入服务器中的文件时,作为 HTTP POST 发送的图像被损坏

iOS - 保存在 NSUserDefault 中的单个 NSData 对象的 NSArray 结果是 NSData?

ios - 如果我的 UI 测试在其他本地化中不起作用,faSTLane 如何为不同的本地化截屏?

android - Apple 的 Passbook 或 Google 的 Wallet

apple-push-notifications - 苹果钱包 : Pass won't update automatically after pushing an update