日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
EasySMS:一款滿足你的多種發(fā)送需求的短信發(fā)送組件

特點(diǎn)

  1. 支持目前市面多家服務(wù)商
  2. 一套寫(xiě)法兼容所有平臺(tái)
  3. 簡(jiǎn)單配置即可靈活增減服務(wù)商
  4. 內(nèi)置多種服務(wù)商輪詢策略、支持自定義輪詢策略
  5. 統(tǒng)一的返回值格式,便于日志與監(jiān)控
  6. 自動(dòng)輪詢選擇可用的服務(wù)商
  7. 更多等你去發(fā)現(xiàn)與改進(jìn)...

平臺(tái)支持

阿里云
云片
Submail
螺絲帽
容聯(lián)云通訊
互億無(wú)線
聚合數(shù)據(jù)
SendCloud
百度云
華信短信平臺(tái)
253云通訊(創(chuàng)藍(lán))
融云
天毅無(wú)線
騰訊云 SMS
阿凡達(dá)數(shù)據(jù)
華為云
網(wǎng)易云信
云之訊
凱信通
七牛云
UE35.net
Ucloud
短信寶
Tiniyo
摩杜云
融合云(助通)
蜘蛛云

建網(wǎng)站原本是網(wǎng)站策劃師、網(wǎng)絡(luò)程序員、網(wǎng)頁(yè)設(shè)計(jì)師等,應(yīng)用各種網(wǎng)絡(luò)程序開(kāi)發(fā)技術(shù)和網(wǎng)頁(yè)設(shè)計(jì)技術(shù)配合操作的協(xié)同工作。成都創(chuàng)新互聯(lián)專業(yè)提供成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站制作(企業(yè)站、自適應(yīng)網(wǎng)站建設(shè)、電商門(mén)戶網(wǎng)站)等服務(wù),從網(wǎng)站深度策劃、搜索引擎友好度優(yōu)化到用戶體驗(yàn)的提升,我們力求做到極致!

環(huán)境需求

  • PHP >= 5.6

安裝

$ composer require "overtrue/easy-sms"

For Laravel notification

如果你喜歡使用?Laravel Notification, 可以考慮直接使用朋友封裝的拓展包:

https://github.com/yl/easysms-notification-channel

使用

use Overtrue\EasySms\EasySms;

$config = [
    // HTTP 請(qǐng)求的超時(shí)時(shí)間(秒)
    'timeout' => 5.0,

    // 默認(rèn)發(fā)送配置
    'default' => [
        // 網(wǎng)關(guān)調(diào)用策略,默認(rèn):順序調(diào)用
        'strategy' => \Overtrue\EasySms\Strategies\OrderStrategy::class,

        // 默認(rèn)可用的發(fā)送網(wǎng)關(guān)
        'gateways' => [
            'yunpian', 'aliyun',
        ],
    ],
    // 可用的網(wǎng)關(guān)配置
    'gateways' => [
        'errorlog' => [
            'file' => '/tmp/easy-sms.log',
        ],
        'yunpian' => [
            'api_key' => '824f0ff2f71cab52936axxxxxxxxxx',
        ],
        'aliyun' => [
            'access_key_id' => '',
            'access_key_secret' => '',
            'sign_name' => '',
        ],
        //...
    ],
];

$easySms = new EasySms($config);

$easySms->send(13188888888, [
    'content'  => '您的驗(yàn)證碼為: 6379',
    'template' => 'SMS_001',
    'data' => [
        'code' => 6379
    ],
]);

短信內(nèi)容

由于使用多網(wǎng)關(guān)發(fā)送,所以一條短信要支持多平臺(tái)發(fā)送,每家的發(fā)送方式不一樣,但是我們抽象定義了以下公用屬性:

  • content?文字內(nèi)容,使用在像云片類似的以文字內(nèi)容發(fā)送的平臺(tái)
  • template?模板 ID,使用在以模板ID來(lái)發(fā)送短信的平臺(tái)
  • data?模板變量,使用在以模板ID來(lái)發(fā)送短信的平臺(tái)

所以,在使用過(guò)程中你可以根據(jù)所要使用的平臺(tái)定義發(fā)送的內(nèi)容。

