0

の一部を埋めますwebserviceURLが、 にdeviceIDは何を入れますか? これは、デバイスを登録して Web サービスに渡すために使用するコードです。pass を追加した後、登録するには何を変更する必要がありますか?

<?php 

    echo "<a href= 'genericPass.php'> Click here to add Generic Pass</a><br/>";
    echo "<a href= 'couponPass.php'> Click here to add Coupon Pass</a>";

    $url = 'https://192.168.1.105:8888/passesWebserver/v1/devices/{deviceID}/registrations/‌​pass.cam-mob.passbookpasstest/E5982H-I2';

    $ch = curl_init( $url );
    curl_setopt( $ch, CURLOPT_POST, 1);
    //curl_setopt( $ch, CURLOPT_POSTFIELDS, $myvars);
    curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt( $ch, CURLOPT_HEADER, 0);
    curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1);

    $response = curl_exec( $ch );
?>
4

1 に答える 1

1

パスが Passbook に追加されると、iPhone または iPod は webServiceURL を呼び出して、デバイス ID とプッシュ トークンを通知します。これらが何であるかを知る方法はないため、デバイス ID とプッシュ トークンの両方をキャッチできるように Web サーバーを設定する必要があります。

デバイス ID は URL の一部として送信され、トークンは JSON オブジェクトとしてポストされます。

https://192.168.1.105:8888/passesWebserver/....Web サーバーで、からのすべてのトラフィックを書き込むように書き換えルールを設定する必要がありますhttps://192.168.1.105:8888/passesWebserver/index.php(これを行う方法については、Google または SO を検索してください)。

次に、次のような index.php を設定します。

// Transfer Request URL into array
$request = explode("/", substr(@$_SERVER['REQUEST_URI'], 1));

/**
* Register Device
*
*   POST request to version/devices/<deviceLibraryIdentifier>/registrations/<passTypeIdentifier>/<serialNumber>
*   Request will contain an Authorisation header with the value <ApplePass authenticationToken>, where
*   authenticationToken equals the authenticationToken in the original voucher payload.
*/

if (strtoupper($_SERVER['REQUEST_METHOD']) === "POST"
    && isset($_SERVER['HTTP_AUTHORIZATION'])
    && strpos($_SERVER['HTTP_AUTHORIZATION'], 'ApplePass') === 0
    && $request[2] === "devices"
    && $request[4] === "registrations") {

    $auth_key = str_replace('ApplePass ', '', $_SERVER['HTTP_AUTHORIZATION']);

    $device_id = $request[3];
    $pass_id = $request[5];
    $serial = $request[6];

    // Catch the JSON post and decode it
    $dt = @file_get_contents('php://input');
    $device_token = json_decode($dt);
    $device_token = $device_token->pushToken;
    if (!$device_token) die('No Token Found'); // Token wasn't found

    // Add code to check the Auth Token against the serial number and add the
    // device details to your database so you can use them later to push updates
    // to the pass. This code should return a 200, 201 or other response depending
    // on whether the auth is valid and the device is registered already or not

    exit;
}

//  Add other conditions to check for unregister, get serials, refresh and log.
于 2013-03-18T05:00:59.187 に答える