php开通阿里云短信服务平台api发送短信的代码

短信服务这个产品已经整合到消息服务MNS中了,您需要使用MNS的sdk来发送短信。
PHP SDK: https://help.aliyun.com/document_detail/51929.html。 另外,如需查询消费记录,您可以登录控制台费用中心查看下具体的使用明细。 费用中心 – 消费记录 – 消费明细,通过下拉菜单选择“消息服务”产品,筛选时间进行查询。 在列表中点击“详情”进行查看,在详情页点击箭头可以查看到具体的使用量以及对应产生的费用。

  • 下载最新版php sdk

  • MNS PHP SDK

    建议下载最新发布的SDK版本以获得最佳性能和稳定性。

  • Version 1.3.3
  • 更新日期 2016-12-15 http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/attach/32381/cn_zh/1481792159495/aliyun-mns-php-sdk-1.3.3.zip
  • 配置AccessKeyID、AccessKeySecret和Endpoint;
    • AccessKeyId、AccessKeySecret
      • 访问阿里云API的密钥对;
      • 如果使用主账号访问,登陆阿里云 AccessKey 管理页面创建、查看;//根据提示创建一个
      • 如果使用子账号访问,请登录阿里云访问控制控制台查看;
    • Endpoint
      • 访问MNS的接入地址,登陆MNS控制台 单击右上角 获取Endpoint 查看;//这很重要,记得要选择对应的地区 不然最终无法调用,我就犯错,测试了半天
      • 不同地域的接入地址不同;
<?php
//echo dirname(dirname(dirname(__FILE__)));exit;
require_once(dirname(__FILE__).'/mns-autoloader.php');
use AliyunMNS\Client;
use AliyunMNS\Topic;
use AliyunMNS\Constants;
use AliyunMNS\Model\MailAttributes;
use AliyunMNS\Model\SmsAttributes;
use AliyunMNS\Model\BatchSmsAttributes;
use AliyunMNS\Model\MessageAttributes;
use AliyunMNS\Exception\MnsException;
use AliyunMNS\Requests\PublishMessageRequest;
class PublishBatchSMSMessageDemo
{
    public function run()
    {
        /**
         * Step 1. init client
         */
        $this->endPoint = "xxx"; // 记得对应的机房 eg. http://1234567890123456.mns.cn-hangzhou.aliyuncs.com
        $this->accessId = "xxx";
        $this->accessKey = "xxx";
        $this->client = new Client($this->endPoint, $this->accessId, $this->accessKey);
        /**
         * Step 2. get topic reference
         */
        $topicName = "sms.topic-cn-hangzhou";//如自己没有创建 就用默认的 面板上可以查到
        $topic = $this->client->getTopicRef($topicName);
        /**
         * Step 3. generate SMS message attributes
         */
        // 3.1 set SMS message sign name and template code
        $batchSmsAttributes = new BatchSmsAttributes("已经创建好短信签名", "短信模板ID");
        // 3.2 [if has param defined in SMS message template] set SMS message receiver param
        $batchSmsAttributes->addReceiver("要发送的手机号码13988888888", array("code" => "123","product" => "五一","item" => "团购"));//模板里面的标签解析
        //$batchSmsAttributes->addReceiver("YourReceiverPhoneNumber2", array("YourSMSTemplateParamKey1" => "value1"));
        $messageAttributes = new MessageAttributes(array($batchSmsAttributes));
        /**
         * Step 4. set SMS message body ( required )
         */
         $messageBody = "smsmessage";
        /**
         * Step 5. publish SMS message
         */
        $request = new PublishMessageRequest($messageBody, $messageAttributes);
        try
        {
            $res = $topic->publishMessage($request);
            echo $res->isSucceed();
            echo "\n";
            echo $res->getMessageId();
            echo "\n";
        }
        catch (MnsException $e)
        {
            echo $e;
            echo "\n";
        }
    }
}
$instance = new PublishBatchSMSMessageDemo();
$instance->run();
?>

根据错误码解决问题:https://help.aliyun.com/document_detail/27501.html

此条目发表在服务器分类目录,贴了, 标签。将固定链接加入收藏夹。

发表回复