我在存折上实现自动更新功能时遇到了一些问题。但我目前的问题是(这不是一个很好的问题,我对网络终端工作了解不多,所以如果我问了一些明显或愚蠢的问题,请原谅我)。我对pass.json
文件中的密钥webServiceURL
使用此url。
https://serverURL/v1/devices/deviceLibraryIdentifier/registrations/passIdentifierAsIsPastedFromJsonFile/serialNumAsIsPastedFromJsonFile
现在,根据我的理解和我在stackoverflow和apple文档上读到的内容。deviceLibraryIdentifier
应该由iOS自己添加,并将在POST
请求中发送到服务器。因此,我们要从URL中获取3个值,1个从header中获取,1个来自json payload/body。我只是想确认一下我做这些事情是否正确?(因为服务器端人员表示,他正在按原样获得deviceLibraryIdentifier
,作为字符串"deviceLibraryIdentifier",并且他在标头中也没有获得authenticationToken
的任何密钥)。我是不是错过了什么?
pass.json
中的webServiceURL
应该只是https://serverURL
。设备将在每次请求之前自动完成URI的其余部分。您需要实现一个RESTful服务,该服务将能够解析字符串,识别请求的是PassKit WebService的5个方法中的哪一个,然后根据规范以正确的响应进行响应
因此,在注册的情况下,设备将获取您的服务器URL,在URL中添加/v1/devices/{deviceLibraryIdentifier}/registrations/{passTypeIdentifier}/{serialNumber}
以完成URI。
然后,您的服务器应该解析URI,通过提供的passTypeIdentifier
和serialNumber
识别通行证,并在设备数据库中创建一个与deviceLibrayIdentifier
和devicePushToken
相对应的记录,该记录将包含在请求主体的JSON对象中。
为了帮助开发人员入门,Apple提供了一个Ruby和SQLite示例,您可以直接实现,也可以移植到PHP。