文档中心 > 综合交通-商家对接

1、奇门请求流程图

2、选择所需要接入的API接口

3、填写测试环境和正式环境的地址

4、代码前置准备

4.1 appkey和appsecret

    商家可以进入控制台https://console.open.taobao.com/#/index,进入自己所创建的应用并在概览标签下查看自己创建应用的App Key(应用唯一标识,平台通过appkey鉴别应用身份)App Secret(平台分配的密钥,用来保证应用来源的可靠性,防止被伪造,需要妥善保存)

4.2 session key

概念:

session Key是店铺授权给应用的有效凭证。

  • 状态为上线运行中、安全等级是3级的应用获取的session key有效期是3个月
  • 状态为正式环境测试中的应用获取的session key有效期只有24小时
  • session key过期都需要重新授权,不支持刷新机制

两种授权方式:

4.3 下载SDK

    进入SDK下载的标签页,下载对应语言版本的SDK并进行开发(下载前请先检查是否已经申请了相对应的权限包

注:点击下载后,需要手动执行刷新界面操作才能知晓当前SDK是否已经下载完成

5、编写代码(示例Demo)

5.1 将SDK下载后解压出来jar包引入到项目中(以Java为例)

<!-- 应用SDK的jar包 -->
<dependency>
  <groupId>com.taobao.api</groupId>
  <artifactId>taobao-sdk-java</artifactId>
  <version>20221208</version>
  <scope>system</scope>
  <type>jar</type>
  <systemPath>${project.basedir}/src/main/resources/lib/taobao-sdk-java-auto_1663138347043-20221208.jar</systemPath>
</dependency>

5.2 使用SpiUtils.checkSign()进行验签(推荐使用)

    使用SDK包中的checkSign()方法来进行验签,不建议使用自己构造的签名来进行验签。

5.2.1 成功回应示例

    参照接入接口文档中的成功返回示例进行返回接口响应的结果

5.2.2 验签失败回应示例

    参照接入接口文档中的成功返回示例进行返回接口响应的结果

5.2.3 核心代码示例以及完整demo示例

    以下为验签核心代码示例:

@RequestMapping(value = "orderQuery", method = RequestMethod.POST)
    public String orderQuery(HttpServletRequest httpServletRequest) {
        //可以进行提取公共参数
        String appKey = httpServletRequest.getParameter("app_key");
        String method = httpServletRequest.getParameter("method");
        String sign = httpServletRequest.getParameter("sign");
        String timestamp = httpServletRequest.getParameter("timestamp");
        String v = httpServletRequest.getParameter("v");
        String format = httpServletRequest.getParameter("format");

        String returnResult = "";
        CheckResult checkResult = new CheckResult();
        try {
            //使用SpiUtils.checkSign()来进行验签
            checkResult = SpiUtils.checkSign(httpServletRequest, QimenConstant.APP_SECRET);
            System.out.println("验签的结果为:" + checkResult.isSuccess());
            if (checkResult.isSuccess()) {
                //写具体的业务逻辑,这里例举一个demo
                if (!StringUtils.isEmpty(method)) {
                    BusResponseEntity entity = new BusResponseEntity();
                    entity.setRetDesc("success");
                    entity.setSuccess(true);
                    entity.setRetCode("0");
                    return JsonObjTool.objectToJson(entity);
                } else {
                    //模拟逻辑失败返回
                    return "{\"error_response\":{\"msg\":\"Remote service error\",\"code\":50,\"sub_msg\":\"非法参数\",\"sub_code\":\"isv.invalid-parameter\"}}";
                }
            } else {
                System.out.println("sign验签不通过");
                //返回奇门验签失败的错误结果;
                return "{\"retDesc\":\"Illegal request\",\"success\":\"false\",\"retCode\":\"sign-check-failure\"}";
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return returnResult;
    }

    完整demo示例:?BusDemo.zip (该示例demo已全部在奇门上通过测试)

6、测试地址可用性检测

    写完代码后发布到公网测试服务器上,对地址进行可用性检测,点击开始服务检测即可

 

    进行地址可用性检测,通过后,可进行下一步,并在正式环境上进行地址检测,通过后服务发布上线。

7、接入完成

    服务上线后,与群内对接的飞猪技术同学进行回复相对应的接口接入已完成。

 

FAQ

关于此文档暂时还没有FAQ
返回
顶部