账号申请

需要联系美团商务人员, 来为开发者提供clientId / signKey。

域名信息

如果接口中没有特殊说明,默认美团文档上所有接口 Content-Type:application/x-www-form-urlencoded 关于合作方下的域名信息不能带有端口号,美团服务器有端口号限制。 回调美团域名仅支持(https),http不再提供支持。

测试环境:https://qcs-openapi.apigw.test.meituan.com

线上环境:https://qcs-openapi.meituan.com

联调

开发完接口之后, 通知美团打车相关人员, 来进行接口联调。

上线

联调测试通过之后, 合作方接口可以先上线, 然后美团打车车进行相关配置上线。

其他

接口公共参数

请求公共参数

参数名 类型 描述
channel string 美团分配的渠道标示,对应client_id
timestamp long 请求时间,Unix Timestamp单位毫秒
sign string 请求参数签名

结果公共参数

参数名 类型 描述
result int 0:成功, 非0 :失败
message string 成功: SUCCESS, 失败:具体原因
data object/list 具体数据信息

鉴权方式

  • 合作方进行服务调用时,需要根据申请client_id时生成的sign_key,对请求参数进行SHA1签名,并将参数名带入请求参数中。
  • 合作方接受到请求后使用sign_key 重新计算参数签名进行比较是否被篡改。

签名步骤如下:

1.生成签名时将sign_key加入传递的参数,参与签名;

2.将所有的参数(不包括空值的参数)按照key值按字符升序排列(key1value1key2value2),生成小写的签名作为sign;

3.生成sign后,sign与其他的参数一同传递;

4.sign_key不参与传递;

java代码示例如下:

    public String sign(Map<String, Object> params, String signKey) throws Exception {

            Map<String, String> needVerify = new HashMap<>();
            Map<String, Object> signMap = Maps.filterEntries(params, entry -> null != entry.getValue() && StringUtils.isNotBlank(String.valueOf(entry.getValue())));
            TreeMap<String, String> sortMap = new TreeMap<>();
            for (Map.Entry<String, Object> entry : signMap.entrySet()) {
                needVerify.put(entry.getKey(), String.valueOf(entry.getValue()));
            }
            //sign_key 是美团分配的密钥
            needVerify.put("sign_key", signKey);
            sortMap.putAll(needVerify);
            List<Map.Entry<String, String>> entryList = new ArrayList<>(sortMap.entrySet());

            StringBuilder signStr = new StringBuilder();
            for (Map.Entry<String, String> entry : entryList) {
                signStr.append(entry.getKey()).append(entry.getValue());
            }
            logger.info("sha1 签名参数:{}", signStr.toString());
            try {
                return org.apache.commons.codec.digest.DigestUtils.sha1Hex(signStr.toString());
            } catch (Exception e) {
                logger.warn("sha1 签名异常,参数:{}", signStr.toString(), e);
                throw e;
            }
        }

订单状态流转

#状态机

results matching ""

    No results matching ""