valinteca-test/localization

valinteca 测试本地化

1.0.4 2024-05-06 23:17 UTC

This package is auto-updated.

Last update: 2024-09-07 00:02:12 UTC


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(truefalse,默认为 false

    2- msgEncoding: (UTF8windows-1256,默认为 UTF8

    3- reqFilter: 过滤重复号码(truefalse,默认为 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"
    }
}