$easySms->send(13188888888, [
    'content'  => '您的驗(yàn)證碼為: 6379',
    'template' => 'SMS_001',
    'data' => [
        'code' => 6379
    ],
]);

你也可以使用閉包來(lái)返回對(duì)應(yīng)的值:

$easySms->send(13188888888, [
    'content'  => function($gateway){
        return '您的驗(yàn)證碼為: 6379';
    },
    'template' => function($gateway){
        return 'SMS_001';
    },
    'data' => function($gateway){
        return [
            'code' => 6379
        ];
    },
]);

你可以根據(jù)?$gateway?參數(shù)類型來(lái)判斷返回值,例如:

$easySms->send(13188888888, [
    'content'  => function($gateway){
        if ($gateway->getName() == 'yunpian') {
            return '云片專用驗(yàn)證碼:1235';
        }
        return '您的驗(yàn)證碼為: 6379';
    },
    'template' => function($gateway){
        if ($gateway->getName() == 'aliyun') {
            return 'TP2818';
        }
        return 'SMS_001';
    },
    'data' => function($gateway){
        return [
            'code' => 6379
        ];
    },
]);

發(fā)送網(wǎng)關(guān)

默認(rèn)使用?default?中的設(shè)置來(lái)發(fā)送,如果某一條短信你想要覆蓋默認(rèn)的設(shè)置。在?send?方法中使用第三個(gè)參數(shù)即可:

$easySms->send(13188888888, [
    'content'  => '您的驗(yàn)證碼為: 6379',
    'template' => 'SMS_001',
    'data' => [
        'code' => 6379
    ],
 ], ['yunpian', 'juhe']); // 這里的網(wǎng)關(guān)配置將會(huì)覆蓋全局默認(rèn)值

返回值

由于使用多網(wǎng)關(guān)發(fā)送,所以返回值為一個(gè)數(shù)組,結(jié)構(gòu)如下:

[
    'yunpian' => [
        'gateway' => 'yunpian',
        'status' => 'success',
        'result' => [...] // 平臺(tái)返回值
    ],
    'juhe' => [
        'gateway' => 'juhe',
        'status' => 'failure',
        'exception' => \Overtrue\EasySms\Exceptions\GatewayErrorException 對(duì)象
    ],
    //...
]

如果所選網(wǎng)關(guān)列表均發(fā)送失敗時(shí),將會(huì)拋出?Overtrue\EasySms\Exceptions\NoGatewayAvailableException?異常,你可以使用?$e->results?獲取發(fā)送結(jié)果。

你也可以使用?$e?提供的更多便捷方法:

$e->getResults();               // 返回所有 API 的結(jié)果,結(jié)構(gòu)同上
$e->getExceptions();            // 返回所有調(diào)用異常列表
$e->getException($gateway);     // 返回指定網(wǎng)關(guān)名稱的異常對(duì)象
$e->getLastException();         // 獲取最后一個(gè)失敗的異常對(duì)象

自定義網(wǎng)關(guān)

本拓展已經(jīng)支持用戶自定義網(wǎng)關(guān),你可以很方便的配置即可當(dāng)成與其它拓展一樣的使用:

$config = [
    ...
    'default' => [
        'gateways' => [
            'mygateway', // 配置你的網(wǎng)站到可用的網(wǎng)關(guān)列表
        ],
    ],
    'gateways' => [
        'mygateway' => [...], // 你網(wǎng)關(guān)所需要的參數(shù),如果沒(méi)有可以不配置
    ],
];

$easySms = new EasySms($config);

// 注冊(cè)
$easySms->extend('mygateway', function($gatewayConfig){
    // $gatewayConfig 來(lái)自配置文件里的 `gateways.mygateway`
    return new MyGateway($gatewayConfig);
});

$easySms->send(13188888888, [
    'content'  => '您的驗(yàn)證碼為: 6379',
    'template' => 'SMS_001',
    'data' => [
        'code' => 6379
    ],
]);

國(guó)際短信

國(guó)際短信與國(guó)內(nèi)短信的區(qū)別是號(hào)碼前面需要加國(guó)際碼,但是由于各平臺(tái)對(duì)國(guó)際號(hào)碼的寫(xiě)法不一致,所以在發(fā)送國(guó)際短信的時(shí)候有一點(diǎn)區(qū)別:

