coreproc / chikka-api-sdk
Coreproc SDK Chikka
Requires
- coreproc/msisdn-ph: 1.1.*
- guzzlehttp/guzzle: ~6.0
- nesbot/carbon: ~1.14
- psr/log: ~1.0.0
- vlucas/valitron: ~1.2
Requires (Dev)
- katzgrau/klogger: dev-master
- symfony/var-dumper: ^3.0@dev
This package is auto-updated.
Last update: 2020-09-11 22:12:17 UTC
README
一个用于与Chikka API交互以发送和接收短信的PHP库。
注意:这不是Chikka的官方库
安装
在您的项目根目录下运行以下命令(假设您已安装Composer并且已存在composer.json文件)
composer require coreproc/chikka-api-sdk 0.1.*
使用方法
发送短信
发送短信的基本步骤可以总结为四个步骤
- 使用您的凭据和简码实例化一个
ChikkaClient
对象。 - 使用您希望发送的消息实例化一个
Sms
对象。 - 使用您刚刚创建的
ChikkaClient
和Sms
对象实例化一个SmsTransporter
。 - 使用
SmsTransporter
发送
以下是一个示例
<?php require 'vendor/autoload.php'; use Coreproc\Chikka\ChikkaClient; use Coreproc\Chikka\Models\Sms; use Coreproc\Chikka\Transporters\SmsTransporter; $chikkaClient = new ChikkaClient('your-chikka-client-id', 'your-chikka-secret-key', 'your-chikka-shortcode'); $sms = new Sms('unique-message-id', 'mobile-number', 'your-message-here'); $smsTransporter = new SmsTransporter($chikkaClient, $sms); $response = $smsTransporter->send(); print_r($response);
确定短信的响应
SmsTransporter
类的send()
方法返回一个包含Chikka服务器响应的对象。以下是一个成功的响应示例
stdClass Object
(
[status] => 200
[message] => ACCEPTED
)
以下是一个错误响应示例
stdClass Object
(
[status] => 400
[message] => BAD REQUEST
[description] => Inactive/Invalid Shortcode
)
然而,从这个角度来看确定SMS API的响应会导致过时的代码库,这最好由一个单独的类来处理。
您可以将SmsTransporterActionsContract
实现到一个类中,以处理响应。以下是一个实现SmsTransporterActionsContract
的示例类
<?php namespace Vendor\PackageName; use Coreproc\Chikka\Contracts\SmsContract; use Coreproc\Chikka\Contracts\SmsTransporterActionsContract; use Exception; class SampleSmsTransporterActions implements SmsTransporterActionsContract { public function __construct(ChikkaClient $chikkaClient, SmsContract $sms) { // TODO: Implement __construct() method. } public function onStart() { // TODO: Implement onStart() method. } public function onInvalid(Exception $exception) { // TODO: Implement onInvalid() method. } public function onError(Exception $exception) { // TODO: Implement onError() method. } public function onSuccess() { // TODO: Implement onSuccess() method. } }
SmsTransporterActionsContract
接口有四个显著的方法
-
onStart()
方法在发送短信开始时被调用 -
onInvalid()
方法在发送的短信无效时被调用。这通常意味着您的某个参数不正确,并导致Chikka服务器返回400响应代码。您可以在该方法中根据需要处理您的短信。传递给这里的Exception
对象包含响应的代码和消息,您可以通过使用$exception->getCode()
和$exception->getMessage()
分别获取它们。 -
onError()
方法在遇到服务器异常时被调用。这通常意味着Chikka服务器返回了500级别的响应,并且您的短信没有被成功传输到任何地方。如果发生这种情况,您可能需要再次尝试发送您的短信。 -
onSuccess()
方法在短信被Chikka服务器成功接受时被调用。
要使用此SampleSmsTransporterActions
类发送短信,只需将其作为send()
方法的第一个参数包含即可。以下是一个示例
$chikkaClient = new ChikkaClient('your-chikka-client-id', 'your-chikka-secret-key', 'your-chikka-shortcode'); $sms = new Sms('unique-message-id', 'mobile-number', 'your-message-here'); $smsTransporter = new SmsTransporter($chikkaClient, $sms); $sampleSmsTransporterActions = new SampleSmsTransporterActions($chikkaClient, $sms); $response = $smsTransporter->send($sampleSmsTransporterActions);
注意:当使用不带SmsTransporterActionsContract类的send()
方法时,默认使用的类是Coreproc\Chikka\Transporters\SmsTransporterActions
。您可以使用该类作为创建自己的SmsTransporterActionsContract类的参考。