OxySMS - plate-forme d'envoi de SMS depuis Internet
Présentation de l'API
OxySMS fournit un accès direct au coeur de sa plate-forme d'envoi de données mobiles et sa passerelle SMS internationale par l'intermédiaire d'une API (Interfaces de Programmation). L'API de la passerelle SMS OxySMS permet aux développeurs d'utiliser des compétences génériques pour le développement, l'intégration et l'utilisation des solutions mobiles. L'API OxySMS supporte le protocole HTTP. Des instructions simples rendent toutes les caractéristiques de l'offre OxySMS disponibles aux développeurs de programmes et aux groupes TI des sociétés pour le développement de programmes SMS et l'intégration dans les systèmes patrimoniaux. Des documents de spécifications d'intégration complets sont fournis. L'API OxySMS offre aussi une série de classes transporteurs, tel que FlashSMS et rapport sur le statut du SMS, ce qui vous permet de l'ajouter à tout programme existant que vous possédez.
L'api peut également utiliser des appels https pour sécuriser les appels.
L'API en détail
Code source
<?
/**
* Project: API
* Author: PIERRE Olivier <olivier [AT] oxeron [DOT] com>
* Date: 11/10/2005
* File: api_sms.class.php
* Version: 2.0
*/
class sms
{
var $server = "oxysms.com";
var $port = "80";
var $script_receive = "scripts/receive.php";
var $script_query = "scripts/query.php";
var $project_login = "demojeu";
var $project_password = "demojeu";
var $flash = 0;
/**
* Function to send a message to a multiple list of recipient
*/
function send($project_login="",$project_password="")
{
if (empty($project_login) || empty($project_password))
{
$project_login=$this->project_login;
$project_password=$this->project_password;
}
// Build and encode the URL.
$url = "http://".
$this->server.":".
$this->port."/".
$this->script_receive.
"?project_login=".urlencode($project_login).
"&project_password=".urlencode($project_password).
"&from=".urlencode($this->from).
"&to=".urlencode($this->to).
"&flash=".urlencode($this->flash).
"&text=".urlencode($this->text);
// Make the HTTP call whithout displaying the result to prevent errors
ob_start();
$result = @readfile($url);
$data = ob_get_contents();
ob_end_clean();
// error connecting to the server
if ($result===FALSE)
return -1;
// explode the result with "\n" for each message
// (multiple recipients or cut message)
$sms_list=explode("\n",$data);
$return=array();
foreach($sms_list as $k => $sms)
{
if (trim($sms)!="")
{
// then explode with "-" :
$sms_info=explode("-",$sms);
// remove spaces
foreach($sms_info as $k2 => $info)
{
$sms_info[$k2]=trim($sms_info[$k2]);
}
array_push($return,$sms_info);
}
}
return $return;
}
/**
* Function to query
*/
function query($project_login="",$project_password="",$action="")
{
if (empty($project_login) || empty($project_password))
{
$project_login=$this->project_login;
$project_password=$this->project_password;
}
// Build and encode the URL.
$url = "http://".
$this->server.":".
$this->port."/".
$this->script_query.
"?project_login=".urlencode($project_login).
"&project_password=".urlencode($project_password).
"&action=".urlencode($action);
// Make the HTTP call whithout displaying the result to prevent errors
ob_start();
$result = @readfile($url);
$data = ob_get_contents();
ob_end_clean();
// error connecting to the server
if ($result===FALSE)
return -1;
$sms_list=explode("\n",$data);
$return=array();
foreach($sms_list as $k => $sms)
{
if (trim($sms)!="")
{
// then explode with "-" :
$sms_info=explode("-",$sms);
// remove spaces
foreach($sms_info as $k2 => $info)
{
$sms_info[$k2]=trim($sms_info[$k2]);
}
array_push($return,$sms_info);
}
}
return $return;
}
}
?>
Télécharger le fichier
Exemple d'utilisation
<?php
include "api_sms.class.php";
$sms = new sms;
$sms->from="oxeron";
$sms->to="+352243433,+334343242,+34534545";
$sms->flash=1;
$sms->text="Lorem ipsum dolor sit amet, consectetuer adipiscing elit.";
$sms->send("login","password");
?>
Fonctions send() et codes de retour
Exemple de retour pour un message envoyé à deux destinataires :
00 - message enregistre - dd188544157ad6b6ed796089fc534501
Le message a été correctement reçu par la plate-forme, dd188544157ad6b6ed796089fc534501 est l'ID du message sur la plate-forme01 - champ project_login non alphanumerique
Le champ project_login n'a pas été renseigné ou ne correspond pas au format chiffres/lettres, au moins 1 caractère02 - champ project_password non alphanumerique
Le champ project_password n'a pas été renseigné ou ne correspond pas au format chiffres/lettres, au moins 1 caractère03 - champ to non conforme
Le champ to doit commencer par + et que des chiffres (extension - numero de telephone)04 - champ from non alphanumerique
L'OADC doit être composé de chiffres et lettres et des cartactères . et _ (peut être vide)05 - champ text non conforme
Le contenu du message n'est pas de type string06 - IP xxx.xxx.xxx.xxx non autorisee
L'adresse IP du serveur qui essaie d'envoyer un SMS n'a pas été autorisé à le faire par un administrateur. Contactez un responsable en précisant l'adresse IP de votre serveur07 - projet non actif
Le projet a été désactivé08 - message trop long, non envoye
Le message que vous avez envoyé est trop long, il n'a pas été envoyé09 - message trop long, coupe en xxx messages - dd188544157ad6b6ed796089fc534501
Le message que vous avez envoyé est trop long, il a été segmenté en xxx messages différents10 - message trop long, tronque - dd188544157ad6b6ed796089fc534501
Le message que vous avez envoyé est trop long, il a été tronqué11 - login/password incorrect
Le couple project_login/project_password est incorrect12 - projet non enregistre
Le couple project_login/project_password ne correspond pas à un projet valide13 - erreur d'insertion
Il y a eu une erreur sur la plate-forme14 - message flash non autorise
Vous avez tenté d'envoyer un message Flash mais vous n'êtes pas autorisé à le faire15 - parametre from(aodc) non autorise
Vous avez tenté d'envoyer un message en modifiant l'OADC mais vous n'êtes pas autorisé à le faire16 - Erreur SQL
Il y a eu une erreur sur la plate-forme17 - aucune route trouvee
Vous tentez d'envoyer un message à un destinataire ne se trouvant pas dans la liste des pays autorisés20 - plus assez de credit sur votre compte prepaye
Votre compte ne contient plus assez de crédits pour envoyer le message. Contactez un responsable21 - champ from trop long
Le champ from ne doit pas exceder 11 caractères alphanumériques ou 15 chiffres. Si vous tentez d'envoyer un message avec 12 caractères alphanumériques, il sera tronqué à 11.Fonctions query() et codes de retour
$action = "stat_prepaid"
110 - xxxx
Renvoie les crédits disponibles sur le compte
$action = "pays"
119 - lu/be/fr
Renvoie la liste des pays autorisés pour le comptePour ouvrir un compte ou consulter les tarifs, contactez nous par email en cliquant ici


