erdemkeren/jet-sms-php

JetSMS API 的 PHP 客户端库

1.2.0 2018-02-28 19:49 UTC

This package is auto-updated.

Last update: 2024-09-22 02:43:52 UTC


README

Latest Version on Packagist Software License Build Status StyleCI Scrutinizer Code Quality Code Coverage Total Downloads

此包提供了一个易于使用的 JetSMS 服务,可用于 XML 和 Http API。

此包,既适用于 XML 也适用于 Http API 的 JetSMS 服务。

土耳其语版本请参阅: BENIOKU

内容

安装

您可以通过 composer 安装此包

composer require erdemkeren/jet-sms-php

设置 JetSMS 服务

您需要注册 JetSMS 以使用此渠道。

用法

首先,使用您的客户端实现启动 JetSmsService。

  • JetSmsXmlClient
  • JetSmsHttpClient(这实际上是一个类似 Rest 的客户端,但供应商这样命名他们的 API。)
require __DIR__ . '/../vendor/autoload.php';

use Erdemkeren\JetSms\JetSmsService;
use Erdemkeren\JetSms\JetSmsService;
use Erdemkeren\JetSms\ShortMessageFactory;
use Erdemkeren\JetSms\Http\Clients\JetSmsXmlClient;
use Erdemkeren\JetSms\Http\Clients\JetSmsHttpClient;
use Erdemkeren\JetSms\ShortMessageCollectionFactory;

$service = new JetSmsService(new JetSmsXmlClient(
    'www.biotekno.biz:8080/SMS-Web/xmlsms',
    'username',
    'password',
    'outboxname'
), new ShortMessageFactory(), new ShortMessageCollectionFactory());

// ya da

$service = new JetSmsService(new JetSmsHttpClient(
    new GuzzleHttp\Client(),
    'https://service.jetsms.com.tr/SMS-Web/HttpSmsSend',
    'username',
    'password',
    'outboxname'
), new ShortMessageFactory(), new ShortMessageCollectionFactory());

可用方法

成功启动您的 JetSmsService 实例后;使用以下方法之一发送短信消息。

一条消息 - 单个或多个收件人

$response = $service->sendShortMessage(['5530000000', '5420000000'], 'This is a test message.');

if($response->isSuccessful()) {
    // storeGroupIdForLaterReference is not included in the package.
    storeGroupIdForLaterReference($response->groupId());
} else {
    var_dump($response->message());
    var_dump($response->statusCode());
    var_dump($response->status());
}

多条消息 - 多个收件人

请注意,如果您使用该方法,每条消息应只有一个收件人。(这也是 API 限制,我没有破解。)

$response2 = $service->sendShortMessages([[
    'recipient' => '5530000000',
    'message' => 'This is a test.',
], [
    'recipient' => '5420000000',
    'message' => 'This is another test.',
]]);

if($response2->isSuccessful()) {
    // storeGroupIdForLaterReference is not included in the package.
    storeGroupIdForLaterReference($response2->groupId());
} else {
    var_dump($response2->message());
    var_dump($response2->statusCode());
    var_dump($response2->status());
}

交叉引用

$response->groupId() 如果客户端是 JetSmsHttpClient,则会抛出 BadMethodCallException。$response->messageReportIdentifiers() 如果客户端是 JetSmsXmlClient,则会抛出 BadMethodCallException。

谨慎更改客户端实现。

变更日志

有关最近更改的更多信息,请参阅 CHANGELOG

测试

$ composer test

安全性

如果您发现任何安全相关的问题,请通过电子邮件 erdemkeren@gmail.com 而不是使用问题跟踪器。

贡献

有关详细信息,请参阅 CONTRIBUTING

致谢

许可证

MIT 许可证(MIT)。有关更多信息,请参阅 许可证文件