导航

一、调用介绍

VOP作为唯品会开放平台的数据出口,用户只需要按照VOP的规范拼装一个正确的请求URL,通过HTTP请求到VOP,即能获取到所需的数据。

二、调用环境入口

环境入口释义:调用API时,需要传入如下地址,获取相应环境下的数据。

沙箱环境入口地址: http://sandbox.vipapis.com

正式环境入口地址:https://vop.vipapis.com

三、调用参数

调用API时,必须传入系统级参数和对应的应用级参数。各个API的输入参数和返回结果详见API文档

系统级参数(必须拼接在URL后面,作为Query String):

名称

类型

是否必须

描述

service

String

服务名称

method

String

方法名称

version

String

版本号

timestamp

Integer

调用时间戳,Epoch格式,精确到秒,系统接受的时间差不超过10分钟

format

String

报文格式 xml/json

appKey

String

应用ID,唯品会开放平台分配给应用的唯一标识

accessToken

String

OAuth授权token,对于“需要授权”的接口,该字段必填

sign

String

根据签名算法的签名运算结果

应用级参数示例(必须放在POST请求的消息主体(entity-body)中):

名称

类型

是否必须

示例值

默认值

描述

id

Integer

1234

整数值

start_date

String

2014-05-08

字符类型

warehouse

Warehouse

Warehouse.VIP_NH

枚举类型

nav_category_id1

List

["123"]

List类型

如下为VOP应用级参数拼装示例

描述

示例

标准json 类型

{

"url":"www.vip.com",

"start_time":"2014-06-10 14:53:21",

"hashcode":"abcdefg"

}

标准xml 类型

www.vip.com2014-06-10 14:53:21abcdefg

四、API签名

调用API时需要对请求参数进行签名,VOP服务器端会验证请求参数是否合法。 也可以通过签名验证工具进行验证

签名验证工具

签名算法:

第1步、对除appSecret外的所有系统级参数进行按照首字母先后顺序排列

例如:将service,method,version,timestamp,format,appKey排序为appKey,format,method,service,timestamp,version

第2步、 把排序后的结果按照参数名+参数值的方式拼接后再拼接上应用级参数

例如:appKeyXXXXformatXXXXmethodXXXXserviceXXXXtimestampXXXXversionXXXXYYYY,其中YYYY是应用级参数

第3步、 以appSecret作为秘钥对拼装好的字符串进行hmac-md5加密

例如:hmac-md5(appKeyXXXXformatXXXXmethodXXXXserviceXXXXtimestampXXXXversionXXXXYYYY,appSecret)

得到结果:2CA5D80723A40B59E095A4D675D46449 ---字母要大写

示例(以下示例只体现逻辑)

调用vipapis.address.AddressService.getFullAddress,假设appKey=yourappKey、appSecret=yourappSecret

1、系统级输入参数:

service=vipapis.address.AddressService

method=getFullAddress

version=1.0.0

timestamp=1406851200

format=json

appSecret=yourappsecret

appKey=yourappkey

2、应用级输入参数:

{"area_code":"0","is_show_gat":"SHOW_GAT","is_bind":false}

3、把除appSecret外的所有系统级参数按照字母顺序排列

appKey=yourappKey

format=json

method=getFullAddress

service=vipapis.address.AddressService

timestamp=1406851200

version=1.0.0

4、把排序后的系统级参数按照参数名+参数值连接起来,并把应用级参数值放在最后,形成最终的拼接字符串

appKeyyourappKeyformatjsonmethodgetFullAddressservicevipapis.address.AddressServicetimestamp1406851200version1.0.0{"area_code":"0","is_show_gat":"SHOW_GAT","is_bind":false}

5、以appSecret作为秘钥对上述拼装好的字符串进行hmac-md5加密,得到签名结果:

2880112276AB2FB2187DABA140B4DACC

五、拼装HTTP请求

调用API时,将所有的系统级参数转换成UTF-8编码,以拼接在URL后面,作为Query String;应用级参数放在POST的消息主体(entity-body)中,提交到正式(或沙箱)环境入口地址,就可以获取接口返回的数据。

六、API调用注意事项

• 所有的API请求和响应数据编码皆为UTF-8格式,URL里的所有参数值请做urlencode编码

• API请求的应用级参数需要转换成xml或json格式

• 返回结果格式与你选择的请求格式一致

• 签名方式为 hmac-md5(params,appSecret),其中params是按参数名字母顺序排序后拼接而成的

• 输入参数请按照规范进行拼接,应用级输入参数不应该出现在系统级参数中

• 设置contentType为application/json或application/xml

七、API调用示例

JAVA参考示例:

PHP参考示例:

C#参考示例:

唯品会php接口,唯品会VIP-开放平台相关推荐

  1. 唯品会php接口,唯品会开放平台

    一.唯品会开放平台 1.平台地址 2.SDK下载 SDK下载 (2) 导入SDK: 导入SDK (3)Maven依赖 vip vop 1 system ${project.basedir}/lib/v ...

  2. java 查询社保接口_服务中心-开放平台

    调用示例 package com.renlijia.api; import com.renlijia.api.common.DefaultRenlijiaOpenClient; import com. ...

  3. 唯品会php接口,唯品会链接生成联盟链接 - 唯品会API免费API接口-唯品会API开放API接口-云商数据(www.ecapi.cn)...

    {"code":200,"data":{"list":[{"noEvokeUrl":"https://t.vi ...

  4. android 平台接口文档,开放平台-文档

    3.配置权限清单 (1) 在AndroidManifest.xml配置权限 (2)配置权限说明 权限用途INTERNET允许应用程序联网 CHANGE_NETWORK_STATE允许程序改变网络连接状 ...

  5. tv端h5_H5展现接口 - 阿里TV开放平台文档 - php中文网手册

    APP启动自动显示H5接口 接口说明: APP启动时可自动打开推广页,需要阻塞APP,等到onWebClose的回调后再继续.数娱后台可配置有效或无效该H5页面 函数原型: public static ...

  6. php登录接口开发文档,登录接口 - 阿里TV开放平台文档 - php中文网手册

    账号相关 接口的demo在TestAccount.java里 授权查询 接口说明:判断用户是否授权,该接口立即返回当前授权状态.若未授权可调用 登录授权接口. 前置条件:无 函数原型:public s ...

  7. 如何设计和搭建一个开放平台,提供开放接口?12张PPT给你答案

    如何设计和搭建一个开放平台,提供开放接口?12张PPT给你答案 (作者:dogstar) 1.未来趋势会如何? 随着互联网技术的发展,现在已经是到达了信息化爆炸的时代,并且各种技术层出不穷.比起十多年 ...

  8. 接口开放平台,我的一些思考

    1. 概述 接口开放平台,为访问者提供统一的URL作为唯一访问入口,参数中指定具体接口标识和接口参数.它的优点包括接口规范性.效率.管理能力.接口开放平台可以分为简单的和复杂的两种方式.简单的接口开放 ...

  9. 钉钉开放平台-小程序开发实战(钉钉小程序服务器端)

    文章目录 钉钉小程序服务器端 一.钉钉服务api 接口规范 二.第三方个人应用.第三方企业应用.企业内部应用 区别 必须使用钉钉云的情形 三.企业内部应用 服务API 1. 通信录管理 获取部门列表 ...

最新文章

  1. 8. An Introduction to MCMC for Machine Learning (2)
  2. IDEA中注解注释快捷键及模板
  3. python静态方法和类方法的区别_python中类的静态方法和类的类方法
  4. 开课吧:什么是包?如何定义包?
  5. mysql 5.5加服务器_mysql 5.5 安装配置方法图文教程
  6. Zuul 代理文件上传、为路由提供 hystrix 回退、过滤器、超时时间
  7. TS封装格式介绍及解析
  8. 接口测试面试题及参考答案,轻松拿捏面试官
  9. 农村信用社答题小程序
  10. 利用wifi对用户进行网络监控
  11. Python 利用免费HTTP代理IP网站多线程筛选出自己的代理IP池
  12. rz command
  13. 网易云linux字体太小,网易云音乐客户端和百度网盘在Deepin下字体显示太小的解决...
  14. 超强加载网络视频框架,支持任何地方使用,防火山小视频,今日头条视频等等
  15. python部署服务器
  16. mysql mdl 锁_详细分析mysql MDL元数据锁
  17. 关于对话系统(任务式/检索式/生成式)的若干总结
  18. UCOS-II移植ARM的笔记
  19. 九州牧云传鸿蒙区,九州海上牧云记珠中游忆全npc位置汇总
  20. 移植USB、CH340驱动到arm板,并作测试

热门文章

  1. 最佳免费网络爬虫工具
  2. VisionTransformer(三)BIT—— 基于孪生网络的变化检测结构分析
  3. 茅山煤矿轶事(三)--拖拉机
  4. iptables 设置端口转发/映射
  5. GetLastError 返回值意义
  6. 布隆过滤器(BloomFilter)原理 实现和性能测试
  7. 今天是个不平凡的日子
  8. 联发科嵌入式linux笔试
  9. 前苏联人民热情拥抱小企鹅
  10. 上传文件失败问题 error为7