首页 > 其他分享 >商品链接查询淘宝商品信息接口,淘宝天猫宝贝信息采集、淘宝商品历史最低价格数据接口、优惠信息数据、单日领券销量最高销量数据接口,淘宝联盟ck延期方案|接口+html前端UI界面

商品链接查询淘宝商品信息接口,淘宝天猫宝贝信息采集、淘宝商品历史最低价格数据接口、优惠信息数据、单日领券销量最高销量数据接口,淘宝联盟ck延期方案|接口+html前端UI界面

时间:2024-11-07 23:16:02浏览次数:6  
标签:优惠券 数据 CommodityInformation 接口 echo date 淘宝 var data

商品链接查询淘宝商品信息接口,淘宝天猫宝贝信息采集、淘宝商品历史最低价格数据接口、优惠信息数据、单日领券销量最高销量数据接口,淘宝联盟ck延期方案|接口+html前端UI界面

PHP完整代码:

<?php
// 定义API接口地址和参数  
$apiUrl = "https://api.taolale.com/api/Tb_union/TB_Obtain_Products_Discounts";

//API文档地址:https://api.taolale.com/doc/8
$apiKey = "4mcAaupvfZOxgDDu9oz0ry39Tq"; // 替换为你的API Key  
$Query = "替换为需要查询的淘宝商品链接"; // 替换为需要查询的淘宝商品链接  


// 构建查询字符串  
$queryString = http_build_query([
    'key' => $apiKey,
    'Query' => $Query
]);

// 初始化cURL会话  
$ch = curl_init();

// 设置cURL选项  
curl_setopt($ch, CURLOPT_URL, $apiUrl.
    "?".$queryString); // URL + 查询字符串  
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 返回响应结果而不是直接输出  
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); // 设置请求方式为POST  
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'application/x-www-form-urlencoded' // 设置请求头
]);

// 发送请求并获取响应  
$response = curl_exec($ch);

