Skip to content

hztiny/tiny-sms

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TinySMS

Install

composer require hztiny/tiny-sms

Usage

1. Define your Payload

use TinySms\Contracts\Payload;

class LoginPayload implements Payload
{
    public string $code;

    public function __construct(string $code)
    {
        $this->code = $code;
    }
}

2. Implement ContentProvider

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];
    }
}

3. Register and Send

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);

License

The MIT License (MIT)

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages