ビッダーズAPIサンプル


<?
// bidders web service url
$bidders_web_service = "http://ws.a20.jp/bin/aws";

// affiliate user ID
$user_id = "";

// affiliate ID
$affiliate_id = "";

// affiliate link ID
$link_id = "";

// item per page
$item_per_page = 10;

// output encoding
$output_encoding = "UTF-8";

// Character set
$charset = "SHIFT_JIS";

// View an image to search result.
//$view_image = true;
$view_image = "N"; // (Y/N)
if (isset($_REQUEST['view_image'])) {
  $view_image = $_REQUEST['view_image'];
}

// 検索パラメータの連想配列
$api_params = array("prog" => "",
          "keyword" => "",
          "item" => "",
          "sskeyop" => "",
          "tag" => "",
          "sstagop" => "",
          "nonprog" => "",
          "progtp" => "",
          "ad" => "",
          "authtp" => "",
          "paytp" => "",
          "slow" => "",
          "shigh" => "",
          "rlow" => "",
          "rhigh" => "",
          "sort" => "",
          "sort2" => "",
          "page" => "",
          "ipp" => $item_per_page,
          "cmt" => "",
          "categ_id" => "",
          "xsl" => "");

//
// UTF-8 文字列を Shift_JIS 文字列に変換して返す
function utf82sjis($utf8)
{
  return mb_convert_encoding($utf8, "SJIS", "UTF-8");
}

//
// 第一引数 $_url へ第二引数 $_params の値を付加した URL を返す
function make_request_url($_url, $_params)
{
  global $charset;
  global $output_encoding;
  global $user_id;
  global $affiliate_id;
  global $link_id;

  $url_ = sprintf("%s?charset=%s&enc=%s&ui=%s&affid=%s&linkid=%s", $_url, $charset, $output_encoding, $user_id, $affiliate_id, $link_id);  
  while(list($key_, $val_) = each($_params)) {
    if (isset($_REQUEST[$key_]) && $_REQUEST[$key_] != "") {
      $url_ = sprintf("%s&%s=%s", $url_, $key_, urlencode($_REQUEST[$key_]));
    } else if (isset($_params[$key_]) && $_params[$key_] != "") {
      $url_ = sprintf("%s&%s=%s", $url_, $key_, urlencode($val_));
    }
  }
  return $url_;
}

function get_page_url($_params, $_page) {
  global $charset;
  global $output_encoding;
  global $user_id;
  global $affiliate_id;
  global $link_id;
  global $view_image;

  $url_ = sprintf("%s?charset=%s&enc=%s&ui=%s&affid=%s&linkid=%s&view_image=%s", "./item_search.php", $charset, $output_encoding, $user_id, $affiliate_id, $link_id, $view_image);  

  while(list($key_, $val_) = each($_params)) {
if (isset($_params[$key_]) && $_params[$key_] != "") {
      if ($key_ == "page") {
        $url_ = sprintf("%s&%s=%d", $url_, $key_, $_page);
      } else {
        $url_ = sprintf("%s&%s=%s", $url_, $key_, urlencode($val_));
      }
    }
  }
  return sprintf("%s&submit=%s", $url_, urlencode("検索"));
}

if (isset($_REQUEST['submit']) && $_REQUEST['submit'] == "検索") {
  $receive_xml = file_get_contents(make_request_url($bidders_web_service, $api_params));
}

// 注意 UTF-8 じゃないと上手くパーズしない。
$parser = xml_parser_create('UTF-8');
xml_parse_into_struct($parser, $receive_xml, $values);
xml_parser_free($parser);

$item_array = array();
$count = 0;
reset($values);
if ($values) {
  $item_tmp_ = null;
  foreach ($values as $data) {
   if (isset($data['tag'])) {
     switch ($data['tag']) {
      case 'PARAMETER':
        if (isset($data['attributes'])) {
          if (isset($api_params[$data['attributes']['NAME']])) {
            $api_params[$data['attributes']['NAME']] = utf82sjis($data['attributes']['VALUE']);
          }        
        }       
       break;
      case 'TOTALCOUNT':
     if (isset($data['value'])) {
       $count = $data['value'];
     }
     break;
    case 'ITEMINFO':
     if ($data['type'] == 'open') {
       $item_tmp_ = array();
     } else if ($data['type'] == 'close') {
       array_push($item_array, $item_tmp_);
       $item_tmp_ = null;
     }
     break;
      default:
     if (is_array($item_tmp_)) {
       if (isset($data['value'])) {
       $item_tmp_[$data['tag']] = $data['value'];
       }
     }
     break;
     }
   }
  }
}

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja">
<head>
<title>bidders商品検索</title>
<meta http-equiv="content-type" content="text/html; charset=Shift_JIS">
<meta http-equiv="content-style-type" content="text/css">
<meta http-equiv="expires" content="0">
<style type="text/css">
<!--

