Php 增强的Apple推送通知:提供程序服务器上出现响应错误

Php 增强的Apple推送通知:提供程序服务器上出现响应错误,php,apple-push-notifications,Php,Apple Push Notifications,我正在从事一个PHP项目,该项目要求我在APNS服务器上推送警报通知。我使用了增强的推送通知格式。但我没有收到APNS文件规定的回复。我得到了三位数的回复,通常是133、132、154、138等等,我认为这是状态符号,例如133是1、3、3。但现在我也收到了139份。所以我怀疑我对回答的理解是错误的。但我并没有理解错在哪里。重要的是,虽然我收到了这些回复,但警报被推送了,我在iPhone和iPad上都收到了通知 我的代码如下: $payload['aps'] = array('alert' =&

我正在从事一个PHP项目,该项目要求我在APNS服务器上推送警报通知。我使用了增强的推送通知格式。但我没有收到APNS文件规定的回复。我得到了三位数的回复,通常是133、132、154、138等等,我认为这是状态符号,例如133是1、3、3。但现在我也收到了139份。所以我怀疑我对回答的理解是错误的。但我并没有理解错在哪里。重要的是,虽然我收到了这些回复,但警报被推送了,我在iPhone和iPad上都收到了通知

我的代码如下:

$payload['aps'] = array('alert' => $message, 'badge' => 1, 'sound' => 'default');

$apnsHost = 'gateway.sandbox.push.apple.com'; 

$apnsPort = 2195; // default port

$apnsCert = 'apns-dev.pem'; // APNS crtificate.

$passPhrase = '';

$streamContext = stream_context_create();

stream_context_set_option($streamContext, 'ssl', 'local_cert', $apnsCert);

stream_context_set_option($streamContext, 'ssl', 'passphrase', $passPhrase);

try{

$apns = stream_socket_client('ssl://' . $apnsHost . ':' . $apnsPort, $error, $errorString, 60, STREAM_CLIENT_CONNECT, $streamContext);

if (!$apns) {
    print "Failed to connect {$error} {$errorString}\n";
}
else {   
    // Sending the payload

    $apnsMessage = chr(0) . pack('n', 1) . pack('n', $nid) . pack('n', time() + 604800) . pack('n', 32) . pack('H*', str_replace(' ', '', $alert_device_token)) .  pack('n', strlen($payload)) . $payload;

    echo 'APNS Message: ' . $apnsMessage;

    $fwrite = fwrite($apns, $apnsMessage);

    echo 'APNS response: ' . $fwrite;
当执行此操作时,我在浏览器上打印了以下响应:

APNS消息:��=ŸÂ� òc6–U:245Ÿ¸Þ÷䲩Ú0ßqšzÕfÕnZ�`{“aps”:{“警报”:“您的欧元/美元卖出警报价格已达到!”,“徽章”:1,“声音”:“默认值”}APNS回复:139

谁能告诉我这是什么意思。我在这里做错了什么。

回显的“139”是fwrite()的返回值。它是由fwrite()写入的字节数


请看:

请问您是否已经修好了。嗨,是的,我摆脱了这种状况。您必须使用增强的有效负载而不是此有效负载,即正常的付费负载DuckleLugh如下所示是正确的:u接收的数字是fwrite写入的字节数。但是你可以用它来检查错误,因为如果你收到一个0响应,这意味着fwrite无法写任何东西,可能是因为苹果关闭了服务器连接。所以问题不是0响应的固件,而是成功发送的前一个固件,但是苹果不喜欢它,所以他们关闭了服务器连接。如果您在SELECT语句中使用“ORDERBYID”,那么您可以找出问题发生的大致位置并从那里继续推送。