Test ortamında OTPMOCK_URL=https://api.otpmock.com tanımlayın, İleti Merkezi istemcisini bu adrese yönlendirin ve İleti Merkezi kimlik bilgisi olarak otpmock API anahtarınızı kullanın. Uygulama kodunuz değişmez; canlı ortam İleti Merkezi ile göndermeye devam eder.
Kurulum
SDK'nın adres seçeneği yok, ama HTTP istemcisinin baseUrl değeri istemci oluşturulduktan sonra değiştirilebiliyor. Sonundaki /v1/ yolunu unutmayın.
import { IletiMerkeziClient } from "@iletimerkezi/iletimerkezi-node";
export const ileti = new IletiMerkeziClient(
process.env.ILETIMERKEZI_API_KEY, // testte: otpmock API anahtarı
process.env.ILETIMERKEZI_API_HASH,
process.env.ILETIMERKEZI_SENDER,
);
if (process.env.OTPMOCK_URL) (ileti as any).httpClient.baseUrl = `${process.env.OTPMOCK_URL}/v1/`;import os
import requests
ILETI_URL = os.environ.get("OTPMOCK_URL", "https://api.iletimerkezi.com")
res = requests.post(f"{ILETI_URL}/v1/send-sms/json", json={"request": {
"authentication": {
"key": os.environ["ILETIMERKEZI_API_KEY"], # testte: otpmock API anahtarı
"hash": os.environ["ILETIMERKEZI_API_HASH"],
},
"order": {"sender": "BASLIGIM", "sendDateTime": [], "iys": "0",
"message": {"text": f"Doğrulama kodunuz: {code}", "receipents": {"number": ["5321234567"]}}},
}})String base = System.getenv().getOrDefault("OTPMOCK_URL", "https://api.iletimerkezi.com");
// json: {"request":{"authentication":{"key":"<ILETIMERKEZI_API_KEY, testte: otpmock API anahtarı>","hash":"..."},
// "order":{"sender":"...","iys":"0","message":{"text":"...","receipents":{"number":["5051234567"]}}}}}
HttpRequest req = HttpRequest.newBuilder(URI.create(base + "/v1/send-sms/json"))
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(json))
.build();// İleti Merkezi has no official .NET SDK; call the JSON API with HttpClient.
var iletiUrl = Environment.GetEnvironmentVariable("OTPMOCK_URL") ?? "https://api.iletimerkezi.com";
await new HttpClient().PostAsJsonAsync(iletiUrl + "/v1/send-sms/json", new
{
request = new
{
authentication = new
{
key = Environment.GetEnvironmentVariable("ILETIMERKEZI_API_KEY"), // testte: otpmock API anahtarı
hash = Environment.GetEnvironmentVariable("ILETIMERKEZI_API_HASH"),
},
order = new
{
sender = "BASLIGIM", sendDateTime = Array.Empty<string>(), iys = "0",
message = new { text = $"Doğrulama kodunuz: {code}", receipents = new { number = new[] { "5051234567" } } },
},
},
});use IletiMerkezi\IletiMerkeziClient;
$ileti = new IletiMerkeziClient(
getenv('ILETIMERKEZI_API_KEY'), // testte: otpmock API anahtarı
getenv('ILETIMERKEZI_API_HASH'),
getenv('ILETIMERKEZI_SENDER'),
);
if ($otpmock = getenv('OTPMOCK_URL')) {
// The SDK has no base URL option; its HTTP client keeps the URL in a private property.
$http = (fn () => $this->httpClient)->call($ileti);
(fn () => $this->baseUrl = rtrim($otpmock, '/') . '/v1/')->call($http);
}require "net/http"
require "json"
# İleti Merkezi has no official Ruby SDK; apps call the REST API, so only the host changes.
ILETI_URL = ENV.fetch("OTPMOCK_URL", "https://api.iletimerkezi.com")
res = Net::HTTP.post(
URI("#{ILETI_URL}/v1/send-sms/json"),
{ request: {
authentication: { key: ENV["ILETIMERKEZI_API_KEY"], hash: ENV["ILETIMERKEZI_API_HASH"] }, # key = testte: otpmock API anahtarı
order: { sender: ENV["ILETIMERKEZI_SENDER"], sendDateTime: [], iys: "0",
message: { text: "Doğrulama kodunuz: #{code}", receipents: { number: ["5051234567"] } } },
} }.to_json,
"Content-Type" => "application/json"
)// İleti Merkezi has no official Go SDK; call its HTTP API with net/http, only the host changes.
base := os.Getenv("OTPMOCK_URL")
if base == "" {
base = "https://api.iletimerkezi.com"
}
body, _ := json.Marshal(map[string]any{"request": map[string]any{
"authentication": map[string]string{
"key": os.Getenv("ILETIMERKEZI_API_KEY"), // testte: otpmock API anahtarı
"hash": os.Getenv("ILETIMERKEZI_API_HASH"),
},
"order": map[string]any{
"sender": os.Getenv("ILETIMERKEZI_SENDER"), "iys": "0",
"message": map[string]any{"text": msg, "receipents": map[string]any{"number": []string{"5051234567"}}},
},
}})
res, err := http.Post(base+"/v1/send-sms/json", "application/json", bytes.NewReader(body)) // HTTP 200 = successHer dil, CI'da sağlayıcının resmi SDK'sıyla (ya da başka bir adrese yönlendirilemeyen SDK'larda düz HTTP API'siyle) otpmock'a karşı sınanır.
Kimlik bilgisi. Test ortamında İleti Merkezi API anahtarı olarak otpmock API anahtarınızı kullanın. Hash alanı herhangi bir değer olabilir; gönderici başlığı (sender) mesajla birlikte saklanır.
otpmock neyi taklit ediyor?
| Uç nokta | Ne yapar |
|---|---|
POST /v1/send-sms/json | SMS gönderir (request.authentication.key, order.message.receipents.number) |
Yanıtlar ve hatalar İleti Merkezi API'sinin kendi biçimindedir, bu yüzden istemci kütüphanesi onları her zamanki gibi çözümler. Yanlış anahtar ve aylık hakkın dolması da aynı hata biçimiyle döner.
Telefon numaraları
İleti Merkezi yerel numara alır (5051234567). otpmock bunu +905051234567 olarak saklar. Testte kodu bu uluslararası biçimle sorgulayın.
Testinizde kodu okuyun
const telefon = otp.randomPhone("+905"); // her test için ayrı numara
const since = Date.now() - 5_000;
await page.getByRole("button", { name: "Kod gönder" }).click(); // uygulamanız İleti Merkezi API'sini çağırır
const { code } = await otp.waitForCode(telefon, { since });otp yardımcısı bağımlılığı olmayan tek bir dosyadır: dokümandan alın (İngilizce). Baştan sona örnekler: Playwright ve Cypress rehberleri (İngilizce). İleti Merkezi akışının Playwright ile baştan sona örneği, CI ve staging ayrıntıları için Netgsm rehberi (test çatısı tarafı aynı) sayfasına bakın.
Bilmeniz gerekenler
- Gerçek API'de olduğu gibi HTTP durum kodu, gövdedeki durum koduyla aynıdır; bu yüzden SDK'nın
ok()kontrolü değişmeden çalışır.
Sık sorulanlar
otpmock İleti Merkezi üzerinden gerçek SMS gönderiyor mu?
Hayır. Test ortamında uygulamanızın İleti Merkezi istekleri otpmock'a gider; mesaj 10 dakika saklanır ve İleti Merkezi ya da herhangi bir operatör ağına hiç ulaşmaz. Canlı ortamınız İleti Merkezi kullanmaya devam eder, çünkü otpmock yalnızca OTPMOCK_URL tanımlıyken devreye girer.
Resmi @iletimerkezi/iletimerkezi-node SDK'sı destekleniyor mu?
Evet. İleti Merkezi uç noktaları, resmi @iletimerkezi/iletimerkezi-node paketiyle Node.js'te uçtan uca sınanır. Adres değiştirmeye izin veren başka dillerdeki istemciler de çalışır.
otpmock hangi İleti Merkezi API'lerini destekliyor?
POST /v1/send-sms/json (SMS gönderir (request.authentication.key, order.message.receipents.number)).
Ücretsiz plan ayda 300 mesaj içerir, kart gerekmez. Yapay zeka kodlama asistanı mı kullanıyorsunuz? otpmock.com/llms-full.txt adresini verin.
Ücretsiz API anahtarı al