阿里云短信服务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项目 创建代码文...

PHP阿里云短信API发送代码

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

php操作阿里云短信API接口

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

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

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

精简阿里云短信服务官方SDK及DEMO

最近项目用到阿里云的短信服务,下载阿里云短信服务官方SDK及DEMO,包含众多的文件夹及文件,一大堆的类,类引用地址也是乱的,没法直接运行。     里面包含多个接口(短信发送API,短信查询API,...

php版-阿里大于短信验证码服务教程

因为最近接触到微信公众号开发,要实现用户手机注册验证的功能。所以阅读了阿里大于的短信服务的开发文档,也上网找了很多的教程看,其中教程水平也参差不齐,其中也踩了很多坑。所以做完之后准备写篇文章来分享下自...

阿里云单邮件发送 - 整理说明文档

【简述】: 大家好,都说用网上插件,很方便,手册上面写的都有,但是我为什么感觉对于我一个初级程序猿妹妹来说,我好多看不懂,有的时候不知道去哪找,因为一方面我们项目中用到的东西好多都是大神封装好的,而我...

ThinkPHP实现阿里云的发送验证码功能

今天由于做项目需要短信验证功能,所以弄了一下午的终于集成了的阿里云的短信功能 首先就是前面那一套, 1、申请Access Key 2、短信模板及其签名然后我们就可以去官网上下载sdk了 本篇博文...

阿里云发送短信API

由于不支持图片,我也懒得一张一张传! 可以去这里看有图的!http://note.youdao.com/noteshare?id=24957fc3ce16b6f4199b8572fc508ead ...
  • zhen2012
  • zhen2012
  • 2016年12月14日 17:35
  • 11268

阿里短信调用封装

String host = "http://sms.market.alicloudapi.com"; String path = "/singleSendSms"; String method...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:阿里云短信服务SDK踩坑(php)
举报原因:
原因补充:

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