通帳と更新を実装しました。eo/passbook-bundle
通帳をエラーなしでパッケージ化するときに以下の JSONを使用して作成しましたが、更新プロセスでサーバーがwebServiceURL/version/passes/passTypeIdentifier/serialNumber
API を呼び出し、デバイスがまったく同じ 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またはヘッダーの何が問題なのか誰にもわかりませんか?