valinteca-test / localization
valinteca 测试本地化
1.0.4
2024-05-06 23:17 UTC
Requires
- php: ^8.0
Requires (Dev)
- orchestra/testbench: 8.x-dev
README
Valinteca 的一个 composer 包,用于简化与 Laravel 应用程序 本地化 平台的集成。
功能
- 发送短信消息
- 发送个性化消息
- 发送并验证 OTP 码
- 管理发送者
- 消息成本计算
- 余额查询
安装
composer require valinteca/Localization
发布配置
php artisan vendor:publish --provider="Valinteca\Localization\LocalizationServiceProvider"
这将发布配置文件到 config/Localization.php
然后添加以下键到 .env 文件中
Localization_USERNAME="VALUE_HERE" # From your Localization subscription
Localization_API_KEY="VALUE_HERE" # From your Localization subscription
Localization_SENDER_NAME="VALUE_HERE" # Custom sender name
Localization_LANG="VALUE_HERE" # Language ("En" or "Ar")
用法
use Valinteca\Localization\Facades\Localization;
发送消息
to: 接受号码或号码数组
at: 接受发送时间,格式为 "Y-m-d H:i:s" 或 Carbon 实例
message: 接受消息文本
send: 执行操作并返回响应
示例
- 使用默认设置
Localization::to('05xxxxxxxx') ->message('hello world') ->send();
- 自定义发送者
使用 sender 方法来指定自定义发送者名称。如果您没有使用此方法,则将使用配置/环境中的默认发送者名称。
Localization::sender('another sender') ->to('05xxxxxxxx') ->message('hello world') ->send();
- 多个号码
将数组传递给 to 方法。
Localization::to(['05xxxxxxxx', '05xxxxxxxx']) ->message('hello world') ->send();
- 在以后的时间
将日期时间传递给 at 方法。
// Using string datetime format Localization::to('05xxxxxxxx', '05xxxxxxxx') ->message('hello world') ->at('2023-05-01 20:10:05') ->send(); // Using carbon instance Localization::to('05xxxxxxxx', '05xxxxxxxx') ->message('hello world') ->at(now()->addMinutes(5)) ->send();
-
自定义选项
将选项传递给 options 方法。可用选项包括:1- reqBulkId: 获取批处理消息 ID(true 或 false,默认为 false)
2- msgEncoding: (UTF8 或 windows-1256,默认为 UTF8)
3- reqFilter: 过滤重复号码(true 或 false,默认为 true)
Localization::to('05xxxxxxxx') ->options([ 'reqBulkId' => true, 'msgEncoding' => 'windows-1256', 'reqFilter' => false, ]) ->message('hello world') ->send();
发送个性化消息
个性化消息是包含不同 SMS 内容的短信。要发送个性化消息,请使用 sendPersonalized 方法,并为每个号码传递变量数组。
消息体应包含消息体,包括应在大括号 {} 之间的变量。
Localization::to(['05xxxxxxxx', '05yyyyyyyy']) ->message('Hello {name}. Your order {order} will be delivered soon') ->sendPersonalized([ ['name' => 'Mohammed', 'order' => '123'], ['name' => 'Ahmed', 'order' => '456'], ]); // Messages: // 05xxxxxxxx: "Hello Mohammed. Your order 123 will be delivered soon" // 05yyyyyyyy: "Hello Ahmed. Your order 456 will be delivered soon"
发送测试消息
您可以为免费测试 Localization API。您每天都会收到免费短信。要测试服务,您可以使用 sendTestMessage 方法发送短信。
此方法使用预定义的发送者名称和消息文本,因此您只需定义号码即可。
Localization::to('05xxxxxxxx') ->sendTestMessage();
余额查询
要查询您的余额,请使用 getBalance 方法
Localization::getBalance();
获取消息
要获取批处理 ID 的消息,请使用 forbulkId 方法与 getMessages 结合使用。结果是分页的,默认返回第一页。
Localization::forBulkId('bulk-id-returned-from-send-method') ->getMessages();
要定义页码,请使用 page 方法
Localization::forBulkId('bulk-id-returned-from-send-method') ->page(2) ->getMessages();
要定义限制,请使用 limit 方法
Localization::forBulkId('bulk-id-returned-from-send-method') ->page(1) ->limit(5) ->getMessages();
计算消息成本
Localization::to(['05xxxxxxxx', '05yyyyyyyy']) ->message('this is message') ->calculateCost();
响应
{ "success": true, "data": { "cost": "3,9" } }
获取用户余额
Localization::getBalance();
响应
{ "success": true, "data": { "balance": "3042.00" } }