news 2026/5/1 8:51:17

1688 商品采集 + 马帮 / 店小秘 / 芒果采集 API 对接(Java/PHP)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
1688 商品采集 + 马帮 / 店小秘 / 芒果采集 API 对接(Java/PHP)

一、前期准备

1. 各平台 API 权限申请

平台申请地址核心凭证关键说明
1688 开放平台https://open.1688.com/appKey、appSecret需企业认证,开通商品详情接口
马帮 ERPhttps://api.mabang.com/app_id、app_secret申请采集 / 商品同步接口权限
店小秘https://open.dianxiaomi.com/appKey、appSecret配置 IP 白名单,开通采集接口
芒果采集联系芒果采集服务商token/API 密钥、接口地址第三方工具,接口为定制化

2. 通用依赖(Java/PHP)

  • Java:OkHttp(HTTP 请求)、FastJSON(JSON 解析)、commons-codec(签名)

    xml

    <dependency> <groupId>com.squareup.okhttp3</groupId> <artifactId>okhttp</artifactId> <version>4.10.0</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>2.0.32</version> </dependency> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>1.15</version> </dependency>
  • PHP:curl(HTTP 请求)、json 扩展(JSON 解析)

二、1688 官方商品采集 API 实现

核心接口:商品详情查询

1688 开放平台核心接口:taobao.open.supply.center.product.detail.get(根据商品 ID / 链接获取详情)

1. Java 实现

java

运行

