odenktools/wavecell-php

Wavecell SMS 的 Restful PHP 库

1.0.1 2019-05-09 15:33 UTC

This package is auto-updated.

Last update: 2024-09-10 02:49:38 UTC


README

Build Status codecov Scrutinizer Code Quality

Wavecell SMS PHP API 库由 Odenktools 创建并维护。

有关详细信息,请参阅 Wavecell 文档

支持的 PHP 版本

  • PHP 5.4.x
  • PHP 5.5.x
  • PHP 5.6.x
  • PHP 7.0.x
  • PHP 7.1.x
  • PHP 7.2.x
  • PHP 7.3.x

安装

composer require odenktools/wavecell-php

使用

发送单条 SMS

逐条发送 SMS(每条 SMS 1 个请求)。

详细信息请见 发送 SMS - 单条

示例(不抛出异常)

\Wavecell\Config::$timeZone = 'Asia/Jakarta';
\Wavecell\Config::$country = 'ID';
\Wavecell\Config::$resendInterval = 120;
\Wavecell\Config::$otpCodeValidity = 600;
\Wavecell\Config::$otpCodeLength = 6;
\Wavecell\Config::$smsExpireInMinutes = 60;
\Wavecell\Config::$subAccountId = 'YOUR_SUB_ACCOUNT_ID';
\Wavecell\Config::$secretKey = 'YOUR_SECRET_KEY';
\Wavecell\Config::$smsFrom = 'YOUR_APP_SETTING';

$sms = new \Wavecell\Sms();
$response = $sms->sendSingleSms('+6289671000082', 'HELLO WORLD, YOU CAN READ THIS SMS?', 'AUTO', false);
$body = (string)$response->getBody();
$code = (int)$response->getStatusCode();
if ($code === 400) {
    echo "BAD REQUEST";
} else if ($code === 401) {
    echo "Unauthorized ";
} else if ($code === 404) {
    echo "Not Found";
} else if ($code === 200) {
    $content = json_decode($body);
    echo $code . '<br/>';
    echo $content->status->code . '<br/>';
    echo $content->status->description. '<br/>';
    echo $content->umid. '<br/>';
    echo $content->encoding. '<br/>';
    echo $content->destination. '<br/>';
}
发送单条 SMS

示例(抛出异常)

try {
    \Wavecell\Config::$timeZone = 'Asia/Jakarta';
    \Wavecell\Config::$country = 'ID';
    \Wavecell\Config::$resendInterval = 120;
    \Wavecell\Config::$otpCodeValidity = 600;
    \Wavecell\Config::$otpCodeLength = 6;
    \Wavecell\Config::$smsExpireInMinutes = 60;
    \Wavecell\Config::$subAccountId = 'YOUR_SUB_ACCOUNT_ID';
    \Wavecell\Config::$secretKey = 'YOUR_SECRET_KEY';
    \Wavecell\Config::$smsFrom = 'YOUR_APP_SETTING';

    $sms = new \Wavecell\Sms();
    $response = $sms->sendSingleSms('+6289671000082', 'HELLO WORLD, YOU CAN READ THIS SMS?', 'AUTO', true);
    $body = (string)$response->getBody();
    $code = (int)$response->getStatusCode();
    echo $code . '<br/>';
    echo $content->status->code . '<br/>';
    echo $content->status->description. '<br/>';
    echo $content->umid. '<br/>';
    echo $content->encoding. '<br/>';
    echo $content->destination. '<br/>';
} catch (\Wavecell\HttpException $exception) {
    echo $exception->getMessage();
}
批量发送 SMS

通过批量发送 SMS(1 个请求发送多条 SMS)带有个性化的内容/属性。

使用此 API,每次请求最多可以发送 10,000 条 SMS

详细信息请见 发送 SMS - 多条

示例(抛出异常)

try {
    \Wavecell\Config::$timeZone = 'Asia/Jakarta';
    \Wavecell\Config::$country = 'ID';
    \Wavecell\Config::$resendInterval = 120;
    \Wavecell\Config::$otpCodeValidity = 600;
    \Wavecell\Config::$otpCodeLength = 6;
    \Wavecell\Config::$smsExpireInMinutes = 60;
    \Wavecell\Config::$subAccountId = 'YOUR_SUB_ACCOUNT_ID';
    \Wavecell\Config::$secretKey = 'YOUR_SECRET_KEY';
    \Wavecell\Config::$smsFrom = 'YOUR_APP_SETTING';

    $sms = new \Wavecell\Sms();
    $numbers = array('+6289680000000', '+6289680000001');
    $response = $sms->sendMultipleSms('HELLO WORLD, YOU CAN READ THIS SMS?', $numbers);
    $body = (string)$response->getBody();
    $code = (int)$response->getStatusCode();
    echo $code . '<br/>';
    echo $content->status->code . '<br/>';
    echo $content->status->description. '<br/>';
    echo $content->umid. '<br/>';
    echo $content->encoding. '<br/>';
    echo $content->destination. '<br/>';
} catch (\Wavecell\HttpException $exception) {
    echo $exception->getMessage();
}

示例(不抛出异常)

\Wavecell\Config::$timeZone = 'Asia/Jakarta';
\Wavecell\Config::$country = 'ID';
\Wavecell\Config::$resendInterval = 120;
\Wavecell\Config::$otpCodeValidity = 600;
\Wavecell\Config::$otpCodeLength = 6;
\Wavecell\Config::$smsExpireInMinutes = 60;
\Wavecell\Config::$subAccountId = 'YOUR_SUB_ACCOUNT_ID';
\Wavecell\Config::$secretKey = 'YOUR_SECRET_KEY';
\Wavecell\Config::$smsFrom = 'YOUR_APP_SETTING';

$sms = new \Wavecell\Sms();
$numbers = array('+6289680000000', '+6289680000001');
$response = $sms->sendMultipleSms('HELLO WORLD, YOU CAN READ THIS SMS?', $numbers, 'AUTO', false);
$body = (string)$response->getBody();
$code = (int)$response->getStatusCode();
if ($code === 400) {
    echo "BAD REQUEST";
} else if ($code === 401) {
    echo "Unauthorized ";
} else if ($code === 404) {
    echo "Not Found";
} else if ($code === 200) {
    $content = json_decode($body);
    echo $content->status->code . '<br/>';
    echo $content->status->description. '<br/>';
    echo $content->umid. '<br/>';
    echo $content->encoding. '<br/>';
    echo $content->destination. '<br/>';
}
发送 OTP SMS

详细信息请见 手机验证 - 代码生成

示例(抛出异常)

try {
    \Wavecell\Config::$timeZone = 'Asia/Jakarta';
    \Wavecell\Config::$country = 'ID';
    \Wavecell\Config::$resendInterval = 120;
    \Wavecell\Config::$otpCodeValidity = 600;
    \Wavecell\Config::$otpCodeLength = 6;
    \Wavecell\Config::$smsExpireInMinutes = 60;
    \Wavecell\Config::$subAccountId = 'YOUR_SUB_ACCOUNT_ID';
    \Wavecell\Config::$secretKey = 'YOUR_SECRET_KEY';
    \Wavecell\Config::$smsFrom = 'YOUR_APP_SETTING';

    $sms = new \Wavecell\Sms();
    $response = $sms->sendOtpSms('+6289680000000', true);
    $body = (string)$response->getBody();
    $code = (int)$response->getStatusCode();
    echo $content->resourceUri . '<br/>';
    echo $content->uid . '<br/>';
    echo $content->status . '<br/>';
    echo $content->attempt. '<br/>';
    echo $content->expiresAt. '<br/>';
    echo $content->nextSmsAfter. '<br/>';
} catch (\Wavecell\HttpException $exception) {
    echo $exception->getMessage();
}

示例(不抛出异常)

\Wavecell\Config::$timeZone = 'Asia/Jakarta';
\Wavecell\Config::$country = 'ID';
\Wavecell\Config::$resendInterval = 120;
\Wavecell\Config::$otpCodeValidity = 600;
\Wavecell\Config::$otpCodeLength = 6;
\Wavecell\Config::$smsExpireInMinutes = 60;
\Wavecell\Config::$subAccountId = 'YOUR_SUB_ACCOUNT_ID';
\Wavecell\Config::$secretKey = 'YOUR_SECRET_KEY';
\Wavecell\Config::$smsFrom = 'YOUR_APP_SETTING';

