阿里云短信服务SDK踩坑(php)

2017年07月25日 14:27:43

我用的php,下载demo和sdk导入项目后,写了一个driver,来驱动这个sdk


部分代码如下


require_once 'api_sdk/vendor/autoload.php';


use Aliyun\Api\Sms\Request\V20170525\QuerySendDetailsRequest;
use Aliyun\Api\Sms\Request\V20170525\SendSmsRequest;
use Aliyun\Core\DefaultAcsClient;
use Aliyun\Core\Profile\DefaultProfile;
use Aliyun\Core\Regions\EndpointConfig;

//include './api_sdk/vendor/autoload.php';

class MessageDriver{


    function __construct($app_key,$secret_key)
    {
        // 短信API产品名
        $product = "Dysmsapi";

        // 短信API产品域名
        $domain = "dysmsapi.aliyuncs.com";

        // 暂时不支持多Region
        $region = "cn-hangzhou";

        // 服务结点
        $endPointName = "cn-hangzhou";

        // 初始化用户Profile实例
        $profile = DefaultProfile::getProfile($region, $app_key, $secret_key);

        // 手动加载endpoint
        EndpointConfig::load();
        // 增加服务结点
        DefaultProfile::addEndpoint($endPointName, $region, $product, $domain);

        // 初始化AcsClient用于发起请求
        $this->acsClient = new DefaultAcsClient($profile);
    }

执行后总是报错

Can not find endpoint to access.

慢慢debug发现是在 EndpointerProvider里面,没有setEndpoints就直接在demo里面使用了getEndpointers,所以返回为空信息

找一下源代码,发现setEndpoints操作是在EndpointConf中调用的,加载xml中的endpoints


上面贴的代码中已经加入了该行代码

 EndpointConfig::load();

然后另一个坑出现了

Use of undefined constant ENABLE_HTTP_PROXY - assumed 'ENABLE_HTTP_PROXY'


讲道理,阿里云做这个么久了,就不能做个好用点的SDK么,真是操碎了心

看看日志,是代理的问题,在HttpHelper中注释掉下面的代码即可

if(ENABLE_HTTP_PROXY) {
   curl_setopt($ch, CURLOPT_PROXYAUTH, CURLAUTH_BASIC);
   curl_setopt($ch, CURLOPT_PROXY, HTTP_PROXY_IP);
   curl_setopt($ch, CURLOPT_PROXYPORT, HTTP_PROXY_PORT);
   curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
}

阿里云PHP-SMS短信服务——验证码发送教程

开通SMS服务 创建签名模板 创建签名 记住签名名称 创建模板 查看并记住模板CODE 创建并记住KeyId和KeySecret 下载阿里云短信服务器PHP-SDK 创建PHP-SMS项目 创建代码文...
  • a735311619
  • a735311619
  • 2017年07月11日 10:36
  • 4207

PHP阿里云短信API发送代码

阿里云的SDK搞的真复杂,一个简单的函数就行了,没必要搞这么复杂 //参数说明 //$RecNum 目标手机号 //$ParamString 短信模板中的变量;数字需要转换为字符串;个人用户每个...
  • bakw
  • bakw
  • 2016年12月28日 21:08
  • 6380

php操作阿里云短信API接口

最近公司短信到期了,我看到阿里云里面有个短信验证码服务,价格非常低,每条最高4分半,3秒可到,于是就申请了. 可是后面很难用,找不到例子代码,然后自己摸索,也咨询了阿里云的工作人员,花了2天才搞定,...
  • yunkaicn
  • yunkaicn
  • 2016年10月31日 14:52
  • 10007

php实现阿里云API短信验证发送代码

//参数说明 //$RecNum 目标手机号 //$ParamString 短信模板中的变量;数字需要转换为字符串;个人用户每个变量长度必须小于15个字符。 //$SignName 管理控...
  • CNYYGJ
  • CNYYGJ
  • 2017年04月09日 23:31
  • 1325

aliyun短信服务,php采用示例代码报Can not find endpoint to access

$endpoint = new Endpoint( $this->options['region_id'],  EndpointConfig::getregionIds(),  Endpoint...
  • u012680857
  • u012680857
  • 2017年09月15日 11:13
  • 627

PHP开发阿里云短信服务接口

技术QQ交流群:294088839 function sendSms($phone,$code){    // 基于TP3.2开发    //引进阿里的配置文件     Vendor ('api...
  • Drug_
  • Drug_
  • 2017年11月03日 18:50
  • 590

阿里云短信服务SDK踩坑(php)

我用的php,下载demo和sdk导入项目后,写了一个driver,来驱动这个sdk 部分代码如下 require_once 'api_sdk/vendor/autoload.php...
  • liangxun0712
  • liangxun0712
  • 2017年07月25日 14:27
  • 2795

PHP阿里云短信通知

php阿里云短信通知
  • JenCho
  • JenCho
  • 2017年11月27日 16:53
  • 211

阿里云大于 (php ) 短信接口demo

  • 2017年09月21日 17:21
  • 3.2MB
  • 下载

【PHP】阿里云升级PHP到5.5详解

目的 使用新版本PHP,提高代码执行效率 和线下环境的不同 数据库采用RDS服务,本地不需要安装MYSQL 使用缓存服务,需要安装官方的memcached扩展 需要安装的扩展 memcac...
  • diandianxiyu
  • diandianxiyu
  • 2015年03月04日 11:03
  • 2683
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:阿里云短信服务SDK踩坑(php)
举报原因:
原因补充:

(最多只允许输入30个字)