lucups/cnsms

A simple SMS toolkit without any third party dependencies, only for China.

Maintainers

Details

github.com/lucups/cnsms

Source

Issues

Installs: 72

Dependents: 0

Suggesters: 0

Security: 0

Stars: 1

Watchers: 1

Forks: 0

Open Issues: 0

pkg:composer/lucups/cnsms

0.6.0 2025-09-19 08:47 UTC

This package is auto-updated.

Last update: 2025-09-19 09:03:35 UTC


README

Slogan

我就发个验证码,给我整那么活干啥...

介绍

适应中国大陆国情的极简短信工具库,除 ext-curlext-json 等大家都会用到的 PECL 扩展库外无任何第三方依赖包,适用于发送验证码短信、通知短信等场景。

A simple SMS toolkit without any third party dependencies, only for the Chinese Mainland.

支持的短信渠道

短信渠道 链接 支持版本 推荐指数
短信宝 https://www.smsbao.com/ v0.4.0+ ⭐️⭐️⭐️⭐️
阿里云短信服务 https://www.aliyun.com/product/sms v0.1.0+ ⭐️⭐
腾讯云短信 SMS https://cloud.tencent.com/product/sms v0.2.1+ ⭐️

安装

composer require lucups/cnsms

使用

短信宝

$config = [
    'channel'     => Sms::CHANNEL_SMSBAO,
    'logFlag'     => true,
    'logfilePath' => '/tmp/cnsms.log',
    'username'    => 'xxxxx', // 登录账号
    'password'    => 'xxxxx', // 登录密码
    'apiKey'      => 'xxxxx', // 接口密钥(密码密钥二选一,请求的时候密码会被md5处理,apiKey 不会)
];

$result = Sms::create($config)->send('1340000000', '【测试账号】您的短信验证码是{code} ,在10分钟内有效。', ['code'=> '123456']);
print_r($result);

自 v0.6.0 开始,短信宝支持查询余额/短信余量:

$result = Sms::create($config)->balance();
print_r($result);

调用得到PHP数组,字段含义如下:

Array
(
    [code] => 0
    [msg] => success // 调用失败则是 fail
    [leftNum] => 48 // 短信剩余条数
    [balance] => 0 // 账户余额
)

阿里云短信服务

use Lucups\Cnsms\Sms;

require_once __DIR__ . '/vendor/autoload.php';

$config = [
    'channel'         => Sms::CHANNEL_ALIYUN,
    'accessKeyId'     => 'xxxxxxx',
    'accessKeySecret' => 'xxxxxxx',
    'signName'        => 'xxx',
];

$result = Sms::create($config)->send('1340000000', 'SMS_12345678', ['code' => '666888']);
print_r($result);

// 完整配置
$config = [
    'channel'         => Sms::CHANNEL_ALIYUN,
    'logFlag'         => true,
    'logfilePath'     => '/tmp/cnsms.log',
    'accessKeyId'     => 'xxxxxxx',
    'accessKeySecret' => 'xxxxxxx',
    'signName'        => 'xxx',
    'regionId'        => 'cn-shanghai'
];

腾讯云短信服务

$config = [
    'channel'     => Sms::CHANNEL_TENCENT,
    'logFlag'     => true,
    'logfilePath' => '/tmp/cnsms.log',
    'secretId'    => 'xxxxxxx',
    'secKey'      => 'xxxxxxx',
    'appId'       => 'xxx',
    'signName'    => 'xxx',
];
$result = Sms::create($config)->send('1340000000', '178888', ['12345']);
print_r($result);

注意事项

  • 本工具库不校验手机号码合法性,需自行校验;
  • 本工具库不处理短信发送失败的情况,需根据 send 方法的返回值自行处理;
  • 鉴于国内日益严格的审查政策,建议使用服务相对比较人性化、审核速度相对较快的短信宝服务。