use Overtrue\EasySms\PhoneNumber;

// 發(fā)送到國(guó)際碼為 31 的國(guó)際號(hào)碼
$number = new PhoneNumber(13188888888, 31);

$easySms->send($number, [
    'content'  => '您的驗(yàn)證碼為: 6379',
    'template' => 'SMS_001',
    'data' => [
        'code' => 6379
    ],
]);

定義短信

你可以根據(jù)發(fā)送場(chǎng)景的不同,定義不同的短信類,從而實(shí)現(xiàn)一處定義多處調(diào)用,你可以繼承?Overtrue\EasySms\Message?來(lái)定義短信模型:

order = $order;
    }

    // 定義直接使用內(nèi)容發(fā)送平臺(tái)的內(nèi)容
    public function getContent(GatewayInterface $gateway = null)
    {
        return sprintf('您的訂單:%s, 已經(jīng)完成付款', $this->order->no);
    }

    // 定義使用模板發(fā)送方式平臺(tái)所需要的模板 ID
    public function getTemplate(GatewayInterface $gateway = null)
    {
        return 'SMS_003';
    }

    // 模板參數(shù)
    public function getData(GatewayInterface $gateway = null)
    {
        return [
            'order_no' => $this->order->no
        ];
    }
}

更多自定義方式請(qǐng)參考:Overtrue\EasySms\Message

發(fā)送自定義短信:

$order = ...;
$message = new OrderPaidMessage($order);

$easySms->send(13188888888, $message);

各平臺(tái)配置說(shuō)明

阿里云

短信內(nèi)容使用?template?+?data

    'aliyun' => [
        'access_key_id' => '',
        'access_key_secret' => '',
        'sign_name' => '',
    ],

阿里云Rest

短信內(nèi)容使用?template?+?data

    'aliyunrest' => [
        'app_key' => '',
        'app_secret_key' => '',
        'sign_name' => '',
    ],

云片

短信內(nèi)容使用?content

    'yunpian' => [
        'api_key' => '',
        'signature' => '【默認(rèn)簽名】', // 內(nèi)容中無(wú)簽名時(shí)使用
    ],

Submail

短信內(nèi)容使用?data

    'submail' => [
        'app_id' => '',
        'app_key' => '',
        'project' => '', // 默認(rèn) project,可在發(fā)送時(shí) data 中指定
    ],

螺絲帽

短信內(nèi)容使用?content

    'luosimao' => [
        'api_key' => '',
    ],

容聯(lián)云通訊

短信內(nèi)容使用?template?+?data

    'yuntongxun' => [
        'app_id' => '',
        'account_sid' => '',
        'account_token' => '',
        'is_sub_account' => false,
    ],

互億無(wú)線

短信內(nèi)容使用?content

    'huyi' => [
        'api_id' => '',
        'api_key' => '',
        'signature' => '',
    ],

聚合數(shù)據(jù)

短信內(nèi)容使用?template?+?data

    'juhe' => [
        'app_key' => '',
    ],

SendCloud

短信內(nèi)容使用?template?+?data

    'sendcloud' => [
        'sms_user' => '',
        'sms_key' => '',
        'timestamp' => false, // 是否啟用時(shí)間戳
    ],

百度云

短信內(nèi)容使用?template?+?data

    'baidu' => [
        'ak' => '',
        'sk' => '',
        'invoke_id' => '',
        'domain' => '',
    ],

華信短信平臺(tái)

短信內(nèi)容使用?content

    'huaxin' => [
        'user_id'  => '',
        'password' => '',
        'account'  => '',
        'ip'       => '',
        'ext_no'   => '',
    ],

253云通訊(創(chuàng)藍(lán))

短信內(nèi)容使用?content

    'chuanglan' => [
        'account' => '',
        'password' => '',

        // 國(guó)際短信時(shí)必填
        'intel_account' => '',
        'intel_password' => '',

        // \Overtrue\EasySms\Gateways\ChuanglanGateway::CHANNEL_VALIDATE_CODE  => 驗(yàn)證碼通道(默認(rèn))
        // \Overtrue\EasySms\Gateways\ChuanglanGateway::CHANNEL_PROMOTION_CODE => 會(huì)員營(yíng)銷通道
        'channel'  => \Overtrue\EasySms\Gateways\ChuanglanGateway::CHANNEL_VALIDATE_CODE,

        // 會(huì)員營(yíng)銷通道 特定參數(shù)。創(chuàng)藍(lán)規(guī)定:api提交營(yíng)銷短信的時(shí)候,需要自己加短信的簽名及退訂信息
        'sign' => '【通訊云】',
        'unsubscribe' => '回TD退訂',
    ],

