Maison > Tutoriel CMS > DEDECMS > Comment implémenter la fonction de code de vérification SMS de Dreamweaver

Comment implémenter la fonction de code de vérification SMS de Dreamweaver

藏色散人
Libérer: 2019-12-13 09:50:30
original
3146 Les gens l'ont consulté

Comment implémenter la fonction de code de vérification SMS de Dreamweaver

Comment implémenter la fonction de code de vérification SMS de Dreamweaver ?

De nos jours, la plupart des sites Web nécessitent l'utilisation de codes de vérification SMS. Étant donné que DreamWeaver ne dispose pas officiellement de plug-in de code de vérification SMS, nous avons écrit plusieurs plug-ins de code de vérification SMS. L'un d'eux utilise Alibaba. Interfaces de code de vérification SMS de Cloud, l'une utilise l'interface de code de vérification SMS d'Alibaba, l'autre utilise l'interface de code de vérification SMS d'Alibaba Communications et l'autre utilise l'interface SMS de Yunzhixun.

Apprentissage recommandé : Dreamweaver cms

Le didacticiel suivant contient 2 interfaces de code de vérification SMS Dreamweaver.

Lieux qui doivent être modifiés pour l'enregistrement SMS des membres Dreamweaver :

1. Un tableau doit être créé pour enregistrer le code de vérification afin d'éviter les envois multiples. Un tableau de codes téléphoniques est créé ici.

2. member/templets/reg-new.htm (Ajouter des éléments au modèle d'inscription)

3. member/templets/js/reg_new.js (Vérifier le numéro de téléphone portable)

4. member/index_do.php (Déterminez s'il faut envoyer le code de vérification d'enregistrement en fonction des paramètres d'arrière-plan)

5. member/reg_new.php (vérification, enregistrement)

a. Accès à l'interface SMS Alibaba Cloud :

Vous devez insérer le code de l'interface SMS Alibaba Cloud à l'emplacement correspondant de member/index_do.php. Il est particulièrement important de noter que le document de démonstration officiel d'Alibaba Cloud SMS est rédigé par un maître, de sorte que les gens ordinaires signaleront des erreurs d'espace de noms lors de son utilisation. De plus, le modèle SMS doit être mis à jour. Désormais, l'examen du modèle SMS Alibaba est très strict et d'autres variables ne sont pas autorisées. Ce problème n'existait pas auparavant. Par conséquent, lorsque l’audit échoue, les variables doivent être réduites. (Actuellement, il n'est plus possible d'ouvrir l'interface SMS d'Alibaba Cloud. L'interface SMS d'Alibaba Cloud nouvellement ouverte ne peut pas utiliser ce code. Elle ne convient qu'à ceux qui ont ouvert l'interface SMS d'Alibaba Cloud il y a longtemps)

function getrandchar($length){
    $str = null;
    $strPol = "0123456789abcdefghijklmnopqrstuvwxyz";
    $max = strlen($strPol)-1;
        for($i=0;$i<$length;$i++){
        $str.=$strPol[rand(0,$max)];
        }
        return $str;
    }
    $code = getrandchar(5);
  
    require_once(DEDEINC.&#39;/aliyun-php-sdk-core/Config.php&#39;);
    use Sms\Request\V20160927 as Sms;
    $iClientProfile = DefaultProfile::getProfile("cn-shenzhen", "your accessKey", "your accessSecret"); //登录阿里云查看: "your accessKey", "your accessSecret"
    $client = new DefaultAcsClient($iClientProfile);   
    $request = new Sms\SingleSendSmsRequest();
    $request->setSignName("签名");/*签名名称*/
    $request->setTemplateCode("SMS_1111");/*模板code*/
    $request->setRecNum($phone);/*目标手机号*/
    $request->setParamString("{\"code\":\"$code\",\"tel\":\"电话号码\"}");/*模板变量,请确保跟审核过的短信模版变量一致,数字一定要转换为字符串*/
    try {
        $response = $client->getAcsResponse($request);
        print_r($response);
    }
    catch (ClientException  $e) {
        print_r($e->getErrorCode());  
        print_r($e->getErrorMessage());  
    }
    catch (ServerException  $e) {  
        print_r($e->getErrorCode());  
        print_r($e->getErrorMessage());
    }
      
    $inquery = " INSERT INTO `dede_phonecode` (`ip`,`phone`,`phonecode`,`used`,`sendtime`) VALUES ( &#39;$ip&#39;,&#39;$to&#39;,&#39;$code&#39;,&#39;1&#39;,&#39;$nowtime&#39;); ";
    $rs = $dsql->ExecuteNoneQuery2($inquery);
    if( $rs = 1 ){
        ShowMsg(&#39;发送成功,请注意查收!&#39;,&#39;-1&#39;);
        exit();
    }
    exit();
Copier après la connexion

Ci-joint le modèle SMS Alibaba Cloud : Code de vérification : ${code}. Vous vous inscrivez. Si ce n'est pas vous qui l'avez fait, veuillez ignorer ce message. Si vous avez des questions, veuillez nous contacter ! Téléphone : ${tel}

b. Utilisez l'interface SMS d'Alibaba Dayu pour accéder :

Le même doit être à l'emplacement correspondant du membre/. index_do.php Insérez le code suivant.

function getrandchar($length){
$str = null;
//$strPol = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz";
$strPol = "0123456789abcdefghijklmnopqrstuvwxyz";
$max = strlen($strPol)-1;
for($i=0;$i<$length;$i++){
$str.=$strPol[rand(0,$max)];
}
return $str;
}
$code = getrandchar(5);
  
require_once(DEDEINC.&#39;/alidayu-php-sdk/TopSdk.php&#39;);
$client = new TopClient;
$client ->appkey = &#39;111111&#39; ; //登录阿里大于查看appkey。
$client ->secretKey = &#39;aaaaaaaaaaaaaa&#39; ; //登录阿里大于查看secret。
$req = new AlibabaAliqinFcSmsNumSendRequest;
$req ->setExtend( "" );
$req ->setSmsType( "normal" );
$req ->setSmsFreeSignName( "城子居" ); /*签名名称*/
$req ->setSmsParam( "{\"code\":\"$code\",\"name\":\"注册\"}" ); /*模板变量,请确保跟审核过的短信模版变量一致,数字一定要转换为字符串*/
$req ->setRecNum($phone);/*目标手机号*/
$req ->setSmsTemplateCode( "SMS_1111111" );//登录阿里大于查看/*模板ID编号*/
$resp = $client ->execute( $req );
  
$inquery = " INSERT INTO `imm_phonecode` (`ip`,`phone`,`phonecode`,`used`,`sendtime`)  VALUES ( &#39;$ip&#39;,&#39;$to&#39;,&#39;$code&#39;,&#39;1&#39;,&#39;$nowtime&#39;); ";
$rs = $dsql->ExecuteNoneQuery2($inquery);
if( $rs = 1 ){
ShowMsg(&#39;发送成功,请注意查收!&#39;,&#39;-1&#39;);
exit();
}
exit();
Copier après la connexion

c. Utilisez la dernière interface SMS d'Alibaba Communication pour accéder :

function getrandchar($length){
$str = null;
//$strPol = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz";
$strPol = "0123456789";
$max = strlen($strPol)-1;
for($i=0;$i<$length;$i++){
$str.=$strPol[rand(0,$max)];
}
return $str;
}
$number = getrandchar(4);
  
require_once(DEDEINC.&#39;/aliyun-php-sdk-core/Config.php&#39;);
require_once(DEDEINC.&#39;/Dysmsapi/Request/V20170525/SendSmsRequest.php&#39;);
require_once(DEDEINC.&#39;/Dysmsapi/Request/V20170525/QuerySendDetailsRequest.php&#39;);
  
function sendSms() {
global $phone, $number;
  
//此处需要替换成自己的AK信息
$accessKeyId = "yourAccessKeyId";
$accessKeySecret = "yourAccessKeySecret";
//短信API产品名
$product = "Dysmsapi";
//短信API产品域名
$domain = "dysmsapi.aliyuncs.com";
//暂时不支持多Region
$region = "cn-beijing";
  
//初始化访问的acsCleint
$profile = DefaultProfile::getProfile($region, $accessKeyId, $accessKeySecret);
DefaultProfile::addEndpoint("cn-beijing", "cn-beijing", $product, $domain);
$acsClient= new DefaultAcsClient($profile);
  
$request = new Dysmsapi\Request\V20170525\SendSmsRequest;
//必填-短信接收号码
$request->setPhoneNumbers($phone);
//必填-短信签名
$request->setSignName("99商铺网");
//必填-短信模板Code
$request->setTemplateCode("SMS_74725029");
//选填-假如模板中存在变量需要替换则为必填(JSON格式)
$request->setTemplateParam("{\"number\":\"$number\"}");
//选填-发送短信流水号
$request->setOutId("1234");
  
//发起访问请求
$acsResponse = $acsClient->getAcsResponse($request);
}
  
sendSms();
  
$inquery = " INSERT INTO `imm_phonecode` (`ip`,`phone`,`phonecode`,`used`,`sendtime`)  VALUES ( &#39;$ip&#39;,&#39;$phone&#39;,&#39;$number&#39;,&#39;1&#39;,&#39;$nowtime&#39;); ";
$rs = $dsql->ExecuteNoneQuery2($inquery);
if( $rs = 1 ){
echo "发送成功,请注意查收!";
exit();
}
exit();
Copier après la connexion

Voici les 3 interfaces SMS d'Alibaba. Le SDK correspondant doit être trouvé dans le téléchargement officiel d'Alibaba Cloud.

d. Utilisez l'interface SMS Yunzhixun pour accéder :

De même, vous devez insérer le code de l'interface SMS Yunzhixun dans la position correspondante de member/index_do.php.

function getrandchar($length){
$str = null;
$strPol = "0123456789abcdefghijklmnopqrstuvwxyz";
$max = strlen($strPol)-1;
for($i=0;$i<$length;$i++){
$str.=$strPol[rand(0,$max)];
}
return $str;
}
require_once(DEDEINC.&#39;/ucpaas.class.php&#39;);
$options[&#39;accountsid&#39;]=&#39;&#39;;  //对应ucpaas.com用户ID
$options[&#39;token&#39;]=&#39;&#39;;  //对应ucpaas.com里面的用户token
$ucpass = new Ucpaas($options);
$appId = ""; //对应ucpaas.com里面的项目ID
$to = $phone;
$templateId = ""; //对应ucpaas.com里面的短信模版ID
$code = getrandchar(5);
$param= $code.&#39;,短信模版参数2&#39;.&#39;,短信模版参数3&#39;; // $code为生成的验证码,短信模版参数2,短信模版参数3,参数之间用英文逗号间隔。
$ucpass->templateSMS($appId,$to,$templateId,$param);
  
$inquery = " INSERT INTO `dede_phonecode` (`ip`,`phone`,`phonecode`,`used`,`sendtime`) VALUES ( &#39;$ip&#39;,&#39;$to&#39;,&#39;$code&#39;,&#39;1&#39;,&#39;$nowtime&#39;); ";
$rs = $dsql->ExecuteNoneQuery2($inquery);
if( $rs = 1 ){
ShowMsg(&#39;发送成功,请注意查收!&#39;,&#39;-1&#39;);
exit();
}
exit();
Copier après la connexion

Joignez également le modèle de SMS : Code de vérification : {1}. Vous êtes à {2}. Si vous n'êtes pas responsable de cela, veuillez ignorer ce message. Si vous avez des questions, veuillez nous contacter ! Tél : {3}

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal