Pengertian SMS OTP

SMS One Time Password/PIN (SMS OTP) digunakan untuk melapisi keamanan pada aplikasi web atau mobile apps, metodenya dengan mengirimkan kode rahasia melalui SMS ke ponsel pengguna. Pengguna kemudian memasukkan kode rahasia tersebut di aplikasi Anda.

Biasanya Kode OTP merupakan kunci digital sekali pakai yang akan berlaku dalam jangka waktu tertentu hitungan menit. Jika kode OTP ini tidak dimasukan dalam waktu yang telah di tentukan oleh sistem maka Kode OTP akan tidak berlaku, dan pengguna harus request kembali untuk mendapatkan Kode OTP yang baru.

Kode OTP merupakan salah satu cara transaksi dalam dunia digital sekarang yang di fungsikan sebagai pin untuk keamanan dalam aktivitas Pendaftaran pengguna aplikasi baru, Lupa Password, Waktu login, Login pada perangkat lain, dan dapat digunakan untuk alert, notifikasi, reminder atas workflow bisnis proses pada aplikasi Anda.

Harga dan Fitur

Operator Hargaper-1xSMS ID Pengiriman Biaya Registrasi Lama Pengajuan Konten SMS
Excelcomindo GSM Rp 230,- +628xxx GRATIS 1 hari

Berlaku untuk Non OTP dan OTP SMS

Free API HTTP dan SMPP

 

Telkomsel Rp 330,- TCASTSMS GRATIS 1 hari
Axis Rp 230,- +628xxx GRATIS 1 hari
Indosat (DTC) Rp 230,- +628xxx GRATIS 1 hari
Three (Hutchison) Rp 230,- +628xxx GRATIS 1 hari
Smartfren Rp 230,- +628xxx GRATIS 1 hari
Jumlah SMS Harga per-SMS
selain TELKOMSEL
KEUNGGULAN
<=100,000 Rp 230 1. TIDAK ada sistem HANGUS/Expired, TIDAK ada minimal ORDER
2. Saldo hanya terpotong untuk SMS yang SUKSES terkirim saja, Gagal tidak memotong saldo Anda
3. Sender long number acak GSM Indonesia
4. Delivered report realtime dapat di download Excel dan View Web
5. Konten Filtering keyword replace (jika ada konten yang terblokir operator)
6. Num Translation (bisa kirim +628xxx, 08xxx, 628xxx, 00628xxx, 6208xxx)
7. Koneksi SMPP, HTTP, WEB Access Report Delivered
100,001 – 400,000 Rp 210
400,001 -1 juta Rp 190
>1 juta Rp 180

Contoh SMS yang muncul di hp penerima

sms otp indonesia sms masking muncul nama aggregator

Dokumen HTTP API

DOWNLOAD DOKUMEN API URL (DETAIL)

1. Get Balance
URL: http://<server>:<port>/getbalance?account=***&password=***
JSON RESPON: {“status”:0, “balance”:”499740.000000″, “gift”:”0.000000″}

2. Send SMS
URL: http://<server>:<port>/sendsms?account=***&password=***&numbers=***&content=***
JSON RESPON: {“status”:0, “array”:[[6281210100055,1620443]], “success”:1, “fail”:0}

3. Get Report SMS
URL: http://<server>:<port>/getreport?account=***&password=***&ids=1
JSON RESPON: {“status”:0, “array”:[[1620442,6281210100055,20180619101517,0]], “success”:1, “fail”:0, “unsent”:0, “sending”:0, “nofound”:0}

4. Get Inbox SMS
URL: http://<server>:<port>/getsms?account=***&password=***
JSON RESPON Sample: {“status”:0, “cnt”:2, “array”:[[1,10010,20171001123015, “********************************”],
[2,1008611,20171001123015, “********************************”]]}

WEB Report Laporan SMS Keluar Sukses Gagal

Fitur WEB Report Laporan SMS Keluar Sukses Gagal dan status lainnya adlam di download dalam Excel

Contoh Script Bahasa Pemrograman PHP, JAVA, JavaScript dan .NET

<?php

function Send_SMS( $to, $text ) {
#example $to=”6285710100055,6281908080709″;

$to = str_replace(‘ ‘,”,$to);
$from = “”; //Sender ID or SMS Masking Name, if leave blank, it will use default from telco
$username = “xxxxxx”; //your username
$password = “xxxxxx”; //your password
$getUrl = “http://<server>:<port>/sendsms?”;
$ch = curl_init();
$apiUrl = $getUrl.’account=’.$username.’&password=’.$password.’&numbers=’.$to.’&content=’.rawurlencode($text);

curl_setopt( $ch, CURLOPT_URL, $apiUrl);
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_HTTPHEADER, array(
‘Content-Type: application/json’,
‘Accept:application/json’
)
);