融云

短信分為兩大類,驗(yàn)證類和通知類短信。 發(fā)送驗(yàn)證類短信使用?template?+?data

    'rongcloud' => [
        'app_key' => '',
        'app_secret' => '',
    ]

天毅無(wú)線

短信內(nèi)容使用?content

    'tianyiwuxian' => [
        'username' => '', //用戶名
        'password' => '', //密碼
        'gwid' => '', //網(wǎng)關(guān)ID
    ]

twilio

短信使用?content?發(fā)送對(duì)象需要 使用+添加區(qū)號(hào)

    'twilio' => [
        'account_sid' => '', // sid
        'from' => '', // 發(fā)送的號(hào)碼 可以在控制臺(tái)購(gòu)買(mǎi)
        'token' => '', // apitoken
    ],

tiniyo

短信使用?content?發(fā)送對(duì)象需要 使用+添加區(qū)號(hào)

    'tiniyo' => [
        'account_sid' => '', // auth_id from https://tiniyo.com
        'from' => '', // 發(fā)送的號(hào)碼 可以在控制臺(tái)購(gòu)買(mǎi)
        'token' => '', // auth_secret from https://tiniyo.com
    ],

騰訊云 SMS

短信內(nèi)容使用?content

    'qcloud' => [
        'sdk_app_id' => '', // SDK APP ID
        'app_key' => '', // APP KEY
        'sign_name' => '', // 短信簽名,如果使用默認(rèn)簽名,該字段可缺省(對(duì)應(yīng)官方文檔中的sign)
    ],

發(fā)送示例:

$easySms->send(18888888888, [
    'template' => 101234, // 模板ID
    'content' => "您的動(dòng)態(tài)驗(yàn)證碼為:{1},請(qǐng)于5分鐘內(nèi)完成驗(yàn)證,如非本人操作,請(qǐng)忽略本短信!", // 模板內(nèi)容
    'data' => [ 
        $code, // 模板變量
    ],
]);

阿凡達(dá)數(shù)據(jù)

短信內(nèi)容使用?template?+?data

    'avatardata' => [
        'app_key' => '', // APP KEY
    ],

華為云 SMS

短信內(nèi)容使用?template?+?data

    'huawei' => [
        'endpoint' => '', // APP接入地址
        'app_key' => '', // APP KEY
        'app_secret' => '', // APP SECRET
        'from' => [
            'default' => '1069012345', // 默認(rèn)使用簽名通道號(hào)
            'custom' => 'csms12345', // 其他簽名通道號(hào) 可以在 data 中定義 from 來(lái)指定
            'abc' => 'csms67890', // 其他簽名通道號(hào)
            ...
        ],
        'callback' => '' // 短信狀態(tài)回調(diào)地址
    ],

使用默認(rèn)簽名通道?default

$easySms->send(13188888888, [
    'template' => 'SMS_001',
    'data' => [
        6379
    ],
]);

使用指定簽名通道

$easySms->send(13188888888, [
    'template' => 'SMS_001',
    'data' => [
        6379,
        'from' => 'custom' // 對(duì)應(yīng) config 中的 from 數(shù)組中 custom
    ],
]);

網(wǎng)易云信

短信內(nèi)容使用?template?+?data

    'yunxin' => [
        'app_key' => '',
        'app_secret' => '',
        'code_length' => 4, // 隨機(jī)驗(yàn)證碼長(zhǎng)度,范圍 4~10,默認(rèn)為 4
        'need_up' => false, // 是否需要支持短信上行
    ],
$easySms->send(18888888888, [
    'template' => 'SMS_001',    // 不填則使用默認(rèn)模板
    'data' => [
        'code' => 8946, // 如果設(shè)置了該參數(shù),則 code_length 參數(shù)無(wú)效
        'action' => 'sendCode', // 默認(rèn)為 `sendCode`,校驗(yàn)短信驗(yàn)證碼使用 `verifyCode`
    ],
]);

