鉴权说明
验证步骤
从请求header中获得参与验签字段channel、sign;
根据验签规则将得到的签名内容做鉴权,验证成功返回请求接口,或鉴权失败直接返回错误信息
请求样例
请求采用key-value模式。
header 需包含:
1、channel: 渠道标识,由红旗智行给定
2、sign:参与验签秘钥,由红旗智行给定
GET方式:
1、curl方式
curl -X GET "http://test-openapi-channel.hqzhuanche.com/v2/open/channel/config/XXX"
-H "accept:application/json;charset=utf-8"
-H "Content-Type:application/json"
-H "channel:partner-XXX" -H "sign:PsXXXXXXXXsat"
2、Java代码
/**
* HttpClient的GET请求
*/
public static void sendGet() throws Exception {
/**请求路径**/
String url = "http://test-openapi-channel.hqzhuanche.com/v2/XXX";
/**签名秘钥**/
String channel = "partner-XXX";
String sign = "XXX";
/**创建GET请求**/
HttpGet httpGet = new HttpGet(url);
/**设置header的请求格式*/
httpGet.addHeader("Accept", "application/json; charset=utf-8");
httpGet.setHeader("Content-type", "application/json");
/**添加header的签名信息*/
httpGet.addHeader("sign", sign);
httpGet.addHeader("channel", channel);
/**执行请求*/
CloseableHttpResponse response = HttpClients.createDefault().execute(httpGet);
/**打印执行结果**/
String resultString = EntityUtils.toString(response.getEntity(), "UTF-8");
System.out.println("httpGet_result:"+resultString);
}
POST方式:
1、curl方式
curl -X POST "http://test-openapi-channel.hqzhuanche.com/v2/open/channel/order/XXX"
-H "accept:application/json;charset=utf-8"
-H "Content-Type:application/json"
-H "channel:partner-XXX" -H "sign:PsXXXXXXXXsat"
-d "orderNo=XX" -d "partnerOrderNo=XXX" -d "reason=XXX"
2、Java代码
/**
* HttpClient的POST请求
*/
public static void sendPost() throws Exception {
/**请求路径**/
String url = "http://test-openapi-channel.hqzhuanche.com/v2/XXX";
/**签名秘钥**/
String channel = "partner-XXX";
String sign = "XXX";
/**请求入参JSON**/
String jsonString = "{\"orderNo\":\"XXX\"}";
/**创建GET请求**/
HttpPost httpPost = new HttpPost(url);
/**设置header的请求格式*/
httpPost.addHeader("Accept", "application/json; charset=utf-8");
httpPost.setHeader("Content-type", "application/json");
/**添加header的签名信息*/
httpPost.addHeader("sign", sign);
httpPost.addHeader("channel", channel);
/**设置请求入参**/
httpPost.setEntity(new StringEntity(jsonString, ContentType.APPLICATION_JSON));
/**执行请求*/
CloseableHttpResponse response = HttpClients.createDefault().execute(httpPost);
/**打印执行结果**/
String resultString = EntityUtils.toString(response.getEntity(), "UTF-8");
System.out.println("httpPost_result:"+resultString);
}
注意事项
- 需要签名的字段与请求串中字段先后顺序没有关系,只与进行签名的内容有关。
- 参与验签参数值内容是红旗智行颁发给合作方的唯一字符串,双方保密内容,不在非请求中传输,严禁公开。