// 检查是否有错误发生  
if (curl_errno($ch)) {
    echo 'cURL Error: '.curl_error($ch);
} else {
    // 解码JSON响应  
    $responseData = json_decode($response, true);

    //data.CommodityInformation.0.itemName
    $itemName = $responseData['data']['CommodityInformation'][0]['itemName'] ?? null; //商品名称


    //data.CommodityInformation.0.outputMktId
    $outputMktId = $responseData['data']['CommodityInformation'][0]['outputMktId'] ?? null; //商品itemId


    //data.CommodityInformation.0.price
    $price = $responseData['data']['CommodityInformation'][0]['price'] ?? null; //商品价格


    //data.CommodityInformation[0].couponStartFee
    $coupon_Start_Fee = $responseData['data']['CommodityInformation'][0]['couponStartFee'] ?? null; //优惠券开始费用

    //data.CommodityInformation[0].couponAmount
    $coupon_Amount = $responseData['data']['CommodityInformation'][0]['couponAmount'] ?? null; //优惠券金额


    //data.CommodityInformation[0].couponRemainCount
    $coupon_Remain_Count = $responseData['data']['CommodityInformation'][0]['couponRemainCount'] ?? null; //优惠券剩余计数


    $historyHighlights = $responseData['data']['CommodityInformation'][0]['historyHighlights'] ?? null;

    //data.historyHighlights
    // 遍历数组,查找name为"历史最低价"的项  
    $historyLowestPrice = null;
    foreach($historyHighlights as $item) {
        if ($item['name'] === '历史最低价') {
            $historyLowestPrice = $item;
            break; // 找到后退出循环  
        }
    }

    //data.historyHighlights
    // 遍历数组,查找name为"单日推广销量最高"的项  
    $Highdailysalesvolume = null;
    foreach($historyHighlights as $item) {
        if ($item['name'] === '单日推广销量最高') {
            $Highdailysalesvolume = $item;
            break; // 找到后退出循环  
        }
    }


    if ($historyLowestPrice['date']) {
        // 将日期字符串重新格式化为YYYYMMDD格式以便DateTime类可以正确解析  
        $formattedDateString = substr($historyLowestPrice['date'], 0, 4).
        '-'.substr($historyLowestPrice['date'], 4, 2).
        '-'.substr($historyLowestPrice['date'], 6, 2);
        // 创建DateTime对象  
        $date = new DateTime($formattedDateString);
        // 格式化日期为所需格式  
        $historyLowestPrice['date'] = $date -> format('Y年m月d日');
    }


    if ($Highdailysalesvolume['date']) {
        // 将日期字符串重新格式化为YYYYMMDD格式以便DateTime类可以正确解析  
        $formattedDateString = substr($Highdailysalesvolume['date'], 0, 4).
        '-'.substr($Highdailysalesvolume['date'], 4, 2).
        '-'.substr($Highdailysalesvolume['date'], 6, 2);
        // 创建DateTime对象  
        $date = new DateTime($formattedDateString);
        // 格式化日期为所需格式  
        $Highdailysalesvolume['date'] = $date -> format('Y年m月d日');
    }






    $Quan = $responseData['data']['Discountinformation'][0]['creativeStyle'][0]['cpsShortLinkUrl'] ?? null; //精简风格优惠券链接
    if (!$Quan) {
        //data.Discountinformation[0].creativeStyle[1].cpsShortLinkUrl
        $Quan = $responseData['data']['Discountinformation'][0]['creativeStyle'][1]['cpsShortLinkUrl'] ?? null; //长句风格优惠券链接
    }

    //data.CommodityInformation[0].couponEffectiveEndTime
    $Effective_End_Time = $responseData['data']['CommodityInformation'][0]['couponEffectiveEndTime'] ?? null; //优惠券结束时间戳
    // 转换为十位时间戳(秒级)  
    $Effective_End_Time = $Effective_End_Time / 1000;
    // 格式化时间  
    $Effective_End_Time = date('Y-m-d H:i:s', $Effective_End_Time);





    // 检查解码是否成功  
    if (json_last_error() === JSON_ERROR_NONE) {
        // 输出响应数据  
        echo "Code: ".$responseData['code'].
        "<br>";
        echo "Message: ".$responseData['msg'].
        "<br>";

        if ($responseData['code'] == 200) { // 200表示成功  
            $data = $responseData['data'];
            echo "宝贝名称: ".$itemName.
            "<br>";
            echo "宝贝itemid: ".$outputMktId.
            "<br>";
            echo "宝贝价格: ".$price.
            '元'.
            "<br>";
            echo "优惠规则: ".
            '满'.$coupon_Start_Fee.
            '元减'.$coupon_Amount.
            '元'.
            "<br>";
            echo "优惠券剩余: ".$coupon_Remain_Count.
            '张'.
            "<br>";
            echo "优惠券金额: ".$coupon_Amount.
            '元'.
            "<br>";
            echo "优惠券链接: ".$Quan.
            "<br>";
            echo "优惠券结束时间: ".$Effective_End_Time.
            "<br>";
            echo "历史最低价时间: ".$historyLowestPrice['date'].
            "<br>";
            echo "历史最低价价格: ".$historyLowestPrice['price'].
            '元'.
            "<br>";
            echo "单日领券销量最高|日期: ".$Highdailysalesvolume['date'].
            "<br>";
            echo "单日领券销量最高|数量: ".$Highdailysalesvolume['promotionSales'].
            '件'.
            "<br>";
        } else {
            echo "Error: ".$responseData['msg'];
        }
    } else {
        echo 'JSON Decode Error: '.json_last_error_msg();
    }
}

// 关闭cURL会话  
curl_close($ch); ?>

HTML完整代码:
在这里插入图片描述

<!DOCTYPE html>  
<html lang="zh-CN">  
<head>  
    <meta charset="UTF-8">  
    <meta name="viewport" content="width=device-width, initial-scale=1.0">  
    <title>淘宝商品信息|低价历史|最高销量信息查询</title>  
    <link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/5.3.0/css/bootstrap.min.css" rel="stylesheet">  
	<!-- <link href="./css/bootstrap.min.css" rel="stylesheet">  -->
	
    <script src="https://code.jquery.com/jquery-3.5.1.min.js"></script> 
    <!-- <script src="./js/jquery-3.5.1.min.js"></script>  -->
	
    <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.0/js/bootstrap.bundle.min.js"></script>  
    <!-- <script src="./js/bootstrap.bundle.min.js"></script>   -->
	
    <style>  
        body {  
            background-color: #f8f9fa;  
            font-family: 'Arial', sans-serif;  
        }  
        .container {  
            max-width: 750px;  
            margin: 50px auto;  
            padding: 20px;  
            background-color: #ffffff;  
            box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);  
            border-radius: 8px;  
        }  
        .alert {  
            margin-top: 20px;  
        }  
        .result-list {  
            margin-top: 20px;  
        }  
        .n {  
            width: 100%;
			margin-top: 20px; 
        }  
    </style>  
