PHP-阿里云短信-部署和SDK使用总结

只涉及国内短信服务,开通国内短信。

阿里云国内短信开通之后进行如下的步骤。

一:进入“短信服务”控制台,从快速学习中了解实际发送的内容是什么样子

模板示例

签名:【里面写自己的业务实体名称】,模板:示例为验证码模板

签名/模板 添加入口

二:签名设置,按需求填写,审核时间有快有慢

签名设置

签名:SignName,sdk会用到,不需要带【】

三:模板设置,按需求填写,审核时间有快有慢

模板名称:自行设置,方便寻找。

模板内容:${code}为固定格式,后面sdk里面使用也要和code单词一致。

模板创建成功以后会有自己固定的TemplateCode,SDK会用到

模板添加

四:用户组权限

1.用户组权限并不需要设置,只给子用户设置权限就够了

访问控制设置入口

2.然后选好内容就可以点确定了

勾选编程访问

3.设置管理短信服务的权限

添加权限
添加权限

五:SDK部署

1.全局安装composer

2.win+R用 cmd命令行,使用该镜像地址:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

3.win+R用 cmd命令行进入工程目录下,比如www文件夹,运行:composer require alibabacloud/client

成功运行

4.获得accesskey
操作步骤:云账号登录RAM控制台。
在左侧导航栏的人员管理菜单下,单击用户。
在用户登录名称/显示名称列表下,单击目标RAM用户名称。
在用户AccessKey 区域下,单击创建新的AccessKey。
【AccessKeySecret只在创建时显示,不提供查询】

5.代码:两个文件和下载的vender文件夹放在一个目录下。代码无关返回值的判断和错误提示,需要的自行查阅阿里云手册

六:代码示例

代码片.

// An highlighted block
send.php

<?

include 'index.php';

$sms = new sms_index();

$phone='179****8888';

$code=rand(100000,999999);

$config = [

'accessKeyId' => 'd*********w',

'accessSecret' => 'a********b',

'SignName' => '宇宙边缘',

'TemplateCode' => 'SMS_***88',

'regionId' => 'cn-hangzhou'//不需要改

];

$re = $sms->sendCode($config,$phone,$code); 

var_dump($re);

?>

index.php

<?php

require 'vendor/autoload.php';

use AlibabaCloud\Client\AlibabaCloud;

use AlibabaCloud\NlsCloudMeta\NlsCloudMeta;

use AlibabaCloud\Client\Exception\ClientException;

use AlibabaCloud\Client\Exception\ServerException;

class sms_index{

/**

  * 发送短信验证码

  */

  public function sendCode($config,$phone,$code)

  {

    $param = [

      'code' => $code

    ];

    AlibabaCloud::accessKeyClient($config['accessKeyId'], $config['accessSecret'])

      ->regionId($config['regionId'])

      ->asGlobalClient();

    try {

      $result = AlibabaCloud::rpcRequest()

        ->product('Dysmsapi')

        ->version('2017-05-25')

        ->action('SendSms')

        ->method('POST')

        ->options([

          'query' => [

            'PhoneNumbers' => $phone,

            'SignName' => $config['SignName'],

            'TemplateCode' => $config['TemplateCode'],

            'TemplateParam' => json_encode($param)

          ],

        ])

        ->request();

      return $result->toArray();

    } catch (ClientException $e) {

      echo $e->getErrorMessage() . PHP_EOL;

    } catch (ServerException $e) {

      echo $e->getErrorMessage() . PHP_EOL;

    }

  }

}

七:问题汇总

1.短信类型-- 文本短信根据短信模板的类型,可以分为:

验证码

向手机号码发送的包含验证码的短信,支持通过变量替换实现个性短信定制。

通常用于会员注册、快捷登录、安全提醒、找回密码等场景。

短信通知

向手机号码发送的通知类短信,支持通过变量替换实现个性短信定制。

通常用于向注册用户下发系统相关信息,包括升级或维护、服务开通、价格调整、 订单确认、物流动态、消费确认、 支付通知等普通通知短信。

推广短信

向手机号码发送的包含推广信息的短信,短信内容为经过审核的模板内容,不支持通过变量替换实现个性短信定制。

通常用于向注册用户和潜在客户发送通知和推广信息,包括促销活动通知、业务推广、新产品宣讲、会员关怀等商品与活动的推广信息,可以增加企业产品曝光率、提高产品和企业的知名度。

2.阿里云短信isp.RAM_PERMISSION_DENY没有访问权
需要去给子账号添加sms的权限,搜索sms然后选择所有短信的权限

3.Using version ^1.8 for alibabacloud/sdk Root package ‘alibabacloud/sdk’ cannot require itself in its composer.json
这个地方不可以提前从别的地方下载composer.json放到我们的工程路径里面

报错

4.代码的返回值
array(4) {
[“Message”]=> string(2) “OK”
[“RequestId”]=> string(36) “222U-E4-88-C*-8***8”
[“BizId”]=> string(20) “8***^Q”
[“Code”]=> string(2) “OK” }

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值