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 150,- +628xxx GRATIS 1 hari

Berlaku untuk OTP SMS
khusus Numberic Code

Free API HTTP dan SMPP

 

Telkomsel Rp 150,- +628xxx GRATIS 1 hari
Axis Rp 150,- +628xxx GRATIS 1 hari
Indosat (DTC) Rp 150- +628xxx GRATIS 1 hari
Three (Hutchison) Rp 150,- +628xxx GRATIS 1 hari
Smartfren Rp 150,- +628xxx GRATIS 1 hari

Contoh SMS yang muncul di hp penerima

Contoh sender yang muncul di hp penerima:

sms otp indonesia

Catatan:

Sistem akan melakukan switch ke Default Alpha Sender (Default Masking) jika ditemukan FAKE DELIVERED pada long number, harga akan menyesuaikan. Sistem juga akan mengganti kata-kata yang terindikasi dilarang oleh operator. Contoh Default Sender:

cara buat sms otp

Fitur Web Dashboard

Fitur Dasboard Web Report:
• Send Queue: Informasi SMS dalam antrian, tidak terkirim, sedang mengirim, dan terkirim
• Information: Send Queue, Unsent, Ready Re-Send, Ready, Sending, Pause Send, Last Five SMS Send Queue
• Bill Stat Send Record: Laporan SMS Keluar Sukses Gagal dan status lainnya adlam di download dalam Excel
• Bill Stat Recharge Record: Riwayat pengisian saldo SMS
• Statistics User Stat: Statistik ringkasan pengiriman SMS per hari, minggu, bulan, SUKSES dan GAGAL

Medote Pengiriman: Online Internet dengan port khusus dengan koneksi HTTP API atau Protokol SMPP, mendapatkan username dan password login untuk melihat dashboard laporan dan status pengiriman SMS realtime.

Kecepatan: 2-5 SMS per-detik

Dukungan: Kami memiliki layanan yang sangat baik untuk Solusi SMS OTP dengan dukungan infrastruktur IT, Programmer dan Engineer yang berdedikasi dan kompeten.

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();
}
}
}