Phalapi2.X 扩展使用阿里云短信服务

1、使用阿里云短信服务php

  1. 建立Access Key,获取AccessKeyId与AccessKeySecret
  2. 申请短信签名
  3. 申请短信模板

2、下载SDK
而后下载阿里云的短信服务的SDK包https://help.aliyun.com/docum...html

  1. 点击下面的连接下载

clipboard.png

3、配置SDK到项目json

  1. 打开下载好的包解压有4个文件,在phalapi目录下的vendor/phalapi下建立aliyunsms目录把api_sdk,msg_sdk放进去

clipboard.png

  1. 在phalapi中引入文件,而后cmd下执行composer dumpautoload,未安装composer的能够百度怎么安装

clipboard.png

clipboard.png

4、建立Sms.php接口并参照文档配置相关参数便可,下面是个人代码api

<?php 
namespace App\Api;

use PhalApi\Api;
use Aliyun\Core\Config;
use Aliyun\Core\Profile\DefaultProfile;
use Aliyun\Core\DefaultAcsClient;
use Aliyun\Api\Sms\Request\V20170525\SendSmsRequest;
use Aliyun\Api\Sms\Request\V20170525\SendBatchSmsRequest;
use Aliyun\Api\Sms\Request\V20170525\QuerySendDetailsRequest;

// 加载区域结点配置
Config::load();

class Sms extends Api
{
    static $acsClient = null;


    /**
     * 获取AcsClient
     * @return DefaultAcsClient
     */
    public static function getAcsClient() {
        //产品名称:云通讯短信服务API产品
        $product = "Dysmsapi";

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

        // accesskey
        $accessKeyId = "accesskeyid"; // AccessKeyId

        $accessKeySecret = "accesskeysecret"; // AccessKeySecret

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

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


        if(static::$acsClient == null) {

            //初始化acsClient,暂不支持region化
            $profile = DefaultProfile::getProfile($region, $accessKeyId, $accessKeySecret);

            // 增长服务结点
            DefaultProfile::addEndpoint($endPointName, $region, $product, $domain);

            // 初始化AcsClient用于发起请求
            static::$acsClient = new DefaultAcsClient($profile);
        }
        return static::$acsClient;
    }

    /**
     * 发送短信
     * @param setPhoneNumbers接收的电话号码
     * @param setSignName  签名名称
     * @param setTemplateCode  短信模板CODE
     *
     * @return stdClass
     */
    public static function sendSms($phoneNumbers,$signName,$templateCode,$outId=null) {

        // 初始化SendSmsRequest实例用于设置发送短信的参数
        $request = new SendSmsRequest();

        //设置短信接收号码
        $request->setPhoneNumbers($phoneNumbers);

        //设置签名名称
        $request->setSignName($signName);

        //设置短信模板CODE
        $request->setTemplateCode($templateCode);

        $num = rand(100000,999999); //验证码

        // 可选,设置模板参数
        $request->setTemplateParam(json_encode(array(  // 短信模板中字段的值
            "code"=>$num
        ), JSON_UNESCAPED_UNICODE));

        //$outId = null;

        // 可选,设置流水号
        $request->setOutId($outId);

        // 发起访问请求
        $acsResponse = static::getAcsClient()->getAcsResponse($request);

        return $acsResponse;
    }

    public function getCode()
    {
        $phoneNumbers = '12345678910';
        $signName = '签名名称'
        $templateCode = 'SMS_123455';
        $outId=1234555666
        $response = $this->sendSms($phoneNumbers,$signName,$templateCode,$outId);

        $res = 'ok';//执行
        return $res;
    }

}

而后直接访问接口http://api.xxxx.net/?s=Sms.ge...,便可。composer

相关文章
相关标签/搜索