a {
  color: #0000ff;
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
}

a:visited {
  color: #666666;
}

a:active {
  color: #ffc0000;
}

-->
</style>
</head>
<body>
<form action="./item_search.php" method="get" style="margin-top: 0px; margin-bottom: 0px; ">
<table width="60%" border="0" cellspacing="0" cellpadding="0" style="margin: 5px 0pt 0pt 0px;">
<tr>
  <td bgcolor="#cccccc">
    <table width="100%" border="0" cellpadding="4" cellspacing="1" style="font-size: 10pt; ">
    <tr>
      <td bgcolor="#dddddd">
       キーワード<br><span style="font-size: 8pt; ">(separates space)</span>    
     </td>
     <td bgcolor="#ffffff">
        <input type="text" name="keyword" value="<?=$api_params['keyword']?>" size="30">
        <input type="radio" name="sskeyop" value="A" <?if (($api_params['sskeyop'] == "A") || ($api_params['sskeyop'] == "")) {?>checked<?}?>>AND    
        <input type="radio" name="sskeyop" value="O" <?if ($api_params['sskeyop'] == "O") {?>checked<?}?>>OR    
     </td>
    </tr>
    <tr>
      <td bgcolor="#dddddd">
       Item ID<br><span style="font-size: 8pt; ">(separates comma)</span>
     </td>
     <td bgcolor="#ffffff">
       <input type="text" name="item" value="<?=$api_params['item']?>" size="30">
     </td>
    </tr>
    <tr>
      <td bgcolor="#dddddd">
        TAG<br><span style="font-size: 8pt; ">(separates space)</span>
      </td>
     <td bgcolor="#ffffff">
        <input type="text" name="tag" value="<?=$api_params['tag']?>" size="30">
        <input type="radio" name="sstagop" value="A" <?if (($api_params['sstagop'] == "A") || ($api_params['sstagop'] == "")) {?>checked<?}?>>AND
        <input type="radio" name="sstagop" value="O" <?if ($api_params['sstagop'] == "O") {?>checked<?}?>>OR  
     </td>
    </tr>
    <tr>
      <td bgcolor="#dddddd">
        プログラムID(広告主)<br><span style="font-size: 8pt; ">(separates comma)</span>
      </td>
      <td bgcolor="#ffffff">
        <input type="text" name="prog" value="<?=$api_params['prog']?>" size="30">
      </td>
    </tr>
    <tr>
      <td bgcolor="#dddddd">
        除外プログラムID<br><span style="font-size: 8pt; ">(separates comma)</span>
      </td>
     <td bgcolor="#ffffff">
        <input type="text" name="nonprog" value="<?=$api_param['nonprog']?>" size="30">    
     </td>
    </tr>
    <tr>
      <td bgcolor="#dddddd">
        並び順1
      </td>
     <td bgcolor="#ffffff">
        <select name="sort">
          <option value="reg,A" <?if ($api_params['sort'] == "reg,A") {?>selected<?}?>>登録日付昇順</option>
          <option value="reg,D" <?if (($api_params['sort'] == "reg,D") || ($api_params['sort'] == "")) {?>selected<?}?>>登録日付降順</option>
          <option value="price,A" <?if ($api_params['sort'] == "price,A") {?>selected<?}?>>価格昇順</option>
          <option value="price,D" <?if ($api_params['sort'] == "price,D") {?>selected<?}?>>価格降順</option>
          <option value="c_sum,A" <?if ($api_params['sort'] == "c_sum,A") {?>selected<?}?>>クリック報酬昇順</option>
          <option value="c_sum,D" <?if ($api_params['sort'] == "c_sum,D") {?>selected<?}?>>クリック報酬降順</option>
          <option value="sum,A" <?if ($api_params['sort'] == "sum,A") {?>selected<?}?>>定額報酬昇順</option>
          <option value="sum,D" <?if ($api_params['sort'] == "sum,D") {?>selected<?}?>>定額報酬降順</option>
          <option value="rate,A" <?if ($api_params['sort'] == "rate,A") {?>selected<?}?>>定率報酬昇順</option>
          <option value="rate,D" <?if ($api_params['sort'] == "rate,D") {?>selected<?}?>>定率報酬降順</option>
          <option value="pay,A" <?if ($api_params['sort'] == "pay,A") {?>selected<?}?>>報酬金額昇順</option>
          <option value="pay,D" <?if ($api_params['sort'] == "pay,D") {?>selected<?}?>>報酬金額降順</option>
  </select>
      </td>
    </tr>
    <tr>
      <td bgcolor="#dddddd">
        並び順2      
      </td>
     <td bgcolor="#ffffff">
        <select name="sort2">
          <option value="reg,A" <?if ($api_params['sort2'] == "reg,A") {?>selected<?}?>>登録日付昇順</option>
          <option value="reg,D" <?if (($api_params['sort2'] == "reg,D") || ($api_params['sort'] == "")) {?>selected<?}?>>登録日付降順</option>
          <option value="price,A" <?if ($api_params['sort2'] == "price,A") {?>selected<?}?>>価格昇順</option>
          <option value="price,D" <?if ($api_params['sort2'] == "price,D") {?>selected<?}?>>価格降順</option>
          <option value="c_sum,A" <?if ($api_params['sort2'] == "c_sum,A") {?>selected<?}?>>クリック報酬昇順</option>
          <option value="c_sum,D" <?if ($api_params['sort2'] == "c_sum,D") {?>selected<?}?>>クリック報酬降順</option>
          <option value="sum,A" <?if ($api_params['sort2'] == "sum,A") {?>selected<?}?>>定額報酬昇順</option>
          <option value="sum,D" <?if ($api_params['sort2'] == "sum,D") {?>selected<?}?>>定額報酬降順</option>
          <option value="rate,A" <?if ($api_params['sort2'] == "rate,A") {?>selected<?}?>>定率報酬昇順</option>
          <option value="rate,D" <?if ($api_params['sort2'] == "rate,D") {?>selected<?}?>>定率報酬降順</option>
          <option value="pay,A" <?if ($api_params['sort2'] == "pay,A") {?>selected<?}?>>報酬金額昇順</option>
          <option value="pay,D" <?if ($api_params['sort2'] == "pay,D") {?>selected<?}?>>報酬金額降順</option>
        </select>
      </td>
    </tr>
