آموزش ارسال پیامک در سیموتل با ملی پیامک

با سلام و احترام
در این آموزش میخواهیم با استفاده از Smart api در سناریو تماس قبل از اتصال تماس به داخلی، پیامکی ارسال کنیم.
ما از زبان PHP و ارسال به صورت پترن استفاده کردیم.

<?php
try {
    // بررسی ورودی‌ها
    if (!isset($_REQUEST["data"]) || !isset($_REQUEST["src"])) {
        throw new Exception("پارامترهای لازم ارسال نشده‌اند.");
    }

    // تعیین مقادیر پیام بر اساس ورودی
    $exten = $_REQUEST["data"];
    settype($exten, "string");

    // آرایه اطلاعات شماره‌ها و پیام‌ها
    $contacts = array(
  "998" => array("message" => "نسیم  تل", "call" => "02191099000"
        "999" => array("message" => "آس تل", "call" => "02191099010"),
    );

    if (!isset($contacts[$exten])) {
        throw new Exception("شماره مورد نظر یافت نشد.");
    }

    // دریافت پیام و شماره تماس
    $message = $contacts[$exten]["message"];
    $call = $contacts[$exten]["call"];

    // تشکیل متن پیام برای ارسال
    $text = sprintf("%s;%s", $message, $call);
      $to = $_REQUEST["src"];
    settype($to, "string");

    // تنظیمات ارسال پیام
    $data = array(
        'username' => "نام کاربری ملی پیامک",
        'password' => "کلمه عبور ملی پیامک",
        'text' => $text,
        'to' => $to,
        'bodyId' => "کد پترن ساخته شده"
    );

    // ارسال درخواست به سرویس Payamak Panel
    $handle = curl_init('https://rest.payamak-panel.com/api/SendSMS/BaseServiceNumber');
    curl_setopt($handle, CURLOPT_HTTPHEADER, array(
        'content-type' => 'application/x-www-form-urlencoded'
    ));
    curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($handle, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($handle, CURLOPT_POST, true);
    curl_setopt($handle, CURLOPT_POSTFIELDS, http_build_query($data));

    $response = curl_exec($handle);

    if (!$response) {
        throw new Exception(curl_error($handle), curl_errno($handle));
    }

    curl_close($handle);

    // تجزیه و تحلیل پاسخ
    $response = json_decode($response);

    // بررسی پاسخ
    if ($response && isset($response->ok) && $response->ok == "1") {
        $result = array(
            "ok" => "1",
            "commands" => "Exit('go-a');"
        );
    } else {
        $result = array(
            "ok" => "0",
            "commands" => "Exit('go-b');"
        );
    }
    $response = json_decode($response);

    // بررسی پاسخ
    if ($response && isset($response->ok) && $response->ok == "1") {
        $result = array(
            "ok" => "1",
            "commands" => "Exit('go-a');"
        );
    } else {
        $result = array(
            "ok" => "0",
            "commands" => "Exit('go-b');"
        );
    }
} catch (Exception $e) {
    // در صورت بروز خطا
    $result = array(
        "ok" => "0",
        "Type" => $e,
        "commands" => "Exit('go-c');"
    );
}

header("Content-Type: application/json; charset=utf-8");
echo json_encode($result);
?>

پی نوشت:
در این سناریو ارسال پیامک چند نکته لازم به توجه بیشتر است.
1- در این پیامک ما قصد داریم که اسم داخلی و شماره تعریف شده برای آن در متن پیامک جایگذاری شود به همین دلیل از $text = sprintf استفاده کردیم

2- در این سناریو ما قصد داریم پیامک به شماره تماس گیرنده ارسال شود به همین دلیل از $to = $_REQUEST[“src”]; استفاده کردیم.

3- با توجه بر اینکه سناریو ما بعد از پیامک همچنان ادامه دارد، حالت های مختلفی را برای ریسپانسیو قرار داده ایم تا با آن پارامتر ها از case های Smart api خارج شود و سناریو ادامه یابد.

1 پسندیده

نسخه ای ساده تر بدون فرآیند ها و پیچیدگی ها بالا را برای شما عزیزان قرار می دهم تا اگر میخواهید فقط زمانی که کاربری به شما زنگ میزند در همان ابتدا بدون زدن کلید خاصی برایش پیامک ارسال شود.

<?php
$data = array('username' => "نام کاربری ملی پیامک", 'password' => "کلمه عبور ملی پیامک ",'text' => "",'to' => $_GET['src'],"bodyId"=>"کد متن در وبسرویس خدماتی");
$post_data = http_build_query($data);
$handle = curl_init('https://rest.payamak-panel.com/api/SendSMS/BaseServiceNumber');
curl_setopt($handle, CURLOPT_HTTPHEADER, array(
    'content-type' => 'application/x-www-form-urlencoded'
));
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
curl_setopt($handle, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($handle, CURLOPT_POST, true);
curl_setopt($handle, CURLOPT_POSTFIELDS, $post_data);
$response = curl_exec($handle);
var_dump($response);
?>

پی نوشت : جهت ساخت bodyId باید در پنل ملی پیامک، بخش ابزار های ویژه بروید و در گزینه وبسرویس خدماتی (الگو)، یک متن جدید اضافه کنید. پس از تایید ملی پیامک به شما یک کد متن میدهد که در قسمت مربوطه باید قرار دهید.

1 پسندیده