沃尔玛(walmart)开放API接口

沃尔玛(walmart)开放API接口

合作供应商,内容服务提供者, 市场销售

beiyan,  开放API, 1年前

市场(marketplace)api开发简介

注册账号

注册成为合作供应商(partner supplier),内容服务提供者(Content Service Provider), 市场销售(Marketplace Seller),然后获取消费者ID(Consumer ID)和 私有秘钥(Private Key)。

官网开发文档简介

接口是流式接口(RESTful APIs)。
接口包括端点,请求/响应架构。阀值限制,错误代码。以及下载最近的架构定义(XSDs)。

沃尔玛api验证

使用OAuth(开放验证)基于token验证和授权。

token验证(V3)

验证 authenticaton

  • 登录开发者中心
  • 获取Client ID/Client Secret,从API keys页面
  • 根据Client ID/Client Secret,通过沃尔玛的Token API,获取token,token有效时长15分钟。
  • 使用下面的头部验证信息来验证API调用,所有的API都需要进行验证。

头部共同验证参数

所有接口必须包含的头部验证参数。

名称描述必须示例
WM_SVC.NAME沃尔玛服务名称YesWalmart Marketplace
WM_QOS.CORRELATION_ID唯一ID,标识API的调用,用来追踪和调试问题。使用GUID生成随机IDYes1234hfvgtr
WM_CONSUMER.CHANNEL.TYPE唯一ID用来追踪用户请求的频道(美国,加拿大)No0f3e4dd4-0514-4346-b39d-...使用用户在登录时收到的用户频道
Authorization基础授权头部。Client ID和Client secret的64位编码YesBasic YzcyOTFjNmItNzI5MC00....
WM_SEC.ACCESS_TOKEN通过Token API获取的tokenYeseyJraWQiOiIzZjVhYTFmNS1hYWE5LTQzM.....

授权 authorization

沃尔玛提供了委托访问授权。

委托访问 Delegated Access

  • 在开发中心,选择“API Keys”。
  • 添加方案供应商,设置供应商的权限。每个供应商都会有不同的Client ID/Client Secret
  • 将相应的Client ID/Client Secret信息发给方案供应商。
  • 方案供应商使用Client ID/Client Secret通过Token API来获取访问token。 如果你的方案供应商不在列表,联系沃尔玛。

数字签名(V2)

为了验证接口调用,需要传入消费者ID(Consumer ID)和数字签名放在在请求接口头部。
两种方式:使用可执行JAR文件(java)。自己写签名方法。
数字签名已过期,不能用了。

自己写签名方法

  • 收集信息。
    • 调用的url,包含路径和参数的完整路径。
    • 消费者ID(Consumer ID)
    • Base 64-encoded 私密秘钥(Private Key)
    • 请求方法(GET, POST)
  • 签名结构
    消费者ID(Consumer ID) + "\n" + 完整路径(url) + "\n" + 时间戳(timestamp) + "\n";
  • 签名
    • 使用Base-64解密私密秘钥(Private Key),使用PKCS-8加密私密秘钥。
    • 使用RSA的SHA-256来签名数据。
    • 使用Base-64来加密签名。

php 代码示例:

$URL = //Walmart API URL along with path and query parameters
$RequestMethod = //Request method type i.e GET, POST
$Timestamp = round(microtime(true) * 1000); //Current system timestamp
function _GetWalmartAuthSignature($URL, $RequestMethod, $Timestamp) {
  $WalmartPrivateKey = //Your Walmart Private Key;
  $WalmartConsumerID = //Your Walmart Comsumer Id;
  // CONSTRUCT THE AUTH DATA WE WANT TO SIGN
  $AuthData = $WalmartConsumerID."\n";
  $AuthData .= $URL."\n";
  $AuthData .= $RequestMethod."\n";
  $AuthData .= $Timestamp."\n";
  // GET AN OPENSSL USABLE PRIVATE KEY FROMM THE WARMART SUPPLIED SECRET
  $Pem = _ConvertPkcs8ToPem(base64_decode($WalmartPrivateKey));
  $PrivateKey = openssl_pkey_get_private($Pem);
  // SIGN THE DATA. USE sha256 HASH
  $Hash = defined("OPENSSL_ALGO_SHA256") ? OPENSSL_ALGO_SHA256 : "sha256";
  if (!openssl_sign($AuthData, $Signature, $PrivateKey, $Hash))
  { // IF ERROR RETURN NULL return null; }
    //ENCODE THE SIGNATURE AND RETURN
    return base64_encode($Signature);
  }
  function _ConvertPkcs8ToPem($der)
  {
    static $BEGIN_MARKER = "-----BEGIN PRIVATE KEY-----";
    static $END_MARKER = "-----END PRIVATE KEY-----";
    $key = base64_encode($der);
    $pem = $BEGIN_MARKER . "\n";
    $pem .= chunk_split($key, 64, "\n");
    $pem .= $END_MARKER . "\n";
    return $pem;
  }
}

请求头部信息

  • WM_SVC.NAME : 必填,沃尔玛服务名称。
  • WM_QOS.CORRELATION_ID : 必填,唯一ID(使用随机生成的全球唯一ID(GUID)),鉴别哪个接口调用,用来追踪问题。
  • WM_SEC.TIMESTAMP : 必填,时间戳
  • WM_SEC.AUTH_SIGNATURE :必填,数字签名
  • WM_CONSUMER.CHANNEL.TYPE :必填, 唯一ID,用来追踪消费者隧道请求
  • WM_CONSUMER.ID : 唯一ID,用来访问接口。

报错:
400 : 确保强制的头部信息没有缺失。确保强制的请求参数和路径没有缺失。
401 : 确保签名正确,确保签名验证的消息没有缺失。

feed节流限制

限制每一个小时重置一次。
你可以在一个小时内,将10个feed一次执行,也可以5分钟执行一个等等。
如果实在觉得阀值太低,可以联系沃尔玛请求更高阀值。

Drop Ship Vendors(DSV)

一键代发供应商。
一键代发:就是销售在电商平台开个店,然后直接对应供应商,从供应商那里直接发货。

Walmart DSV APIt提供了面向资源的路径,来让DSV开发者管理产品。
需要消费者ID(Consumer ID)和私有键(Private Key)
销售在开发者入口选择DSV登录,然后点击生成键就可以了。
生成消费者ID(Consumer ID)和私有键(Private Key)教程

资料

开发官网
最新api 
销售帮助
沃马尔销售官网

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值