Maison >développement back-end >Problème PHP >Comment envoyer des messages texte en php

Comment envoyer des messages texte en php

青灯夜游
青灯夜游original
2022-10-19 18:55:161574parcourir

Méthode d'envoi : 1. Authentification par nom réel et activation du service d'interface API SMS pour obtenir la CLÉ de demande API ; 2. Demander le modèle SMS et attendre l'approbation ; 3. Appeler l'interface API et transmettre la "fonction juheHttpRequest ($ url,$params=false, $ispost=0){...}" lance une requête réseau, traite les données et renvoie le résultat ; 4. Utilisez "$response=juheHttpRequest(...);" pour accepter le contenu et le sortir.

Comment envoyer des messages texte en php

L'environnement d'exploitation de ce tutoriel : système Windows 7, PHP version 8.1, ordinateur DELL G3

Exemple d'appel d'interface API SMS basée sur PHP

Préparation préliminaire

  • Authentification par nom réel

    Selon les exigences de l'opérateur, cette interface n'est actuellement ouverte qu'aux utilisateurs d'entreprise authentifiés par nom réel, veuillez donc vous assurer que vous êtes un utilisateur d'entreprise authentifié par nom réel avant de l'utiliser

  • Postuler pour l'interface et obtenez la clé de demande d'identifiant d'appel de l'interface

    Grâce à l'https://www.juhe.cn/docs/api/id/54?s=cpphpcn application libre-service pour ouvrir l'interface

    vous pouvez voir la clé de demande de bon d'appel de cette interface dans Personal Center ➡️ Data Center ➡️ Mon module API

  • Le nombre de demandes d'achat de données (les interfaces gratuites et gratuites avec des horaires gratuits peuvent être déboguées en premier)

  • Demander un modèle de SMS à l'avancedans le centre personnel du site officiel de l'agrégation. ne être appelé qu'une fois l'examen du service client passé

Instructions spéciales

  • Veuillez lire attentivement le document d'interface du site officiel, il s'agit d'un accord entre les données agrégées et les développeurs. Il vous aidera à comprendre. l'activité de l'interface et effectuer le travail de développement en douceur

  • L'objectif de cet exemple est d'aider les développeurs à obtenir avec succès les données de réponse de l'interface, cet article ne discutera pas de la logique métier du développeur telle que le traitement des données

  • Cet exemple est conçu pour simplifier au maximum les étapes d'appel du développeur. Il n'encapsule pas les modules fonctionnels dans des classes d'outils indépendantes pour permettre aux développeurs de les copier en un seul clic. Ensuite, exécutez et déboguez directement

  • En raison des capacités de niveau limitées, il y a un problème. Il y a inévitablement des erreurs et des omissions dans les exemples. Si vous en trouvez, veuillez les critiquer et les corriger

Remarques sur l'interface

  • La limite d'opérateur est la même que celle de 1 contenu avec le même numéro et la même signature. recevez 1 message en 1 minute, 3 messages en 10 minutes, 4 messages en 1 heure et 20 messages par jour, sinon il risque d'être bloqué par l'opérateur

  • L'interface API SMS elle-même ne limite pas la fréquence d'envoi, la fréquence d'envoi spécifique doit être définie par l'utilisateur, uniquement pour les numéros de téléphone mobile nationaux

  • Veuillez vous assurer d'ajouter des codes de vérification d'image et d'autres mécanismes d'attaque anti-malveillants pour éviter les bombardements de SMS. Ajoutez T pour vous désabonner à la fin de. le contenu marketing. L'heure d'envoi des SMS marketing est de : 8h30 à 21h30. Le contenu marketing dispose d'un mécanisme anti-phishing. Veuillez ne pas envoyer un seul message. Le nombre minimum de messages mobiles est de 20 messages (appel cyclique) et China Unicom ne limite pas le contenu des SMS (y compris la signature) à moins de

  • . ou égal à 70 caractères sera facturé pour 1 message. Les messages texte de plus de 70 caractères sont considérés comme des messages longs et seront facturés pour chaque tranche de 67 caractères

    true

  • numéro de téléphone mobile

tpl_idtrue

identifiant de modèlekeytrueapplication. request keytpl_valuefalseLes variables du modèle, déterminées en fonction des variables du modèle, peuvent être vides
<?php
// 请求的接口URL
$apiUrl = &#39;http://v.juhe.cn/sms/send?&#39;;
// 请求参数
$params = [
    // 模板id
    &#39;tpl_id&#39; => &#39;模板id&#39;,
    // 您申请的接口调用Key
    &#39;key&#39; => &#39;您申请的接口调用Key&#39;,
    //发送的手机号
    &#39;mobile&#39; => &#39;发送的手机号&#39;,
    //结合自己的模板中的变量进行设置,如果没有变量,可以删除此参数
    &#39;tpl_value&#39; => urlencode(&#39;#total#=1000&#used#=100&#balance#=900&#39;),
];
$paramsString = http_build_query($params);

// 发起接口网络请求
$response = null;
try {
    $response = juheHttpRequest($apiUrl, $paramsString, 1);
} catch (Exception $e) {
    var_dump($e);
    //此处根据自己的需求进行自身的异常处理
}
if (!$response) {
    echo "请求异常" . PHP_EOL;
}
$result = json_decode($response, true);
if (!$result) {
    echo "请求异常" . PHP_EOL;
}
$errorCode = $result[&#39;error_code&#39;];
if ($errorCode === 0) {
    $data = $result[&#39;result&#39;];

    echo "请求唯一标示:{$data["sid"]}" . PHP_EOL;
    echo "请求消耗次数:{$data["fee"]}" . PHP_EOL;
} else {
    // 请求异常
    echo "请求异常:{$errorCode}_{$result["reason"]}" . PHP_EOL;
}

/**
 * 发起网络请求函数
 * @param string $url 请求的URL
 * @param bool $params 请求的参数内容
 * @param int $ispost 是否POST请求
 * @return bool|string 返回内容
 */
function juheHttpRequest($url, $params = false, $ispost = 0)
{
    $httpInfo = [];
    $ch = curl_init();

    curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
    curl_setopt($ch, CURLOPT_USERAGENT, &#39;Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36&#39;);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3);
    curl_setopt($ch, CURLOPT_TIMEOUT, 12);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    if ($ispost) {
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
        curl_setopt($ch, CURLOPT_URL, $url);
    } else {
        if ($params) {
            curl_setopt($ch, CURLOPT_URL, $url . &#39;?&#39; . $params);
        } else {
            curl_setopt($ch, CURLOPT_URL, $url);
        }
    }
    $response = curl_exec($ch);
    if ($response === FALSE) {
        // echo "cURL Error: ".curl_error($ch);
        return false;
    }
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    $httpInfo = array_merge($httpInfo, curl_getinfo($ch));
    curl_close($ch);
    return $response;
}
Apprentissage recommandé : "Tutoriel vidéo PHP
Tous les codes
"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn