dc/sms_link

Implementation of Link Mobility's Common Platform REST API over HTTP(S)

0.0.1 2016-09-19 13:50 UTC

This package is not auto-updated.

Last update: 2024-04-27 17:47:55 UTC


README

This library implements Link Mobility's SMS gateway using JSON over HTTP(s). For now, only the CPA and bulk SMS messages are supported.

Installation

composer require dc/sms_link

or in composer.json

"require": {
    "dc/sms_link": "master"
}

Sending messages

require_once "vendor/autoload.php";

$configuration = new \DC\SMS\Link\Configuration();
$configuration->username = "username";
$configuration->password = "password";
$configuration->platformId = "platformId";
$configuration->platformPartnerId = "platformPartnerId";
$gateway = new \DC\SMS\Link\Gateway($configuration);

$message = new \DC\SMS\TextMessage("message text", "<msisdn>");

$receipt = $gateway->sendMessage($message);

if ($receipt->wasEnqueued()) {
    echo "Enqueued";
} else {
    echo "Failed";
}

Processing delivery reports

Set up your delivery end point so you can receive delivery reports Link Mobility sends you. Here is an example:

// assuming you have $gateway from above example
$report = $gateway->parseDeliveryReport(file_get_contents('php://input'));

// by default, use the successful response for the gateway
$return = $report->getSuccessfullyProcessedResponse();
if ($report->isSuccess()) {
  if (!$db->markMessageReceived($report->getMessageIdentifier())) {
    // we somehow couldn't save the information, so notify the gateway
    $return = $report->getErrorInProcessingReport();
  }
}

// tell the gateway that we processed (or didn't process) the message
http_response_code($return->getHTTPResponseCode());
foreach ($return->getHeaders() as $key => $value) {
	header(sprintf("%s: %s", $key, $value));
}
echo $return->getContent();