darkstar/yii2-kannel

Yii 2 Kannel Http SMS

dev-master 2018-03-17 23:19 UTC

This package is auto-updated.

Last update: 2024-09-12 10:48:50 UTC


README

此小部件将允许您通过 Kannel 提供的 HTTP 接口发送短信(http://www.kannel.org/download/kannel-userguide-snapshot/userguide.html#AEN5058)。

安装

安装此扩展的首选方式是通过 composer

安装

运行以下命令之一

$ php composer.phar require d4rkstar/yii2-kannel "dev-master"

或者将以下内容添加到您的 composer.json 文件的 require 部分。

"d4rkstar/yii2-kannel": "dev-master"

示例用法

在您的 app/config/web.php 文件的 components 部分,添加

现在,添加一个名为 app/config/kannel.php 的配置文件,并添加

'components' => [
    ...
    'kannel' => require(__DIR__ . '/kannel.php'),
]

现在,在任何您应用的地方,您都可以发送短信

<?php
use d4rkstar\kannel\HttpSms;

return [
    'class'=>'d4rkstar\kannel\HttpSms',
    'host'=>'127.0.0.1', // replace with your kannel host IP
    'port'=>13013, // replace with your kannel host Port
    'username'=>'kanneluser', // replace with your kannel User
    'password'=>'kannelpass', // replace with your kannel Password
    'dlrMask'=>HttpSms::DLR_ALL, // delivery notifications (read more below)
    'dlrUrl'=>'http://127.0.0.1/delivery.php?id=%s&status=%s' // callback delivery URL 
];
?>

返回值

<?php
    $sms_id = 1; // <-- replace this ID with the Id of your DB or unique identifier of the sms
    $from = ''; <-- put your SMS sender number here
    $to = ''; <-- put SMS recipient number here
    $body = 'Hello world!'; 
    $result  = Yii::$app->kannel->sendSingleSms($id, $from, $to, $body);
    
    switch ($result['code']) {
        case '202':
            echo "Success!";
        default:
            echo "Failure!";
    }
?>

投递报告

投递报告

如果您设置了 dlrMask 和 dlrUrl,HTTP 请求将请求 Kannel 报告短信的投递状态。投递报告将通过 Web 回调 URL 发送到您的应用程序:根据报告类型,Kannel 将调用您在 dlrUrl 中指定的 URL。因此,如果 URL 包含一个 ID 参数,回调也将包含此 ID 以及投递报告的类型。

投递报告包括

Kannel 检查

为了检查 kannel 状态,提供了一个名为 check/kannel_check.php 的脚本。注意:这种方法不太安全,但如果您的机器在“安全”环境中,应该没有问题。将脚本放在运行 kannel 的服务器上,并根据您的需求进行调整。您应该将 $checkUrl 属性设置为 kannel_check.php 脚本的 URL。