<tr>
<td bgcolor="#dddddd">商品説明</td>
<td bgcolor="#ffffff">
 <input type="radio" name="cmt" value="Y" <?if ($api_params['cmt'] == "Y") {?>checked<?}?>>表示
 <input type="radio" name="cmt" value="N" <?if (($api_params['cmt'] == "N") || ($api_params['cmt'] == "") || !isset($api_params['cmt'])) {?>checked<?}?>>非表示
</td>
</tr>
<tr>
 <td bgcolor="#dddddd">画像表示</td>
 <td bgcolor="#ffffff">
 <input type="radio" name="view_image" value="Y" <?if ($view_image == "Y") {?>checked<?}?>>画像表示
 <input type="radio" name="view_image" value="N" <?if ($view_image == "N") {?>checked<?}?>>画像非表示
 </td>
</tr>
    </table>
  </td>
</tr>
</table>
<input type="submit" name="submit" value="検索">&nbsp;<input type="reset" name="reset" value="リセット">
</form>

<div style="margin-top: 16px; margin-bottom: 16px; ">件数:<?=$count?>件</div>

<?if (0 < $count) {?>
<table width="90%" border="0" cellspacing="0" cellpadding="0" style="font-size: 9pt; ">
<tr>
  <td bgcolor="#cccccc">
    <table border="0" cellspacing="1" cellpadding="4">
    <tr>
      <td width="18%" bgcolor="#dddddd">
        画像
      </td>
      <td width="47%" bgcolor="#dddddd">
        商品名
      </td>
      <td width="15%" bgcolor="#dddddd">
        価格 / 料率
      </td>
      <td width="20%" bgcolor="#dddddd">
        ショップ名
      </td>
    </tr>
<?
foreach ($item_array as $item) {
?>
    <tr>
      <td bgcolor="#ffffff">
        <?if (isset($item['IMAGEURL']) && $item['IMAGEURL']) {?>
        <div style="overflow: auto; width: 100%; height: 160px; text-align: center; ">
          <a href="<?=htmlspecialchars($item['IMAGEURL'])?>" target="_blank"><?if ($view_image == "Y") {?><img src="<?=htmlspecialchars($item['IMAGEURL'])?>" border="0"><?} else {?>画像閲覧<?}?></a><br>
        </div>
        <textarea cols="18" rows="5"><a href="<?=htmlspecialchars($item['ITEMURL'])?>" target="_blank"><img src="<?=htmlspecialchars($item['IMAGEURL'])?>" border="0"></a></textarea>
        <?} else {?>
        画像なし
        <?}?>
      </td>
      <td bgcolor="#ffffff">
        <div style="margin-bottom: 1em; ">
          TAG: <?=htmlspecialchars(utf82sjis($item['TAG1']))?> / <?=htmlspecialchars(utf82sjis($item['TAG2']))?> / <?=htmlspecialchars(utf82sjis($item['TAG3']))?> / <?=htmlspecialchars(utf82sjis($item['TAG4']))?> / <?=htmlspecialchars(utf82sjis($item['TAG5']))?>
        </div>
        <div style="margin-bottom: 1em; ">
          Item No. = <?=htmlspecialchars(utf82sjis($item['ITEMNO']))?> /&nbsp;
          Category ID = <?=htmlspecialchars(utf82sjis($item['CATEGID']))?>
        </div>
        <div style="margin-bottom: 1em; ">
          Program Type = <?=htmlspecialchars(utf82sjis($item['PROGRAMTYPE']))?> /&nbsp;
          Author Type = <?=htmlspecialchars(utf82sjis($item['AUTHTYPE']))?> /&nbsp;
          Pay Type = <?=htmlspecialchars(utf82sjis($item['PAYTYPE']))?>
        </div>
        <div style="margin-bottom: 1em; ">
        <?
        $regexp = "/(http:\/\/[0-9A-Za-z\/\%\+\-\?\~\_\=\&\.\#\,\;\$\:\!\*\@\(\)]+)/";
        print preg_replace($regexp, "<a href=\"$1\" target=\"_blank\">$1</a>", htmlspecialchars(utf82sjis($item['ITEMCOMMENT'])));
        ?>
        <??><!-- htmlspecialchars(utf82sjis($item['ITEMCOMMENT'])); -->
        </div>
        <div style="margin-bottom: 1em; ">
          型番: <?=htmlspecialchars($item['MODEL'])?> / <?=htmlspecialchars($item['JANCODE'])?><br>
          <a href="<?=htmlspecialchars($item['ITEMURL'])?>" target="_blank"><?=htmlspecialchars(utf82sjis($item['ITEMNAME']))?></a><br>
          <textarea cols="60" rows="5"><a href="<?=htmlspecialchars($item['ITEMURL'])?>" target="_blank"><?=htmlspecialchars(utf82sjis($item['ITEMNAME']))?></a></textarea>
        </div>          
      </td>
      <td bgcolor="#ffffff">
        <strong><?=htmlspecialchars(utf82sjis($item['ITEMPRICE']))?> 円</strong><br><br>
        定率報酬条件<br><?=htmlspecialchars(utf82sjis($item['RATE']))?> %<br><br>
        定額報酬条件<br><?=htmlspecialchars(utf82sjis($item['SUM']))?> 円<br><br>
        クリック報酬<br><?=htmlspecialchars(utf82sjis($item['CLICKSUM']))?> 円<br><br>
        報酬対象残クリック数<br><?=htmlspecialchars(utf82sjis($item['CLICKLIMIT']))?> 回
      </td>
      <td bgcolor="#ffffff">
        <div style="margin-bottom: 0.8em; ">
          Exhibitor ID = <?=htmlspecialchars(utf82sjis($item['EXHIBITORID']))?> /&nbsp;
          Program ID = <?=htmlspecialchars(utf82sjis($item['PROGRAMID']))?>
        </div>
        <div style="margin-bottom: 0.8em; ">
          <strong><?=htmlspecialchars(utf82sjis($item['PROGRAMNAME']))?></strong><br>
          <?=htmlspecialchars(utf82sjis($item['CORPNAME']))?>
        </div>
        <div style="margin-bottom: 0.8em; ">
          <?=htmlspecialchars(utf82sjis($item['SERVICENAME']))?>
        </div>
      </td>
    </tr>
<?}?>
    </table>
  </td>
</tr>
</table>
<?
if (!isset($api_params['page']) || ($api_params['page'] == "")) {
  $api_params['page'] = 1;
}
?>
<div>
<?if (1 < $api_params['page']) {?>
  <a href="<?=get_page_url($api_params, $api_params['page'] - 1)?>">前のページ</a>
<?}?>
  &nbsp;<strong><?=$api_params['page']?></strong>&nbsp;
<?if (($api_params['page'] * $item_per_page) < $count) {?>
  <a href="<?=get_page_url($api_params, $api_params['page'] + 1)?>">次のページ</a>
<?}?>
</div>
<?}?>
</body>
</html>




© Rakuten Group, Inc.
X

Design a Mobile Website
スマートフォン版を閲覧 | PC版を閲覧
Share by: