バリューコマースの管理画面から良い感じにCSV出力できなかったので、自作しました。
THIS_IS_TEST_CLIENT_KEY_STR|THIS_IS_TEST_CLIENT_SECRET_STR にはご自身の鍵が入ります。
バリューコマースの設定から取得してご設定ください。
※1日100件が上限です。それ以上取得したい場合はカスタマイズしてください。
pub-docs.valuecommerce.ne.jp/docs/as-77-token-api/
resultSet->rowData->bearer_token;
// ストリームを作成します
$opts = array(
'http'=>array(
'method'=>"GET",
'header'=>"Authorization: Bearer ".$response->resultSet->rowData->bearer_token."\r\nAccept: application/json\r\n"
)
);
$output = [];
$context = stream_context_create($opts);
$startDate = $_GET['start'];
$endDate = $_GET['end'];
$currentDate = $startDate;
while (true) {
// 上で設定した HTTP ヘッダを使用してファイルをオープンします
$file = file_get_contents('https://api.valuecommerce.com/report/v2/affiliate/transaction/?from_date='.$currentDate.'&to_date='.$currentDate.'&approval_status=p,a,c,i', false, $context);
$data = json_decode($file, true);
//print_r($data);die;
foreach ($data['resultSet']['rowData'] as $index => $rowDatum) {
$output[] = $rowDatum;
}
$currentDate = date('Y-m-d', strtotime($currentDate . " +1 day"));
if($currentDate > $endDate) break;
if($currentDate > date('Y-m-d')) break;
}
header( 'Content-Type: text/csv charset=SJIS-win' );
header( 'Content-Disposition: attachment;filename='.mb_convert_encoding("vc_" . $_GET['start'] . ".csv", "SJIS-win", "utf-8"));
$fp = fopen('php://temp', 'r+b');
foreach ($output as $fields) {
fputcsv($fp, $fields);
}
rewind($fp);
$tmp = str_replace(PHP_EOL, "\r\n", stream_get_contents($fp));
echo mb_convert_encoding($tmp, 'SJIS-win', 'UTF-8');
die;
