PHP集成腾讯云短信SDK

1:首先阅读官方文档,https://cloud.tencent.com/document/product/382/9557

2:官方文档上边又得我就不赘述了,下面说一下我遇到的问题:

下载SDK之后放到我的项目中,报错如下:


SDK中的demo文件引用如下:

require __DIR__ . "/vendor/autoload.php";

use Qcloud\Sms\SmsSingleSender;
use Qcloud\Sms\SmsMultiSender;
use Qcloud\Sms\SmsVoiceVerifyCodeSender;
use Qcloud\Sms\SmsVoicePromptSender;
use Qcloud\Sms\SmsStatusPuller;
use Qcloud\Sms\SmsMobileStatusPuller;

而SDK中并没有提供autoload.php;并且我只是想简单的发送个短信验证码,下边的这几个use也就不需要了。

精简后,代码如下:

require_once "../qcloudsms_php-master/Autoloading/SmsMobileStatusPuller.php";
require_once "../qcloudsms_php-master/Autoloading/SmsMultiSender.php";
require_once "../qcloudsms_php-master/Autoloading/SmsSenderUtil.php";
require_once "../qcloudsms_php-master/Autoloading/SmsSingleSender.php";
require_once "../qcloudsms_php-master/Autoloading/SmsStatusPuller.php";
use Qcloud\Sms\SmsSingleSender;
try {
    $ssender = new SmsSingleSender($_TIDE['code_qc_appid'], $_TIDE['code_qc_appkey']);
    $params = array($str,'10');
    $result = $ssender->sendWithParam("86", $phone, $_TIDE['code_qc_templateId'], $params, $_TIDE['code_qc_smsSign'], "", "");
    $rsp = json_decode($result);
    return 1;
} catch(\Exception $e) {
    return 0;
}

其中由于我这里业务的需要,根据不同的情况会在阿里的平台和腾讯平台任选其一进行发短信发送,在实现逻辑的过程中,将use ***;写在了if判断中,导致报错,代码如下:

if($_TIDE['code_flag'] == 0){
    require_once "../aliyun-php-sdk-core/Config.php";
    use Sms\Request\V20160927 as Sms;
}elseif($_TIDE['code_flag'] == 1){
    require_once "../qcloudsms_php-master/Autoloading/SmsMobileStatusPuller.php";
    require_once "../qcloudsms_php-master/Autoloading/SmsMultiSender.php";
    require_once "../qcloudsms_php-master/Autoloading/SmsSenderUtil.php";
    require_once "../qcloudsms_php-master/Autoloading/SmsSingleSender.php";
    require_once "../qcloudsms_php-master/Autoloading/SmsStatusPuller.php";
    use Qcloud\Sms\SmsSingleSender;
}

报错如下:


扫描二维码关注公众号,回复: 2058412 查看本文章

然而移出来之后就没问题了,代码如下:

if($_TIDE['code_flag'] == 0){
	require_once "../aliyun-php-sdk-core/Config.php";
}elseif($_TIDE['code_flag'] == 1){
	require_once "../qcloudsms_php-master/Autoloading/SmsMobileStatusPuller.php";
	require_once "../qcloudsms_php-master/Autoloading/SmsMultiSender.php";
	require_once "../qcloudsms_php-master/Autoloading/SmsSenderUtil.php";
	require_once "../qcloudsms_php-master/Autoloading/SmsSingleSender.php";
	require_once "../qcloudsms_php-master/Autoloading/SmsStatusPuller.php";
}
use Sms\Request\V20160927 as Sms;
use Qcloud\Sms\SmsSingleSender;

至于原因我暂时还没找到,只是查到说不能写到方法体中。




猜你喜欢

转载自blog.csdn.net/weixin_38728964/article/details/80783612
今日推荐