$sms = new \Wavecell\Sms();
$numbers = array('+6289680000000', '+6289680000001');
$response = $sms->sendOtpSms('+6289680000000', false);
$body = (string)$response->getBody();
$code = (int)$response->getStatusCode();
if ($code === 400) {
    echo "BAD REQUEST";
} else if ($code === 401) {
    echo "Unauthorized ";
} else if ($code === 404) {
    echo "Not Found";
} else if ($code === 200) {
    $content = json_decode($body);
    echo $content->resourceUri . '<br/>';
    echo $content->uid . '<br/>';
    echo $content->status . '<br/>';
    echo $content->attempt. '<br/>';
    echo $content->expiresAt. '<br/>';
    echo $content->nextSmsAfter. '<br/>';
}
验证 OTP

详细信息请见 手机验证 - 代码验证

示例(抛出异常)

try {
    \Wavecell\Config::$timeZone = 'Asia/Jakarta';
    \Wavecell\Config::$country = 'ID';
    \Wavecell\Config::$resendInterval = 120;
    \Wavecell\Config::$otpCodeValidity = 600;
    \Wavecell\Config::$otpCodeLength = 6;
    \Wavecell\Config::$smsExpireInMinutes = 60;
    \Wavecell\Config::$subAccountId = 'YOUR_SUB_ACCOUNT_ID';
    \Wavecell\Config::$secretKey = 'YOUR_SECRET_KEY';
    \Wavecell\Config::$smsFrom = 'YOUR_APP_SETTING';

    $sms = new \Wavecell\Sms();
    $response = $sms->verifyOtpSms('683cc08a-bf70-e911-8145-02d9baaa9e6f', '908273');
    $body = (string)$response->getBody();
    $code = (int)$response->getStatusCode();
    echo $content->resourceUri . '<br/>';
    echo $content->uid . '<br/>';
    echo $content->msisdn . '<br/>';
    echo $content->status . '<br/>';
    echo $content->attempt. '<br/>';
    echo $content->expiresAt. '<br/>';
} catch (\Wavecell\HttpException $exception) {
    echo $exception->getMessage();
}

示例(不抛出异常)

\Wavecell\Config::$timeZone = 'Asia/Jakarta';
\Wavecell\Config::$country = 'ID';
\Wavecell\Config::$resendInterval = 120;
\Wavecell\Config::$otpCodeValidity = 600;
\Wavecell\Config::$otpCodeLength = 6;
\Wavecell\Config::$smsExpireInMinutes = 60;
\Wavecell\Config::$subAccountId = 'YOUR_SUB_ACCOUNT_ID';
\Wavecell\Config::$secretKey = 'YOUR_SECRET_KEY';
\Wavecell\Config::$smsFrom = 'YOUR_APP_SETTING';

$sms = new \Wavecell\Sms();
$response = $sms->verifyOtpSms('683cc08a-bf70-e911-8145-02d9baaa9e6f', '908273', false);
$body = (string)$response->getBody();
$code = (int)$response->getStatusCode();
if ($code === 400) {
    echo "BAD REQUEST";
} else if ($code === 401) {
    echo "Unauthorized ";
} else if ($code === 404) {
    echo "Not Found";
} else if ($code === 200) {
    $content = json_decode($body);
    echo $content->resourceUri . '<br/>';
    echo $content->uid . '<br/>';
    echo $content->msisdn . '<br/>';
    echo $content->status . '<br/>';
    echo $content->attempt. '<br/>';
    echo $content->expiresAt. '<br/>';
}

测试

使用 Composer

composer run-script test:ci

使用 PHPUnit

vendor/bin/phpunit --verbose --coverage-text

许可协议

MIT 许可协议

版权所有 (c) 2019 odenktools

在此特此授予任何人免费获得本软件及其相关文档副本(“软件”)的权利,用于在不加限制的情况下处理软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件的副本,并允许向提供软件的个人授予此权利,但受以下条件约束:

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“原样”提供,不提供任何形式的保证,明示或暗示,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论此类索赔、损害或其他责任是基于合同、侵权或其他法律理论,是否与软件或软件的使用或任何其他交易有关。