0

このメソッドを使用してパスを生成します。

パブリック関数 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",
        "changeMes​​sage": "このパスには 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 を結合して一緒にするにはどうすればよいですか?

4

1 に答える 1