--- a/labs/myway_api.json.php +++ b/labs/myway_api.json.php @@ -17,13 +17,14 @@ }*/ //set POST variables $url = 'https://www.action.act.gov.au/ARTS/use_Funcs.asp'; +//$url = 'http://localhost/myway.htm'; $field_mapping = Array( "card_number" => "SRNO", "DOBmonth" => "month", "DOBday" => "day", "DOByear" => "year", "secret_answer" => "pwrd", - "button" => "button" + "button" => "Submit" ); foreach (Array( "card_number", @@ -64,6 +65,7 @@ curl_setopt($ch, CURLOPT_POST, count($fields)); curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); + curl_setopt($ch, CURLOPT_REFERER, "https://www.action.act.gov.au/ARTS/getbalance.asp"); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_TIMEOUT, 30); //execute post @@ -74,7 +76,8 @@ } if (!isset($return['error'])) { - include_once ('lib/simple_html_dom.php'); + include_once ('../lib/simple_html_dom.php'); + //print_r($pageHTML); $page = str_get_html($pageHTML); $pageAlerts = $page->find(".smartCardAlert"); if (sizeof($pageAlerts) > 0) { @@ -94,12 +97,25 @@ $tableColumns[$tableColumnNum] = cleanString($th->plaintext); $tableColumnNum++; } + //print_r($tableColumns); $tableRowNum = 0; foreach ($table->find("tr") as $tr) { $tableColumnNum = 0; foreach ($tr->find("td") as $td) { - if ($tableNum == 1) $return[$tableName[$tableNum]][$tableColumns[$tableColumnNum]] = cleanString($td->plaintext); - else $return[$tableName[$tableNum]][$tableRowNum][$tableColumns[$tableColumnNum]] = cleanString($td->plaintext); + if ($tableNum == 1) { + // first table has card/cardholder details + $return[$tableName[$tableNum]][$tableColumns[$tableColumnNum]] = cleanString($td->plaintext); + } else { + // second table has transactions + + if ($tableColumns[$tableColumnNum] == "TX Reference No / Type") { + $return[$tableName[$tableNum]][$tableRowNum]["TX Reference No"] = substr(cleanString($td->plaintext), 0,6); + $return[$tableName[$tableNum]][$tableRowNum]["TX Type"] = substr(cleanString($td->plaintext), 7); + } else { + $return[$tableName[$tableNum]][$tableRowNum][$tableColumns[$tableColumnNum]] = cleanString($td->plaintext); + } + } + //print_r($return); $tableColumnNum++; } $tableRowNum++; @@ -110,7 +126,7 @@ if (sizeof($return) == 0) { $return['error'][] = "No data extracted from MyWay website - API may be out of date"; } - +if (basename(__FILE__) == "myway_api.json.php") { header('Content-Type: text/javascript; charset=utf8'); // header('Access-Control-Allow-Origin: http://bus.lambdacomplex.org/'); header('Access-Control-Max-Age: 3628800'); @@ -121,5 +137,6 @@ } else echo json_encode($return); +} ?>