我在做毕设,项目中想用短信验证功能,就找到了阿里大鱼,价格貌似目前最低,其他什么都好弄,就是导入到项目中,不知道怎么用,一直报错,网上查了,大都是和文档案例一样,没用,tp里还有专栏范例,估计都是旧版本,也没用。最后搞出来了,特在此记录一下。
下载sdk,解压引入autoload.php、topsdk.php及aliyun和top两个文件夹。
我引入的位置是 app_path/common/lib/alidayu/,不动tp文件我觉得好些。
新建一个类文件 sendmsm.class.php,这个根据自己需求来。
<?php
namespace Lib\Alidayu;
include('TopSdk.php');
//就是下面两句把我搞惨了,别嫌弃,我只是入门了而已
use TopClient;
use AlibabaAliqinFcSmsNumSendRequest;
class SendMSM {
public function send($recNum='', $smsParam='', $smsTemplateCode='SMS_8525079', $smsFreeSignName='短信测试'){
$c = new TopClient;
$c->format = "json";
$c->appkey = C('AlidayuAppKey');
$c->secretKey = C('AlidayuAppSecret');
$req = new AlibabaAliqinFcSmsNumSendRequest;
//$req->setExtend("123456");
$req->setSmsType("normal");
$req->setSmsFreeSignName($smsFreeSignName);
$req->setSmsParam($smsParam);
$req->setRecNum($recNum);
$req->setSmsTemplateCode($smsTemplateCode);
$resp = $c->execute($req);
return $resp;
}
}我把AppKey 和 secret 放到了单独的配置文件,以便后期重置了可以在后台修改。
然后就是使用了,
<?php
namespace Admin\Controller;
use Think\Controller;
use Lib\Alidayu\SendMSM;
class IndexController extends Controller {
public function index(){
$this->sendMSM();
}
protected function sendMSM(){
$alidayu = new SendMSM();
$result = $alidayu->send('13000000000','{"code":"123456"}');
dump($result);
}
}测试结果:
object(stdClass)[11]
public 'result' =>
object(stdClass)[12]
public 'err_code' => string '0' (length=1)
public 'model' => string '101550887105^1102084861016' (length=26)
public 'success' => boolean true
public 'request_id' => string '12cl9hupqvkgh' (length=13)
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号