php阿里雲短信功能



需要簽名比如:【阿里雲】xxxx。
只有簽名通過的,才可以發送。


需要創建短信模版。
支持驗證碼,以及各種自定義的消息模版。
新建模版,需要審核,審核通過才可以使用。

阿里雲使用,需要配置key,secret。

php中可以先下載sdk。

composer require alibabacloud/client


然后參考demo,寫出自己的工具類。
https://next.api.aliyun.com/api/Dysmsapi/2017-05-25/SendSms?spm=a2c4g.11186623.2.9.40561a23AKu5S4&sdkStyle=old&lang=PHP

<?php

/**
 * 短信發送工具類
 * User: Eden
 * Date: 19-4-26 上午9:23
 */

namespace Common\Util;

use AlibabaCloud\Client\AlibabaCloud;

// Download:https://github.com/aliyun/openapi-sdk-php
// Usage:https://github.com/aliyun/openapi-sdk-php/blob/master/README.md

class SmsUtil extends CommonUtil
{
    public static function sendSms($phone, $template, $param, $signName = 'xx')
    {
        $sms_key = C('ALIYUN.AccessKey');
        $sms_secret = C('ALIYUN.AccessSecret');
        $sms_region = C('ALIYUN.RegionId');
        AlibabaCloud::accessKeyClient($sms_key, $sms_secret)
            ->regionId($sms_region)
            ->asDefaultClient();

        $result = AlibabaCloud::rpc()
            ->product('Dysmsapi')
            // ->scheme('https') // https | http
            ->version('2017-05-25')
            ->action('SendSms')
            ->method('POST')
            ->host('dysmsapi.aliyuncs.com')
            ->options([
                // 'query' => [
                //     'PhoneNumbers' => "xxx",
                //     'SignName' => "xxx",
                //     'TemplateCode' => "SMS_212694008",
                //     'TemplateParam' => "{'password':'123456'}",
                // ],
                'query' => [
                    'PhoneNumbers' => $phone,
                    'SignName' => $signName,
                    'TemplateCode' => $template,
                    'TemplateParam' => $param,
                ],
            ])
            ->request();
        $result =$result->toArray();
        if ($result['Code'] == 'OK') {
            return true;
        } else {
            return false;
        }
    }
}

使用

/**
 * 發送短信
 * @return stdClass
 */
public function sendSms() {
    $smsUtil = new SmsUtil();
    $param = [
        'password' => '123456'
    ];
    $res = $smsUtil::sendSms('xxx',C('ALIYUN_SMS_TEMPLATE.INIT_PASSWORD'),json_encode($param));
    if ($res) {
        $this->json->ok();
    } else {
        $this->json->err();
    }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM