composer require hztiny/tiny-smsuse TinySms\Contracts\Payload;
class LoginPayload implements Payload
{
public string $code;
public function __construct(string $code)
{
$this->code = $code;
}
}use InvalidArgumentException;
use TinySms\Contracts\ContentProvider;
use TinySms\Contracts\Payload;
class AliyunLoginProvider implements ContentProvider
{
public function getContent(Payload $payload): string
{
return '';
}
public function getTemplate(Payload $payload): string
{
return 'SMS_001';
}
public function getData(Payload $payload): array
{
if (! $payload instanceof LoginPayload) {
throw new InvalidArgumentException('Expected LoginPayload');
}
return ['code' => $payload->code];
}
}use Overtrue\EasySms\EasySms;
use TinySms\Message;
use TinySms\Registry;
use TinySms\Sms;
// Configure EasySms
$easySms = new EasySms($config);
// Register providers
$registry = new Registry();
$registry->set('login', 'aliyun', new AliyunLoginProvider());
// Create Sms client
$sms = new Sms($easySms, $registry);
// Send
$message = new Message('login', new LoginPayload('8946'));
$result = $sms->sendMessage($phone, $message);
// Or
$payload = new LoginPayload('8946');
$result = $sms->send($phone, 'login', $payload);The MIT License (MIT)