Send Routine OTP

POST

https://api.itniotech.com/otp/verification/sendRule

Send Routine OTP.
Request Parameters
appId
String
Required
Application id, 4-32 characters
templateId
Int
Template id
code
String
Required
Verification code, 1-10 characters
flowId
Int
Task Flow ID
to
String
Required
Receiving number, 10-14 digits composed of country code + mobile phone number form characters.
channel
String
Channel type [sms, call, sna], default sms
orderId
String
The serial number of the third-party platform, which needs to be globally unique, 0-64 characters
Request Sample
Request URL:
    https://api.itniotech.com/otp/verification/sendRule
Request Method:
    POST
Request Headers:
    Content-Type: application/json;charset=UTF-8
    Sign: 05d7a50893e22a5c4bb3216ae3396c7c
    Timestamp: 1630468800
    Api-Key: bDqJFiq9
Request Body:
{
    "appId":"mRELxtHc",
    "templateId":1,
    "code":"12345",
    "flowId":null,
    "to":"91856321412",
    "channel":"sms",
    "orderId":null
}
Response Parameters
Parameters Description Type
status Status code, 0 is successful, other failures refer to description of status code String
reason Description of failure reason String
data Details of response parameters JSONObject
verificationId Message id String
to Receiving number String
channel Channel type [sms, call, sna] String
snaUrl When the channel is "SNA", the following information is returned String
Response Status Code
status Description
0 success
-1 Authentication error
-2 Restricted IP access
-10 The customer's balance is insufficient
-16 Timestamp expires
-18 Port program unusual
-22 Parameter exception
-26 Getting fee fail
-27 Period total send limit
-28 Period phone send limit
-29 SMS content has sensitive words

language

Java

PHP

REQUEST

 import cn.hutool.crypto.SecureUtil;
 import cn.hutool.http.Header;
 import cn.hutool.http.HttpRequest;
 import cn.hutool.http.HttpResponse;
 import cn.hutool.json.JSONUtil;

 import java.time.LocalDateTime;
 import java.time.ZoneId;
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.Map;

private void sendRule() {
    final String baseUrl = "https://api.itniotech.com/otp";
    final String apiKey = "your api key";
    final String apiPwd = "your api secret";

    final String url = baseUrl.concat("/verification/sendRule");
    final String appId = "{{appId}}";
    final Integer templateId = "{{templateId}}";
    final String code = "{{code}}";
    final Integer flowId = "{{flowId}}";
    final String to = "{{to}}";
    final String channel = "{{channel}}";
    final String orderId = "{{orderId}}";

    HttpRequest request = HttpRequest.post(url);

    // currentTime
    final String datetime = String.valueOf(LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant().getEpochSecond());
    // generate md5 key
    final String sign = SecureUtil.md5(apiKey.concat(apiPwd).concat(datetime));
    request.header(Header.CONNECTION, "Keep-Alive")
            .header(Header.CONTENT_TYPE, "application/json;charset=UTF-8")
            .header("Sign", sign)
            .header("Timestamp", datetime)
            .header("Api-Key", apiKey);

    final String params = JSONUtil.createObj()
            .set("appId", appId)
            .set("templateId", templateId)
            .set("code", code)
            .set("flowId", flowId)
            .set("to", to)
            .set("channel", channel)
            .set("orderId", orderId)
            .toString();
    HttpResponse response = request.body(params).execute();
    if (response.isOk()) {
        String result = response.body();
        System.out.println(result);
    }
}        
                

REQUEST

header('content-type:text/html;charset=utf8');

$apiKey = "your api key";
$apiSecret = "your api secret";
$appId = "{{appId}}";

$url = "https://api.itniotech.com/otp/verification/sendRule";

$timeStamp = time();
$sign = md5($apiKey.$apiSecret.$timeStamp);

$dataArr['appId'] = $appId;
$dataArr['templateId'] = "{{templateId}}";
$dataArr['code'] = "{{code}}";
$dataArr['flowId'] = "{{flowId}}";
$dataArr['to'] = "{{to}}";
$dataArr['channel'] = "{{channel}}";
$dataArr['orderId'] = "{{orderId}}";

$data = json_encode($dataArr);
$headers[] = 'Content-Type: application/json;charset=UTF-8';
$headers[] = "Sign: $sign";
$headers[] = "Timestamp: $timeStamp";
$headers[] = "Api-Key: $apiKey";

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 600);
curl_setopt($ch, CURLOPT_HTTPHEADER,$headers);
curl_setopt($ch, CURLOPT_POSTFIELDS , $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);

$output = curl_exec($ch);
curl_close($ch);

var_dump($output);        
                

RESPONSEEXAMPLE

{
    "status": "0",
    "reason": "success",
    "data": {
        "verificationId": "verificationId",
        "to": "91856321412",
        "channel": "sms"
    }
}