1

通帳と更新を実装しました。eo/passbook-bundle通帳をエラーなしでパッケージ化するときに以下の JSONを使用して作成しましたが、更新プロセスでサーバーがwebServiceURL/version/passes/passTypeIdentifier/serialNumberAPI を呼び出し、デバイスがまったく同じ JSON (ただし、パッケージ化されていない、この json のみ) をダウンロードすると、それは失敗します。

Apple Wallet Pass の更新中に無効なパス データを受信したというコメントを読みましたが、正しいヘッダーと関係がある可能性がありますが、応答で返される特定のヘッダーに関するドキュメントにはまったく説明がありません ( https:/を参照)。 /developer.apple.com/library/content/documentation/PassKit/Reference/PassKit_WebService/WebService.html )

symfony を使用して、次のようにエンコードされた json で応答を返します。

$json = PassFactory::serialize($storecard);
return new Response($json, 200, ['Content-Type' => 'application/json']);

Content-Type ヘッダーなしでも試してみました。

ログで私は見ることができます:Get pass task (pass type pass.com.spinpos.latest.customercard, serial number 5, if-modified-since (null); with web service url https://my.domain.com/api/loy/wallet/) encountered error: Received invalid pass data (The pass cannot be read because it isn’t valid.)

JSON 応答は次のとおりです。

{
   "storeCard":{
      "headerFields":[
         {
            "key":"prepaid",
            "value":"0,00",
            "label":"PREPAID"
         }
      ],
      "secondaryFields":[
         {
            "key":"username",
            "value":"Some Name",
            "label":"GEBRUIKERSNAAM"
         },
         {
            "key":"lastvisit",
            "value":"niet bekend",
            "label":"LAATSTE BEZOEK"
         }
      ],
      "auxiliaryFields":[
         {
            "key":"qrcode",
            "value":"2690310109104",
            "label":"QR CODE"
         },
         {
            "key":"points",
            "value":20,
            "label":"LOYALTY PUNTEN"
         }
      ],
      "backFields":[
         {
            "key":"website",
            "value":"http://www.somesite.com",
            "label":"WEBSITE"
         },
         {
            "key":"phone_number",
            "value":"05311223344",
            "label":"TELEFOONNUMMER"
         },
         {
            "key":"terms_of_service",
            "value":"Dit zijn test algemene voorwaarden!",
            "label":"ALGEMENE VOORWAARDEN"
         }
      ]
   },
   "serialNumber":"5",
   "description":"Your Customer card",
   "formatVersion":1,
   "locations":[
      {
         "latitude":51.62,
         "longitude":5.55,
         "relevantText":"Some Loc 2"
      },
      {
         "latitude":51.7737967,
         "longitude":5.5513203,
         "relevantText":"Some loc 1"
      },
      {
         "latitude":52.2648569,
         "longitude":6.8018085,
         "relevantText":"Testdfdr"
      }
   ],
   "barcode":{
      "format":"PKBarcodeFormatQR",
      "message":"2690310109104",
      "messageEncoding":"iso-8859-1"
   },
   "barcodes":[
      {
         "format":"PKBarcodeFormatQR",
         "message":"2690310109104",
         "messageEncoding":"iso-8859-1"
      }
   ],
   "backgroundColor":"rgb(255,108,108)",
   "foregroundColor":"rgb(46,14,170)",
   "labelColor":"rgb(110,255,75)",
   "authenticationToken":"048cfd30e4baf1c3250f0c8c7500f998aee2da49",
   "webServiceURL":"https://my.domain.com/api/loy/wallet/"
}

JSONまたはヘッダーの何が問題なのか誰にもわかりませんか?

4

1 に答える 1

3

ヘッダー付きの新しい署名済み .pkpass バンドル全体を送信する必要がありますapplication/vnd.apple.pkpass

于 2017-06-22T15:40:06.710 に答える