我动态创建一个通行证。每个pass都有一些不同的内容,例如primary field,secondary field,但是所有pass都有相同的serial和passTypeID,那么这样做是否正确?
1 回答
是的,serialNumber
andPassTypeIdentifier
可以相同,即使每个 pass 有不同的内容。但是,有几件事需要考虑。
存折在任何时候只允许一张具有相同serialNumber
和组合的通行证。passTypeIdentifier
这意味着如果用户 A 安装了一个包含值 的primaryField
密钥的通行证,那么用户 A 尝试安装包含值的密钥的第二个通行证,那么 Passbook 将把这视为原始通行证的更新并将通过通行证替换通行证。name
Malin
primaryField
name
Nick
Marlin's
Nick's
使用相同serialNumber
并且PassTypeIdentifier
可以具有优点,因为它可以防止用户在单个设备上加载相同通道的多个副本。但有时它可能不是您所需要的(例如,父母想要同时持有自己和孩子的登机牌)。
如果您使用相同的序列号,则需要考虑如何唯一标识数据库中的通行证记录。您不希望Malin's
以 1,000 分计入通行证的情况,也可以计入其他人的通行证。
我们将authenticationToken
用作唯一键,因为它在Passbook Web 服务的 4 种传递相关方法中的 3 种中提供(注册、取消注册和刷新)。不幸的是,方法中没有提供它Getting the Serial Numbers for Passes Associated with a Device
,因此我们将 authenticationToken 添加到 devices 表中以提供公共密钥,以便我们可以检查通过记录以查看它是否已更新。