gpt4 book ai didi

php - 发送 APNS 命令 = 2

转载 作者:可可西里 更新时间:2023-11-01 00:45:09 24 4
gpt4 key购买 nike

我在向 APNS 发送 2 级通知时遇到问题。 v1 发送正常,但我想转到 v2。下面是我实现这两个版本的两种方法。我将这些与其余代码分开,以便轻松地在两者之间进行更改。 v1 有效,而 v2 无效..

static function createNotificationV1($token, $payload, $id, $expireTime)
{
$msg = pack('C', 1); // v1
$msg .= pack('N', $id); // id
$msg .= pack('N', $expireTime);
$msg .= pack('n', 32) . pack('H*', $token);
$msg .= pack('n', strlen($payload)) . $payload;

return $msg;
}

static function createNotificationV2($token, $payload, $id, $expireTime)
{
$tokenItem = pack('C', 1) . pack('n', 32) . pack('H*', $token);
$payloadItem = pack('C', 2) . pack('n', strlen($payload)) . $payload;
$idItem = pack('C', 3) . pack('n', 4) . pack('N', $id);
$expireItem = pack('C', 4) . pack('n', 4) . pack('N', $expireTime);
$priorityItem = pack('C', 5) . pack('n', 1) . pack('C', 10);

$frame = $tokenItem . $payloadItem . $idItem . $expireItem . $priorityItem;

$msg = pack('C', 2); // v2
$msg .= pack('n', strlen($frame));
$msg .= $frame;

return $msg;
}

如有任何提示,我们将不胜感激。

最佳答案

此代码运行良好:

$pn = pack('CnH*', 1, 32, $token)
. pack('CnA*', 2, strlen($payload), $payload)
. pack('CnA*', 3, 4, $id)
. pack('CnN', 4, 4, $expireTime)
. pack('CnC', 5, 1, 10);

$msg = pack('CN', 2, strlen($pn)) . $pn;

因为您使用的是 pack('n', strlen($frame)) 而不是 pack('N',

关于php - 发送 APNS 命令 = 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21090958/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com