lucups/cnsms

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

0.5.0 2023-10-10 09:10 UTC

This package is auto-updated.

Last update: 2024-05-11 06:38:49 UTC


README

Slogan

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

介绍

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

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

支持的短信渠道

安装

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', '【测试账号】您的短信验证码是123456 ,在10分钟内有效。');

print_r($result);

阿里云短信服务

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 方法的返回值自行处理;

题外话: 阿里云短信服务劝退宣言

鉴于本人在使用过程的实际体验,不建议使用阿里云短信服务,原因无他,在阿里云申请个短信签名难于登天。

在阿里云申请短信签名,各种材料全部提交了,各种证件、公司盖章、人脸识别、录视频,最后非要我开个测试账号给它进去看看。

阿里云短信签名审核结果

我真是服了,我用阿里云那么多服务,就没遇到这么折腾人的。

我就发个验证码,材料提交了一大推,都是实名的,能有啥问题?非要我脱光了给它看?

咱小公司一年也就几千块的短信费,人家也看不上,我没那个精力折腾。 所以放弃了,改用短信宝了。