云之訊

短信內(nèi)容使用?template?+?data

    'yunzhixun' => [
        'sid' => '',
        'token' => '',
        'app_id' => '',
    ],
$easySms->send(18888888888, [
    'template' => 'SMS_001',
    'data' => [
        'params' => '8946,3',   // 模板參數(shù),多個(gè)參數(shù)使用 `,` 分割,模板無(wú)參數(shù)時(shí)可為空
        'uid' => 'hexianghui',  // 用戶 ID,隨狀態(tài)報(bào)告返回,可為空
        'mobiles' => '18888888888,188888888889',    // 批量發(fā)送短信,手機(jī)號(hào)使用 `,` 分割,不使用批量發(fā)送請(qǐng)不要設(shè)置該參數(shù)
    ],
]);

凱信通

短信內(nèi)容使用?content

    'kingtto'  => [
        'userid'   => '',
        'account'  => '',
        'password' => '',
    ],
$easySms->send(18888888888, [
    'content'  => '您的驗(yàn)證碼為: 6379',
]);

七牛云

短信內(nèi)容使用?template?+?data

    'qiniu' => [
        'secret_key' => '',
        'access_key' => '',
    ],
$easySms->send(18888888888, [
    'template' => '1231234123412341234',
    'data' => [
        'code' => 1234,
    ],
]);

Ucloud

短信使用?template?+?data

  'ucloud' => [
        'private_key'  => '',    //私鑰
        'public_key'   => '',    //公鑰
        'sig_content'  => '',    // 短信簽名,
        'project_id'   => '',    //項(xiàng)目ID,子賬號(hào)才需要該參數(shù)
    ],
$easySms->send(18888888888, [
    'template' => 'UTAXXXXX',       //短信模板
    'data' => [
        'code' => 1234,     //模板參數(shù),模板沒(méi)有參數(shù)不用則填寫(xiě),有多個(gè)參數(shù)請(qǐng)用數(shù)組,[1111,1111]
        'mobiles' =>'',     //同時(shí)發(fā)送多個(gè)手機(jī)短信,請(qǐng)用數(shù)組[xxx,xxx]
    ],
]);

短信寶

短信使用?content

  'smsbao' => [
        'user'  => '',    //賬號(hào)
        'password'   => ''   //密碼
    ],
$easySms->send(18888888888, [
    'content' => '您的驗(yàn)證碼為: 6379',       //短信模板
]);

摩杜云

短信使用?template?+?data

  'moduyun' => [
        'accesskey' => '',  //必填 ACCESS KEY
        'secretkey' => '',  //必填 SECRET KEY
        'signId'    => '',  //選填 短信簽名,如果使用默認(rèn)簽名,該字段可缺省
        'type'      => 0,   //選填 0:普通短信;1:營(yíng)銷短信
    ],
$easySms->send(18888888888, [
    'template' => '5a95****b953',   //短信模板
    'data' => [
        1234,   //模板參數(shù),對(duì)應(yīng)模板的{1}
        30      //模板參數(shù),對(duì)應(yīng)模板的{2}
        //...
    ],
]);

融合云(助通)

短信使用?template?+?data

  'rongheyun' => [
        'username' => '',  //必填 用戶名
        'password' => '',  //必填 密碼
        'signature'=> '',  //必填 已報(bào)備的簽名
    ],
$easySms->send(18888888888, [
    'template' => '31874',   //短信模板
    'data' => [
        'valid_code' => '888888',   //模板參數(shù),對(duì)應(yīng)模板的{valid_code}
        //...
    ],
]);

蜘蛛云

短信使用?template?+?data

  'zzyun' => [
        'user_id' => '',    //必填 會(huì)員ID
        'secret' => '',     //必填 接口密鑰
        'sign_name'=> '',   //必填 短信簽名
    ],
$easySms->send(18888888888, [
    'template' => 'SMS_210317****',   //短信模板
    'data' => [
        'code' => '888888',   //模板參數(shù),對(duì)應(yīng)模板的{code}
        //...
    ],
]);


分享文章:EasySMS:一款滿足你的多種發(fā)送需求的短信發(fā)送組件
轉(zhuǎn)載注明:http://www.5511xx.com/article/cddsgsc.html