Wie implementiert man die SMS-Bestätigungscodefunktion von Dreamweaver?
Heutzutage erfordern die meisten Websites die Verwendung von SMS-Bestätigungscodes. Da DreamWeaver offiziell kein SMS-Bestätigungscode-Plug-in hat, haben wir mehrere SMS-Bestätigungscode-Plug-ins geschrieben Cloud-SMS-Bestätigungscode-Schnittstellen, eine verwendet die SMS-Bestätigungscode-Schnittstelle von Alibaba, eine verwendet die SMS-Bestätigungscode-Schnittstelle von Alibaba Communications und die andere verwendet die SMS-Schnittstelle von Yunzhixun.
Empfohlene Lerninhalte: Dreamweaver cms
Das folgende Tutorial enthält 2 Schnittstellen für Dreamweaver-SMS-Bestätigungscodes.
Orte, die für die SMS-Registrierung von Dreamweaver-Mitgliedern geändert werden müssen:
1. Es muss eine Tabelle erstellt werden, um den Bestätigungscode aufzuzeichnen, um ein mehrfaches Senden zu verhindern.
2. member/templets/reg-new.htm (Elemente zur Registrierungsvorlage hinzufügen)
3. member/templets/js/reg_new.js (Mobiltelefonnummer überprüfen)
4. member/index_do.php (Bestimmen Sie, ob der Registrierungsbestätigungscode basierend auf den Hintergrundeinstellungen gesendet werden soll)
5. member/reg_new.php (Verifizierung, Datensatz)
a Zugriff auf die Alibaba Cloud SMS-Schnittstelle:
Sie müssen den Alibaba Cloud SMS-Schnittstellencode an der entsprechenden Stelle von member/index_do.php einfügen. Es ist besonders wichtig zu beachten, dass das offizielle Demo-Dokument von Alibaba Cloud SMS von einem Meister geschrieben wurde, sodass normale Benutzer bei der Verwendung Namespace-Fehler melden. Dies muss beachtet werden. Darüber hinaus muss die SMS-Vorlage jetzt aktualisiert werden. Die Überprüfung der SMS-Vorlage ist sehr streng und andere Variablen sind nicht zulässig. Daher müssen die Variablen reduziert werden, wenn die Prüfung fehlschlägt. (Derzeit ist es nicht mehr möglich, die Alibaba Cloud SMS-Schnittstelle zu öffnen. Die neu eröffnete Alibaba Cloud SMS-Schnittstelle kann diesen Code nicht verwenden. Er ist nur für diejenigen geeignet, die die Alibaba Cloud SMS-Schnittstelle schon vor langer Zeit geöffnet haben.)
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.'/aliyun-php-sdk-core/Config.php'); 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 ( '$ip','$to','$code','1','$nowtime'); "; $rs = $dsql->ExecuteNoneQuery2($inquery); if( $rs = 1 ){ ShowMsg('发送成功,请注意查收!','-1'); exit(); } exit();
Im Anhang finden Sie die SMS-Vorlage von Alibaba Cloud: Bestätigungscode: ${code}. Sie registrieren sich. Wenn Sie dies nicht tun, ignorieren Sie bitte diese Nachricht. Wenn Sie Fragen haben, kontaktieren Sie uns bitte! Telefon: ${tel} index_do.php Fügen Sie den folgenden Code ein.
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.'/alidayu-php-sdk/TopSdk.php'); $client = new TopClient; $client ->appkey = '111111' ; //登录阿里大于查看appkey。 $client ->secretKey = 'aaaaaaaaaaaaaa' ; //登录阿里大于查看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 ( '$ip','$to','$code','1','$nowtime'); "; $rs = $dsql->ExecuteNoneQuery2($inquery); if( $rs = 1 ){ ShowMsg('发送成功,请注意查收!','-1'); exit(); } exit();
c. Verwenden Sie die neueste Alibaba Communication SMS-Schnittstelle, um auf Folgendes zuzugreifen:
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.'/aliyun-php-sdk-core/Config.php'); require_once(DEDEINC.'/Dysmsapi/Request/V20170525/SendSmsRequest.php'); require_once(DEDEINC.'/Dysmsapi/Request/V20170525/QuerySendDetailsRequest.php'); 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 ( '$ip','$phone','$number','1','$nowtime'); "; $rs = $dsql->ExecuteNoneQuery2($inquery); if( $rs = 1 ){ echo "发送成功,请注意查收!"; exit(); } exit();
Hier sind alle 3 SMS-Schnittstellen von Alibaba. Das entsprechende SDK muss im offiziellen Alibaba Cloud-Download gefunden werden.
d. Verwenden Sie die Yunzhixun-SMS-Schnittstelle, um auf Folgendes zuzugreifen:
Ebenso müssen Sie den Yunzhixun-SMS-Schnittstellencode an der entsprechenden Position von member/index_do.php einfügen.
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.'/ucpaas.class.php'); $options['accountsid']=''; //对应ucpaas.com用户ID $options['token']=''; //对应ucpaas.com里面的用户token $ucpass = new Ucpaas($options); $appId = ""; //对应ucpaas.com里面的项目ID $to = $phone; $templateId = ""; //对应ucpaas.com里面的短信模版ID $code = getrandchar(5); $param= $code.',短信模版参数2'.',短信模版参数3'; // $code为生成的验证码,短信模版参数2,短信模版参数3,参数之间用英文逗号间隔。 $ucpass->templateSMS($appId,$to,$templateId,$param); $inquery = " INSERT INTO `dede_phonecode` (`ip`,`phone`,`phonecode`,`used`,`sendtime`) VALUES ( '$ip','$to','$code','1','$nowtime'); "; $rs = $dsql->ExecuteNoneQuery2($inquery); if( $rs = 1 ){ ShowMsg('发送成功,请注意查收!','-1'); exit(); } exit();
Hängen Sie auch die SMS-Vorlage an: Bestätigungscode: {1}. Sie befinden sich bei {2}. Wenn Sie nicht dafür verantwortlich sind, ignorieren Sie diese Nachricht bitte. Bei Fragen kontaktieren Sie uns bitte unter Tel.: {3}
Das obige ist der detaillierte Inhalt vonSo implementieren Sie die SMS-Bestätigungscode-Funktion von DreamWeaver. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!