このメソッドを使用してパスを生成します。
パブリック関数 setJSON($JSON) {
if(json_decode($JSON) !== false) {
$this->JSON = $JSON;
true を返します。
}
$this->sError = 'これは JSON 文字列ではありません。';
false を返します。
}
このメソッドを呼び出して、パスバイを生成します。$pass->setJSON('{
"passTypeIdentifier": "'.$passTypeID.'",
"フォーマットバージョン": 1,
…………
"バーコード": {
"altText" : "'.$alt.'",
"フォーマット": "PKBarcodeFormatPDF417",
"メッセージ": "会員カード",
"messageEncoding": "iso-8859-1",
"changeMessage": "このパスには altText %@ が含まれるようになりました!"
}、
「場所」:[
{
「経度」:104.89529371261597、
「緯度」:11.576150037278605、
"relevantText": "CamMob (dis. 1%)"
}、
………………
]
}');
しかし、今はそれらの場所を静的に書き込むのではなく、次の方法でデータベースからそれらのデータを取得します。$query5 = mysql_query("select * from company");
while ($row5 = mysql_fetch_array($query5)){
$companyName = $row5['relevantTextName'];
$discount = $row5['relevantTextDiscount'];
$long = $row5['経度'];
$lat = $row5['緯度'];
$link = $row5['link'];
$location['locations'][] = array("longitute" => $long, "latitute" => $lat, "relevantText" => $companyName." (" . $discount. "%)" );
}
$jsonString = json_encode($location) ;
error_log("Locations: ".$jsonString,0);
$pass->setJSON($jsonString);
$pass->setJSON('{
"passTypeIdentifier": "'.$passTypeID.'",
"barcode": {
"altText" : "'.$alt.'",
"format" : "PKBarcodeFormatPDF417",
"message": "Member-Card",
"messageEncoding": "iso-8859-1",
"changeMessage" : "This pass now has altText %@ !"
}
}');</pre>
パスの更新をテストするとエラーは発生しませんが、以前のようにロック画面にパスが表示されません。したがって、これらの場所をまだパスに含めていないことを意味します。何を変更すればよいですか?メソッド setJSON の問題ですか?このような場合、これら 2 つの json を結合して一緒にするにはどうすればよいですか?