Maison >développement back-end >tutoriel php >Explication détaillée des exemples d'envoi de SMS pour la version PHP d'Alibaba (Alibaba Big Fish)
L'exemple de cet article décrit la méthode d'implémentation de l'envoi de SMS dans la version PHP d'Alibaba (Alibaba Big Fish). Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :
Fonctions générales
// 发送大于短信 更牛逼的 protected function sendDayuSmsPlus($tel,$type,$data) { $dayu_template = 'dayu_template_'.$type; $signname = C($dayu_template.".signname"); $templatecode = C($dayu_template.".templatecode"); // require LIB_PATH . 'ORG/Taobao-sdk-php/TopSdk.php'; include_once LIB_PATH . 'ORG/Taobao-sdk-php/TopSdk.php'; $c = new TopClient; $c->appkey = C('dayu_appkey'); $c->secretKey = C('dayu_secretKey'); $req = new AlibabaAliqinFcSmsNumSendRequest; $req->setSmsType("normal"); $req->setSmsFreeSignName("{$signname}"); if ($type == 'sold') { $req->setSmsParam('{"name":"'. $data['name'] .'"}'); } if ($type == 'buysuccess') { $req->setSmsParam('{"name":"'. $data['name'] .'","product":"'. $data['product'] .'"}'); } if ($type == 'newagent') { $req->setSmsParam('{"name":"'. $data['name'] .'"}'); } $req->setRecNum("{$tel}"); $req->setSmsTemplateCode("{$templatecode}"); $resp = $c->execute($req); return $resp; }
Optimisation
// 发送大于短信 更牛逼的 protected function sendDayuSmsPlus($tel,$type,$data) { $dayu_template = 'dayu_template_'.$type; $signname = C($dayu_template.".signname"); $templatecode = C($dayu_template.".templatecode"); // require LIB_PATH . 'ORG/Taobao-sdk-php/TopSdk.php'; include_once LIB_PATH . 'ORG/Taobao-sdk-php/TopSdk.php'; $c = new TopClient; $c->appkey = C('dayu_appkey'); $c->secretKey = C('dayu_secretKey'); $req = new AlibabaAliqinFcSmsNumSendRequest; $req->setSmsType("normal"); $req->setSmsFreeSignName("{$signname}"); switch($type) { case 'sold': $req->setSmsParam('{"name":"'. $data['name'] .'"}'); break; case 'buysuccess': $req->setSmsParam('{"name":"'. $data['name'] .'","product":"'. $data['product'] .'"}'); break; case 'newagent': $req->setSmsParam('{"name":"'. $data['name'] .'"}'); break; default: $req->setSmsParam('{"code":"'. $data['code'] .'","product":"'. $data['product'] .'"}'); } $req->setRecNum("{$tel}"); $req->setSmsTemplateCode("{$templatecode}"); $resp = $c->execute($req); return $resp; }
Il y a toujours une différence entre require et include_once ici. Si vous utilisez require et appelez la méthode à plusieurs reprises, une erreur sera signalée. Erreur fatale : impossible de redéclarer la classe. Changez-le simplement en include_once.
Modèle de configuration
<?php return array ( // 阿里大鱼短信配置 'dayu_appkey'=>'xxxxxx', 'dayu_secretKey'=>'xxxxxxxxxxxxxxxxxxxxx', 'dayu_template_register' => array('signname'=>'注册验证','templatecode'=>'SMS_9655457'), 'dayu_template_alteration' => array('signname'=>'变更验证','templatecode'=>'SMS_9655454'), 'dayu_template_identity' => array('signname'=>'身份验证','templatecode'=>'SMS_9655461'), 'dayu_template_sold'=> array('signname'=>'点多多','templatecode'=>'SMS_12800188'), 'dayu_template_buysuccess'=> array('signname'=>'点多多','templatecode'=>'SMS_12775103'), 'dayu_template_newagent'=> array('signname'=>'点多多','templatecode'=>'SMS_12815193'), );
À propos de la signature, la signature sera affichée dans le message texte [Cliquez beaucoup], à condition comme il s'agit d'une signature autorisée, le système Ou vous pouvez mélanger et assortir celles qui ont été approuvées par vous-même.
Classe autochtone
<?php /** * TOP API: alibaba.aliqin.fc.sms.num.send request * * @author auto create * @since 1.0, 2015.12.02 */ class AlibabaAliqinFcSmsNumSendRequest { /** * 公共回传参数,在“消息返回”中会透传回该参数;举例:用户可以传入自己下级的会员ID,在消息返回时,该会员ID会包含在内,用户可以根据该会员ID识别是哪位会员使用了你的应用 **/ private $extend; /** * 短信接收号码。支持单个或多个手机号码,传入号码为11位手机号码,不能加0或+86。群发短信需传入多个号码,以英文逗号分隔,一次调用最多传入200个号码。示例:18600000000,13911111111,13322222222 **/ private $recNum; /** * 短信签名,传入的短信签名必须是在阿里大鱼“管理中心-短信签名管理”中的可用签名。如“阿里大鱼”已在短信签名管理中通过审核,则可传入”阿里大鱼“(传参时去掉引号)作为短信签名。短信效果示例:【阿里大鱼】欢迎使用阿里大鱼服务。 **/ private $smsFreeSignName; /** * 短信模板变量,传参规则{"key":"value"},key的名字须和申请模板中的变量名一致,多个变量之间以逗号隔开。示例:针对模板“验证码$[code],您正在进行${product}身份验证,打死不要告诉别人哦!”,传参时需传入{"code":"1234","product":"alidayu"} **/ private $smsParam; /** * 短信模板ID,传入的模板必须是在阿里大鱼“管理中心-短信模板管理”中的可用模板。示例:SMS_585014 **/ private $smsTemplateCode; /** * 短信类型,传入值请填写normal **/ private $smsType; private $apiParas = array(); public function setExtend($extend) { $this->extend = $extend; $this->apiParas["extend"] = $extend; } public function getExtend() { return $this->extend; } public function setRecNum($recNum) { $this->recNum = $recNum; $this->apiParas["rec_num"] = $recNum; } public function getRecNum() { return $this->recNum; } public function setSmsFreeSignName($smsFreeSignName) { $this->smsFreeSignName = $smsFreeSignName; $this->apiParas["sms_free_sign_name"] = $smsFreeSignName; } public function getSmsFreeSignName() { return $this->smsFreeSignName; } public function setSmsParam($smsParam) { $this->smsParam = $smsParam; $this->apiParas["sms_param"] = $smsParam; } public function getSmsParam() { return $this->smsParam; } public function setSmsTemplateCode($smsTemplateCode) { $this->smsTemplateCode = $smsTemplateCode; $this->apiParas["sms_template_code"] = $smsTemplateCode; } public function getSmsTemplateCode() { return $this->smsTemplateCode; } public function setSmsType($smsType) { $this->smsType = $smsType; $this->apiParas["sms_type"] = $smsType; } public function getSmsType() { return $this->smsType; } public function getApiMethodName() { return "alibaba.aliqin.fc.sms.num.send"; } public function getApiParas() { return $this->apiParas; } public function check() { RequestCheckUtil::checkNotNull($this->recNum,"recNum"); RequestCheckUtil::checkNotNull($this->smsFreeSignName,"smsFreeSignName"); RequestCheckUtil::checkNotNull($this->smsTemplateCode,"smsTemplateCode"); RequestCheckUtil::checkNotNull($this->smsType,"smsType"); } public function putOtherTextParam($key, $value) { $this->apiParas[$key] = $value; $this->$key = $value; } }
Ce qui précède est l'explication détaillée des exemples d'envoi de SMS de la version PHP d'Alibaba (Alibaba Big Fish). Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !