API调用除了必须包含公共参数外,如果API本身有业务级的参数也必须传入,每个API的业务级参数请考API文档说明。
ReX平台目前开放奇门场景接口API列表地址:
http://hema.open.taobao.com/doc#?docType=1&docId=108319
如下图:点击接口可跳转详情页面查看参数说明和各语言代码示例。
JAVA SDK 需要依赖 Java SE/EE 1.5及以上
.NET SDK 需要依赖 .NET Framework 2.0及以上 (不支持Windows Phone平台)
PHP SDK 需要依赖 PHP 5及以上
Python SDK 需要依赖 Python 2.7以及上
可访问://open.taobao.com/doc.htm?docId=101618&docType=1#s2
访问开放平台控制台地址:http://console.open.taobao.com/#/app/manager?_k=rogwe7
选择商家自己创建的应用---“应用管理” 进入应用管理详细页面,
然后选择左侧“SDK下载” 见下图。
为了防止接口被人乱掉用,需要在服务端做验签的逻辑,校验请求的合法性。那么, API服务后端如何进行验签?
由于API请求带有targetAppkey(商家在奇门创建的应用APPKEY),而API服务后端可以通过应用管理拿到对应的appSecret,将奇门云网关生成的签名,与自己服务后端代码生成的签名进行校验。
当然SDK也提供了相关的验签工具(SpiUtils), 需要在执行接口逻辑前完成验签校验逻辑 即可,建议商家直接使用SDK的逻辑。
验签的返回内容需要和响应失败的格式(参考上文响应失败参数)对应的上,系统要求如下:
奇门参数名 |
类型映射值 |
参数值 |
flag |
以实际配置为准 |
满足失败条件 |
sub_code |
以实际配置为准 |
sign-check-failure |
sub_message |
以实际配置为准 |
Illegal request |
其中参数名为系统要求的值,如果映射值不同,则以实际映射值为准。返回格式可以参考『接口文档预览』页面的验签demo。如果没有完成验签逻辑,API发布时候会提示验签失败。
java代码示例如下:
/*** 使用该方法同时请务必要阅读该方法的源码,大致了解该方法的实现。
*
* 如果验签失败则需要返回验签失败的结果,并且需要和配置对应的上,系统才认为是验签成功;
*
* 如果正确的请求老是误认为验签错误了,则确认以下几点:1编码是否UTF82 2密钥是否写错了 3request如果是json,xml类型则(form则忽略)确认inputstream是否被读取过了?如果需要使用body但不想改动麻烦,可以先执行验签,
* 然后在验签结果中获取body(checkResult.getRequestBody()方法)来执行业务逻辑**/
CheckResult result = SpiUtils.checkSign(request, targetAppSecret); //这里执行验签逻辑
if(!result.isSuccess()) {
//如果验签失败则需要返回 验签失败的结果,并且需要和配置对应的上,系统才认为是验签成功
HttpSampleResponse httpSampleResponse = new HttpSampleResponse();
httpSampleResponse.setErrorMessage("Illegal request");
httpSampleResponse.setErrorCode("sign-check-failure");
httpSampleResponse.setFlag("failure);
//return}
对部分商家或者有兴趣技术同学,若研究源生代码实现ReX开放平台接口调用。
可参考如下资料:
//open.taobao.com/doc.htm?docId=112&docType=1#s2