coreproc/chikka-api-sdk

该包已废弃,不再维护。未建议替代包。
此包的最新版本(0.1.4)没有可用的许可信息。

Coreproc SDK Chikka

0.1.4 2016-11-26 14:08 UTC

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.*

使用方法

发送短信

发送短信的基本步骤可以总结为四个步骤

  1. 使用您的凭据和简码实例化一个ChikkaClient对象。
  2. 使用您希望发送的消息实例化一个Sms对象。
  3. 使用您刚刚创建的ChikkaClientSms对象实例化一个SmsTransporter
  4. 使用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接口有四个显著的方法

  1. onStart()方法在发送短信开始时被调用

  2. onInvalid()方法在发送的短信无效时被调用。这通常意味着您的某个参数不正确,并导致Chikka服务器返回400响应代码。您可以在该方法中根据需要处理您的短信。传递给这里的Exception对象包含响应的代码和消息,您可以通过使用$exception->getCode()$exception->getMessage()分别获取它们。

  3. onError()方法在遇到服务器异常时被调用。这通常意味着Chikka服务器返回了500级别的响应,并且您的短信没有被成功传输到任何地方。如果发生这种情况,您可能需要再次尝试发送您的短信。

  4. 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类的参考。