dc/sms_pswincom

Implementation of PSWinCom's XML API over HTTP(S)

0.1.7 2015-04-15 06:41 UTC

This package is not auto-updated.

Last update: 2024-12-13 22:58:49 UTC


README

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

Installation

composer require dc/sms_pswincom

or in composer.json

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

Sending messages

require_once "vendor/autoload.php";

$configuration = new \DC\SMS\PSWinCom\Configuration();
$configuration->username = "username";
$configuration->password = "password";
$gateway = new \DC\SMS\PSWinCom\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 the XML data PSWinCom 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();