PHP苹果增强通知

PHP苹果增强通知,php,push-notification,apple-push-notifications,Php,Push Notification,Apple Push Notifications,我一直在尝试从我的服务器获取苹果推送通知。联系似乎很好,我可以写信给它。然而,没有任何通知到达。为了尝试并调试它,我想构造一个“增强通知”,它将使APNS服务器在断开连接之前返回一个错误代码。但是,我不确定如何使用PHP构造发送到服务器的数据 根据教程帖子,目前我使用的是普通通知: $apnsMessage = chr(0) . chr(0) . chr(32) . pack('H*', str_replace(' ', '', $deviceToken)) . chr(0) . chr(str

我一直在尝试从我的服务器获取苹果推送通知。联系似乎很好,我可以写信给它。然而,没有任何通知到达。为了尝试并调试它,我想构造一个“增强通知”,它将使APNS服务器在断开连接之前返回一个错误代码。但是,我不确定如何使用PHP构造发送到服务器的数据

根据教程帖子,目前我使用的是普通通知:

$apnsMessage = chr(0) . chr(0) . chr(32) . pack('H*', str_replace(' ', '', $deviceToken)) . chr(0) . chr(strlen($payload)) . $payload;
这将以以下格式创建请求:

但是,我需要以下格式的请求:

其中,根据文件:

标识符标识此通知的任意值。如果APN无法解释通知,则在错误响应数据包中返回相同的标识符

到期日—以秒(UTC)表示的固定UNIX历元日期,用于标识通知何时不再有效并可以丢弃。过期值应为网络顺序(大端)。如果到期值为正值,APNs将尝试至少发送一次通知。您可以指定零或小于零的值以请求APN根本不存储通知

如果您能帮助修改上述代码以使用上述增强的通知格式,我们将不胜感激

$apnsMessage = 
    // new: Command "1"
    chr(1)
    // new: Identifier "1111"
    . chr(1) . chr(1) . chr(1) . chr(1)
    // new: Expiry "tomorrow"
    . pack('N', time() + 86400)
    // old 
    . chr(0) . chr(32) . pack('H*', str_replace(' ', '', $deviceToken)) . chr(0) . chr(strlen($payload)) . $payload;
$apnsMessage = pack('CNNnH*na*',
    1, // always one
    intval($messageId), // sequential Id for a message
    time() + 86400, // UTC relative timestamp + one day
    32, // device token binary length
    $deviceToken, // clean (no spaces, hex-only) device token
    mb_strlen($payload, '8bit'), // payload binary length
    $payload
);