</head>  
<body>  
    <div class="container mt-5">  
        <div class="card">  
            <div class="card-header">  
                <h3 class="card-title text-center">淘宝商品信息|低价历史|最高销量信息查询</h3>  
            </div>  
            <div class="card-body">  
                <form id="queryForm">  
                    <div class="form-group">  
                        <label for="Query">商品链接</label>  
                        <input type="text" class="form-control" id="Query" name="Query" placeholder="请输入淘宝商品链接或商品ID" required>  
                    </div>  
                    <button type="submit" class="btn btn-primary btn-block n">查询</button>  
                </form>  
				 
                <div id="result" class="mt-3">  
                     
					<div id="alertContainer" class="mt-3"></div> 
                    <ul class="list-group" id="resultList"></ul>  
                </div> 
				<div class="alert alert-info alert-dismissible fade show" role="alert">
				<strong>可输入示例:</strong><br>【淘宝】大促价保 http://e.tb.cn/h.TaL719yr5hssIZH?tk=rIoW3KIl6p7 CZ8908 「乔丹运动鞋跑步鞋女2024冬季减震回弹户外越野鞋防滑耐磨登山鞋子」
点击链接直接打开 或者 淘宝搜索直接打开<br><br>846811603648<br><br>https://detail.tmall.com/item.htm?app=chrome&bxsign=scdneZJ4VWozSugTIWgvOG2d0aGHVLobd18Ld0iMNf8F4kuus9L1ewVyfWkNq19I6SaKJTYN3icFDjxVZxt8iGNmjoL2cULScrTEMsc5u__w52fdM9LZ_GIK0odULgiaafB&cpp=1&id=846811603648&share_crt_v=1&shareurl=true&short_name=h.TaL719yr5hssIZH&sp_tk=cklvVzNLSWw2cDc%3D&spm=a2159r.13376460.0.0&tbSocialPopKey=shareItem&tk=rIoW3KIl6p7%20CZ8908&un=aa48d20ce0c3a429d9a2d33a0bf32337&un_site=0&ut_sk=1.ZngiZZiLuHsDAFzTNEvdxhN0_21380790_1730947521627.TaoPassword-Weixin.1&wxsign=tbwso7SC046gyl_tNckSuixELKOUDMKNtxFe_m5HzhcG9MrkSgYHtjosdO-x0uOEkkBmNkNgY4x3geb2iFWjKQmMwzhaM_i16E4zxO0DXPaApYghAzQ9Dr5XYrmC094e_9G<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
				</div>				
            </div>  
        </div>  
    </div>  
  
    <script>  
        $(document).ready(function () {  
            $('#queryForm').on('submit', function (e) {  
                e.preventDefault();  
                  
                var Query = $('#Query').val();   
				
				//API文档地址:https://api.taolale.com/doc/8
                var apiKey = '4mcAaupvfZOxgDDu9oz0ry39Tq'; // 请在此处替换为你的API key  
                var apiUrl = `https://api.taolale.com/api/Tb_union/TB_Obtain_Products_Discounts?key=${apiKey}&Query=${Query}`;  
  
                // 弹出提示框(加载中...)  
                var alertDiv = $('<div class="alert alert-info alert-dismissible fade show" role="alert">' +  
                    '<strong>加载中...</strong> 请稍等...' +  
                    '<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>' +  
                '</div>');  
                $('#alertContainer').html(alertDiv);  
  
                $.ajax({  
                    url: apiUrl,  
                    method: 'POST',  
                    dataType: 'json',  
                    success: function (response) {  
					    // 关闭加载提示框  
                        $('.alert').alert('close');  
						
                        if (response.code === 200) {  
                            var resultList = $('#resultList');  
                            resultList.empty();  
                            var data = response.data;  
							
							//优惠券结束时间格式转换开始
							var End_Time = data.CommodityInformation[0].couponEffectiveEndTime;
							
							// 创建一个新的Date对象
							var date = new Date(parseInt(End_Time));
							console.log('优惠券结束时间:', date);
							// 提取年、月、日、时、分、秒
							var year = date.getFullYear();
							var month = ('0' + (date.getMonth() + 1)).slice(-2); // 月份从0开始,需要加1,并且保证是两位数
							var day = ('0' + date.getDate()).slice(-2); // 保证是两位数
							var hours = ('0' + date.getHours()).slice(-2); // 保证是两位数
							var minutes = ('0' + date.getMinutes()).slice(-2); // 保证是两位数
							var seconds = ('0' + date.getSeconds()).slice(-2); // 保证是两位数
							
							// 格式化日期和时间
							var formattedDateTime = year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds;
							//优惠券结束时间格式转换结束
							
							
							//历史最低价时间 时间格式转换开始
							var Low_Price = data.CommodityInformation[0].historyHighlights[0].date;
							
							// 提取年、月、日,并转换为整数
							var Low_Price_year = parseInt(Low_Price.substring(0, 4), 10);
							var Low_Price_month = parseInt(Low_Price.substring(4, 6), 10);
							var Low_Price_day = parseInt(Low_Price.substring(6, 8), 10);
							 
							// 格式化月份和日期为两位数,并添加中文的“月”和“日”
							var Low_Price_formattedMonth = ('0' + Low_Price_month).slice(-2) + "月";
							var Low_Price_formattedDay = ('0' + Low_Price_day).slice(-2) + "日";
							 
							// 格式化日期字符串
							var Low_Price_DateString = Low_Price_year + "年" + Low_Price_formattedMonth + Low_Price_formattedDay;
							//历史最低价时间 时间格式转换结束
							
							
							//单日领券销量最高 时间格式转换开始
							var High_Sales = data.CommodityInformation[0].historyHighlights[3].date;
							
							// 提取年、月、日,并转换为整数
							var High_Sales_year = parseInt(High_Sales.substring(0, 4), 10);
							var High_Sales_month = parseInt(High_Sales.substring(4, 6), 10);
							var High_Sales_day = parseInt(High_Sales.substring(6, 8), 10);
							 
							// 格式化月份和日期为两位数,并添加中文的“月”和“日”
							var High_Sales_formattedMonth = ('0' + High_Sales_month).slice(-2) + "月";
							var High_Sales_formattedDay = ('0' + High_Sales_day).slice(-2) + "日";
							 
							// 格式化日期字符串
							var High_Sales_DateString = High_Sales_year + "年" + High_Sales_formattedMonth + High_Sales_formattedDay;
							//单日领券销量最高 时间格式转换结束
							resultList.append(`<h4 class="text-center">查询结果</h4>`);
                            resultList.append(`<li class="list-group-item">宝贝名称: ${data.CommodityInformation[0].itemName}</li>`);  
                            resultList.append(`<li class="list-group-item">宝贝itemid: ${data.CommodityInformation[0].outputMktId}</li>`);  
                            resultList.append(`<li class="list-group-item">宝贝价格: ${data.CommodityInformation[0].price}元</li>`);  
                            resultList.append(`<li class="list-group-item">优惠规则: 满${data.CommodityInformation[0].couponStartFee}元减${data.CommodityInformation[0].couponAmount}元</li>`);  
                            resultList.append(`<li class="list-group-item">优惠券剩余: ${data.CommodityInformation[0].couponRemainCount}张</li>`);  
                            resultList.append(`<li class="list-group-item">优惠券金额: ${data.CommodityInformation[0].couponAmount}元</li>`);  
                            resultList.append(`<li class="list-group-item">优惠券链接: ${data.Discountinformation[0].creativeStyle[0].cpsShortLinkUrl}</li>`);  
							resultList.append(`<li class="list-group-item">优惠券结束时间: ${formattedDateTime}</li>`); 
							resultList.append(`<li class="list-group-item">历史最低价时间: ${Low_Price_DateString}</li>`); 
							resultList.append(`<li class="list-group-item">历史最低价价格: ${data.CommodityInformation[0].historyHighlights[0].price}元</li>`); 
							resultList.append(`<li class="list-group-item">单日领券销量最高|日期: ${High_Sales_DateString}</li>`); 
							resultList.append(`<li class="list-group-item">单日领券销量最高|数量: ${data.CommodityInformation[0].historyHighlights[3].promotionSales}件</li>`); 
                        } else {  
							// 如果查询失败,则弹出错误提示框  
							var errorDiv = $('<div class="alert alert-danger alert-dismissible fade show" role="alert">' +  
							'<strong>查询失败!</strong>' +  
							'<p>' + response.msg +"   ||  "+ response.data + '</p>' +  
							'<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>' +  
							'</div>');  
							$('#alertContainer').html(errorDiv);  
							} 
                    },  
							error: function(xhr, status, error) {  
							// 如果请求失败,则弹出错误提示框  
							var errorDiv = $('<div class="alert alert-danger alert-dismissible fade show" role="alert">' +  
							'<strong>请求失败!</strong>' +  
							'<p>' + xhr.response || '无法连接到服务器,请稍后再试。' + '</p>' +  
							'<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>' +  
							'</div>');  
							$('#alertContainer').html(errorDiv);  
							}   
                });  
            });  
        });  
    </script>  
</body>  
</html>

标签:优惠券,数据,CommodityInformation,接口,echo,date,淘宝,var,data
From: https://blog.csdn.net/weixin_47019180/article/details/143609787

相关文章

  • 查询三网话费余额接口,移动话费余额接口、电信话费余额接口、联通话费余额的接口+html
    PHP是直接请求的接口,HTML代码也是直接请求的接口。如果HTML想上线运行,还是需要做下安全的。下边是PHP代码<?php//定义API接口地址和参数$apiUrl="https://api.taolale.com/api/Inquiry_Phone_Charges/get";//API文档地址:https://api.taolale.com/doc/13$api......
  • Pytorch用BERT对CoLA、新闻组文本数据集自然语言处理NLP:主题分类建模微调可视化分析-C
     原文链接:https://tecdat.cn/?p=38181原文出处:拓端数据部落公众号自然语言处理(NLP)领域在近年来发展迅猛,尤其是预训练模型的出现带来了重大变革。其中,BERT模型凭借其卓越性能备受瞩目。然而,对于许多研究者而言,如何高效运用BERT进行特定任务的微调及应用仍存在诸多困惑。本文......
  • 数据结构---排序(下)
    一.快速排序补充快速排序的分治部分还有其他方法,如挖坑法,快慢指针法。1.挖坑法(重要)思路:先将基准位置元素用tmp保存,假定基准位置没有值(有个坑),然后分别从前后向中间遍历,右边大于基准就减减,遇到小于基准的就放到基准值位置的坑中,左边亦然,遍历整个数组后,将基准值填入最后一个左......
  • Windows下Cassandra数据库安装及编程访问
    前提紧要:由于我的Java版本是Java8所以为了兼容,我选择了apache-cassandra-3.11.11官网下载链接:https://www.apache.org/dyn/closer.lua/cassandra/3.11.11/apache-cassandra-3.11.11-bin.tar.gz通常推荐使用Java8来运行Cassandra3.x版本,因为它的性能和稳定性在这一组合下得......
  • 阅文批示与资产管理系统数据库设计详解
    阅文批示与资产管理系统数据库设计详解项目背景:为了提升文件处理及资产管理的效率,该系统设计了完善的数据库结构,以满足不同角色的需求。通过记录文件的审批、传阅、资产交易等过程,实现了文件和资产的全生命周期管理。数据库表结构概述系统数据库包含用户、文件、资产、通知等多......
  • 个人账户自主开通量化交易接口
    券商交易接口接入方法该方式提供多种登录及交易方式。支持股票、可转债、ETF基金交易操作。支持多种券商,同花顺、东方财富等。您只需输入对应券商的资金账号密码,即可调用OpenAPI进行交易。*个人账户仅支持东方财富登录,机构账户无限制。第一步:获取交易柜台服务器为实现更好的......
  • 数据库系统------存储和索引
    索引索引的作用引入索引是为了加快数据的访问,就像查字典一样,我们根据拼音或者偏旁查找具体的字会更快索引项搜索键:用于查找记录的属性或属性集合指针:指向与搜索键值匹配的一个或多个记录索引文件索引文件是由一系列索引项组成的,索引文件通常比数据文件小索引的基本......
  • 数据链路层
    5_数据链路层数据链路层链路和数据链路链路一条点到点的物理线路段,中间没有其它的交换节点,一条链路只是一条通路的一个组成部分数据链路除物理链路外,还必须有通信协议来控制这些数据的传输,若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。现常见的方法就是使用适......
  • python基础——04数据类型(元组,集合,字典)
    一、元组(tuple)1.1什么是元组元组和列表相似,但元组的元素放在()里面。t=(1,2,3,4,5)print(type(t))#<class'tuple'>t1=('hello')#<class'str'>这不是元组t2=('hello',)#<class'tuple'>print(type(t1),type(t2)......
  • 数据结构_链表_双向循环链表 & 栈 的初始化、插入、删除、修改、查询打印(基于C语言实
    一、双向循环链表的原理与应用双向循环链表与双向链表的区别:指的是双向循环链表的首结点中的prev指针成员指向链表的尾结点,并且双向循环链表的尾结点里的next指针成员指向链表的首结点,所以双向循环链表也属于环形结构。由于带头结点更加方便用户进行数据访问,所以本次创建一条带......