PHP code example of homelam / easy-sms
1. Go to this page and download the library: Download homelam/easy-sms library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
homelam / easy-sms example snippets
use Wincy\EasySms\EasySms;
$config = [
// HTTP 请求的超时时间(秒)
'timeout' => 5.0,
// 默认发送配置
'default' => [
// 网关调用策略,默认:顺序调用
'strategy' => \Wincy\EasySms\Strategies\OrderStrategy::class,
// 默认可用的发送网关
'gateways' => [
'aliyun'
],
],
// 可用的网关配置
'gateways' => [
'errorlog' => [
'file' => '/tmp/easy-sms.log',
],
'aliyun' => [
'access_key_id' => '',
'access_key_secret' => '',
'sign_name' => '',
]
],
];
$easySms = new EasySms($config);
$easySms->send(13188888888, [
'content' => '您的验证码为: 6379',
'template' => 'SMS_001',
'data' => [
'code' => 6379
],
]);
$easySms->send(13188888888, [
'content' => '您的验证码为: 6379',
'template' => 'SMS_001',
'data' => [
'code' => 6379
],
], ['yunpian', 'juhe']); // 这里的网关配置将会覆盖全局默认值
[
'yunpian' => [
'gateway' => 'yunpian',
'status' => 'success',
'result' => [...] // 平台返回值
],
'juhe' => [
'gateway' => 'juhe',
'status' => 'failure',
'exception' => \Wincy\EasySms\Exceptions\GatewayErrorException 对象
],
//...
]
$e->getResults(); // 返回所有 API 的结果,结构同上
$e->getExceptions(); // 返回所有调用异常列表
$e->getException($gateway); // 返回指定网关名称的异常对象
$e->getLastException(); // 获取最后一个失败的异常对象
$config = [
...
'default' => [
'gateways' => [
'mygateway', // 配置你的网站到可用的网关列表
],
],
'gateways' => [
'mygateway' => [...], // 你网关所需要的参数,如果没有可以不配置
],
];
$easySms = new EasySms($config);
// 注册
$easySms->extend('mygateway', function($gatewayConfig){
// $gatewayConfig 来自配置文件里的 `gateways.mygateway`
return new MyGateway($gatewayConfig);
});
$easySms->send(13188888888, [
'content' => '您的验证码为: 6379',
'template' => 'SMS_001',
'data' => [
'code' => 6379
],
]);
use Wincy\EasySms\PhoneNumber;
// 发送到国际码为 31 的国际号码
$number = new PhoneNumber(13188888888, 31);
$easySms->send($number, [
'content' => '您的验证码为: 6379',
'template' => 'SMS_001',
'data' => [
'code' => 6379
],
]);
use Wincy\EasySms\Message;
use Wincy\EasySms\Contracts\GatewayInterface;
use Wincy\EasySms\Strategies\OrderStrategy;
class OrderPaidMessage extends Message
{
protected $order;
protected $strategy = OrderStrategy::class; // 定义本短信的网关使用策略,覆盖全局配置中的 `default.strategy`
protected $gateways = ['alidayu', 'yunpian', 'juhe']; // 定义本短信的适用平台,覆盖全局配置中的 `default.gateways`
public function __construct($order)
{
$this->order = $order;
}
// 定义直接使用内容发送平台的内容
public function getContent(GatewayInterface $gateway = null)
{
return sprintf('您的订单:%s, 已经完成付款', $this->order->no);
}
// 定义使用模板发送方式平台所需要的模板 ID
public function getTemplate(GatewayInterface $gateway = null)
{
return 'SMS_003';
}
// 模板参数
public function getData(GatewayInterface $gateway = null)
{
return [
'order_no' => $this->order->no
];
}
}
$order = ...;
$message = new OrderPaidMessage($order);
$easySms->send(13188888888, $message);
'aliyun' => [
'access_key_id' => '',
'access_key_secret' => '',
'sign_name' => '',
],
'alidayu' => [
'app_key' => '',
'app_secret' => '',
'sign_name' => '',
],