odenktools / wavecell-php
Wavecell SMS 的 Restful PHP 库
1.0.1
2019-05-09 15:33 UTC
Requires
- php: >=5.4
- ext-curl: *
- ext-json: *
- guzzlehttp/guzzle: ^5.0|^6.0
- nesbot/carbon: ~1.18
- paragonie/random_compat: ^2.0
Requires (Dev)
- phpunit/phpunit: ^4.8.35 || ^5.7 || ^6.4 || ^7.0
This package is auto-updated.
Last update: 2024-09-10 02:49:38 UTC
README
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
在此特此授予任何人免费获得本软件及其相关文档副本(“软件”)的权利,用于在不加限制的情况下处理软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件的副本,并允许向提供软件的个人授予此权利,但受以下条件约束:
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,不提供任何形式的保证,明示或暗示,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论此类索赔、损害或其他责任是基于合同、侵权或其他法律理论,是否与软件或软件的使用或任何其他交易有关。