import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; import org.apache.commons.codec.digest.DigestUtils; import com.alibaba.fastjson.JSONObject; import java.io.IOException; import java.util.*; public class Ali1688Collector { // 1688配置 private static final String APP_KEY = "你的1688appKey"; private static final String APP_SECRET = "你的1688appSecret"; private static final String API_URL = "https://gw.open.1688.com/openapi/param2/1/taobao.open.supply.center.product.detail.get/"+APP_KEY; // 生成1688签名 private static String generateSign(Map<String, String> params) { // 1. 参数按ASCII升序排序 List<String> keys = new ArrayList<>(params.keySet()); Collections.sort(keys); // 2. 拼接参数字符串 StringBuilder sb = new StringBuilder(); for (String key : keys) { sb.append(key).append(params.get(key)); } // 3. 首尾拼接appSecret并MD5加密 sb.insert(0, APP_SECRET); sb.append(APP_SECRET); return DigestUtils.md5Hex(sb.toString()).toUpperCase(); } // 采集1688商品详情 public static JSONObject collect1688Product(String productId) throws IOException { OkHttpClient client = new OkHttpClient(); // 构造请求参数 Map<String, String> params = new HashMap<>(); params.put("method", "taobao.open.supply.center.product.detail.get"); params.put("app_key", APP_KEY); params.put("timestamp", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); params.put("format", "json"); params.put("v", "2.0"); params.put("sign_method", "md5"); params.put("product_id", productId); // 1688商品ID // 生成签名 params.put("sign", generateSign(params)); // 构造请求URL StringBuilder urlBuilder = new StringBuilder(API_URL); urlBuilder.append("?"); for (Map.Entry<String, String> entry : params.entrySet()) { urlBuilder.append(entry.getKey()).append("=").append(entry.getValue()).append("&"); } String url = urlBuilder.substring(0, urlBuilder.length() - 1); // 发送请求 Request request = new Request.Builder().url(url).get().build(); Response response = client.newCall(request).execute(); // 解析返回结果 if (response.isSuccessful() && response.body() != null) { String result = response.body().string(); return JSONObject.parseObject(result); } else { throw new IOException("1688 API请求失败:" + response.code()); } } public static void main(String[] args) throws IOException { JSONObject productInfo = collect1688Product("123456789"); // 替换为真实商品ID System.out.println("1688商品信息:" + productInfo.toJSONString()); } }

2. PHP 实现

php

运行

<?php class Ali1688Collector { private $appKey = "你的1688appKey"; private $appSecret = "你的1688appSecret"; private $apiUrl = "https://gw.open.1688.com/openapi/param2/1/taobao.open.supply.center.product.detail.get/"; // 生成1688签名 private function generateSign($params) { // 1. 参数按ASCII升序排序 ksort($params); // 2. 拼接参数字符串 $signStr = ''; foreach ($params as $key => $value) { $signStr .= $key . $value; } // 3. 首尾拼接appSecret并MD5加密 $signStr = $this->appSecret . $signStr . $this->appSecret; return strtoupper(md5($signStr)); } // 采集1688商品详情 public function collect1688Product($productId) { // 构造请求参数 $params = [ 'method' => 'taobao.open.supply.center.product.detail.get', 'app_key' => $this->appKey, 'timestamp' => date('Y-m-d H:i:s'), 'format' => 'json', 'v' => '2.0', 'sign_method' => 'md5', 'product_id' => $productId ]; // 生成签名 $params['sign'] = $this->generateSign($params); // 构造请求URL $url = $this->apiUrl . $this->appKey . '?' . http_build_query($params); // 发送请求 $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); $response = curl_exec($ch); curl_close($ch); // 解析结果 if ($response) { return json_decode($response, true); } else { throw new Exception("1688 API请求失败"); } } } // 调用示例 try { $collector = new Ali1688Collector(); $productInfo = $collector->collect1688Product("123456789"); // 替换为真实商品ID var_dump("1688商品信息:", $productInfo); } catch (Exception $e) { echo "错误:" . $e->getMessage(); } ?>

三、马帮 ERP API 对接(商品同步)

马帮 API 基于 RESTful 风格,核心是签名验证 + JSON 请求,以下为商品采集同步示例:

1. Java 实现

java

运行

import okhttp3.MediaType; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.RequestBody; import okhttp3.Response; import com.alibaba.fastjson.JSONObject; import java.io.IOException; import java.util.HashMap; import java.util.Map; public class MabangApiClient { private static final String MABANG_APP_ID = "你的马帮app_id"; private static final String MABANG_APP_SECRET = "你的马帮app_secret"; private static final String MABANG_API_URL = "https://api.mabang.com/v1/product/collect"; // 马帮采集接口 // 马帮API请求 public static JSONObject collectByMabang(String productUrl) throws IOException { OkHttpClient client = new OkHttpClient(); MediaType JSON = MediaType.parse("application/json; charset=utf-8"); // 构造请求体 Map<String, Object> requestBody = new HashMap<>(); requestBody.put("app_id", MABANG_APP_ID); requestBody.put("timestamp", System.currentTimeMillis() / 1000); // 时间戳(秒) requestBody.put("product_url", productUrl); // 1688商品链接 // 生成签名(马帮签名规则:MD5(app_id+timestamp+app_secret)) String signStr = MABANG_APP_ID + requestBody.get("timestamp") + MABANG_APP_SECRET; String sign = org.apache.commons.codec.digest.DigestUtils.md5Hex(signStr); requestBody.put("sign", sign); // 构建请求 RequestBody body = RequestBody.create(JSONObject.toJSONString(requestBody), JSON); Request request = new Request.Builder() .url(MABANG_API_URL) .post(body) .build(); Response response = client.newCall(request).execute(); if (response.isSuccessful() && response.body() != null) { String result = response.body().string(); return JSONObject.parseObject(result); } else { throw new IOException("马帮API请求失败:" + response.code()); } } public static void main(String[] args) throws IOException { JSONObject result = collectByMabang("https://detail.1688.com/offer/123456789.html"); System.out.println("马帮采集结果:" + result.toJSONString()); } }

2. PHP 实现

php

运行

<?php class MabangApiClient { private $appId = "你的马帮app_id"; private $appSecret = "你的马帮app_secret"; private $apiUrl = "https://api.mabang.com/v1/product/collect"; public function collectByMabang($productUrl) { // 构造请求参数 $timestamp = time(); $sign = md5($this->appId . $timestamp . $this->appSecret); $postData = [ 'app_id' => $this->appId, 'timestamp' => $timestamp, 'product_url' => $productUrl, 'sign' => $sign ]; // 发送POST请求 $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $this->apiUrl); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($postData)); curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); $response = curl_exec($ch); curl_close($ch); return json_decode($response, true); } } // 调用示例 $mabangClient = new MabangApiClient(); $result = $mabangClient->collectByMabang("https://detail.1688.com/offer/123456789.html"); var_dump("马帮采集结果:", $result); ?>

四、店小秘 API 对接

店小秘 API 签名规则为 HMAC-SHA256,以下为商品采集示例:

1. Java 实现

java

运行

import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; import com.alibaba.fastjson.JSONObject; import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; import java.io.IOException; import java.nio.charset.StandardCharsets; import java.util.Base64; import java.util.HashMap; import java.util.Map; public class DianXiaoMiApiClient { private static final String DXMI_APP_KEY = "你的店小秘appKey"; private static final String DXMI_APP_SECRET = "你的店小秘appSecret"; private static final String DXMI_API_URL = "https://open.dianxiaomi.com/api/v2/product/collect"; // 生成HMAC-SHA256签名 private static String generateHmacSign(String data) throws Exception { Mac mac = Mac.getInstance("HmacSHA256"); SecretKeySpec keySpec = new SecretKeySpec(DXMI_APP_SECRET.getBytes(StandardCharsets.UTF_8), "HmacSHA256"); mac.init(keySpec); byte[] signBytes = mac.doFinal(data.getBytes(StandardCharsets.UTF_8)); return Base64.getEncoder().encodeToString(signBytes); } public static JSONObject collectByDxmi(String productUrl) throws Exception { OkHttpClient client = new OkHttpClient(); long timestamp = System.currentTimeMillis(); // 构造签名原文 String signData = DXMI_APP_KEY + timestamp + productUrl; String sign = generateHmacSign(signData); // 构造请求参数 Map<String, String> params = new HashMap<>(); params.put("appKey", DXMI_APP_KEY); params.put("timestamp", String.valueOf(timestamp)); params.put("sign", sign); params.put("productUrl", productUrl); // 构造URL StringBuilder urlBuilder = new StringBuilder(DXMI_API_URL); urlBuilder.append("?"); for (Map.Entry<String, String> entry : params.entrySet()) { urlBuilder.append(entry.getKey()).append("=").append(entry.getValue()).append("&"); } String url = urlBuilder.substring(0, urlBuilder.length() - 1); Request request = new Request.Builder().url(url).get().build(); Response response = client.newCall(request).execute(); if (response.isSuccessful() && response.body() != null) { return JSONObject.parseObject(response.body().string()); } else { throw new IOException("店小秘API请求失败:" + response.code()); } } public static void main(String[] args) throws Exception { JSONObject result = collectByDxmi("https://detail.1688.com/offer/123456789.html"); System.out.println("店小秘采集结果:" + result.toJSONString()); } }

2. PHP 实现

php

运行

<?php class DianXiaoMiApiClient { private $appKey = "你的店小秘appKey"; private $appSecret = "你的店小秘appSecret"; private $apiUrl = "https://open.dianxiaomi.com/api/v2/product/collect"; // 生成HMAC-SHA256签名 private function generateHmacSign($data) { return base64_encode(hash_hmac('sha256', $data, $this->appSecret, true)); } public function collectByDxmi($productUrl) { $timestamp = time() * 1000; // 毫秒级时间戳 $signData = $this->appKey . $timestamp . $productUrl; $sign = $this->generateHmacSign($signData); // 构造请求参数 $params = [ 'appKey' => $this->appKey, 'timestamp' => $timestamp, 'sign' => $sign, 'productUrl' => $productUrl ]; $url = $this->apiUrl . '?' . http_build_query($params); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); $response = curl_exec($ch); curl_close($ch); return json_decode($response, true); } } // 调用示例 $dxmiClient = new DianXiaoMiApiClient(); $result = $dxmiClient->collectByDxmi("https://detail.1688.com/offer/123456789.html"); var_dump("店小秘采集结果:", $result); ?>

五、芒果采集 API 通用对接

芒果采集为第三方工具,接口格式需以服务商提供为准,以下为通用 HTTP 请求示例:

1. Java 实现

java

运行

import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; import com.alibaba.fastjson.JSONObject; import java.io.IOException; import java.util.HashMap; import java.util.Map; public class MangoCollector { private static final String MANGO_API_URL = "芒果采集API地址"; private static final String MANGO_TOKEN = "你的芒果采集token"; public static JSONObject collectByMango(String productUrl) throws IOException { OkHttpClient client = new OkHttpClient(); // 构造请求参数(以服务商要求为准) Map<String, String> params = new HashMap<>(); params.put("token", MANGO_TOKEN); params.put("url", productUrl); params.put("type", "1688"); // 采集类型 // 构造URL StringBuilder urlBuilder = new StringBuilder(MANGO_API_URL); urlBuilder.append("?"); for (Map.Entry<String, String> entry : params.entrySet()) { urlBuilder.append(entry.getKey()).append("=").append(entry.getValue()).append("&"); } String url = urlBuilder.substring(0, urlBuilder.length() - 1); Request request = new Request.Builder().url(url).get().build(); Response response = client.newCall(request).execute(); if (response.isSuccessful() && response.body() != null) { return JSONObject.parseObject(response.body().string()); } else { throw new IOException("芒果采集API请求失败:" + response.code()); } } public static void main(String[] args) throws IOException { JSONObject result = collectByMango("https://detail.1688.com/offer/123456789.html"); System.out.println("芒果采集结果:" + result.toJSONString()); } }

2. PHP 实现

php

运行

<?php class MangoCollector { private $apiUrl = "芒果采集API地址"; private $token = "你的芒果采集token"; public function collectByMango($productUrl) { $params = [ 'token' => $this->token, 'url' => $productUrl, 'type' => '1688' ]; $url = $this->apiUrl . '?' . http_build_query($params); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); $response = curl_exec($ch); curl_close($ch); return json_decode($response, true); } } // 调用示例 $mangoClient = new MangoCollector(); $result = $mangoClient->collectByMango("https://detail.1688.com/offer/123456789.html"); var_dump("芒果采集结果:", $result); ?>

六、关键注意事项

  1. 签名正确性:各平台签名规则不同(MD5/HMAC-SHA256),需严格按文档排序参数、拼接密钥,避免签名错误。
  2. 频率限制:1688 / 马帮 / 店小秘均有接口调用限流(如 1688 单应用 QPS=5),需添加限流重试逻辑。
  3. 数据解析:返回结果需处理空值、错误码(如 1688 的error_response),确保程序健壮性。
  4. 合规性:采集 1688 商品数据需遵守平台《开放平台服务协议》,不得用于违规爬取、商用侵权等场景。
  5. 异常处理:添加网络超时、接口返回失败的重试机制,建议使用线程池 / 异步处理大批量采集。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 1:15:08

Wan2.2-I2V-A14B视频生成模型全环境部署实战指南

在AI视频生成技术快速发展的今天&#xff0c;Wan2.2-I2V-A14B作为当前性能最强的开源视频生成解决方案&#xff0c;其多平台适配能力成为开发者关注的焦点。本文将从实际应用场景出发&#xff0c;提供一套完整的跨平台部署流程&#xff0c;帮助你在不同操作系统上高效运行这一革…

作者头像 李华
网站建设 2026/5/1 6:01:31

京东NutUI商品分类组件:5种创新布局方案实战指南

京东NutUI商品分类组件&#xff1a;5种创新布局方案实战指南 【免费下载链接】nutui 京东风格的移动端 Vue2、Vue3 组件库 、支持多端小程序(A Vue.js UI Toolkit for Mobile Web) 项目地址: https://gitcode.com/gh_mirrors/nu/nutui 在移动电商快速发展的今天&#xf…

作者头像 李华
网站建设 2026/4/30 13:51:18

政务智能体发展研究报告(2025年)

报告对政务智能体的发展应用开展了全景式分析&#xff0c;力求为政务部门、技术开发者以及相关研究人员提供启发与借鉴。报告重点围绕政务智能体的发展背景与定义、技术要素与架构、变革价值与场景、面临挑战及未来发展建议五大方面展开研究。关注公众号&#xff1a;【互联互通…

作者头像 李华
网站建设 2026/4/25 20:26:42

2025-2026劳动力市场及薪资调查报告

导读&#xff1a;《2025-2026年劳动力市场及薪资调查报告》由中国德国商会发布&#xff0c;基于475家会员企业调研数据&#xff0c;全面呈现了在华德企及中国整体劳动力市场的薪资趋势、就业动态与人力资源特征。关注公众号&#xff1a;【互联互通社区】&#xff0c;回复【XCJX…

作者头像 李华
网站建设 2026/4/26 23:22:07

UI-TARS智能行动助手:重新定义计算机自动化操作新体验

在数字化时代&#xff0c;我们每天都要面对各种重复繁琐的计算机操作任务。从数据整理到软件操作&#xff0c;这些工作不仅耗时耗力&#xff0c;还容易出错。现在&#xff0c;一款名为UI-TARS的智能行动助手正在彻底改变这一现状&#xff0c;让计算机真正成为人类的得力助手。 …

作者头像 李华
网站建设 2026/5/1 7:08:24

2025电商榜单价值及影响力洞察报告

导读&#xff1a;报告系统解析了榜单在“用户决策效率提升、平台信任心智构建、品牌增长杠杆释放、行业品质生态促进”等方面的结构性价值&#xff0c;指出榜单正从简单的推荐工具升级为兼具内容价值、交易价值和品牌价值的综合性经营组件。关注公众号&#xff1a;【互联互通社…

作者头像 李华