$response = curl_exec( $ch );
$httpCode = curl_getinfo( $ch, CURLINFO_HTTP_CODE );
$responseBody = json_decode( $response, true );

if ($response) {
print_r($response);
}
curl_close($ch);
}

$to = “6285710100055,6281908080709”;//masukkan nomor tujuan
$message = “Test Script TCASTSMS PHP klik www.tcastsms.co.id”;//masukkan isi pesan
Send_SMS( $to, $message );

?>

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;

public class SmsRestApiClient {
public static void main(String[] args) {
String tujuan = “6285710100055, 6281908080709”;
String pesan = “Test Script TCASTSMS JAVA klik www.tcastsms.co.id”;
SmsRestApiClient smsClientRestApi = new SmsRestApiClient();
smsClientRestApi.sendSms(tujuan, pesan);
}

private void sendSms(String to, String content) {
String account = “xxxxx”;
String password = “xxxxx”;
try {

URL url = new URL(“http://<server>:<port>/sendsms?”
+ “account=” + account
+ “&password=” + password
+ “&numbers=” + to.replaceAll(” “,””)
+ “&content=” + URLEncoder.encode(content, “UTF-8”).replaceAll(“\\+”, “%20”));
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod(“GET”);
conn.setRequestProperty(“Accept”, “application/json”);
if (conn.getResponseCode() != 200) {
throw new RuntimeException(“Failed : HTTP Error code : ”
+ conn.getResponseCode());
}
InputStreamReader in = new InputStreamReader(conn.getInputStream());
BufferedReader br = new BufferedReader(in);
String output;
while ((output = br.readLine()) != null) {
System.out.println(output);
}
conn.disconnect();

} catch (Exception e) {
System.out.println(“Exception in SmsRestApiClient:- ” + e);
}
}
}

<!doctype html>
<html lang=”en”>
<head>
<metacharset=”utf-8″>
<title>TCASTSMS</title>
<scriptsrc=”https://code.jquery.com/jquery-1.10.2.js”></script>
</head>
<body>
<div id=”response”></div>
<script>
(function() {
var username =”xxxxxx”;
var password =”xxxxxx”;
var destination =”628xxxxx”;
var content =”Test Script TCASTSMS JavaScript klik www.tcastsms.co.id”;
var baseUri =”http://<server>:<port>/sendsms?”;
var tcastUri = baseUri +
“account=”+ username
+”&password=”+ password
+”&numbers=”+ destination
+”&content=”+encodeURIComponent(content);
$.getJSON( tcastUri)
.done(function( data ) {
document.getElementById(“response”).value= data;
});
})();
</script>
</body>
</html>
//Rextester.Program.Main is the entry point for your code. Don’t change it.
//Compiler version 4.0.30319.17929 for Microsoft (R) .NET Framework 4.5
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;
namespace Rextester
{
publicclassDataObject
{
publicstringName { get; set; }
}
publicclassProgram
{
privateconststringURL=”http://<server>:<port>/sendsms”;
//private static string urlParameters = System.Web.HttpUtility.UrlEncode(“account=xxxxx&password=xxxxx&numbers=628xxxxx&content=Test-Content-SMS”);
publicstaticvoidMain(string[] args)
{
varaccount=”xxxxxx”;
varpassword=”xxxxxx”;
vardest=”628xxxxx”;
varcontentMsg=System.Web.HttpUtility.UrlPathEncode(“Test Script TCASTSMS .NET klik www.tcastsms.co.id”);
varfinalUrlParam=”?account=”+account
+”&password=”+password
+”&numbers=”+dest
+”&content=”+contentMsg;
HttpClientclient=newHttpClient();
client.BaseAddress=newUri(URL);
// Add an Accept header for JSON format.
client.DefaultRequestHeaders.Accept.Add(
newMediaTypeWithQualityHeaderValue(“application/json”));
// Console.WriteLine(“urlParameters {0}”, finalUrlParam);
// List data response.
HttpResponseMessageresponse=client.GetAsync(finalUrlParam).Result; // Blocking call! Program will wait here until a response is received or a timeout occurs.
if (response.IsSuccessStatusCode)
{
stringres=””;
using (HttpContentcontent=response.Content)
{
// … Read the string.
Task<string> result=content.ReadAsStringAsync();
res=result.Result;
Console.WriteLine(“{0}”, res);
}
}
else
{
Console.WriteLine(“{0} ({1})”, (int)response.StatusCode, response.ReasonPhrase);
}
//Make any other calls using HttpClient here.
//Dispose once all HttpClient calls are complete. This is not necessary if the containing object will be disposed of; for example in this case the HttpClient instance will be disposed automatically when the application terminates so the following call is superfluous.
client.Dispose();
}
}
}