Skip to main content

取消外呼接口API

提示:#

  • 因为运营商政策,请先在后台完成企业认证再开发 API。

HTTP 头信息(具体参考调用说明):#

    Accept:application/json;charset=utf-8;    Content-Type:application/json;charset=utf-8;    X-SIGNATURE: $signature;    X-APIKEY: $APIKEY;    X-TIMESTAMP: $timestamp;    X-NONCE: $nonce;

请求#

    URL:`https://gateway.yihuitong.top/callai-openapi/callai/cancelCall`    访问方式:POST

请求参数#

参数名类型是否必传是否默认开放描述示例
sidslist呼叫ID 和 busId至少需要提交一个字段
busIdlist呼叫业务提交ID

代码示例(头信息加密验签参考)#


/**     * 批量提交呼叫数据接口案例     *     * @return json格式字符串     * @throws       */    public static String cancelCall() throws NoSuchAlgorithmException ,  InvalidKeyException  {            String smsUrl = "https://gateway.yihuitong.top/callai-openapi/callai/cancelCall";            String nonce = "bc9efee185e64ab9bc0b07a2785c4660";            Integer timestamp = 1626856279;            String apikey = "123456789";            String secretKey = "1234567890";            String method = "POST";            String path = "/callai-openapi/callai/cancelCall";            String contentType = "";                                                List<String> busIds = new ArrayList<String>();            busIds("12345");                        Map<String, Object> parameters = new HashMap<>();            parameters.put("busId", busIds);                                    StringBuilder sb = new StringBuilder();            sb.append(method).append("\n")            .append(path).append("\n")            .append(apikey).append("\n")            .append(timestamp).append("\n")            .append(nonce).append("\n");                                    if(parameters!=null && !parameters.isEmpty()) {                                if("json".equals(contentType) ) {                    sb.append(JSON.toJSONString(parameters)).append("\n");                }else {                    String canonical_query_string = formatUrlMap(parameters, true, false);                    sb.append(canonical_query_string).append("\n");                }                            }            
            Mac hasher = Mac.getInstance("HmacSHA256");            hasher.init(new SecretKeySpec(secretKey.getBytes(), "HmacSHA256"));            byte[] hash = hasher.doFinal(sb.toString().getBytes());                                            Map<String,String> headers = new HashMap<String, String>();            headers.put("X-SIGNATURE", DatatypeConverter.printBase64Binary(hash));            headers.put("X-APIKEY", apikey);            headers.put("X-TIMESTAMP", timestamp.toString());            headers.put("X-NONCE", nonce);                        return HttpUtil.get(smsUrl, headers);//请自行使用get方式请求,可使用Apache HttpClient    }

    public static String formatUrlMap(Map<String, Object> paraMap,boolean urlEncode,boolean keyToLower) {            if(CollUtil.isEmpty(paraMap)) {                return null;            }                       if(!(paraMap instanceof TreeMap)) {               paraMap = new TreeMap<String, Object>(paraMap);           }                        return paraMap.entrySet().stream().map(entry -> {                String key = entry.getKey();                Object value = entry.getValue();                if(urlEncode) {                    try {                        key = URLEncoder.encode(key, "utf-8");                    } catch (UnsupportedEncodingException e) {                        e.printStackTrace();                    }                    if(value!=null && StringUtils.isNotBlank(value.toString())) {                        try {                            value = URLEncoder.encode(value.toString(), "utf-8");                        } catch (UnsupportedEncodingException e) {                            e.printStackTrace();                        }                    }                    if (keyToLower) {                        key = key.toLowerCase();                    }                }                return key + "=" + value;            }).collect(Collectors.joining("&"));                    }

响应参数#

名称类型描述
successboolean是否请求成功 false 为接口请求失败,请求失败 data 中无数据
errorCodestring错误码 200 代表成功
errorMessagestring错误提示
dataobject报告数据,是一个对象;格式参考下面

data 响应参数#

名称类型描述
cancelStatusstring取消状态 00: 成功;01: 失败

JSON 响应示例#

{     "success": true,    "errorCode": "200",    "errorMessage": "成功",    "data": {      "cancelStatus": "00"      }}

errorCode 状态码列表#

errorCode描述
200成功(收费)
4412查无记录(不收费)
4001用户信息不正确
4100参数错误
4300金额不足
4301账号未认证,请先认证通过后访问
4402提交失败
4404扣费失败
5000内部错误