Ios6 锁屏上未显示存折更新推送

Ios6 锁屏上未显示存折更新推送,ios6,apple-push-notifications,passbook,Ios6,Apple Push Notifications,Passbook,我在玩苹果存折服务。我在所有设备上都有一种非常奇怪的行为。如果我通过APNS向设备发送推送消息,让他们知道某个通行证有更新,他们会进行更新,但不会在设备的锁屏上显示任何通知 现在我正在记录我的PHP Web服务和APN之间的整个通信。我总是用Headle 200回答,以及要求的答案。(1st Serials;2nd Pass.pkpass)和设备进行更新,正如我在存折应用程序中看到的那样,但正如我已经说过的,我在锁屏上没有收到任何通知。按照本文所述正确设置设备: 我的APNS请求如下: publ

我在玩苹果存折服务。我在所有设备上都有一种非常奇怪的行为。如果我通过APNS向设备发送推送消息,让他们知道某个通行证有更新,他们会进行更新,但不会在设备的锁屏上显示任何通知

现在我正在记录我的PHP Web服务和APN之间的整个通信。我总是用Headle 200回答,以及要求的答案。(1st Serials;2nd Pass.pkpass)和设备进行更新,正如我在存折应用程序中看到的那样,但正如我已经说过的,我在锁屏上没有收到任何通知。按照本文所述正确设置设备:

我的APNS请求如下:

public function sendePushNotification($passTypeID, $debug = true)
{
// Zertifikat vorhanden ?
$certFullPath = dirname(dirname(__FILE__)) . DIRECTORY_SEPARATOR . "api/cert/ck.pem";
if (file_exists($certFullPath))
{
  /**
   * Payload vorbereiten
   */
  $message = 'PASSDROP UPDATE'; 
  $body = array();
  $body['aps'] = array('alert' =>  $message);


  /**
   * Host bestimmen
   */
  $apnsHost = "gateway.push.apple.com";   // Development Umgbung

  /**
   * Stream erstellen
   */
  $ctx = stream_context_create();
  stream_context_set_option($ctx, 'ssl', 'local_cert', $certFullPath);
  $fp = stream_socket_client('ssl://' . $apnsHost . ':2195', $err, $errstr, 2, STREAM_CLIENT_CONNECT, $ctx);
  if (!$fp) 
  {
    echo "Fehler beim APNS: " . $err . " / ". $errstr. "\n";
    return false;
  }

  /**
   * Payload versenden
   */
  $payload = json_encode($body);
  $msg = chr(0) . pack("n",32) . pack('H*', str_replace(' ', '', $this->token)) . pack("n",strlen($payload)) . $payload;      
}
else
{
  throw new Exception("Zertifikat-Bundle " . $certFullPath . " existiert nicht !!!");
}
}
据我所知,苹果在推出存折时不会读取有效载荷

有没有人给我一个提示,我下一步可以尝试什么?
pass.json文件中是否需要任何内容?

如果您的设备正在更新并接收新的pass,但没有看到通知,则您的pass.json很可能不包含changeMessage密钥

要显示通知,请执行以下操作:

  • pass数据值必须已更改(字段标签、颜色和图像不会触发更新),并且
  • 已更改的字段必须包含changeMessage键,最好带有%@占位符,该占位符将替换为新字段值
对于Passbook,APNS推送的唯一目的是通知设备web服务具有新内容。所有通知活动都由新旧pass.json文件之间的差异决定

如果您的pass字段正在更改,并且您设置了changeMessage密钥,但没有看到通知,那么发布pass.json的相关before和after部分可能有助于我们确定问题所在

当“after”过程取代“before”过程时,下面的json摘录将触发以下两个通知:

  • 请到22号门
  • 航班状态:登机
通过前:

  "boardingPass": {
        "headerFields": [{
            "key": "h1",
            "value": "--",
            "label": "Gate",
            "changeMessage": "Please proceed to gate %@"
        }, {
            "key": "h2",
            "value": "On Time",
            "label": "Status",
            "changeMessage": "Flight status: %@"
        }],
           ...
通过后:

  "boardingPass": {
        "headerFields": [{
            "key": "h1",
            "value": "22",
            "label": "Gate",
            "changeMessage": "Please proceed to gate %@"
        }, {
            "key": "h2",
            "value": "Boarding",
            "label": "Status",
            "changeMessage": "Flight status: %@"
        }],
           ...

如果您的设备正在更新并接收新的pass,但您没有看到通知,则您的pass.json很可能不包含changeMessage密钥

要显示通知,请执行以下操作:

  • pass数据值必须已更改(字段标签、颜色和图像不会触发更新),并且
  • 已更改的字段必须包含changeMessage键,最好带有%@占位符,该占位符将替换为新字段值
对于Passbook,APNS推送的唯一目的是通知设备web服务具有新内容。所有通知活动都由新旧pass.json文件之间的差异决定

如果您的pass字段正在更改,并且您设置了changeMessage密钥,但没有看到通知,那么发布pass.json的相关before和after部分可能有助于我们确定问题所在

当“after”过程取代“before”过程时,下面的json摘录将触发以下两个通知:

  • 请到22号门
  • 航班状态:登机
通过前:

  "boardingPass": {
        "headerFields": [{
            "key": "h1",
            "value": "--",
            "label": "Gate",
            "changeMessage": "Please proceed to gate %@"
        }, {
            "key": "h2",
            "value": "On Time",
            "label": "Status",
            "changeMessage": "Flight status: %@"
        }],
           ...
通过后:

  "boardingPass": {
        "headerFields": [{
            "key": "h1",
            "value": "22",
            "label": "Gate",
            "changeMessage": "Please proceed to gate %@"
        }, {
            "key": "h2",
            "value": "Boarding",
            "label": "Status",
            "changeMessage": "Flight status: %@"
        }],
           ...

哇,谢谢你的回复。你能详细介绍一下changeMessageKey吗?我的pass中没有这些值。jsonI认为这个链接对每个人都非常有用,特别是change Key@soma web-我添加了一个示例来帮助。我想问,如果我只更新了位置(纬度、经度值),pass.json与changeMessage的外观会如何。我是否应该在每个位置字典中添加changeMessage键以及纬度和经度键?(我试过了,pass无效)非常有用,我不知道他们为什么不在这里提到这个:哇,谢谢你的回复。你能详细介绍一下changeMessageKey吗?我的pass中没有这些值。jsonI认为这个链接对每个人都非常有用,特别是change Key@soma web-我添加了一个示例来帮助。我想问,如果我只更新了位置(纬度、经度值),pass.json与changeMessage的外观会如何。我是否应该在每个位置字典中添加changeMessage键以及纬度和经度键?(我试过了,pass无效)非常有用,我不知道他们为什么不在这里提到这一点: