{
"etat":{
"etat":[
{
"code":"21",
"tel":"0600208432",
"message":"Le numéro de téléphone n'est pas attribué!"
},
{
"code":"11",
"tel":"0771058335",
"message":"Le numéro de téléphone est dans la liste noire!"
},
{
"code":"0",
"tel":"0695208432",
"message":"Votre message a bien ete envoye"v
}
]
}
}
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/sms' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"num": "33601020304",
"sms": "Bonjour! Bienvenue sur iSendPro!",
"emetteur": "isendpro"
}'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://apirest.isendpro.com/cgi-bin/sms';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'num' => '33601020304',
'sms' => 'Bonjour! Bienvenue sur iSendPro!',
'emetteur' => 'isendpro'
);
$params = json_encode($params);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
echo $response;
curl_close($ch);
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$reponsejson=json_decode($response);
$repetat=$reponsejson->etat->etat;
if (!isset($repetat->code)){
$repetat=$reponsejson->etat->etat[0];
}
// Erreur generale
if (!isset($repetat->tel)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
// Erreur specifique au numero de telephone
}else if (isset($repetat->tel) && ($repetat->code!=0)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
echo 'Tel: '.$repetat->tel;
// Envoi OK
}else if (isset($repetat->tel) && ($repetat->code==0)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
echo 'Tel: '.$repetat->tel;
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
url = 'https://apirest.isendpro.com/cgi-bin/sms'
params = {
'keyid': 'a296464ce012b8ab710a',
'num': '33601020304',
'sms': 'Bonjour! Bienvenue sur iSendPro!',
'emetteur': 'isendpro'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Traitement du retour
####################################################################################
reponsejson=response.json()
repetat=reponsejson['etat']
if not repetat.has_key('code'):
try:
repetat=reponsejson['etat']['etat'][0]
except:
repetat=reponsejson['etat']['etat']
# Erreur generale
if not repetat.has_key('tel'):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Erreur specifique au numero de telephone
elif repetat.has_key('tel') and repetat['code']!=0:
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
print 'Tel: '+repetat['tel']
# Envoi OK
elif repetat.has_key('tel') and repetat['code']==0:
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
print 'Tel: '+repetat['tel']
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://apirest.isendpro.com/cgi-bin/sms";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("num", "33601020304");
paramsTablo.put("sms", "Bonjour! Bienvenue sur iSendPro!");
paramsTablo.put("emetteur", "isendpro");
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
Map reponsejson = new Gson().fromJson(content.toString(), Map.class);
Map repetat = (Map)reponsejson.get("etat");
if (! repetat.containsKey("code")){
try{
repetat=(Map)reponsejson.get("etat");
var repetatArray=((ArrayList)(repetat.get("etat"))).get(0);
repetat=(Map)(repetatArray);
}catch(Exception e) {
repetat=(Map)reponsejson.get("etat");
repetat=(Map)repetat.get("etat");
}
}
// Erreur generale
if (! repetat.containsKey("tel")){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
// Erreur specifique au numero de telephone
}else if(repetat.containsKey("tel") && repetat.get("code")!="0"){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
System.out.println("Tel: "+repetat.get("tel"));
// Envoi OK
}else if(repetat.containsKey("tel") && repetat.get("code")=="0"){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
System.out.println("Tel: "+repetat.get("tel"));
}
} finally {
con.disconnect();
}
}
}
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/sms' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"num": "33601020304",
"sms": "Bonjour! Bienvenue sur iSendPro! 🙂",
"ucs2": "1"
}'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://apirest.isendpro.com/cgi-bin/sms';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'num' => '33601020304',
'sms' => 'Bonjour! Bienvenue sur iSendPro! 🙂',
'ucs2' => '1'
);
$params = json_encode($params);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
echo $response;
curl_close($ch);
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$reponsejson=json_decode($response);
$repetat=$reponsejson->etat->etat;
if (!isset($repetat->code)){
$repetat=$reponsejson->etat->etat[0];
}
// Erreur generale
if (!isset($repetat->tel)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
// Erreur specifique au numero de telephone
}else if (isset($repetat->tel) && ($repetat->code!=0)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
echo 'Tel: '.$repetat->tel;
// Envoi OK
}else if (isset($repetat->tel) && ($repetat->code==0)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
echo 'Tel: '.$repetat->tel;
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
url = 'https://apirest.isendpro.com/cgi-bin/sms'
params = {
'keyid': 'a296464ce012b8ab710a',
'num': '33601020304',
'sms': 'Bonjour! Bienvenue sur iSendPro! 🙂',
'ucs2': '1'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Traitement du retour
####################################################################################
reponsejson=response.json()
repetat=reponsejson['etat']
if not repetat.has_key('code'):
try:
repetat=reponsejson['etat']['etat'][0]
except:
repetat=reponsejson['etat']['etat']
# Erreur generale
if not repetat.has_key('tel'):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Erreur specifique au numero de telephone
elif repetat.has_key('tel') and repetat['code']!=0:
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
print 'Tel: '+repetat['tel']
# Envoi OK
elif repetat.has_key('tel') and repetat['code']==0:
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
print 'Tel: '+repetat['tel']
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://apirest.isendpro.com/cgi-bin/sms";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("num", "33601020304");
paramsTablo.put("sms", "Bonjour! Bienvenue sur iSendPro! 🙂");
paramsTablo.put("ucs2", "1");
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
Map reponsejson = new Gson().fromJson(content.toString(), Map.class);
Map repetat = (Map)reponsejson.get("etat");
if (! repetat.containsKey("code")){
try{
repetat=(Map)reponsejson.get("etat");
var repetatArray=((ArrayList)(repetat.get("etat"))).get(0);
repetat=(Map)(repetatArray);
}catch(Exception e) {
repetat=(Map)reponsejson.get("etat");
repetat=(Map)repetat.get("etat");
}
}
// Erreur generale
if (! repetat.containsKey("tel")){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
// Erreur specifique au numero de telephone
}else if(repetat.containsKey("tel") && repetat.get("code")!="0"){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
System.out.println("Tel: "+repetat.get("tel"));
// Envoi OK
}else if(repetat.containsKey("tel") && repetat.get("code")=="0"){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
System.out.println("Tel: "+repetat.get("tel"));
}
} finally {
con.disconnect();
}
}
}
https://apirest.isendpro.com/cgi-bin/sms
Paramètre | Type | Obligatoire | Détails | |||||||||||||||||||||
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
|||||||||||||||||||||
num | String | Oui |
Numéro de téléphone du destinataire Au format international sans le + Ex: 33601020304 |
|||||||||||||||||||||
sms | String | Oui |
Message envoyé au destinataire 1 SMS peut contenir jusqu'à 160 caractères Possibilité d'envoyer des messages plus long (jusqu'à 6 SMS concaténés) pour un total de 918 caractères (6 x 153) (7 caractères étant réserves pour des entêtes techniques) Le cout unitaire sera alors multiplié par le nombre de SMS correspondants Cf Argument smslong |
|||||||||||||||||||||
emetteur | String | Non |
Emetteur du message Par défaut, un numéro court sur 5 chiffres Ex: 36007 Contraintes:
|
|||||||||||||||||||||
tracker | String | Non |
Généré par le client Renvoyé en paramètre des urls pour les retours des accusés de réception et les retours des sms réponses Longueur max de 50 caractères Ex: order-ab78pq9 |
|||||||||||||||||||||
smslong | Number | Non |
Argument indiquant le nombre de SMS concaténés Si le nombre de SMS exact est connu alors indiquer ce nombre Si le nombre calculé par l'API diffère alors un message d'erreur sera retourné (code 32) Pour éviter ce controle et autoriser les messages sur plus de 1 SMS, utiliser la valeur 999
|
|||||||||||||||||||||
nostop | Number | Non |
Argument pour ne pas afficher automatiquement la mention STOP SMS en fin de message Utiliser la valeur 1 |
|||||||||||||||||||||
date_envoi |
Date au format YYYY-MM-DD hh:mm |
Non | Date à laquelle le message sera envoyé | |||||||||||||||||||||
gmt_zone | Fuseau horaire | Non |
A renseigner, en cas d'envoi différé sur un autre fuseau horaire que celui par défaut (GMT+1 Europe/Brussels) Ex: Pour un envoi vers des destinataires en Argentine à l'horaire local et non celui de la France, la valeur de l'argument gmt_zone serait America/Havana |
|||||||||||||||||||||
ucs2 | Number | Non |
Permet l'utilisation de caractères en alphabet non latin (russe, chinois, arabe, etc) et/ou avec des émojis Contraintes:
|
|||||||||||||||||||||
numAzur | Number | Non |
Dans le cadre d'une utilisation combinée entre SMS Azur et l'API, il est possible de forcer le numéro d'expéditeur à être le même que celui utilisé sur SMS Azur Utiliser la valeur 1 |
|||||||||||||||||||||
domtom | Number | Non |
Les envois vers les préfixes opérateurs à destination des DOM TOM (ou DROM-COM) sans l'indicatif pays associé (ex: +262 pour La Réunion) seront acceptés par l'API mais ne pourront etre délivrés Pour forcer leur traitement au tarif en vigueur, utiliser la valeur 1 |
|||||||||||||||||||||
sandbox | Number | Non |
Activation du mode "bac à sable" Ce champ permet de ne pas envoyer réellement les SMS lors de la requête Les envois ne sont pas facturés Utiliser la valeur 1 |
Paramètre | Type | Détails |
code | Number | Code correspondant au tableau des erreurs |
tel | String | Numéro de téléphone associé au code retour |
message | String | Libellé correspondant au tableau des erreurs |
sandbox | Number |
Si 'sandbox' était dans les paramètres d'appels alors sa valeur est 1 Sinon le paramètre n'est pas affiché du tout |
{
"etat":{
"etat":[
{
"code": "0",
"tel": "0680010203",
"message": "Votre message a bien été envoyé"
}
]
}
}
{
"etat":{
"etat":[
{
"code": "6",
"message": "Vous devez saisir un numéro de téléphone"
}
]
}
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/sms' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"num": "33601020304",
"sms": "Bonjour! Bienvenue sur iSendPro!",
"emetteur": "isendpro"
}'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://apirest.isendpro.com/cgi-bin/sms';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'num' => '33601020304',
'sms' => 'Bonjour! Bienvenue sur iSendPro!',
'emetteur' => 'isendpro'
);
$params = json_encode($params);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
echo $response;
curl_close($ch);
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$reponsejson=json_decode($response);
$repetat=$reponsejson->etat->etat;
if (!isset($repetat->code)){
$repetat=$reponsejson->etat->etat[0];
}
// Erreur generale
if (!isset($repetat->tel)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
// Erreur specifique au numero de telephone
}else if (isset($repetat->tel) && ($repetat->code!=0)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
echo 'Tel: '.$repetat->tel;
// Envoi OK
}else if (isset($repetat->tel) && ($repetat->code==0)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
echo 'Tel: '.$repetat->tel;
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
url = 'https://apirest.isendpro.com/cgi-bin/sms'
params = {
'keyid': 'a296464ce012b8ab710a',
'num': '33601020304',
'sms': 'Bonjour! Bienvenue sur iSendPro!',
'emetteur': 'isendpro'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Traitement du retour
####################################################################################
reponsejson=response.json()
repetat=reponsejson['etat']
if not repetat.has_key('code'):
try:
repetat=reponsejson['etat']['etat'][0]
except:
repetat=reponsejson['etat']['etat']
# Erreur generale
if not repetat.has_key('tel'):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Erreur specifique au numero de telephone
elif repetat.has_key('tel') and repetat['code']!=0:
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
print 'Tel: '+repetat['tel']
# Envoi OK
elif repetat.has_key('tel') and repetat['code']==0:
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
print 'Tel: '+repetat['tel']
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://apirest.isendpro.com/cgi-bin/sms";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("num", "33601020304");
paramsTablo.put("sms", "Bonjour! Bienvenue sur iSendPro!");
paramsTablo.put("emetteur", "isendpro");
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
Map reponsejson = new Gson().fromJson(content.toString(), Map.class);
Map repetat = (Map)reponsejson.get("etat");
if (! repetat.containsKey("code")){
try{
repetat=(Map)reponsejson.get("etat");
var repetatArray=((ArrayList)(repetat.get("etat"))).get(0);
repetat=(Map)(repetatArray);
}catch(Exception e) {
repetat=(Map)reponsejson.get("etat");
repetat=(Map)repetat.get("etat");
}
}
// Erreur generale
if (! repetat.containsKey("tel")){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
// Erreur specifique au numero de telephone
}else if(repetat.containsKey("tel") && repetat.get("code")!="0"){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
System.out.println("Tel: "+repetat.get("tel"));
// Envoi OK
}else if(repetat.containsKey("tel") && repetat.get("code")=="0"){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
System.out.println("Tel: "+repetat.get("tel"));
}
} finally {
con.disconnect();
}
}
}
https://apirest.isendpro.com/cgi-bin/smsmulti
Paramètre | Type | Obligatoire | Détails | |||||||||||||||||||||
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
|||||||||||||||||||||
num | Array | Oui |
Liste des numéros de téléphone du destinataire Au format international sans le + Ex: [ "33601020304", "33601020305", "33601020306" ] |
|||||||||||||||||||||
sms | String | Oui |
Message envoyé au destinataire 1 SMS peut contenir jusqu'à 160 caractères Possibilité d'envoyer des messages plus long (jusqu'à 6 SMS concaténés) pour un total de 918 caractères (6 x 153) (7 caractères étant réserves pour des entêtes techniques) Le cout unitaire sera alors multiplié par le nombre de SMS correspondants Cf Argument smslong Un message différent peut etre fourni pour chaque destinataire. Pour cela, il faut fournir une liste de message où chaque message devra etre à la meme position dans la liste que le destinataire |
|||||||||||||||||||||
emetteur | String | Non |
Emetteur du message Par défaut, un numéro court sur 5 chiffres Ex: 36007 Contraintes:
|
|||||||||||||||||||||
tracker | String | Non |
Généré par le client Renvoyé en paramètre des urls pour les retours des accusés de réception et les retours des sms réponses Longueur max de 50 caractères Ex: order-ab78pq9 Un tracker différent peut etre fourni pour chaque destinataire. Pour cela, il faut fournir une liste de tracker où chaque tracker devra etre à la meme position dans la liste que le destinataire |
|||||||||||||||||||||
smslong | Number | Non |
Argument indiquant le nombre de SMS concaténés Si le nombre de SMS exactes est connu alors indiquer ce nombre Si le nombre calculé par l'API diffère alors un message d'erreur sera retourné (code 32) Pour éviter ce controle et autoriser les messages sur plus de 1 SMS, utiliser la valeur 999
|
|||||||||||||||||||||
nostop | Number | Non |
Argument pour ne pas afficher automatiquement la mention STOP SMS en fin de message Utiliser la valeur 1 |
|||||||||||||||||||||
date_envoi |
Date au format YYYY-MM-DD hh:mm |
Non |
Date à laquelle le message sera envoyé Envoi immédiat si non renseigné |
|||||||||||||||||||||
gmt_zone | Fuseau horaire | Non |
A renseigner, en cas d'envoi différé sur un autre fuseau horaire que celui par défaut (GMT+1 Europe/Brussels) Ex: Pour un envoi vers des destinataires en Argentine à l'horaire local et non celui de la France, la valeur de l'argument gmt_zone serait America/Havana |
|||||||||||||||||||||
ucs2 | Number | Non |
Permet l'utilisation de caractères en alphabet non latin (russe, chinois, arabe, etc) et/ou avec des émojis Contraintes:
|
|||||||||||||||||||||
numAzur | Number | Non |
Dans le cadre d'une utilisation combinée entre SMS Azur et l'API, il est possible de forcer le numéro d'expéditeur à être le même que celui utilisé sur SMS Azur Utiliser la valeur 1 |
|||||||||||||||||||||
domtom | Number | Non |
Les envois vers les préfixes opérateurs à destination des DOM TOM (ou DROM-COM) sans l'indicatif pays associé (ex: +262 pour La Réunion) seront acceptés par l'API mais ne pourront etre délivrés Pour forcer leur traitement au tarif en vigueur, utiliser la valeur 1 |
|||||||||||||||||||||
sandbox | Number | Non |
Activation du mode "bac à sable" Ce champ permet de ne pas envoyer réellement les SMS lors de la requête Les envois ne sont pas facturés Utiliser la valeur 1 |
Paramètre | Type | Détails |
code | Number | Code correspondant au tableau des erreurs |
tel | String | Numéro de téléphone associé au code retour |
message | String | Libellé correspondant au tableau des erreurs |
sandbox | Number |
Si 'sandbox' était dans les paramètres d'appels alors sa valeur est 1 Sinon le paramètre n'est pas affiché du tout |
{
"etat":{
"etat":[
{
"code": "0",
"tel": "33601020304",
"message": "Votre message a bien ete envoye"
},
{
"code": "0",
"tel": "33601020305",
"message": "Votre message a bien ete envoye"
}
]
}
}
{
"etat":{
"etat":[
{
"code": "21",
"tel": "33601020304",
"message": "Le numéro de téléphone n'est pas attribué!"
},
{
"code": "11",
"tel": "33601020305",
"message": "Le numero de telephone est dans la liste noire!""
}
]
}
}
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/smsmulti' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"num": ["33601020304","33601020305","33601020306"],
"sms": "Bonjour! Bienvenue sur iSendPro!",
"emetteur": "isendpro"
}'
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/smsmulti' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"num": ["33601020304","33601020305"],
"sms": ["Bonjour! Message pour destinataire 1","Bonjour! Message pour destinataire 2"],
"tracker": ["TrackerDestinataire_1","TrackerDestinataire_2"],
"emetteur": "isendpro"
}'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://apirest.isendpro.com/cgi-bin/smsmulti';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'num' => ['33601020304','33601020305'],
'sms' => 'Bonjour! Bienvenue sur iSendPro!',
'emetteur' => 'isendpro'
);
$params = json_encode($params);
$options = array(
CURLOPT_URL => $url,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params,
CURLOPT_HTTPHEADER => array(
'Content-Type' => 'application/json',
'Content-Length: ' => strlen($params)
)
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$reponsejson=json_decode($response);
$repetatList=$reponsejson->etat->etat;
if(!is_array($repetatList)){
$repetatList=array($repetatList);
}
$cpt=1;
foreach($repetatList as $repetat){
echo '-----------';
echo $sautligne;
echo 'Data '.$cpt;
echo $sautligne;
// Erreur generale
if (!isset($repetat->tel)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
// Erreur specifique au numero de telephone
}else if (isset($repetat->tel) && ($repetat->code!=0)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
echo 'Tel: '.$repetat->tel;
echo $sautligne;
// Envoi OK
}else if (isset($repetat->tel) && ($repetat->code==0)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
echo 'Tel: '.$repetat->tel;
echo $sautligne;
}
$cpt+=1;
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
import types
url = 'https://apirest.isendpro.com/cgi-bin/smsmulti'
params = {
'keyid': 'a296464ce012b8ab710a',
'num': ['33601020304','33601020305','33601020306'],
'sms': 'Bonjour! Bienvenue sur iSendPro!',
'emetteur': 'isendpro'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Traitement du retour
####################################################################################
reponsejson=response.json()
repetatList=reponsejson['etat']['etat']
if not type(repetatList) is types.ListType:
repetatList=[repetatList]
cpt=1
for repetat in repetatList:
print '-----------'
print 'Data '+str(cpt)
# Erreur generale
if not repetat.has_key('tel'):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Erreur specifique au numero de telephone
elif repetat.has_key('tel') and repetat['code']!=0:
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
print 'Tel: '+repetat['tel']
# Envoi OK
elif repetat.has_key('tel') and repetat['code']==0:
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
print 'Tel: '+repetat['tel']
cpt+=1
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://apirest.isendpro.com/cgi-bin/smsmulti";
ArrayList<String> listData = new ArrayList<String>();
listData.add("33601020304");
listData.add("33601020305");
listData.add("33601020306");
Map<String, Object> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("num", listData);
paramsTablo.put("sms", "Bonjour! Bienvenue sur iSendPro!");
paramsTablo.put("emetteur", "isendpro");
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
Map reponsejson = new Gson().fromJson(content.toString(), Map.class);
Map repetat = (Map)reponsejson.get("etat");
ArrayList repetatList = (ArrayList)repetat.get("etat");
if(! (repetatList instanceof ArrayList)){
repetatList.add(repetatList);
}
for (int i = 0; i < repetatList.size(); i++) {
repetat = (Map)repetatList.get(i);
System.out.println("-----------");
System.out.println("Data "+i);
// Erreur generale
if (! repetat.containsKey("tel")){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
// Erreur specifique au numero de telephone
}else if(repetat.containsKey("tel") && repetat.get("code")!="0"){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
System.out.println("Tel: "+repetat.get("tel"));
// Envoi OK
}else if(repetat.containsKey("tel") && repetat.get("code")=="0"){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
System.out.println("Tel: "+repetat.get("tel"));
}
}
} finally {
con.disconnect();
}
}
}
https://apirest.isendpro.com/cgi-bin/smsmulti
Paramètre | Type | Obligatoire | Détails |
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
repertoireId | String | Oui | Identifiant du répertoire cible |
sms | String | Oui |
Message envoyé au destinataire 1 SMS peut contenir jusqu'à 160 caractères Possibilité d'envoyer des messages plus long (jusqu'à 6 SMS concaténés) pour un total de 918 caractères (6 x 153) (7 caractères étant réserves pour des entêtes techniques) Le cout unitaire sera alors multiplié par le nombre de SMS correspondants Cf Argument smslong |
emetteur | String | Non |
Emetteur du message Par défaut, un numéro court sur 5 chiffres Ex: 36007 Contraintes:
|
tracker | String | Non |
Argument généré par le client afin d'associer les accusés de réception ou les réponses Longueur max de 50 caractères Ex: order-ab78pq9 |
smslong | Number | Non |
Argument indiquant le nombre de SMS concaténés Si le nombre de SMS exactes est connu alors indiquer ce nombre Si le nombre calculé par l'API diffère alors un message d'erreur sera retourné (code 32) Pour éviter ce controle et autoriser les messages sur plus de 1 SMS, utiliser la valeur 999 |
nostop | Number | Non |
Argument pour ne pas afficher automatiquement la mention STOP SMS en fin de message Utiliser la valeur 1 |
date_envoi |
Date au format YYYY-MM-DD hh:mm |
Non |
Date à laquelle le message sera envoyé Envoi immédiat si non renseigné |
gmt_zone | Fuseau horaire | Non |
A renseigner, en cas d'envoi différé sur un autre fuseau horaire que celui par défaut (Europe/London) |
ucs2 | Number | Non |
Permet l'utilisation de caractères en alphabet non latin (russe, chinois, arabe, etc) et/ou avec des émojis Contraintes:
|
numAzur | Number | Non |
Dans le cadre d'une utilisation combinée entre SMS Azur et l'API, il est possible de forcer le numéro d'expéditeur à être le même que celui utilisé sur SMS Azur Utiliser la valeur 1 |
domtom | Number | Non |
Les envois vers les préfixes opérateurs à destination des DOM TOM (ou DROM-COM) sans l'indicatif pays associé (ex: +262 pour La Réunion) seront acceptés par l'API mais ne pourront etre délivrés Pour forcer leur traitement au tarif en vigueur, utiliser la valeur 1 |
sandbox | Number | Non |
Activation du mode "bac à sable" Ce champ permet de ne pas envoyer réellement les SMS lors de la requête Les envois ne sont pas facturés Utiliser la valeur 1 |
Paramètre | Type | Détails |
code | Number | Code correspondant au tableau des erreurs |
repertoireId | String | Identifiant du répertoire cible |
message | String | Libellé correspondant au tableau des erreurs |
sandbox | Number |
Si 'sandbox' était dans les paramètres d'appels alors sa valeur est 1 Sinon le paramètre n'est pas affiché du tout |
{
"etat":{
"etat":[
{
"code": "0",
"repertoireId": "123456789",
"message": "Votre message a bien ete envoye"
}
]
}
}
{
"etat":{
"etat":[
{
"code": "108",
"repertoireId": "123456789",
"message": "Cet identifiant ne correspond a aucun repertoire!"
}
]
}
}
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/smsmulti' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"repertoireId":"123456789",
"sms": "Bonjour! Bienvenue sur iSendPro!",
"emetteur": "isendpro"
}'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://apirest.isendpro.com/cgi-bin/smsmulti';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'repertoireId' => '123456789',
'sms' => 'Bonjour! Bienvenue sur iSendPro!',
'emetteur' => 'isendpro'
);
$params = json_encode($params);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$reponsejson=json_decode($response);
$repetat=$reponsejson->etat->etat;
if (!isset($repetat->code)){
$repetat=$reponsejson->etat->etat[0];
}
// Erreur generale
if (!isset($repetat->repertoireId)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
// Erreur specifique au repertoire
}else if (isset($repetat->repertoireId) && ($repetat->code!=0)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
echo 'RepertoireId: '.$repetat->repertoireId;
// Envoi OK
}else if (isset($repetat->repertoireId) && ($repetat->code==0)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
echo 'RepertoireId: '.$repetat->repertoireId;
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
url = 'https://apirest.isendpro.com/cgi-bin/smsmulti'
params = {
'keyid': 'a296464ce012b8ab710a',
'repertoireId': '123456789',
'sms': 'Bonjour! Bienvenue sur iSendPro!',
'emetteur': 'isendpro'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Traitement du retour
####################################################################################
reponsejson=response.json()
repetat=reponsejson['etat']
if not repetat.has_key('code'):
try:
repetat=reponsejson['etat']['etat'][0]
except:
repetat=reponsejson['etat']['etat']
# Erreur generale
if not repetat.has_key('repertoireId'):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Erreur specifique au repertoire
elif repetat.has_key('repertoireId') and repetat['code']!=0:
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
print 'RepertoireId: '+repetat['repertoireId']
# Envoi OK
elif repetat.has_key('repertoireId') and repetat['code']==0:
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
print 'RepertoireId: '+repetat['repertoireId']
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://apirest.isendpro.com/cgi-bin/smsmulti";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("repertoireId", "123456789");
paramsTablo.put("sms", "Bonjour! Bienvenue sur iSendPro!");
paramsTablo.put("emetteur", "isendpro");
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
Map reponsejson = new Gson().fromJson(content.toString(), Map.class);
Map repetat = (Map)reponsejson.get("etat");
if (! repetat.containsKey("code")){
try{
repetat=(Map)reponsejson.get("etat");
var repetatArray=((ArrayList)(repetat.get("etat"))).get(0);
repetat=(Map)(repetatArray);
}catch(Exception e) {
repetat=(Map)reponsejson.get("etat");
repetat=(Map)repetat.get("etat");
}
}
// Erreur generale
if (! repetat.containsKey("repertoireId")){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
// Erreur specifique au repertoire
}else if(repetat.containsKey("repertoireId") && repetat.get("code")!="0"){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
System.out.println("repertoireId: "+repetat.get("repertoireId"));
// Envoi OK
}else if(repetat.containsKey("repertoireId") && repetat.get("code")=="0"){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
System.out.println("repertoireId: "+repetat.get("repertoireId"));
}
} finally {
con.disconnect();
}
}
}
https://apirest.isendpro.com/cgi-bin/shortlink
Paramètre | Type | Obligatoire | Détails |
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
type_shortlink | Number | Non |
Type d'url raccourcie 0: www.sms.ht (valeur par défaut) 1: url2.fr |
shortlink | String | Oui | Url à raccourcir |
Paramètre | Type | Détails |
code | Number | Code correspondant au tableau des erreurs |
message | String | Libellé correspondant au tableau des erreurs (cf Annexes) |
shortlink | String |
Url raccourcie Format: www.sms.ht/[XXXX] ou url2.fr/[XXXX] Ex: www.sms.ht/6gHw ou url2.fr/6gHw |
{
"etat": {
"etat": [
{
"code": "250",
"message": "Le lien court a ete genere",
"shortlink":"www.sms.ht/6X8Y"
}
]
}
}
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/shortlink' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"shortlink": "https://www.google.com/"
}'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://apirest.isendpro.com/cgi-bin/shortlink';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'shortlink' => 'https://www.google.com/'
);
$params = json_encode($params);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$reponsejson=json_decode($response);
$repetat=$reponsejson->etat->etat;
if (!isset($repetat->code)){
$repetat=$reponsejson->etat->etat[0];
}
// Erreur generale
if (!isset($repetat->shortlink)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
// Infos du lien court
}else{
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'shortlink: '.$repetat->shortlink;
echo $sautligne;
echo 'message: '.$repetat->message;
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
url = 'https://apirest.isendpro.com/cgi-bin/shortlink'
params = {
'keyid': 'a296464ce012b8ab710a',
'shortlink': 'https://www.google.com/'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Traitement du retour
####################################################################################
reponsejson=response.json()
repetat=reponsejson['etat']
if not repetat.has_key('code'):
try:
repetat=reponsejson['etat']['etat'][0]
except:
repetat=reponsejson['etat']['etat']
# Erreur generale
if not repetat.has_key('shortlink'):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Infos du lien court
else:
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
print 'Shortlink: '+repetat['shortlink']
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://apirest.isendpro.com/cgi-bin/shortlink";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("shortlink", "https://www.google.com/");
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
Map reponsejson = new Gson().fromJson(content.toString(), Map.class);
Map repetat = (Map)reponsejson.get("etat");
if (! repetat.containsKey("code")){
try{
repetat=(Map)reponsejson.get("etat");
var repetatArray=((ArrayList)(repetat.get("etat"))).get(0);
repetat=(Map)(repetatArray);
}catch(Exception e) {
repetat=(Map)reponsejson.get("etat");
repetat=(Map)repetat.get("etat");
}
}
// Erreur generale
if (! repetat.containsKey("shortlink")){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
// Infos du lien court
}else{
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
System.out.println("shortlink: "+repetat.get("shortlink"));
}
} finally {
con.disconnect();
}
}
}
https://apirest.isendpro.com/cgi-bin/campagne
Paramètre | Type | Obligatoire | Détails |
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
rapportCampagne | Number | Oui |
Utiliser la valeur suivante:
|
date_deb |
Date au format YYYY-MM-DD hh:mm |
Oui | Date de début des envois de la sélection |
date_fin |
Date au format YYYY-MM-DD hh:mm |
Oui | Date de fin des envois de la sélection |
Paramètre | Type | Détails |
Date d'envoi | date | Date d'envoi du SMS |
Emetteur | String | Emetteur du message |
Destinataire | String | Numéro de téléphone destinataire du message |
Message | String | Message envoyé |
Information complémentaire | String | Indique l'opérateur et l'état du message |
Infos details | String | Indique l'accusé de réception fourni par l'opérateur |
Statut | String | Statut du message |
SMS retour | String | Eventuelle réponse du destinataire |
Canal | String | Haute Qualite |
Prix | Number | Cout du message |
STOP | Number | Indique si le destinataire a répondu STOP |
Tracker | String | Argument éventuellement fourni lors de l'envoi pour une identification simplifiée |
Operateur | String | Opérateur associé au destinataire |
Date AR | date | Date de réception de l'accusé de réception opérateur |
Code erreur | Number | Code associé à l'accusé de réception |
Paramètre | Type | Détails |
Date d'envoi | date | Date d'envoi du SMS |
Campagne | String | Libellé de la campagne |
Répertoire | String | Répertoire(s) associé(s) aux envois |
Emetteur | String | Emetteur du message |
Message | String | Message de la campagne si hors API |
Pays | String | Pays des destinataires |
Envois prévus | Number | Quantité d'envois prévus |
Envois reels | Number | Quantité d'envois réels |
Envois non aboutis | Number | Quantité d'envois non aboutis |
SMS Long | Number | Nombre de SMS pour le message |
STOP | Number | Quantités de STOP recus |
clics | Number | Quantités de clics |
Visiteur unique | Number | Quantités de visiteurs uniques |
Taux visite | Number | Taux de visite |
Cout HT | Number | Cout de la campagne en euros HT |
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/campagne' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"rapportCampagne": 1,
"date_deb": "2020-01-01 10:00",
"date_fin": "2020-01-07 20:00"
}' \
-o rapportCampagne.zip
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$zipName = 'rapportCampagne.zip';
$zipDirectory = '/VOTRE_REPERTOIRE/';
$fp = fopen($zipDirectory.$zipName, 'w');
$url = 'https://apirest.isendpro.com/cgi-bin/campagne';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'rapportCampagne' => 1,
'date_deb' => '2020-01-01 10:00',
'date_fin' => '2020-01-07 20:00',
);
$params = json_encode($params);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
curl_setopt($ch, CURLOPT_FILE, $fp);
$response = curl_exec($ch);
fwrite($fp, $response);
curl_close($ch);
fclose($fp);
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
// Unzip du fichier
$za = new ZipArchive();
$za->open($zipDirectory.$zipName);
for( $i = 0; $i < $za->numFiles; $i++ ){
$stat = $za->statIndex( $i );
$fileName = basename($stat['name']);
print_r($fileName.PHP_EOL);
$za->extractTo($zipDirectory);
$za->close();
// Lecture du fichier csv dans le zip
$fn = fopen($fileName, 'r');
// Liste des titres de colonnes
$titres = fgetcsv($fn, 1000, ';');
while (($data = fgetcsv($fn, 1000, ';')) !== FALSE){
foreach($data as $i => $d){
if($d){
// Affichage des donnees de la ligne
echo $titres[$i].' => '.$d.PHP_EOL;
}
}
// Saut de ligne
echo PHP_EOL;
}
// Suppression du fichier .csv
unlink($zipDirectory.$fileName);
}
// Suppression du fichier .zip
unlink($zipDirectory.$zipName);
?>
####################################################################################
#- Envoi requete
####################################################################################
import shutil
import requests
import zipfile
import os
zipName = 'rapportCampagne.zip'
zipDirectory = '/VOTRE_REPERTOIRE/'
url = 'https://apirest.isendpro.com/cgi-bin/campagne'
params = {
'keyid': 'a296464ce012b8ab710a',
'rapportCampagne': 1,
'date_deb': '2020-01-01 10:00',
'date_fin': '2020-01-07 20:00',
}
response = requests.post(url, params, stream=True)
with open(zipDirectory+zipName, 'wb') as f:
response.raw.decode_content = True
shutil.copyfileobj(response.raw, f)
####################################################################################
#- Traitement du retour
####################################################################################
myzipfile = zipfile.ZipFile(zipDirectory+zipName)
for fileName in myzipfile.namelist():
# Unzip du fichier vers zipDirectory
with zipfile.ZipFile(zipDirectory+zipName, 'r') as zip_ref:
zip_ref.extractall(zipDirectory)
# Lecture du fichier csv dans le zip
fichier = open(zipDirectory+fileName)
lines = fichier.readlines()
firstLine=1
for line in lines:
line=line.strip()
line=line.split(';')
if firstLine:
# Liste des titres de colonnes
firstLine=0
titres=line
else:
i=0
for data in line:
if data:
# Affichage des donnees de la ligne
print titres[i]+' => '+data
i+=1
# Suppression du fichier .csv
os.remove(zipDirectory+fileName)
# Suppression du fichier .zip
os.remove(zipDirectory+zipName)
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.io.BufferedReader;
import java.io.FileReader;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
/**
* Size of the buffer to read/write data
*/
private static final int BUFFER_SIZE = 4096;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://apirest.isendpro.com/cgi-bin/campagne";
var zipName = "rapportCampagne.zip";
var zipDirectory = "/VOTRE_REPERTOIRE/";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("rapportCampagne", "1");
paramsTablo.put("date_deb", "2020-01-01 10:00");
paramsTablo.put("date_fin", "2020-01-07 20:00");
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
File myzipfile = new File(zipDirectory+zipName);
OutputStream outStream = new FileOutputStream(myzipfile);
InputStream inputStream = con.getInputStream();
int read;
byte[] bytes = new byte[1024];
while ((read = inputStream.read(bytes)) != -1) {
outStream.write(bytes, 0, read);
}
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
File destDir = new File(zipDirectory);
ZipInputStream zipIn = new ZipInputStream(new FileInputStream(zipDirectory+zipName));
ZipEntry entry = zipIn.getNextEntry();
// iterates over entries in the zip file
while (entry != null) {
File mycsvfile = new File(zipDirectory+entry.getName());
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(zipDirectory+entry.getName()));
byte[] bytesIn = new byte[BUFFER_SIZE];
int read2 = 0;
while ((read2 = zipIn.read(bytesIn)) != -1) {
bos.write(bytesIn, 0, read2);
}
bos.close();
BufferedReader reader;
String lineD;
String data;
ArrayList<String> titres=new ArrayList<String>();
reader = new BufferedReader(new FileReader(zipDirectory+entry.getName()));
String line = reader.readLine();
// Liste des titres de colonnes
if (line != null) {
lineD = line.trim();
titres=new ArrayList<String>(Arrays.asList(lineD.split(";")));
}
while (line != null) {
line = reader.readLine();
if (line != null) {
lineD = line.trim();
ArrayList<String> lineList = new ArrayList<String>(Arrays.asList(lineD.split(";")));
for (int i = 0; i < lineList.size(); i++) {
data = (String)lineList.get(i);
data = data.trim();
System.out.println(titres.get(i)+" => "+data);
}
System.out.println(" ");
}
}
reader.close();
// Suppression du fichier .csv
mycsvfile.delete();
zipIn.closeEntry();
entry = zipIn.getNextEntry();
}
zipIn.close();
// Suppression du fichier .zip
myzipfile.delete();
} finally {
con.disconnect();
}
}
}
https://apirest.isendpro.com/cgi-bin/campagne
Paramètre | Type | Obligatoire | Détails |
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
rapportCampagneData | Number | Oui | Utiliser la valeur 1 |
date_deb |
Date au format YYYY-MM-DD hh:mm |
Oui | Date de début des envois de la sélection |
date_fin |
Date au format YYYY-MM-DD hh:mm |
Oui | Date de fin des envois de la sélection |
select_deb | Number | Non |
Ce nombre indique la position de début des résultats de la sélection Ex: select_deb=1000 pour obtenir les données après les 1000ers résultats |
select_pas | Number | Non |
Ce nombre indique la quantité de résultats dans la sélection La valeur maximum acceptée est 1000 Ex: select_pas=500 pour obtenir 500 données |
select_msisdn | Array | Non |
Ajout de cette liste dans la requête de rapport de campagne
Au format international sans le + Ex: [ "33601020304", "33601020305", "33601020306" ] |
select_tracker | String | Non |
Ajout de ce critère dans la requête de rapport de campagne La recherche sera étendue à tous les trackers commençant par le tracker indiqué Ex: Si select_tracker=camp001 alors seront recherchés les trackers camp001-001 et camp001-002 |
Paramètre | Type | Détails |
code | Number | Code correspondant au tableau des erreurs |
tel | String | Numéro de téléphone associé au code retour |
message | String | Libellé correspondant au tableau des erreurs |
historySender | String | Emetteur du message |
historyMsg | String | Message envoyé au destinataire |
historyDate | String | Date d'envoi du message au destinataire au format AAAA-MM-JJ HH:MM:SS |
historyTracker | String | tracker associé au message envoyé au destinataire |
historyOperator | String | Opérateur associé au message envoyé au destinataire |
historyResponse | String |
Réponse éventuelle retournée par le destinataire Si aucune réponse la valeur est "-" |
historyResponseTime | String |
Date de la réponse éventuelle retournée par le destinataire Si aucune réponse la valeur est "0000-00-00 00:00:00" |
historyDeliveryAR | String |
Indique si le message a bien été livré Les valeurs possibles sont:
|
historyDeliveryARtime | String | Date de la notification de livraison du message au destinataire au format AAAA-MM-JJ HH:MM:SS |
historyDelivery1 | String | Complément d'information sur la notification |
historyDelivery2 | String | Complément d'information sur la notification |
historyNbSMSlong | Number | Nombre de SMS pour ce message |
{
"etat": {
"etat": [
{
"code": "207",
"tel": "33601020304",
"message": "Historique des envois",
"historySender": "MaSociete",
"historyMsg": "Votre test 1 a bien été recu",
"historyDate": "2020-04-14 14:58:02",
"historyTracker": "camp001-002",
"historyOperator": "SFR",
"historyResponse": "-",
"historyResponseTime": "0000-00-00 00:00:00",
"historyDeliveryAR": "OK",
"historyDeliveryARtime": "2020-04-14 14:58:03",
"historyDelivery1": "SFR: SMS remis",
"historyDelivery2": "Message for 0033601020304 has been delivered",
"historyNbSMSlong": "1"
},
{
"code": "207",
"tel": "33601020305",
"message": "Historique des envois",
"historySender": "MaSociete",
"historyMsg": "Votre test 1 a bien été recu",
"historyDate": "2020-04-14 14:58:08",
"historyTracker": "camp001-001",
"historyOperator": "ORAN",
"historyResponse": "-",
"historyResponseTime": "0000-00-00 00:00:00",
"historyDeliveryAR": "OK",
"historyDeliveryARtime": "2020-04-14 14:58:10",
"historyDelivery1": "ORAN: SMS remis",
"historyDelivery2": "SMS remis le 14.04.20 a 14:58:10",
"historyNbSMSlong": "1"
}
]
}
}
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/campagne' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"rapportCampagneData": "1",
"select_tracker": "camp001",
"date_deb": "2020-04-01 00:00",
"date_fin": "2020-04-30 00:00",
"select_deb": "0",
"select_pas": "500"
}'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://apirest.isendpro.com/cgi-bin/campagne';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'rapportCampagneData' => '1',
'date_deb' => '2020-01-01 00:00',
'date_fin' => '2020-01-10 00:00',
'select_deb' => '0',
'select_pas' => '500',
'select_tracker' => 'camp001',
'select_msisdn' => ['33601020304','33601020305']
);
$params = json_encode($params);
$options = array(
CURLOPT_URL => $url,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params,
CURLOPT_HTTPHEADER => array(
'Content-Type' => 'application/json',
'Content-Length: ' => strlen($params)
)
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$reponsejson=json_decode($response);
$repetatList=$reponsejson->etat->etat;
if(!is_array($repetatList)){
$repetatList=array($repetatList);
}
$cpt=1;
foreach($repetatList as $repetat){
echo '-----------';
echo $sautligne;
echo 'Data '.$cpt;
echo $sautligne;
// Erreur generale
if (!isset($repetat->tel)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
// infos sur le retour
}else{
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
echo 'Tel: '.$repetat->tel;
echo $sautligne;
echo 'historySender: '.$repetat->historySender;
echo $sautligne;
echo 'historyMsg: '.$repetat->historyMsg;
echo $sautligne;
echo 'historyDate: '.$repetat->historyDate;
echo $sautligne;
echo 'historyTracker: '.$repetat->historyTracker;
echo $sautligne;
echo 'historyOperator: '.$repetat->historyOperator;
echo $sautligne;
echo 'historyResponse: '.$repetat->historyResponse;
echo $sautligne;
echo 'historyResponseTime: '.$repetat->historyResponseTime;
echo $sautligne;
echo 'historyDeliveryAR: '.$repetat->historyDeliveryAR;
echo $sautligne;
echo 'historyDeliveryARtime: '.$repetat->historyDeliveryARtime;
echo $sautligne;
echo 'historyDelivery1: '.$repetat->historyDelivery1;
echo $sautligne;
echo 'historyDelivery2: '.$repetat->historyDelivery2;
echo $sautligne;
echo 'historyNbSMSlong: '.$repetat->historyNbSMSlong;
echo $sautligne;
}
$cpt+=1;
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
import types
url = 'https://apirest.isendpro.com/cgi-bin/campagne'
params = {
'keyid' : 'a296464ce012b8ab710a',
'rapportCampagneData' : '1',
'date_deb' : '2020-01-01 00:00',
'date_fin' : '2020-01-10 00:00',
'select_deb' : '0',
'select_pas' : '500',
'select_msisdn' : ['33601020304','33601020305'],
'select_tracker' : 'camp001'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Traitement du retour
####################################################################################
reponsejson=response.json()
repetatList=reponsejson['etat']['etat']
if not type(repetatList) is types.ListType:
repetatList=[repetatList]
cpt=1
for repetat in repetatList:
print '-----------'
print 'Data '+str(cpt)
# Erreur generale
if not repetat.has_key('tel'):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Infos sur le retour
else:
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
print 'Tel: '+repetat['tel']
print 'historySender: '+repetat['historySender']
print 'historyMsg: '+repetat['historyMsg']
print 'historyDate: '+repetat['historyDate']
print 'historyTracker: '+repetat['historyTracker']
print 'historyOperator: '+repetat['historyOperator']
print 'historyResponse: '+repetat['historyResponse']
print 'historyResponseTime: '+repetat['historyResponseTime']
print 'historyDeliveryAR: '+repetat['historyDeliveryAR']
print 'historyDeliveryARtime: '+repetat['historyDeliveryARtime']
print 'historyDelivery1: '+repetat['historyDelivery1']
print 'historyDelivery2: '+repetat['historyDelivery2']
print 'historyNbSMSlong: '+repetat['historyNbSMSlong']
cpt+=1
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://apirest.isendpro.com/cgi-bin/campagne";
ArrayList<String> listData = new ArrayList<String>();
listData.add("33601020304");
listData.add("33601020305");
Map<String, Object> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("rapportCampagneData", "1");
paramsTablo.put("date_deb", "2020-01-01 00:00");
paramsTablo.put("date_fin", "2020-01-10 00:00");
paramsTablo.put("select_deb", "0");
paramsTablo.put("select_pas", "500");
paramsTablo.put("select_tracker", "camp001");
paramsTablo.put("select_msisdn", listData);
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
Map reponsejson = new Gson().fromJson(content.toString(), Map.class);
Map repetat = (Map)reponsejson.get("etat");
ArrayList repetatList = (ArrayList)repetat.get("etat");
if(! (repetatList instanceof ArrayList)){
repetatList.add(repetatList);
}
for (int i = 0; i < repetatList.size(); i++) {
repetat = (Map)repetatList.get(i);
System.out.println("-----------");
System.out.println("Data "+i);
// Erreur generale
if (! repetat.containsKey("tel")){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
// Infos sur le retour
}else{
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
System.out.println("Tel: "+repetat.get("tel"));
System.out.println("historySender: "+repetat.get("historySender"));
System.out.println("historyMsg: "+repetat.get("historyMsg"));
System.out.println("historyDate: "+repetat.get("historyDate"));
System.out.println("historyTracker: "+repetat.get("historyTracker"));
System.out.println("historyOperator: "+repetat.get("historyOperator"));
System.out.println("historyResponse: "+repetat.get("historyResponse"));
System.out.println("historyResponseTime: "+repetat.get("historyResponseTime"));
System.out.println("historyDeliveryAR: "+repetat.get("historyDeliveryAR"));
System.out.println("historyDeliveryARtime: "+repetat.get("historyDeliveryARtime"));
System.out.println("historyDelivery1: "+repetat.get("historyDelivery1"));
System.out.println("historyDelivery2: "+repetat.get("historyDelivery2"));
System.out.println("historyNbSMSlong: "+repetat.get("historyNbSMSlong"));
}
}
} finally {
con.disconnect();
}
}
}
https://apirest.isendpro.com/cgi-bin/comptage
Paramètre | Type | Obligatoire | Détails |
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
num | String | Oui |
Numéro de téléphone du destinataire Au format international sans le + Ex: 33601020304 |
sms | String | Oui |
Message envoyé au destinataire 1 SMS peut contenir jusqu'à 160 caractères Possibilité d'envoyer des messages plus long (jusqu'à 6 SMS concaténés) pour un total de 918 caractères (6 x 153) (7 caractères étant réserves pour des entêtes techniques) Le cout unitaire sera alors multiplié par le nombre de SMS correspondants Cf Argument smslong |
emetteur | String | Non |
Emetteur du message Par défaut, un numéro court sur 5 chiffres Ex: 36007 Contraintes:
|
comptage | Number | Oui | Utiliser la valeur 1 |
Paramètre | Type | Détails |
tel | String | Numéro de téléphone associé au code retour |
nb_sms | number | Nombre de SMS pour contenir le message |
nb_caractere | number | Nombre de caractères pour contenir le message |
{
"etat":{
"etat":[
{
"tel": "0680010203",
"nb_sms": "1",
"nb_caractere": "65"
}
]
}
}
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/comptage' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"num": "33601020304",
"sms": "Bonjour! Bienvenue sur iSendPro!",
"emetteur": "isendpro",
"comptage": 1
}'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://apirest.isendpro.com/cgi-bin/comptage';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'num' => '33601020304',
'sms' => 'Bonjour! Bienvenue sur iSendPro!',
'emetteur' => 'isendpro',
'comptage' => 1
);
$params = json_encode($params);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$reponsejson=json_decode($response);
$repetat=$reponsejson->etat->etat;
if (!isset($repetat->code)){
$repetat=$reponsejson->etat->etat[0];
}
// Erreur generale
if (!isset($repetat->tel)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
// Infos de comptage
}else{
echo 'tel: '.$repetat->tel;
echo $sautligne;
echo 'nb_sms: '.$repetat->nb_sms;
echo $sautligne;
echo 'nb_caractere: '.$repetat->nb_caractere;
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
url = 'https://apirest.isendpro.com/cgi-bin/comptage'
params = {
'keyid': 'a296464ce012b8ab710a',
'num': '33601020304',
'sms': 'Bonjour! Bienvenue sur iSendPro!',
'emetteur': 'isendpro',
'comptage': 1
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Traitement du retour
####################################################################################
reponsejson=response.json()
repetat=reponsejson['etat']
if not repetat.has_key('code'):
try:
repetat=reponsejson['etat']['etat'][0]
except:
repetat=reponsejson['etat']['etat']
# Erreur generale
if not repetat.has_key('tel'):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Infos de comptage
else:
print 'tel: '+repetat['tel']
print 'nb_sms: '+repetat['nb_sms']
print 'nb_caractere: '+repetat['nb_caractere']
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://apirest.isendpro.com/cgi-bin/comptage";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("num", "33601020304");
paramsTablo.put("sms", "Bonjour! Bienvenue sur iSendPro!");
paramsTablo.put("emetteur", "isendpro");
paramsTablo.put("comptage", "1");
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
Map reponsejson = new Gson().fromJson(content.toString(), Map.class);
Map repetat = (Map)reponsejson.get("etat");
if (! repetat.containsKey("code")){
try{
repetat=(Map)reponsejson.get("etat");
var repetatArray=((ArrayList)(repetat.get("etat"))).get(0);
repetat=(Map)(repetatArray);
}catch(Exception e) {
repetat=(Map)reponsejson.get("etat");
repetat=(Map)repetat.get("etat");
}
}
// Erreur generale
if (! repetat.containsKey("tel")){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
// Infos de comptage
}else{
System.out.println("tel: "+repetat.get("tel"));
System.out.println("nb_sms: "+repetat.get("nb_sms"));
System.out.println("nb_caractere: "+repetat.get("nb_caractere"));
}
} finally {
con.disconnect();
}
}
}
https://apirest.isendpro.com/cgi-bin/credit
Paramètre | Type | Obligatoire | Détails |
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
credit | Number | Oui |
Number indiquant le type de crédit restant
|
Paramètre | Type | Détails |
credit | String |
Nombre à virgule indiquant le crédit restant en euros HT Ex: 561.20 |
quantite | Number |
Nombre indiquant le nombre de crédits restants en quantité de SMS Ex: 8974 |
{
"etat":
{
"credit": "13.066",
"quantite": "326"
}
}
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/credit' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"credit": 2
}'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://apirest.isendpro.com/cgi-bin/credit';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'credit' => 2
);
$params = json_encode($params);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$reponsejson=json_decode($response);
$repetat=$reponsejson->etat;
// Erreur generale
if (!isset($repetat->credit)){
$repetat=$reponsejson->etat->etat[0];
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
// Infos de quantites
}else{
echo 'credit: '.$repetat->credit;
if (isset($repetat->quantite)){
echo $sautligne;
echo 'quantite: '.$repetat->quantite;
}
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
url = 'https://apirest.isendpro.com/cgi-bin/credit'
params = {
'keyid' : 'a296464ce012b8ab710a',
'credit' : 2
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Traitement du retour
####################################################################################
reponsejson=response.json()
repetat=reponsejson['etat']
# Erreur generale
if not repetat.has_key('credit'):
try:
repetat=reponsejson['etat']['etat'][0]
except:
repetat=reponsejson['etat']['etat']
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Infos de quantites
else:
print 'credit: '+repetat['credit']
if repetat.has_key('quantite'):
print 'quantite: '+repetat['quantite']
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://apirest.isendpro.com/cgi-bin/credit";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("credit", "2");
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
Map reponsejson = new Gson().fromJson(content.toString(), Map.class);
Map repetat = (Map)reponsejson.get("etat");
// Erreur generale
if (! repetat.containsKey("credit")){
try{
repetat=(Map)reponsejson.get("etat");
var repetatArray=((ArrayList)(repetat.get("etat"))).get(0);
repetat=(Map)(repetatArray);
}catch(Exception e) {
repetat=(Map)reponsejson.get("etat");
repetat=(Map)repetat.get("etat");
}
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
// Infos de retour
}else{
System.out.println("credit: "+repetat.get("credit"));
if (repetat.containsKey("quantite")){
System.out.println("quantite: "+repetat.get("quantite"));
}
}
} finally {
con.disconnect();
}
}
}
https://apirest.isendpro.com/cgi-bin/credit
Paramètre | Type | Obligatoire | Détails |
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
countryCode | String | Oui | Indicatif international du pays sans le + |
getPrice | String | Oui | Utiliser la valeur '1' |
Paramètre | Type | Détails |
code | Number | Code correspondant au tableau des erreurs |
message | String | Libellé correspondant au tableau des erreurs |
countryCode | Number | Indicatif international du pays sans le + |
accountPrice | String |
Prix unitaire en euros HT avec le point (.) comme séparateur des centimes Ex: 0.067 |
{
"etat":{
"etat":[
{
"code": "251",
"message": "Le prix unitaire",
"countryCode": "44",
"accountPrice": "0.067"
}
]
}
}
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/credit' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"countryCode": "33",
"getPrice": "1"
}'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://apirest.isendpro.com/cgi-bin/credit';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'countryCode' => '33',
'getPrice' => '1'
);
$params = json_encode($params);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$reponsejson=json_decode($response);
$repetat=$reponsejson->etat->etat;
if (!isset($repetat->code)){
$repetat=$reponsejson->etat->etat[0];
}
// Erreur generale
if (!isset($repetat->countryCode)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
// Infos de retour
}else{
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
echo 'countryCode: '.$repetat->countryCode;
echo $sautligne;
echo 'accountPrice: '.$repetat->accountPrice;
echo $sautligne;
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
url = 'https://apirest.isendpro.com/cgi-bin/credit'
params = {
'keyid': 'a296464ce012b8ab710a',
'countryCode': '33',
'getPrice': '1'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Traitement du retour
####################################################################################
reponsejson=response.json()
repetat=reponsejson['etat']
if not repetat.has_key('code'):
try:
repetat=reponsejson['etat']['etat'][0]
except:
repetat=reponsejson['etat']['etat']
# Erreur generale
if not repetat.has_key('countryCode'):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Infos de retour
else:
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
print 'countryCode: '+repetat['countryCode']
print 'accountPrice: '+repetat['accountPrice']
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://apirest.isendpro.com/cgi-bin/credit";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("countryCode", "33");
paramsTablo.put("getPrice", "1");
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
Map reponsejson = new Gson().fromJson(content.toString(), Map.class);
Map repetat = (Map)reponsejson.get("etat");
if (! repetat.containsKey("code")){
try{
repetat=(Map)reponsejson.get("etat");
var repetatArray=((ArrayList)(repetat.get("etat"))).get(0);
repetat=(Map)(repetatArray);
}catch(Exception e) {
repetat=(Map)reponsejson.get("etat");
repetat=(Map)repetat.get("etat");
}
}
// Erreur generale
if (! repetat.containsKey("countryCode")){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
// Infos de retour
}else{
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
System.out.println("countryCode: "+repetat.get("countryCode"));
System.out.println("accountPrice: "+repetat.get("accountPrice"));
}
} finally {
con.disconnect();
}
}
}
https://apirest.isendpro.com/cgi-bin/hlr
Paramètre | Type | Obligatoire | Détails |
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
num | Array | Oui |
Liste des numéros de téléphone du destinataire Au format international sans le + Ex: [ "33601020304", "33601020305", "33601020306" ] |
getHLR | Number | Oui | Utiliser la valeur 1 |
Paramètre | Type | Détails |
tel | String | Numéro de téléphone associé au code retour |
operateur | String |
Chaine de caracteres indiquant la valeur de l'opérateur Liste des opérateur:
|
{
"etat": {
"etat": [
{
"tel": "33601020304",
"operateur":"INVALIDE"
},
{
"tel": "33601020305",
"operateur":"SFR"
},
{
"tel": "33601020306",
"operateur":"BOUY-LISTE NOIRE"
}
]
}
}
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/hlr' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"num": ["33601020304","33601020305","33601020306"],
"getHLR": 1
}'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://apirest.isendpro.com/cgi-bin/hlr';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'num' => ['33601020304','33601020305'],
'getHLR' => 1
);
$params = json_encode($params);
$options = array(
CURLOPT_URL => $url,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params,
CURLOPT_HTTPHEADER => array(
'Content-Type' => 'application/json',
'Content-Length: ' => strlen($params)
)
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$reponsejson=json_decode($response);
$repetatList=$reponsejson->etat->etat;
if(!is_array($repetatList)){
$repetatList=array($repetatList);
}
$cpt=1;
foreach($repetatList as $repetat){
echo '-----------';
echo $sautligne;
echo 'Data '.$cpt;
echo $sautligne;
// Erreur generale
if (!isset($repetat->tel)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
// Infos sur le numero
}else{
echo 'Tel: '.$repetat->tel;
echo $sautligne;
echo 'Operateur: '.$repetat->operateur;
echo $sautligne;
}
$cpt+=1;
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
import types
url = 'https://apirest.isendpro.com/cgi-bin/hlr'
params = {
'keyid': 'a296464ce012b8ab710a',
'num': ['33601020304','33601020305','33601020306'],
'getHLR': 1
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Traitement du retour
####################################################################################
reponsejson=response.json()
repetatList=reponsejson['etat']['etat']
if not type(repetatList) is types.ListType:
repetatList=[repetatList]
cpt=1
for repetat in repetatList:
print '-----------'
print 'Data '+str(cpt)
# Erreur generale
if not repetat.has_key('tel'):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Infos sur le numero
elif repetat.has_key('tel'):
print 'Tel: '+repetat['tel']
print 'Operateur: '+repetat['operateur']
cpt+=1
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://apirest.isendpro.com/cgi-bin/hlr";
ArrayList<String> listData = new ArrayList<String>();
listData.add("33601020304");
listData.add("33601020305");
listData.add("33601020306");
Map<String, Object> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("num", listData);
paramsTablo.put("getHLR", "1");
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
Map reponsejson = new Gson().fromJson(content.toString(), Map.class);
Map repetat = (Map)reponsejson.get("etat");
ArrayList repetatList = (ArrayList)repetat.get("etat");
if(! (repetatList instanceof ArrayList)){
repetatList.add(repetatList);
}
for (int i = 0; i < repetatList.size(); i++) {
repetat = (Map)repetatList.get(i);
System.out.println("-----------");
System.out.println("Data "+i);
// Erreur generale
if (! repetat.containsKey("tel")){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
// Erreur specifique au numero de telephone
}else{
System.out.println("tel: "+repetat.get("tel"));
System.out.println("operateur: "+repetat.get("operateur"));
}
}
} finally {
con.disconnect();
}
}
}
https://apirest.isendpro.com/cgi-bin/setlistenoire
Paramètre | Type | Obligatoire | Détails |
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
num | String | Oui |
Numéro de téléphone du destinataire Au format international sans le + Ex: 33601020304 |
setlisteNoire | Number | Oui |
Utiliser la valeur 1 |
Paramètre | Type | Détails |
tel | String | Numéro de téléphone associé au code retour |
listeNoire | String | Confirmation de l'ajout: OK |
{
"etat": {
"etat": [
{
"tel": "33601020304",
"listeNoire": "OK"
}
]
}
}
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/setlistenoire' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"num": "33601020304",
"setlisteNoire": 1
}'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://apirest.isendpro.com/cgi-bin/setlistenoire';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'num' => '33601020304',
'setlisteNoire' => 1
);
$params = json_encode($params);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$reponsejson=json_decode($response);
$repetat=$reponsejson->etat->etat;
if (!isset($repetat->code)){
$repetat=$reponsejson->etat->etat[0];
}
// Erreur generale
if (!isset($repetat->tel)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
// Infos de retour
}else{
echo 'tel: '.$repetat->tel;
echo $sautligne;
echo 'listeNoire: '.$repetat->listeNoire;
echo $sautligne;
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
url = 'https://apirest.isendpro.com/cgi-bin/setlistenoire'
params = {
'keyid': 'a296464ce012b8ab710a',
'num': '33601020304',
'setlisteNoire':1
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Traitement du retour
####################################################################################
reponsejson=response.json()
repetat=reponsejson['etat']
if not repetat.has_key('code'):
try:
repetat=reponsejson['etat']['etat'][0]
except:
repetat=reponsejson['etat']['etat']
# Erreur generale
if not repetat.has_key('tel'):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Infos de retour
else:
print 'tel: '+repetat['tel']
print 'listeNoire: '+repetat['listeNoire']
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://apirest.isendpro.com/cgi-bin/setlistenoire";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("num", "33601020304");
paramsTablo.put("setlisteNoire", "1");
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
Map reponsejson = new Gson().fromJson(content.toString(), Map.class);
Map repetat = (Map)reponsejson.get("etat");
if (! repetat.containsKey("code")){
try{
repetat=(Map)reponsejson.get("etat");
var repetatArray=((ArrayList)(repetat.get("etat"))).get(0);
repetat=(Map)(repetatArray);
}catch(Exception e) {
repetat=(Map)reponsejson.get("etat");
repetat=(Map)repetat.get("etat");
}
}
// Erreur generale
if (! repetat.containsKey("tel")){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
// Infos de retour
}else{
System.out.println("tel: "+repetat.get("tel"));
System.out.println("listeNoire: "+repetat.get("listeNoire"));
}
} finally {
con.disconnect();
}
}
}
https://apirest.isendpro.com/cgi-bin/dellistenoire
Paramètre | Type | Obligatoire | Détails |
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
num | String | Oui |
Numéro de téléphone du destinataire Au format international sans le + Ex: 33601020304 |
delListeNoire | Number | Oui |
Utiliser la valeur 1 |
Paramètre | Type | Détails |
tel | String | Numéro de téléphone associé au code retour |
listeNoire | String |
Retour sur la tentative de suppression
|
{
"etat": {
"etat": [
{
"tel": "33601020304",
"listeNoire": "SUPPRESSION OK"
}
]
}
}
{
"etat": {
"etat": [
{
"tel": "33601020304",
"listeNoire": "SUPPRESSION NOK"
}
]
}
}
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/dellistenoire' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"num": "33601020304",
"delListeNoire": 1
}'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://apirest.isendpro.com/cgi-bin/dellistenoire';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'num' => '33601020304',
'delListeNoire' => 1
);
$params = json_encode($params);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$reponsejson=json_decode($response);
$repetat=$reponsejson->etat->etat;
if (!isset($repetat->code)){
$repetat=$reponsejson->etat->etat[0];
}
// Erreur generale
if (!isset($repetat->tel)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
// Infos de retour
}else{
echo 'tel: '.$repetat->tel;
echo $sautligne;
echo 'listeNoire: '.$repetat->listeNoire;
echo $sautligne;
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
url = 'https://apirest.isendpro.com/cgi-bin/dellistenoire'
params = {
'keyid': 'a296464ce012b8ab710a',
'num': '33601020304',
'delListeNoire':1
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Traitement du retour
####################################################################################
reponsejson=response.json()
repetat=reponsejson['etat']
if not repetat.has_key('code'):
try:
repetat=reponsejson['etat']['etat'][0]
except:
repetat=reponsejson['etat']['etat']
# Erreur generale
if not repetat.has_key('tel'):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Infos de retour
else:
print 'tel: '+repetat['tel']
print 'listeNoire: '+repetat['listeNoire']
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://apirest.isendpro.com/cgi-bin/dellistenoire";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("num", "33601020304");
paramsTablo.put("delListeNoire", "1");
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
Map reponsejson = new Gson().fromJson(content.toString(), Map.class);
Map repetat = (Map)reponsejson.get("etat");
if (! repetat.containsKey("code")){
try{
repetat=(Map)reponsejson.get("etat");
var repetatArray=((ArrayList)(repetat.get("etat"))).get(0);
repetat=(Map)(repetatArray);
}catch(Exception e) {
repetat=(Map)reponsejson.get("etat");
repetat=(Map)repetat.get("etat");
}
}
// Erreur generale
if (! repetat.containsKey("tel")){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
// Infos de retour
}else{
System.out.println("tel: "+repetat.get("tel"));
System.out.println("listeNoire: "+repetat.get("listeNoire"));
}
} finally {
con.disconnect();
}
}
}
https://apirest.isendpro.com/cgi-bin/getlistenoire
Paramètre | Type | Obligatoire | Détails |
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
getListeNoire | Number | Oui |
Utiliser la valeur 1 |
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/getlistenoire' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"getListeNoire": 1
}' \
-o listenoire.zip
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$zipName = 'listenoire.zip';
$zipDirectory = '/VOTRE_REPERTOIRE/';
$fp = fopen($zipDirectory.$zipName, 'w');
$url = 'https://apirest.isendpro.com/cgi-bin/getlistenoire';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'getListeNoire' => 1
);
$params = json_encode($params);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
curl_setopt($ch, CURLOPT_FILE, $fp);
$response = curl_exec($ch);
fwrite($fp, $response);
curl_close($ch);
fclose($fp);
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
// Unzip du fichier
$za = new ZipArchive();
$za->open($zipDirectory.$zipName);
for( $i = 0; $i < $za->numFiles; $i++ ){
$stat = $za->statIndex( $i );
$fileName = basename($stat['name']);
print_r($fileName.PHP_EOL);
$za->extractTo($zipDirectory);
$za->close();
// Lecture du fichier csv dans le zip
$fn = fopen($fileName, 'r');
// Liste des titres de colonnes
$titres = fgetcsv($fn, 1000, ';');
while (($data = fgetcsv($fn, 1000, ';')) !== FALSE){
foreach($data as $i => $d){
if($d){
// Affichage des donnees de la ligne
echo $titres[$i].' => '.$d.PHP_EOL;
}
}
// Saut de ligne
echo PHP_EOL;
}
// Suppression du fichier .csv
unlink($zipDirectory.$fileName);
}
// Suppression du fichier .zip
unlink($zipDirectory.$zipName);
?>
####################################################################################
#- Envoi requete
####################################################################################
import shutil
import requests
import zipfile
import os
zipName = 'listenoire.zip'
zipDirectory = '/VOTRE_REPERTOIRE/'
url = 'https://apirest.isendpro.com/cgi-bin/getlistenoire'
params = {
'keyid': 'a296464ce012b8ab710a',
'getListeNoire': 1
}
response = requests.post(url, params, stream=True)
with open(zipDirectory+zipName, 'wb') as f:
response.raw.decode_content = True
shutil.copyfileobj(response.raw, f)
####################################################################################
#- Traitement du retour
####################################################################################
myzipfile = zipfile.ZipFile(zipDirectory+zipName)
for fileName in myzipfile.namelist():
# Unzip du fichier vers zipDirectory
with zipfile.ZipFile(zipDirectory+zipName, 'r') as zip_ref:
zip_ref.extractall(zipDirectory)
# Lecture du fichier csv dans le zip
fichier = open(zipDirectory+fileName)
lines = fichier.readlines()
firstLine=1
for line in lines:
line=line.strip()
line=line.split(';')
if firstLine:
# Liste des titres de colonnes
firstLine=0
titres=line
else:
i=0
for data in line:
if data:
# Affichage des donnees de la ligne
print titres[i]+' => '+data
i+=1
# Suppression du fichier .csv
os.remove(zipDirectory+fileName)
# Suppression du fichier .zip
os.remove(zipDirectory+zipName)
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.io.BufferedReader;
import java.io.FileReader;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
/**
* Size of the buffer to read/write data
*/
private static final int BUFFER_SIZE = 4096;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://apirest.isendpro.com/cgi-bin/getlistenoire";
var zipName = "listenoire.zip";
var zipDirectory = "/VOTRE_REPERTOIRE/";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("getListeNoire", "1");
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
File myzipfile = new File(zipDirectory+zipName);
OutputStream outStream = new FileOutputStream(myzipfile);
InputStream inputStream = con.getInputStream();
int read;
byte[] bytes = new byte[1024];
while ((read = inputStream.read(bytes)) != -1) {
outStream.write(bytes, 0, read);
}
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
File destDir = new File(zipDirectory);
ZipInputStream zipIn = new ZipInputStream(new FileInputStream(zipDirectory+zipName));
ZipEntry entry = zipIn.getNextEntry();
// iterates over entries in the zip file
while (entry != null) {
File mycsvfile = new File(zipDirectory+entry.getName());
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(zipDirectory+entry.getName()));
byte[] bytesIn = new byte[BUFFER_SIZE];
int read2 = 0;
while ((read2 = zipIn.read(bytesIn)) != -1) {
bos.write(bytesIn, 0, read2);
}
bos.close();
BufferedReader reader;
String lineD;
String data;
ArrayList<String> titres=new ArrayList<String>();
reader = new BufferedReader(new FileReader(zipDirectory+entry.getName()));
String line = reader.readLine();
// Liste des titres de colonnes
if (line != null) {
lineD = line.trim();
titres=new ArrayList<String>(Arrays.asList(lineD.split(";")));
}
while (line != null) {
line = reader.readLine();
if (line != null) {
lineD = line.trim();
ArrayList<String> lineList = new ArrayList<String>(Arrays.asList(lineD.split(";")));
for (int i = 0; i < lineList.size(); i++) {
data = (String)lineList.get(i);
data = data.trim();
System.out.println(titres.get(i)+" => "+data);
}
System.out.println(" ");
}
}
reader.close();
// Suppression du fichier .csv
mycsvfile.delete();
zipIn.closeEntry();
entry = zipIn.getNextEntry();
}
zipIn.close();
// Suppression du fichier .zip
myzipfile.delete();
} finally {
con.disconnect();
}
}
}
https://apirest.isendpro.com/cgi-bin/repertoire
Paramètre | Type | Obligatoire | Détails |
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
repertoireNom | String | Oui |
Nom du nouveau répertoire |
repertoireEdit | String | Oui |
Utiliser la valeur 'create' |
Paramètre | Type | Détails |
code | Number | Code correspondant au tableau des erreurs |
repertoireId | String | Identifiant du répertoire créé |
message | String | Libellé correspondant au tableau des erreurs |
{
"etat":{
"etat":[
{
"code": "100",
"repertoireId": "39258",
"message": "Votre repertoire a ete cree!"
}
]
}
}
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/repertoire' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"repertoireNom": "MonNouveauRepertoire",
"repertoireEdit": "create"
}'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://apirest.isendpro.com/cgi-bin/repertoire';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'repertoireNom' => 'MonNouveauRepertoire',
'repertoireEdit' => 'create'
);
$params = json_encode($params);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$reponsejson=json_decode($response);
$repetat=$reponsejson->etat->etat;
if (!isset($repetat->code)){
$repetat=$reponsejson->etat->etat[0];
}
// Erreur generale
if (!isset($repetat->repertoireId)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
// Infos de retour
}else{
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
echo 'RepertoireId: '.$repetat->repertoireId;
echo $sautligne;
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
url = 'https://apirest.isendpro.com/cgi-bin/repertoire'
params = {
'keyid': 'a296464ce012b8ab710a',
'repertoireNom': 'repertoireNom',
'repertoireEdit': 'create'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Traitement du retour
####################################################################################
reponsejson=response.json()
repetat=reponsejson['etat']
if not repetat.has_key('code'):
try:
repetat=reponsejson['etat']['etat'][0]
except:
repetat=reponsejson['etat']['etat']
# Erreur generale
if not repetat.has_key('repertoireId'):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Infos de retour
else:
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
print 'RepertoireId: '+repetat['repertoireId']
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://apirest.isendpro.com/cgi-bin/repertoire";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("repertoireNom", "repertoireNom");
paramsTablo.put("repertoireEdit", "create");
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
Map reponsejson = new Gson().fromJson(content.toString(), Map.class);
Map repetat = (Map)reponsejson.get("etat");
if (! repetat.containsKey("code")){
try{
repetat=(Map)reponsejson.get("etat");
var repetatArray=((ArrayList)(repetat.get("etat"))).get(0);
repetat=(Map)(repetatArray);
}catch(Exception e) {
repetat=(Map)reponsejson.get("etat");
repetat=(Map)repetat.get("etat");
}
}
// Erreur generale
if (! repetat.containsKey("repertoireId")){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
// Infos de retour
}else{
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
System.out.println("repertoireId: "+repetat.get("repertoireId"));
}
} finally {
con.disconnect();
}
}
}
https://apirest.isendpro.com/cgi-bin/repertoire
Paramètre | Type | Obligatoire | Détails |
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
num | Array | Oui |
Liste des numéros de téléphone à ajouter Au format international sans le + Ex: [ "33601020304", "33601020305", "33601020306" ] |
repertoireId | String | Oui | Identifiant du répertoire à modifier |
repertoireEdit | String | Oui |
Utiliser la valeur 'add' |
champ[X] | Array | Non |
Liste des données à associer au champ pour chaque numéro [X] est à remplacer par un entier entre 1 et 27 inclus Par défaut:
|
Paramètre | Type | Détails |
code | Number | Code correspondant au tableau des erreurs |
repertoireId | Number | Identifiant du répertoire créé |
tel | String | Numéro de téléphone associé au code retour |
message | String | Libellé correspondant au tableau des erreurs |
{
"etat":{
"etat":[
{
"code": "103",
"repertoireId": "39258",
"tel": "33601020304",
"message": "Votre donnee a ete ajoutee dans le repertoire!"
},
{
"code": "103",
"repertoireId": "39258",
"tel": "33601020305",
"message": "Votre donnee a ete ajoutee dans le repertoire!"
}
]
}
}
{
"etat":{
"etat":[
{
"code": "105",
"repertoireId": "39258",
"tel": "33601020304",
"message": "La donnee est deja presente dans le repertoire!"
},
{
"code": "105",
"repertoireId": "39258",
"tel": "33601020305",
"message": "La donnee est deja presente dans le repertoire!"
}
]
}
}
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/repertoire' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"repertoireEdit": "add",
"repertoireId": "39258",
"num": ["33601020304","33601020305","33601020306"],
"champ1": ["Pierre","Paul","Jacques"],
"champ2": ["Paris","Lyon","Marseille"]
}'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://apirest.isendpro.com/cgi-bin/repertoire';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'repertoireEdit' => 'add',
'repertoireId' => '39258',
'num' => ['33601020304','33601020305','33601020306'],
'champ1' => ['Pierre','Paul','Jacques'],
'champ2' => ['Paris','Lyon','Marseille']
);
$params = json_encode($params);
$options = array(
CURLOPT_URL => $url,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params,
CURLOPT_HTTPHEADER => array(
'Content-Type' => 'application/json',
'Content-Length: ' => strlen($params)
)
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$reponsejson=json_decode($response);
$repetatList=$reponsejson->etat->etat;
if(!is_array($repetatList)){
$repetatList=array($repetatList);
}
$cpt=1;
foreach($repetatList as $repetat){
echo '-----------';
echo $sautligne;
echo 'Data '.$cpt;
echo $sautligne;
// Erreur generale
if (!isset($repetat->tel)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
// Infos sur le numero
}else{
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
echo 'Tel: '.$repetat->tel;
echo $sautligne;
echo 'RepertoireId: '.$repetat->repertoireId;
echo $sautligne;
}
$cpt+=1;
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
import types
url = 'https://apirest.isendpro.com/cgi-bin/repertoire'
params = {
'keyid': 'a296464ce012b8ab710a',
'repertoireEdit': 'add',
'repertoireId': '39258',
'num': ['33601020304','33601020305','33601020306'],
'champ1': ['Pierre','Paul','Jacques'],
'champ2': ['Paris','Lyon','Marseille']
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Traitement du retour
####################################################################################
reponsejson=response.json()
repetatList=reponsejson['etat']['etat']
if not type(repetatList) is types.ListType:
repetatList=[repetatList]
cpt=1
for repetat in repetatList:
print '-----------'
print 'Data '+str(cpt)
# Erreur generale
if not repetat.has_key('tel'):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Infos sur le numero
else:
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
print 'Tel: '+repetat['tel']
print 'RepertoireId: '+repetat['repertoireId']
cpt+=1
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://apirest.isendpro.com/cgi-bin/repertoire";
ArrayList<String> listData = new ArrayList<String>();
listData.add("33601020304");
listData.add("33601020305");
listData.add("33601020306");
ArrayList<String> listChamp1 = new ArrayList<String>();
listChamp1.add("Pierre");
listChamp1.add("Paul");
listChamp1.add("Jacques");
ArrayList<String> listChamp2 = new ArrayList<String>();
listChamp2.add("Paris");
listChamp2.add("Lyon");
listChamp2.add("Marseille");
Map<String, Object> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("repertoireEdit", "add");
paramsTablo.put("repertoireId", "39258");
paramsTablo.put("num", listData);
paramsTablo.put("champ1", listChamp1);
paramsTablo.put("champ2", listChamp2);
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
Map reponsejson = new Gson().fromJson(content.toString(), Map.class);
Map repetat = (Map)reponsejson.get("etat");
ArrayList repetatList = (ArrayList)repetat.get("etat");
if(! (repetatList instanceof ArrayList)){
repetatList.add(repetatList);
}
for (int i = 0; i < repetatList.size(); i++) {
repetat = (Map)repetatList.get(i);
System.out.println("-----------");
System.out.println("Data "+i);
// Erreur generale
if (! repetat.containsKey("tel")){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
// Erreur specifique au numero de telephone
}else{
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
System.out.println("tel: "+repetat.get("tel"));
System.out.println("RepertoireId: "+repetat.get("RepertoireId"));
}
}
} finally {
con.disconnect();
}
}
}
https://apirest.isendpro.com/cgi-bin/repertoire
Paramètre | Type | Obligatoire | Détails |
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
num | Array | Oui |
Liste des numéros de téléphone à ajouter Au format international sans le + Ex: [ "33601020304", "33601020305", "33601020306" ] |
repertoireId | String | Oui | Identifiant du répertoire à modifier |
repertoireEdit | String | Oui |
Utiliser la valeur 'del' |
Paramètre | Type | Détails |
code | Number | Code correspondant au tableau des erreurs |
repertoireId | Number | Identifiant du répertoire créé |
tel | String | Numéro de téléphone associé au code retour |
message | String | Libellé correspondant au tableau des erreurs |
{
"etat":{
"etat":[
{
"code": "106",
"repertoireId": "39258",
"tel": "33601020304",
"message": "Votre donnee a ete supprimee du repertoire"
},
{
"code": "106",
"repertoireId": "39258",
"tel": "33601020305",
"message": "Votre donnee a ete supprimee du repertoire"
}
]
}
}
{
"etat":{
"etat":[
{
"code": "107",
"repertoireId": "39258",
"tel": "33601020304",
"message": "La donnee n'est pas presente dans le repertoire!"
},
{
"code": "107",
"repertoireId": "39258",
"tel": "33601020305",
"message": "La donnee n'est pas presente dans le repertoire!"
}
]
}
}
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/repertoire' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"repertoireEdit": "del",
"repertoireId": "39258",
"num": ["33601020304","33601020305","33601020306"]
}'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://apirest.isendpro.com/cgi-bin/repertoire';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'repertoireEdit' => 'del',
'repertoireId' => '39258',
'num' => ['33601020304','33601020305','33601020306']
);
$params = json_encode($params);
$options = array(
CURLOPT_URL => $url,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params,
CURLOPT_HTTPHEADER => array(
'Content-Type' => 'application/json',
'Content-Length: ' => strlen($params)
)
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$reponsejson=json_decode($response);
$repetatList=$reponsejson->etat->etat;
if(!is_array($repetatList)){
$repetatList=array($repetatList);
}
$cpt=1;
foreach($repetatList as $repetat){
echo '-----------';
echo $sautligne;
echo 'Data '.$cpt;
echo $sautligne;
// Erreur generale
if (!isset($repetat->tel)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
// Infos sur le numero
}else{
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
echo 'Tel: '.$repetat->tel;
echo $sautligne;
echo 'RepertoireId: '.$repetat->repertoireId;
echo $sautligne;
}
$cpt+=1;
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
import types
url = 'https://apirest.isendpro.com/cgi-bin/repertoire'
params = {
'keyid': 'a296464ce012b8ab710a',
'repertoireEdit': 'del',
'repertoireId': '39258',
'num': ['33601020304','33601020305','33601020306']
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Traitement du retour
####################################################################################
reponsejson=response.json()
repetatList=reponsejson['etat']['etat']
if not type(repetatList) is types.ListType:
repetatList=[repetatList]
cpt=1
for repetat in repetatList:
print '-----------'
print 'Data '+str(cpt)
# Erreur generale
if not repetat.has_key('tel'):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Infos sur le numero
else:
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
print 'Tel: '+repetat['tel']
print 'RepertoireId: '+repetat['repertoireId']
cpt+=1
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://apirest.isendpro.com/cgi-bin/repertoire";
ArrayList<String> listData = new ArrayList<String>();
listData.add("33601020304");
listData.add("33601020305");
listData.add("33601020306");
Map<String, Object> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("repertoireEdit", "del");
paramsTablo.put("repertoireId", "39258");
paramsTablo.put("num", listData);
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
Map reponsejson = new Gson().fromJson(content.toString(), Map.class);
Map repetat = (Map)reponsejson.get("etat");
ArrayList repetatList = (ArrayList)repetat.get("etat");
if(! (repetatList instanceof ArrayList)){
repetatList.add(repetatList);
}
for (int i = 0; i < repetatList.size(); i++) {
repetat = (Map)repetatList.get(i);
System.out.println("-----------");
System.out.println("Data "+i);
// Erreur generale
if (! repetat.containsKey("tel")){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
// Erreur specifique au numero de telephone
}else{
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
System.out.println("tel: "+repetat.get("tel"));
System.out.println("RepertoireId: "+repetat.get("RepertoireId"));
}
}
} finally {
con.disconnect();
}
}
}
www.votre_adresse.com/votre_page_web
L'API appellera alors www.votre_adresse.com/votre_page_web?tel=[TEL]&libelle=[LIBELLE]&statut=[STATUT]&code_erreur=[CODE_ERREUR]&date=[DATE]&heure=[HEURE]&id=[ID]&operateur=[OPERATEUR]&tracker=[TRACKER]
Paramètre | Type | Obligatoire | Détails |
tel | String | Oui |
Numéro de téléphone du destinataire Au format 06XXXXXXXX ou 07XXXXXXXX pour la France métropolitaine Au format international sans le + pour les autres pays Ex: 0601020304 ou 32101020304 |
libelle | String | Oui | Libellé sur le statut de l'accusé de réception |
statut | Number | Oui |
Statut du message
|
Code erreur | String | Oui | Code associé à l'accusé de réception (cf Annexes) |
date |
Date au format AAAA-MM-JJ |
Oui | La date de réception de l'accusé |
heure |
Date au format HH:MM:SS |
Oui | L'heure de réception de l'accusé |
id | Number | Oui | Identifiant unique de l'accusé |
operateur | String | Oui | Chaine de caracteres indiquant la valeur de l'opérateur (cf Annexes) |
tracker | String | Oui | Argument éventuellement fourni lors de l'envoi pour une identification simplifiée |
validation
Opérateur | Réponse |
Orange | Oui |
SFR | Oui |
Bouygues | Oui |
Free | Oui |
NRJ | Oui |
Coriolis | Oui |
Syma | Oui |
Truphone | Oui |
OnOff | Oui |
Lebara | Oui |
Lyca | Non |
Legos | Non |
Transatel | Non |
www.votre_adresse.com/votre_page_web
L'API appellera alors www.votre_adresse.com/votre_page_web?tel=[TEL]&id_retour=[ID_RETOUR]&msg_sms=[MSG_SMS]&tracker=[TRACKER]
Paramètre | Type | Obligatoire | Détails |
tel | String | Oui |
Numéro de téléphone du destinataire Au format 06XXXXXXXX ou 07XXXXXXXX pour la France métropolitaine Au format international sans le + pour les autres pays Ex: 0601020304 ou 32101020304 |
id_retour | Number | Oui | Identifiant unique de l'accusé |
msg_sms | String | Oui | Réponse envoyée par le destinataire |
tracker | String | Oui | Argument éventuellement fourni lors de l'envoi pour une identification simplifiée |
indicatif_pays | Number | Oui | Indicatif du pays du numéro |
datetime | Datetime | Oui | Horodatage de réception de la réponse sur notre plateforme au format AAAA-MM-JJ HH:MM:SS |
validation
https://apirest.isendpro.com/cgi-bin/subaccount
Paramètre | Type | Obligatoire | Détails |
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
subAccountLogin | String | Oui | Identifiant de connexion pour le nouveau sous compte |
subAccountPassword | String | Oui | Mot de passe de connexion pour le nouveau sous compte |
subAccountEdit | String | Oui | Utiliser la valeur 'addAccount' |
Paramètre | Type | Détails |
code | Number | Code correspondant au tableau des erreurs |
message | String | Libellé correspondant au tableau des erreurs |
subAccountLogin | String | Identifiant de connexion pour le nouveau sous compte |
subAccountId | String | Id pour le nouveau sous compte |
subAccountKeyId | String | Clé d'identification (KeyId) pour le nouveau sous compte |
{
"etat": {
"etat": [
{
"code": "230",
"message": "Le sous compte a ete ajoute",
"subAccountLogin": "subaccount2018",
"subAccountId": "20474",
"subAccountKeyId": "ber296464ce018ab710a"
}
]
}
}
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/subaccount' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"subAccountLogin": "MonIdentifiant",
"subAccountPassword": "MonMotdpasse",
"subAccountEdit": "addAccount"
}'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://apirest.isendpro.com/cgi-bin/subaccount';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'subAccountLogin' => 'MonIdentifiant',
'subAccountPassword'=> 'MonMotdpasse',
'subAccountEdit' => 'addAccount'
);
$params = json_encode($params);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$reponsejson=json_decode($response);
$repetat=$reponsejson->etat->etat;
if (!isset($repetat->code)){
$repetat=$reponsejson->etat->etat[0];
}
// Erreur generale
if (!isset($repetat->subAccountLogin)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
// Infos de retour
}else{
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
echo 'subAccountLogin: '.$repetat->subAccountLogin;
if (isset($repetat->subAccountId)){
echo $sautligne;
echo 'subAccountId: '.$repetat->subAccountId;
}
if (isset($repetat->subAccountKeyId)){
echo $sautligne;
echo 'subAccountKeyId: '.$repetat->subAccountKeyId;
}
echo $sautligne;
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
url = 'https://apirest.isendpro.com/cgi-bin/subaccount'
params = {
'keyid': 'a296464ce012b8ab710a',
'subAccountLogin': 'MonIdentifiant',
'subAccountPassword': 'MonMotdpasse',
'subAccountEdit': 'addAccount'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Traitement du retour
####################################################################################
reponsejson=response.json()
repetat=reponsejson['etat']
if not repetat.has_key('code'):
try:
repetat=reponsejson['etat']['etat'][0]
except:
repetat=reponsejson['etat']['etat']
# Erreur generale
if not repetat.has_key('subAccountLogin'):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Infos de retour
else:
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
print 'subAccountLogin: '+repetat['subAccountLogin']
if repetat.has_key('subAccountId'):
print 'subAccountId: '+repetat['subAccountId']
if repetat.has_key('subAccountKeyId'):
print 'subAccountKeyId: '+repetat['subAccountKeyId']
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://apirest.isendpro.com/cgi-bin/subaccount";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("subAccountLogin", "MonIdentifiantJava");
paramsTablo.put("subAccountPassword", "MonMotdpasse");
paramsTablo.put("subAccountEdit", "addAccount");
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
Map reponsejson = new Gson().fromJson(content.toString(), Map.class);
Map repetat = (Map)reponsejson.get("etat");
if (! repetat.containsKey("code")){
try{
repetat=(Map)reponsejson.get("etat");
var repetatArray=((ArrayList)(repetat.get("etat"))).get(0);
repetat=(Map)(repetatArray);
}catch(Exception e) {
repetat=(Map)reponsejson.get("etat");
repetat=(Map)repetat.get("etat");
}
}
// Erreur generale
if (! repetat.containsKey("subAccountLogin")){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
// Infos de retour
}else{
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
System.out.println("subAccountLogin: "+repetat.get("subAccountLogin"));
if (repetat.containsKey("subAccountId")){
System.out.println("subAccountId: "+repetat.get("subAccountId"));
}
if (repetat.containsKey("subAccountKeyId")){
System.out.println("subAccountKeyId: "+repetat.get("subAccountKeyId"));
}
}
} finally {
con.disconnect();
}
}
}
https://apirest.isendpro.com/cgi-bin/subaccount
Paramètre | Type | Obligatoire | Détails |
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
subAccountKeyId | String | Oui | Chaine de caractère unique identifiant le sous compte |
subAccountPrice | String | Oui |
Valeur du prix unitaire en euro HT pour 1 SMS Le séparateur de centimes est le point (.) Ex: 0.044 |
subAccountCountryCode | String | Oui |
Indicatif international du pays associé au prix sans le + Ex: 39 pour Italie ou 32 pour Belgique |
subAccountEdit | String | Oui | Utiliser la valeur 'setPrice' |
Paramètre | Type | Détails |
code | Number | Code correspondant au tableau des erreurs |
message | String | Libellé correspondant au tableau des erreurs |
subAccountId | String | Id pour le nouveau sous compte |
subAccountKeyId | String | Clé d'identification (KeyId) pour le nouveau sous compte |
{
"etat": {
"etat": [
{
"code": "241",
"message": "Le prix a ete mis a jour",
"subAccountId": "20474",
"subAccountKeyId": "ber296464ce018ab710a",
"subAccountCountryCode":"39"
}
]
}
}
{
"etat": {
"etat": [
{
"code": "234",
"message": "Aucun sous compte avec ces identifiants",
"subAccountKeyId": "ber296464ce018ab710a",
}
]
}
}
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/subaccount' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"subAccountKeyId": "ber296464ce018ab710a",
"subAccountPrice": "0.068",
"subAccountCountryCode": "39",
"subAccountEdit": "setPrice"
}'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://apirest.isendpro.com/cgi-bin/subaccount';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'subAccountKeyId' => 'ber296464ce018ab710a',
'subAccountPrice' => '0.068',
'subAccountCountryCode' => '39',
'subAccountEdit' => 'setPrice'
);
$params = json_encode($params);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$reponsejson=json_decode($response);
$repetat=$reponsejson->etat->etat;
if (!isset($repetat->code)){
$repetat=$reponsejson->etat->etat[0];
}
// Erreur generale
if (!isset($repetat->subAccountKeyId)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
// Infos de retour
}else{
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
echo 'subAccountKeyId: '.$repetat->subAccountKeyId;
if (isset($repetat->subAccountId)){
echo $sautligne;
echo 'subAccountId: '.$repetat->subAccountId;
}
if (isset($repetat->subAccountCountryCode)){
echo $sautligne;
echo 'subAccountCountryCode: '.$repetat->subAccountCountryCode;
}
echo $sautligne;
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
url = 'https://apirest.isendpro.com/cgi-bin/subaccount'
params = {
'keyid' : 'a296464ce012b8ab710a',
'subAccountKeyId' : 'ber296464ce018ab710a',
'subAccountPrice' : '0.068',
'subAccountCountryCode' : '39',
'subAccountEdit' : 'setPrice'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Traitement du retour
####################################################################################
reponsejson=response.json()
repetat=reponsejson['etat']
if not repetat.has_key('code'):
try:
repetat=reponsejson['etat']['etat'][0]
except:
repetat=reponsejson['etat']['etat']
# Erreur generale
if not repetat.has_key('subAccountKeyId'):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Infos de retour
else:
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
print 'subAccountKeyId: '+repetat['subAccountKeyId']
if repetat.has_key('subAccountId'):
print 'subAccountId: '+repetat['subAccountId']
if repetat.has_key('subAccountCountryCode'):
print 'subAccountCountryCode: '+repetat['subAccountCountryCode']
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://apirest.isendpro.com/cgi-bin/subaccount";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("subAccountKeyId", "ber296464ce018ab710a");
paramsTablo.put("subAccountPrice", "0.068");
paramsTablo.put("subAccountCountryCode", "39");
paramsTablo.put("subAccountEdit", "setPrice");
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
Map reponsejson = new Gson().fromJson(content.toString(), Map.class);
Map repetat = (Map)reponsejson.get("etat");
if (! repetat.containsKey("code")){
try{
repetat=(Map)reponsejson.get("etat");
var repetatArray=((ArrayList)(repetat.get("etat"))).get(0);
repetat=(Map)(repetatArray);
}catch(Exception e) {
repetat=(Map)reponsejson.get("etat");
repetat=(Map)repetat.get("etat");
}
}
// Erreur generale
if (! repetat.containsKey("subAccountKeyId")){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
// Infos de retour
}else{
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
if (repetat.containsKey("subAccountId")){
System.out.println("subAccountId: "+repetat.get("subAccountId"));
}
if (repetat.containsKey("subAccountKeyId")){
System.out.println("subAccountKeyId: "+repetat.get("subAccountKeyId"));
}
}
} finally {
con.disconnect();
}
}
}
https://apirest.isendpro.com/cgi-bin/subaccount
Paramètre | Type | Obligatoire | Détails |
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
subAccountKeyId | String | Oui | Chaine de caractère unique identifiant le sous compte |
subAccountCountryCode | String | Oui |
Indicatif international du pays associé au prix sans le + Ex: 39 pour Italie ou 32 pour Belgique |
subAccountEdit | String | Oui | Utiliser la valeur 'getPrice' |
Paramètre | Type | Détails |
code | Number | Code correspondant au tableau des erreurs |
message | String | Libellé correspondant au tableau des erreurs |
subAccountId | String | Id pour le sous compte |
subAccountKeyId | String | Clé d'identification (KeyId) pour le sous compte |
subAccountCountryCode | String | Indicatif international du pays associé au prix sans le + |
subAccountPrice | String | Prix unitaire en euros HT avec le point (.) comme séparateur des centimes |
{
"etat": {
"etat": [
{
"code": "251",
"message": "Le prix unitaire",
"subAccountId": "20474",
"subAccountKeyId": "ber296464ce018ab710a",
"subAccountCountryCode":"344",
"subAccountPrice": "0.049"
}
]
}
}
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/subaccount' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"subAccountKeyId": "ber296464ce018ab710a",
"subAccountCountryCode": "39",
"subAccountEdit": "getPrice"
}'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://apirest.isendpro.com/cgi-bin/subaccount';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'subAccountKeyId' => 'ber296464ce018ab710a',
'subAccountCountryCode' => '39',
'subAccountEdit' => 'getPrice'
);
$params = json_encode($params);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$reponsejson=json_decode($response);
$repetat=$reponsejson->etat->etat;
if (!isset($repetat->code)){
$repetat=$reponsejson->etat->etat[0];
}
// Erreur generale
if (!isset($repetat->subAccountKeyId)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
// Infos de retour
}else{
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
echo 'subAccountKeyId: '.$repetat->subAccountKeyId;
if (isset($repetat->subAccountId)){
echo $sautligne;
echo 'subAccountId: '.$repetat->subAccountId;
}
if (isset($repetat->subAccountCountryCode)){
echo $sautligne;
echo 'subAccountCountryCode: '.$repetat->subAccountCountryCode;
}
if (isset($repetat->subAccountPrice)){
echo $sautligne;
echo 'subAccountPrice: '.$repetat->subAccountPrice;
}
echo $sautligne;
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
url = 'https://apirest.isendpro.com/cgi-bin/subaccount'
params = {
'keyid' : 'a296464ce012b8ab710a',
'subAccountKeyId' : 'ber296464ce018ab710a',
'subAccountCountryCode' : '39',
'subAccountEdit' : 'getPrice'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Traitement du retour
####################################################################################
reponsejson=response.json()
repetat=reponsejson['etat']
if not repetat.has_key('code'):
try:
repetat=reponsejson['etat']['etat'][0]
except:
repetat=reponsejson['etat']['etat']
# Erreur generale
if not repetat.has_key('subAccountKeyId'):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Infos de retour
else:
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
print 'subAccountKeyId: '+repetat['subAccountKeyId']
if repetat.has_key('subAccountId'):
print 'subAccountId: '+repetat['subAccountId']
if repetat.has_key('subAccountCountryCode'):
print 'subAccountCountryCode: '+repetat['subAccountCountryCode']
if repetat.has_key('subAccountPrice'):
print 'subAccountPrice: '+repetat['subAccountPrice']
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://apirest.isendpro.com/cgi-bin/subaccount";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("subAccountKeyId", "ber296464ce018ab710a");
paramsTablo.put("subAccountCountryCode", "39");
paramsTablo.put("subAccountEdit", "getPrice");
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
Map reponsejson = new Gson().fromJson(content.toString(), Map.class);
Map repetat = (Map)reponsejson.get("etat");
if (! repetat.containsKey("code")){
try{
repetat=(Map)reponsejson.get("etat");
var repetatArray=((ArrayList)(repetat.get("etat"))).get(0);
repetat=(Map)(repetatArray);
}catch(Exception e) {
repetat=(Map)reponsejson.get("etat");
repetat=(Map)repetat.get("etat");
}
}
// Erreur generale
if (! repetat.containsKey("subAccountKeyId")){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
// Infos de retour
}else{
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
if (repetat.containsKey("subAccountId")){
System.out.println("subAccountId: "+repetat.get("subAccountId"));
}
if (repetat.containsKey("subAccountCountryCode")){
System.out.println("subAccountCountryCode: "+repetat.get("subAccountCountryCode"));
}
if (repetat.containsKey("subAccountPrice")){
System.out.println("subAccountPrice: "+repetat.get("subAccountPrice"));
}
}
} finally {
con.disconnect();
}
}
}
https://apirest.isendpro.com/cgi-bin/subaccount
Paramètre | Type | Obligatoire | Détails |
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
subAccountKeyId | String | Oui | Chaine de caractère unique identifiant le sous compte |
subAccountAddCredit | Number | Oui |
Montant en euros HT à ajouter Le séparateur de centimes est le point (.) Ex: 150.0 |
subAccountEdit | String | Oui | Utiliser la valeur 'addCredit' |
Paramètre | Type | Détails |
code | Number | Code correspondant au tableau des erreurs |
message | String | Libellé correspondant au tableau des erreurs |
subAccountId | String | Id pour le nouveau sous compte |
subAccountKeyId | String | Clé d'identification (KeyId) pour le nouveau sous compte |
{
"etat": {
"etat": [
{
"code": "239",
"message": "Le credit a ete ajoute au sous compte",
"subAccountId": "20474",
"subAccountKeyId": "ber296464ce018ab710a"
}
]
}
}
{
"etat": {
"etat": [
{
"code": "234",
"message": "Aucun sous compte avec ces identifiants",
"subAccountKeyId": "ber296464ce018ab710a",
}
]
}
}
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/subaccount' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"subAccountKeyId": "ber296464ce018ab710a",
"subAccountAddCredit": "150",
"subAccountEdit": "addCredit"
}'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://apirest.isendpro.com/cgi-bin/subaccount';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'subAccountKeyId' => 'ber296464ce018ab710a',
'subAccountAddCredit' => '150',
'subAccountEdit' => 'addCredit'
);
$params = json_encode($params);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$reponsejson=json_decode($response);
$repetat=$reponsejson->etat->etat;
if (!isset($repetat->code)){
$repetat=$reponsejson->etat->etat[0];
}
// Erreur generale
if (!isset($repetat->subAccountKeyId)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
// Infos de retour
}else{
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
echo 'subAccountId: '.$repetat->subAccountKeyId;
echo $sautligne;
echo 'subAccountKeyId: '.$repetat->subAccountId;
echo $sautligne;
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
url = 'https://apirest.isendpro.com/cgi-bin/subaccount'
params = {
'keyid': 'a296464ce012b8ab710a',
'subAccountKeyId': 'ber296464ce018ab710a',
'subAccountAddCredit': '150',
'subAccountEdit': 'addCredit'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Traitement du retour
####################################################################################
reponsejson=response.json()
repetat=reponsejson['etat']
if not repetat.has_key('code'):
try:
repetat=reponsejson['etat']['etat'][0]
except:
repetat=reponsejson['etat']['etat']
# Erreur generale
if not repetat.has_key('subAccountKeyId'):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Infos de retour
else:
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
print 'subAccountId: '+repetat['subAccountId']
print 'subAccountKeyId: '+repetat['subAccountKeyId']
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://apirest.isendpro.com/cgi-bin/subaccount";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("subAccountKeyId", "ber296464ce018ab710a");
paramsTablo.put("subAccountAddCredit", "150");
paramsTablo.put("subAccountEdit", "addCredit");
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
Map reponsejson = new Gson().fromJson(content.toString(), Map.class);
Map repetat = (Map)reponsejson.get("etat");
if (! repetat.containsKey("code")){
try{
repetat=(Map)reponsejson.get("etat");
var repetatArray=((ArrayList)(repetat.get("etat"))).get(0);
repetat=(Map)(repetatArray);
}catch(Exception e) {
repetat=(Map)reponsejson.get("etat");
repetat=(Map)repetat.get("etat");
}
}
// Erreur generale
if (! repetat.containsKey("subAccountKeyId")){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
// Infos de retour
}else{
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
System.out.println("subAccountId: "+repetat.get("subAccountId"));
System.out.println("subAccountKeyId: "+repetat.get("subAccountKeyId"));
}
} finally {
con.disconnect();
}
}
}
https://apirest.isendpro.com/cgi-bin/subaccount
Paramètre | Type | Obligatoire | Détails |
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
subAccountKeyId | String | Oui | Chaine de caractère unique identifiant le sous compte |
subAccountOutstanding | Number | Oui | Nouveau montant en euros HT de l'encours |
subAccountEdit | String | Oui | Utiliser la valeur 'setOutstanding' |
Paramètre | Type | Détails |
code | Number | Code correspondant au tableau des erreurs |
message | String | Libellé correspondant au tableau des erreurs |
subAccountId | String | Id pour le nouveau sous compte |
subAccountKeyId | String | Clé d'identification (KeyId) pour le nouveau sous compte |
{
"etat": {
"etat": [
{
"code": "252",
"message": "L encours a ete defini pour le sous compte",
"subAccountId": "20474",
"subAccountKeyId": "ber296464ce018ab710a"
}
]
}
}
{
"etat": {
"etat": [
{
"code": "234",
"message": "Aucun sous compte avec ces identifiants",
"subAccountKeyId": "ber296464ce018ab710a"
}
]
}
}
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/subaccount' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"subAccountKeyId": "ber296464ce018ab710a",
"subAccountOutstanding": "150",
"subAccountEdit": "setOutstanding"
}'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://apirest.isendpro.com/cgi-bin/subaccount';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'subAccountKeyId' => 'ber296464ce018ab710a',
'subAccountOutstanding' => '150',
'subAccountEdit' => 'setOutstanding'
);
$params = json_encode($params);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$reponsejson=json_decode($response);
$repetat=$reponsejson->etat->etat;
if (!isset($repetat->code)){
$repetat=$reponsejson->etat->etat[0];
}
// Erreur generale
if (!isset($repetat->subAccountKeyId)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
// Infos de retour
}else{
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
echo 'subAccountId: '.$repetat->subAccountKeyId;
echo $sautligne;
echo 'subAccountKeyId: '.$repetat->subAccountId;
echo $sautligne;
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
url = 'https://apirest.isendpro.com/cgi-bin/subaccount'
params = {
'keyid' : 'a296464ce012b8ab710a',
'subAccountKeyId' : 'ber296464ce018ab710a',
'subAccountOutstanding' : '150',
'subAccountEdit' : 'setOutstanding'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Traitement du retour
####################################################################################
reponsejson=response.json()
repetat=reponsejson['etat']
if not repetat.has_key('code'):
try:
repetat=reponsejson['etat']['etat'][0]
except:
repetat=reponsejson['etat']['etat']
# Erreur generale
if not repetat.has_key('subAccountKeyId'):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Infos de retour
else:
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
print 'subAccountId: '+repetat['subAccountId']
print 'subAccountKeyId: '+repetat['subAccountKeyId']
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://apirest.isendpro.com/cgi-bin/subaccount";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("subAccountKeyId", "ber296464ce018ab710a");
paramsTablo.put("subAccountOutstanding", "150");
paramsTablo.put("subAccountEdit", "setOutstanding");
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
Map reponsejson = new Gson().fromJson(content.toString(), Map.class);
Map repetat = (Map)reponsejson.get("etat");
if (! repetat.containsKey("code")){
try{
repetat=(Map)reponsejson.get("etat");
var repetatArray=((ArrayList)(repetat.get("etat"))).get(0);
repetat=(Map)(repetatArray);
}catch(Exception e) {
repetat=(Map)reponsejson.get("etat");
repetat=(Map)repetat.get("etat");
}
}
// Erreur generale
if (! repetat.containsKey("subAccountKeyId")){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
// Infos de retour
}else{
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
System.out.println("subAccountId: "+repetat.get("subAccountId"));
System.out.println("subAccountKeyId: "+repetat.get("subAccountKeyId"));
}
} finally {
con.disconnect();
}
}
}
https://apirest.isendpro.com/cgi-bin/subaccount
Paramètre | Type | Obligatoire | Détails |
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
subAccountKeyId | String | Oui | Chaine de caractère unique identifiant le sous compte |
subAccountEdit | String | Oui | Utiliser la valeur 'getOutstanding' |
Paramètre | Type | Détails |
code | Number | Code correspondant au tableau des erreurs |
message | String | Libellé correspondant au tableau des erreurs |
subAccountId | String | Id pour le nouveau sous compte |
subAccountKeyId | String | Clé d'identification (KeyId) pour le nouveau sous compte |
subAccountOutstanding | String | Montant de l'encours en euros HT |
{
"etat": {
"etat": [
{
"code": "254",
"message": "L encours",
"subAccountId": "20474",
"subAccountKeyId": "ber296464ce018ab710a",
"subAccountOutstanding": "150"
}
]
}
}
{
"etat": {
"etat": [
{
"code": "234",
"message": "Aucun sous compte avec ces identifiants",
"subAccountKeyId": "ber296464ce018ab710a"
}
]
}
}
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/subaccount' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"subAccountKeyId": "ber296464ce018ab710a",
"subAccountEdit": "getOutstanding"
}'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://apirest.isendpro.com/cgi-bin/subaccount';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'subAccountKeyId' => 'ber296464ce018ab710a',
'subAccountEdit' => 'getOutstanding'
);
$params = json_encode($params);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$reponsejson=json_decode($response);
$repetat=$reponsejson->etat->etat;
if (!isset($repetat->code)){
$repetat=$reponsejson->etat->etat[0];
}
// Erreur generale
if (!isset($repetat->subAccountKeyId)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
// Infos de retour
}else{
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
echo 'subAccountKeyId: '.$repetat->subAccountKeyId;
echo $sautligne;
}
if (isset($repetat->subAccountOutstanding)){
echo $sautligne;
echo 'subAccountOutstanding: '.$repetat->subAccountOutstanding;
}
echo $sautligne;
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
url = 'https://apirest.isendpro.com/cgi-bin/subaccount'
params = {
'keyid' : 'a296464ce012b8ab710a',
'subAccountKeyId' : 'ber296464ce018ab710a',
'subAccountEdit' : 'getOutstanding'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Traitement du retour
####################################################################################
reponsejson=response.json()
repetat=reponsejson['etat']
if not repetat.has_key('code'):
try:
repetat=reponsejson['etat']['etat'][0]
except:
repetat=reponsejson['etat']['etat']
# Erreur generale
if not repetat.has_key('subAccountKeyId'):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Infos de retour
else:
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
print 'subAccountKeyId: '+repetat['subAccountKeyId']
if repetat.has_key('subAccountOutstanding'):
print 'subAccountOutstanding: '+repetat['subAccountOutstanding']
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://apirest.isendpro.com/cgi-bin/subaccount";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("subAccountKeyId", "ber296464ce018ab710a");
paramsTablo.put("subAccountEdit", "getOutstanding");
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
Map reponsejson = new Gson().fromJson(content.toString(), Map.class);
Map repetat = (Map)reponsejson.get("etat");
if (! repetat.containsKey("code")){
try{
repetat=(Map)reponsejson.get("etat");
var repetatArray=((ArrayList)(repetat.get("etat"))).get(0);
repetat=(Map)(repetatArray);
}catch(Exception e) {
repetat=(Map)reponsejson.get("etat");
repetat=(Map)repetat.get("etat");
}
}
// Erreur generale
if (! repetat.containsKey("subAccountKeyId")){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
// Infos de retour
}else{
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
System.out.println("subAccountKeyId: "+repetat.get("subAccountKeyId"));
if (repetat.containsKey("subAccountOutstanding")){
System.out.println("subAccountOutstanding: "+repetat.get("subAccountOutstanding"));
}
}
} finally {
con.disconnect();
}
}
}
https://apirest.isendpro.com/cgi-bin/subaccount
Paramètre | Type | Obligatoire | Détails |
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
subAccountKeyId | String | Oui | Chaine de caractère unique identifiant le sous compte |
subAccountRestrictionStop | Number | Oui |
Activation ou désactivation de la restriction STOP SMS
|
subAccountEdit | String | Oui | Utiliser la valeur 'setRestriction' |
Paramètre | Type | Détails |
code | Number | Code correspondant au tableau des erreurs |
message | String | Libellé correspondant au tableau des erreurs |
subAccountId | String | Id pour le nouveau sous compte |
subAccountKeyId | String | Clé d'identification (KeyId) pour le nouveau sous compte |
{
"etat": {
"etat": [
{
"code": "244",
"message": "La restriction STOP a ete desactivee",
"subAccountId": "20474",
"subAccountKeyId": "ber296464ce018ab710a"
}
]
}
}
{
"etat": {
"etat": [
{
"code": "234",
"message": "Aucun sous compte avec ces identifiants",
"subAccountKeyId": "ber296464ce018ab710a"
}
]
}
}
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/subaccount' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"subAccountKeyId": "ber296464ce018ab710a",
"subAccountRestrictionStop": "0",
"subAccountEdit": "setRestriction"
}'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://apirest.isendpro.com/cgi-bin/subaccount';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'subAccountKeyId' => 'ber296464ce018ab710a',
'subAccountRestrictionStop' => '0',
'subAccountEdit' => 'setRestriction'
);
$params = json_encode($params);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$reponsejson=json_decode($response);
$repetat=$reponsejson->etat->etat;
if (!isset($repetat->code)){
$repetat=$reponsejson->etat->etat[0];
}
// Erreur generale
if (!isset($repetat->subAccountKeyId)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
// Infos de retour
}else{
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
echo 'subAccountId: '.$repetat->subAccountKeyId;
echo $sautligne;
echo 'subAccountKeyId: '.$repetat->subAccountId;
echo $sautligne;
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
url = 'https://apirest.isendpro.com/cgi-bin/subaccount'
params = {
'keyid' : 'a296464ce012b8ab710a',
'subAccountKeyId' : 'ber296464ce018ab710a',
'subAccountRestrictionStop' : '0',
'subAccountEdit' : 'setRestriction'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Traitement du retour
####################################################################################
reponsejson=response.json()
repetat=reponsejson['etat']
if not repetat.has_key('code'):
try:
repetat=reponsejson['etat']['etat'][0]
except:
repetat=reponsejson['etat']['etat']
# Erreur generale
if not repetat.has_key('subAccountKeyId'):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Infos de retour
else:
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
print 'subAccountId: '+repetat['subAccountId']
print 'subAccountKeyId: '+repetat['subAccountKeyId']
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://apirest.isendpro.com/cgi-bin/subaccount";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("subAccountKeyId", "ber296464ce018ab710a");
paramsTablo.put("subAccountRestrictionStop","0");
paramsTablo.put("subAccountEdit", "setRestriction");
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
Map reponsejson = new Gson().fromJson(content.toString(), Map.class);
Map repetat = (Map)reponsejson.get("etat");
if (! repetat.containsKey("code")){
try{
repetat=(Map)reponsejson.get("etat");
var repetatArray=((ArrayList)(repetat.get("etat"))).get(0);
repetat=(Map)(repetatArray);
}catch(Exception e) {
repetat=(Map)reponsejson.get("etat");
repetat=(Map)repetat.get("etat");
}
}
// Erreur generale
if (! repetat.containsKey("subAccountKeyId")){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
// Infos de retour
}else{
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
System.out.println("subAccountId: "+repetat.get("subAccountId"));
System.out.println("subAccountKeyId: "+repetat.get("subAccountKeyId"));
}
} finally {
con.disconnect();
}
}
}
https://apirest.isendpro.com/cgi-bin/subaccount
Paramètre | Type | Obligatoire | Détails |
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
subAccountKeyId | String | Oui | Chaine de caractère unique identifiant le sous compte |
subAccountRestrictionTime | Number | Oui |
Activation ou désactivation de la restriction horaire
|
subAccountEdit | String | Oui | Utiliser la valeur 'setRestriction' |
Paramètre | Type | Détails |
code | Number | Code correspondant au tableau des erreurs |
message | String | Libellé correspondant au tableau des erreurs |
subAccountId | String | Id du sous compte |
subAccountKeyId | String | Clé d'identification (KeyId) du sous compte |
{
"etat": {
"etat": [
{
"code": "246",
"message": "La restriction horaire a ete desactivee",
"subAccountId": "20474",
"subAccountKeyId": "ber296464ce018ab710a"
}
]
}
}
{
"etat": {
"etat": [
{
"code": "234",
"message": "Aucun sous compte avec ces identifiants",
"subAccountKeyId": "ber296464ce018ab710a"
}
]
}
}
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/subaccount' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"subAccountKeyId": "ber296464ce018ab710a",
"subAccountRestrictionTime": "0",
"subAccountEdit": "setRestriction"
}'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://apirest.isendpro.com/cgi-bin/subaccount';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'subAccountKeyId' => 'ber296464ce018ab710a',
'subAccountRestrictionTime' => '0',
'subAccountEdit' => 'setRestriction'
);
$params = json_encode($params);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$reponsejson=json_decode($response);
$repetat=$reponsejson->etat->etat;
if (!isset($repetat->code)){
$repetat=$reponsejson->etat->etat[0];
}
// Erreur generale
if (!isset($repetat->subAccountKeyId)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
// Infos de retour
}else{
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
echo 'subAccountId: '.$repetat->subAccountKeyId;
echo $sautligne;
echo 'subAccountKeyId: '.$repetat->subAccountId;
echo $sautligne;
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
url = 'https://apirest.isendpro.com/cgi-bin/subaccount'
params = {
'keyid' : 'a296464a296464ce012b8ab710ae012b8ab710a',
'subAccountKeyId' : 'ber296464ce018ab710a',
'subAccountRestrictionTime' : '0',
'subAccountEdit' : 'setRestriction'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Traitement du retour
####################################################################################
reponsejson=response.json()
repetat=reponsejson['etat']
if not repetat.has_key('code'):
try:
repetat=reponsejson['etat']['etat'][0]
except:
repetat=reponsejson['etat']['etat']
# Erreur generale
if not repetat.has_key('subAccountKeyId'):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Infos de retour
else:
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
print 'subAccountId: '+repetat['subAccountId']
print 'subAccountKeyId: '+repetat['subAccountKeyId']
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://apirest.isendpro.com/cgi-bin/subaccount";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("subAccountKeyId", "ber296464ce018ab710a");
paramsTablo.put("subAccountRestrictionTime","0");
paramsTablo.put("subAccountEdit", "setRestriction");
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
Map reponsejson = new Gson().fromJson(content.toString(), Map.class);
Map repetat = (Map)reponsejson.get("etat");
if (! repetat.containsKey("code")){
try{
repetat=(Map)reponsejson.get("etat");
var repetatArray=((ArrayList)(repetat.get("etat"))).get(0);
repetat=(Map)(repetatArray);
}catch(Exception e) {
repetat=(Map)reponsejson.get("etat");
repetat=(Map)repetat.get("etat");
}
}
// Erreur generale
if (! repetat.containsKey("subAccountKeyId")){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
// Infos de retour
}else{
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
System.out.println("subAccountId: "+repetat.get("subAccountId"));
System.out.println("subAccountKeyId: "+repetat.get("subAccountKeyId"));
}
} finally {
con.disconnect();
}
}
}
https://apirest.isendpro.com/cgi-bin/subaccount
Paramètre | Type | Obligatoire | Détails |
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
subAccountKeyId | String | Oui | Chaine de caractère unique identifiant le sous compte |
subAccountCountryAccess | Number | Oui |
Gestion des autorisations
|
Paramètre | Type | Détails |
code | Number | Code correspondant au tableau des erreurs |
message | String | Libellé correspondant au tableau des erreurs |
subAccountId | String | Id pour du sous compte |
{
"etat": {
"etat": [
{
"code": "265",
"message": "Tous les pays sont autorises",
"subAccountId": "20474"
}
]
}
}
{
"etat": {
"etat": [
{
"code": "264",
"message": "Vous devez saisir une valeur valide pour subAccountCountryAccess: -1, 0 ou 1",
"subAccountId": "20474"
}
]
}
}
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/subaccount' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"subAccountKeyId": "ber296464ce018ab710a",
"subAccountEdit": "setCountryList",
"subAccountRestrictionStop": "1"
}'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://apirest.isendpro.com/cgi-bin/subaccount';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'subAccountKeyId' => 'ber296464ce018ab710a',
'subAccountEdit' => 'setCountryList',
'subAccountCountryAccess' => '1'
);
$params = json_encode($params);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$reponsejson=json_decode($response);
$repetat=$reponsejson->etat->etat;
if (!isset($repetat->code)){
$repetat=$reponsejson->etat->etat[0];
}
// Erreur generale
if (!isset($repetat->subAccountKeyId)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
// Infos de retour
}else{
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
echo 'subAccountKeyId: '.$repetat->subAccountId;
echo $sautligne;
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
url = 'https://apirest.isendpro.com/cgi-bin/subaccount'
params = {
'keyid' : 'a296464ce012b8ab710a',
'subAccountKeyId' : 'ber296464ce018ab710a',
'subAccountEdit' : 'setCountryList',
'subAccountCountryAccess' : '1'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Traitement du retour
####################################################################################
reponsejson=response.json()
repetat=reponsejson['etat']
if not repetat.has_key('code'):
try:
repetat=reponsejson['etat']['etat'][0]
except:
repetat=reponsejson['etat']['etat']
# Erreur generale
if not repetat.has_key('subAccountKeyId'):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Infos de retour
else:
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
print 'subAccountId: '+repetat['subAccountId']
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://apirest.isendpro.com/cgi-bin/subaccount";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("subAccountKeyId", "ber296464ce018ab710a");
paramsTablo.put("subAccountEdit", "setCountryList");
paramsTablo.put("subAccountCountryAccess", "1");
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
Map reponsejson = new Gson().fromJson(content.toString(), Map.class);
Map repetat = (Map)reponsejson.get("etat");
if (! repetat.containsKey("code")){
try{
repetat=(Map)reponsejson.get("etat");
var repetatArray=((ArrayList)(repetat.get("etat"))).get(0);
repetat=(Map)(repetatArray);
}catch(Exception e) {
repetat=(Map)reponsejson.get("etat");
repetat=(Map)repetat.get("etat");
}
}
// Erreur generale
if (! repetat.containsKey("subAccountKeyId")){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
// Infos de retour
}else{
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
System.out.println("subAccountId: "+repetat.get("subAccountId"));
}
} finally {
con.disconnect();
}
}
}
https://apirest.isendpro.com/cgi-bin/subaccount
Paramètre | Type | Obligatoire | Détails |
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
subAccountKeyId | String | Oui | Chaine de caractère unique identifiant le sous compte |
subAccountCountryFunction | String | Oui |
Type de modification
|
subAccountCountryType | String | Oui |
Type de liste
|
subAccountCountryCode | String | Oui |
Indicatif international du pays associé au prix sans le + Ex: 39 pour Italie ou 32 pour Belgique |
Paramètre | Type | Détails |
code | Number | Code correspondant au tableau des erreurs |
message | String | Libellé correspondant au tableau des erreurs |
subAccountId | String | Id pour du sous compte |
subAccountCountryCode | Number | Indicatif international du pays |
{
"etat": {
"etat": [
{
"code": "272",
"message": "Le pays est ajoute en liste noire",
"subAccountId": "20474",
"subAccountCountryCode": "32",
}
]
}
}
{
"etat": {
"etat": [
{
"code": "275",
"message": "Ajout impossible, aucun pays correspondant",
"subAccountId": "20474",
"subAccountCountryCode": "320",
}
]
}
}
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/subaccount' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"subAccountKeyId": "ber296464ce018ab710a",
"subAccountEdit": "setCountryList",
"subAccountCountryFunction": "add",
"subAccountCountryType": "1",
"subAccountCountryCode": "32"
}'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://apirest.isendpro.com/cgi-bin/subaccount';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'subAccountKeyId' => 'ber296464ce018ab710a',
'subAccountEdit' => 'setCountryList',
'subAccountCountryFunction' => 'add',
'subAccountCountryType' => '1',
'subAccountCountryCode' => '32'
);
$params = json_encode($params);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$reponsejson=json_decode($response);
$repetat=$reponsejson->etat->etat;
if (!isset($repetat->code)){
$repetat=$reponsejson->etat->etat[0];
}
// Erreur generale
if (!isset($repetat->subAccountKeyId)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
// Infos de retour
}else{
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
echo 'subAccountKeyId: '.$repetat->subAccountId;
echo $sautligne;
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
url = 'https://apirest.isendpro.com/cgi-bin/subaccount'
params = {
'keyid' : 'a296464ce012b8ab710a',
'subAccountKeyId' : 'ber296464ce018ab710a',
'subAccountEdit' : 'setCountryList',
'subAccountCountryFunction' : 'add',
'subAccountCountryType' : '1',
'subAccountCountryCode' : '32'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Traitement du retour
####################################################################################
reponsejson=response.json()
repetat=reponsejson['etat']
if not repetat.has_key('code'):
try:
repetat=reponsejson['etat']['etat'][0]
except:
repetat=reponsejson['etat']['etat']
# Erreur generale
if not repetat.has_key('subAccountKeyId'):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Infos de retour
else:
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
print 'subAccountId: '+repetat['subAccountId']
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://apirest.isendpro.com/cgi-bin/subaccount";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("subAccountKeyId", "ber296464ce018ab710a");
paramsTablo.put("subAccountEdit", "setCountryList");
paramsTablo.put("subAccountCountryFunction", "add");
paramsTablo.put("subAccountCountryType", "1");
paramsTablo.put("subAccountCountryCode", "32");
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
Map reponsejson = new Gson().fromJson(content.toString(), Map.class);
Map repetat = (Map)reponsejson.get("etat");
if (! repetat.containsKey("code")){
try{
repetat=(Map)reponsejson.get("etat");
var repetatArray=((ArrayList)(repetat.get("etat"))).get(0);
repetat=(Map)(repetatArray);
}catch(Exception e) {
repetat=(Map)reponsejson.get("etat");
repetat=(Map)repetat.get("etat");
}
}
// Erreur generale
if (! repetat.containsKey("subAccountKeyId")){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
// Infos de retour
}else{
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
System.out.println("subAccountId: "+repetat.get("subAccountId"));
}
} finally {
con.disconnect();
}
}
}
https://apirest.isendpro.com/cgi-bin/subaccount
Paramètre | Type | Obligatoire | Détails |
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
subAccountKeyId | String | Oui | Chaine de caractère unique identifiant le sous compte |
subAccountAdresseRetour | String | Oui |
Adresse de retour vers lequel sera envoyé les accusés de réception Ex: https://monurlderetour.php |
subAccountEdit | String | Oui | Utiliser la valeur 'setAdresseRetour' |
Paramètre | Type | Détails |
code | Number | Code correspondant au tableau des erreurs |
message | String | Libellé correspondant au tableau des erreurs |
subAccountId | String | Id du sous compte |
subAccountKeyId | String | Clé d'identification (KeyId) du sous compte |
{
"etat": {
"etat": [
{
"code": "258",
"message": "L url de retour a ete defini pour le sous compte",
"subAccountId": "20474",
"subAccountKeyId": "ber296464ce018ab710a"
}
]
}
}
{
"etat": {
"etat": [
{
"code": "257",
"message": "Vous devez renseigner une url de retour valide",
"subAccountKeyId": "ber296464ce018ab710a"
}
]
}
}
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/subaccount' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"subAccountKeyId": "ber296464ce018ab710a",
"subAccountAdresseRetour": "https://monurlderetour.php",
"subAccountEdit": "setAdresseRetour"
}'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://apirest.isendpro.com/cgi-bin/subaccount';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'subAccountKeyId' => 'ber296464ce018ab710a',
'subAccountAdresseRetour' => 'https://monurlderetour.php',
'subAccountEdit' => 'setAdresseRetour'
);
$params = json_encode($params);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$reponsejson=json_decode($response);
$repetat=$reponsejson->etat->etat;
if (!isset($repetat->code)){
$repetat=$reponsejson->etat->etat[0];
}
// Erreur generale
if (!isset($repetat->subAccountKeyId)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
// Infos de retour
}else{
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
echo 'subAccountId: '.$repetat->subAccountKeyId;
echo $sautligne;
echo 'subAccountKeyId: '.$repetat->subAccountId;
echo $sautligne;
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
url = 'https://apirest.isendpro.com/cgi-bin/subaccount'
params = {
'keyid' : 'a296464ce012b8ab710a',
'subAccountKeyId' : 'ber296464ce018ab710a',
'subAccountAdresseRetour' : 'https://monurlderetour.php',
'subAccountEdit' : 'setAdresseRetour'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Traitement du retour
####################################################################################
reponsejson=response.json()
repetat=reponsejson['etat']
if not repetat.has_key('code'):
try:
repetat=reponsejson['etat']['etat'][0]
except:
repetat=reponsejson['etat']['etat']
# Erreur generale
if not repetat.has_key('subAccountKeyId'):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Infos de retour
else:
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
print 'subAccountId: '+repetat['subAccountId']
print 'subAccountKeyId: '+repetat['subAccountKeyId']
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://apirest.isendpro.com/cgi-bin/subaccount";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("subAccountKeyId", "ber296464ce018ab710a");
paramsTablo.put("subAccountAdresseRetour", "https://monurlderetour.php");
paramsTablo.put("subAccountEdit", "setAdresseRetour");
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
Map reponsejson = new Gson().fromJson(content.toString(), Map.class);
Map repetat = (Map)reponsejson.get("etat");
if (! repetat.containsKey("code")){
try{
repetat=(Map)reponsejson.get("etat");
var repetatArray=((ArrayList)(repetat.get("etat"))).get(0);
repetat=(Map)(repetatArray);
}catch(Exception e) {
repetat=(Map)reponsejson.get("etat");
repetat=(Map)repetat.get("etat");
}
}
// Erreur generale
if (! repetat.containsKey("subAccountKeyId")){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
// Infos de retour
}else{
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
System.out.println("subAccountId: "+repetat.get("subAccountId"));
System.out.println("subAccountKeyId: "+repetat.get("subAccountKeyId"));
}
} finally {
con.disconnect();
}
}
}
https://apirest.isendpro.com/cgi-bin/subaccount
Paramètre | Type | Obligatoire | Détails |
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
subAccountKeyId | String | Oui | Chaine de caractère unique identifiant le sous compte |
subAccountAdresseSMSretour | String | Oui |
Adresse de retour vers lequel sera envoyé les réponses Ex: https://monurlderetour.php |
subAccountEdit | String | Oui | Utiliser la valeur 'setAdresseSMSretour' |
Paramètre | Type | Détails |
code | Number | Code correspondant au tableau des erreurs |
message | String | Libellé correspondant au tableau des erreurs |
subAccountId | String | Id pour le nouveau sous compte |
subAccountKeyId | String | Clé d'identification (KeyId) pour le nouveau sous compte |
{
"etat": {
"etat": [
{
"code": "256",
"message": "L url de retour SMS a ete defini pour le sous compte",
"subAccountId": "20474",
"subAccountKeyId": "ber296464ce018ab710a"
}
]
}
}
{
"etat": {
"etat": [
{
"code": "255",
"message": "Vous devez renseigner une url de retour SMS valide",
"subAccountKeyId": "ber296464ce018ab710a"
}
]
}
}
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/subaccount' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"subAccountKeyId": "ber296464ce018ab710a",
"subAccountAdresseSMSretour": "https://monurlderetour.php",
"subAccountEdit": "setAdresseSMSretour"
}'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://apirest.isendpro.com/cgi-bin/subaccount';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'subAccountKeyId' => 'ber296464ce018ab710a',
'subAccountAdresseSMSretour'=> 'https://monurlderetour.php',
'subAccountEdit' => 'setAdresseSMSretour'
);
$params = json_encode($params);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$reponsejson=json_decode($response);
$repetat=$reponsejson->etat->etat;
if (!isset($repetat->code)){
$repetat=$reponsejson->etat->etat[0];
}
// Erreur generale
if (!isset($repetat->subAccountKeyId)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
// Infos de retour
}else{
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
echo 'subAccountId: '.$repetat->subAccountKeyId;
echo $sautligne;
echo 'subAccountKeyId: '.$repetat->subAccountId;
echo $sautligne;
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
url = 'https://apirest.isendpro.com/cgi-bin/subaccount'
params = {
'keyid': 'a296464ce012b8ab710a',
'subAccountKeyId': 'ber296464ce018ab710a',
'subAccountAdresseSMSretour': 'https://monurlderetour.php',
'subAccountEdit': 'setAdresseSMSretour'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Traitement du retour
####################################################################################
reponsejson=response.json()
repetat=reponsejson['etat']
if not repetat.has_key('code'):
try:
repetat=reponsejson['etat']['etat'][0]
except:
repetat=reponsejson['etat']['etat']
# Erreur generale
if not repetat.has_key('subAccountKeyId'):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Infos de retour
else:
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
print 'subAccountId: '+repetat['subAccountId']
print 'subAccountKeyId: '+repetat['subAccountKeyId']
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://apirest.isendpro.com/cgi-bin/subaccount";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("subAccountKeyId", "ber296464ce018ab710a");
paramsTablo.put("subAccountAdresseSMSretour", "https://monurlderetour.php");
paramsTablo.put("subAccountEdit", "setAdresseSMSretour");
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
Map reponsejson = new Gson().fromJson(content.toString(), Map.class);
Map repetat = (Map)reponsejson.get("etat");
if (! repetat.containsKey("code")){
try{
repetat=(Map)reponsejson.get("etat");
var repetatArray=((ArrayList)(repetat.get("etat"))).get(0);
repetat=(Map)(repetatArray);
}catch(Exception e) {
repetat=(Map)reponsejson.get("etat");
repetat=(Map)repetat.get("etat");
}
}
// Erreur generale
if (! repetat.containsKey("subAccountKeyId")){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
// Infos de retour
}else{
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
System.out.println("subAccountId: "+repetat.get("subAccountId"));
System.out.println("subAccountKeyId: "+repetat.get("subAccountKeyId"));
}
} finally {
con.disconnect();
}
}
}
Code | Opérateur |
ORAN | Orange |
SFR | SFR |
BOUY | Bouygues Telecom |
FREE | FREE Mobile |
NRJ | NRJ Mobile |
LYCA | LYCA Mobile |
MUND | Mundio Mobile |
CORI | Coriolis Telecom |
LBRA | Lebara |
TRAT | Transatel |
COMP | Completel |
LEGO | Legos |
MOQU | Mobiquithings |
TRUP | Truphone |
SMAA | Syma Mobile |
AIRM | Airtel |
Code erreur | Message |
0 | Votre message a bien ete envoye |
1 | The login is empty |
2 | The password is empty |
3 | Your credentials are incorrect |
4 | Vous devez saisir un message! |
5 | Le message ne doit pas depasser XXX caracteres! |
6 | Vous devez saisir un numero de telephone valide! |
7 | Un numero de telephone est sur 10 chiffres! |
9 | La route que vous avez saisie n'existe pas! |
10 | Vous n'avez pas les droits necessaires pour utiliser cette route! |
11 | Le numero de telephone est dans la liste noire! |
12 | Votre credit de MT est epuise! |
13 | La route Lowcost est down! |
14 | L'adresse IP n'est pas autorisee! |
15 | Vous devez indiquer un canal d'envoi! |
16 | L'emetteur ne peut pas etre vide! |
17 | L'emetteur doit etre sur plus de 3 caracteres et sur 11 caracteres maximum! |
18 | L'emetteur ne peut pas comporter que des chiffres! |
19 | Si un emetteur est indique, le message ne doit pas depasser 149 caracteres afin de pouvoir ajouter le texte 'STOP XXXXX' |
20 | L'emetteur ne peut pas etre modifie sur le canal LowCost! |
21 | Le numero de telephone n'est pas attribue! |
22 | Le numero de telephone est attribue a un Full MVNO |
23 | Le nombre maximum de telephones par requete est de 500 |
24 | Pas d'envoi commercial entre 20h et 08h, ni les jours feries |
25 | Il est obligatoire d'indiquer le cout vers les numeros en 0899. Ex: Pour plus de renseignements appelez le 0899 XX XX XX (1E35/apl+0.34E/min) |
26 | Il est obligatoire d'indiquer le cout vers les numeros en 0892. Ex: Pour plus de renseignements appelez le 0892 XX XX XX (0.34E/min) |
27 | L'indicatif pays du telephone n'est pas autorise! |
28 | Votre credit de qualification est epuise! |
29 | Nous ne pouvons donner suite a votre demande (overflow) |
30 | Erreur sur le domaine de connexion |
31 | Le message ne doit pas depasser XXX caracteres! |
32 | Le message est sur XXX SMS (XXX caracteres) alors que la demande est sur XXX SMS |
33 | Cet emetteur n'est pas autorise! |
34 | La valeur de smslong doit etre un entier! |
35 | Votre credit de HLR est epuise! |
36 | Vous n'etes pas autorise a retirer le STOP SMS! |
37 | Les numeros de telephone ne sont pas tous a destination du meme pays! |
38 | Le message ne doit pas depasser XXX caracteres! |
39 | Le message ne doit pas depasser XXX caracteres! |
40 | Le format de message ucs2 n'est pas autorise pour les numeros en France metropolitaine! |
41 | Vous n'etes pas autorise aux requetes HLR! |
42 | L'emetteur ne peut pas comporter de caracteres speciaux! |
43 | La date d'envoi n'est pas au bon format (AAAA-MM-JJ HH:MM)! |
44 | La zone GMT n'existe pas! |
45 | L'emetteur ne peut pas contenir 5 chiffres consecutifs! |
100 | Votre repertoire a ete cree! |
101 | Vous devez saisir un nom de repertoire! |
102 | Votre identifiant de repertoire ne correspond a aucune donnee! |
103 | Votre donnee a ete ajoutee dans le repertoire! |
104 | Ce repertoire ne peut pas etre modifie car une campagne est programme dessus! |
105 | La donnee est deja presente dans le repertoire! |
106 | Votre donnee a ete supprimee du repertoire |
107 | La donnee n'est pas presente dans le repertoire! |
108 | Cet identifiant ne correspond a aucun repertoire! |
201 | Vous devez saisir une date de debut de selection! |
202 | Vous devez saisir une date de fin de selection! |
203 | La date de debut de selection n'est pas au bon format (AAAA-MM-JJ HH:MM)! |
204 | La date de fin de selection n'est pas au bon format (AAAA-MM-JJ HH:MM)! |
205 | La selection depasse 200 000 donnees! Merci de la reduire! |
206 | La selection ne correspond a aucune donnee! |
207 | Historique des envois |
210 | Le mot cle a ete ajoute |
211 | Le mot cle a ete supprime |
212 | Liste des mot cles pour ce compte |
213 | Le mot cle n'est pas disponible |
214 | Le mot cle n'existe pas pour ce compte |
215 | Aucun mot cle pour ce compte |
216 | Le mot cle ne doit contenir ni espace, ni caractere speciaux |
217 | Le mot cle doit etre entre 3 et 20 caracteres |
220 | L emetteur a ete ajoute |
221 | L emetteur a ete supprime |
222 | Liste des emetteurs pour ce compte |
223 | L emetteur n'est pas disponible |
224 | L emetteur n'existe pas pour ce compte |
225 | Aucun emetteur pour ce compte |
230 | Le sous compte a ete ajoute |
231 | Vous devez saisir un identifiant/login pour la creation du sous compte |
232 | Vous devez saisir un mot de passe pour la creation du sous compte |
233 | Un sous compte existe deja avec cet identifiant |
234 | Aucun sous compte avec ces identifiants |
235 | Vous devez renseigner l indicatif du pays associe au prix |
236 | Vous devez renseigner un prix |
237 | Le prix a ete cree |
238 | Vous devez renseigner le montant du credit a ajouter |
239 | Le credit a ete ajoute au sous compte |
240 | La commande saisie ne correspond a aucune fonctionnalite |
241 | Le prix a ete mis a jour |
242 | Vous devez saisir la cle d identifcation du sous compte |
243 | Un sous compte ne peut pas avoir de sous compte |
244 | La restriction STOP a ete desactivee |
245 | La restriction STOP a ete activee |
246 | La restriction horaire a ete desactivee |
247 | La restriction horaire a ete activee |
248 | Les donnees de restriction ne sont pas correctes |
250 | Le lien court a ete genere |
251 | Le prix unitaire |
252 | L encours a ete defini pour le sous compte |
253 | Vous devez renseigner un encours positif |
254 | L encours |
255 | Vous devez renseigner une url de retour SMS valide |
256 | L url de retour SMS a ete defini pour le sous compte |
257 | Vous devez renseigner une url de retour valide |
258 | L url de retour a ete defini pour le sous compte |
259 | Le mot de passe du sous compte n est pas conforme! Minimum de 10 caracteres, une minuscule, une majuscule, un chiffre et un caractere special |
260 | Le quota max de requete rapportCampagne a ete depasse |
261 | Le quota max de requete shortlink a ete depasse |
262 | Suppression des campagnes effectue |
263 | Vous devez saisir un tracker |
264 | Vous devez saisir une valeur valide pour subAccountCountryAccess: -1, 0 ou 1 |
265 | Tous les pays sont autorises |
266 | Tous les pays en liste noire sont bloques |
267 | Tous les pays en liste blanche sont autorises |
268 | Vous devez saisir une valeur valide pour subAccountCountryFunction: add ou del |
269 | Vous devez saisir une valeur valide pour subAccountCountryType: 0 ou 1 |
270 | Suppression impossible, aucun pays correspondant |
271 | Le pays est ajoute en liste blanche |
272 | Le pays est ajoute en liste noire |
273 | Le pays est supprime de la blanche |
274 | Le pays est supprime de la noire |
275 | Ajout impossible, aucun pays correspondant |
777 | Le service est en maintenance. |
900 | keyId is valid |
901 | keyId is not valid |
998 | L encodage du message est incorrect |
999 | Une erreur est survenue. Merci de contacter le service technique |
Caractère | Signification | Caractère | Signification |
LF | Line Feed (saut de ligne) | CR | Carriage Return (retour chariot) |
SP | Espace (Space en anglais) | ! | Point d'exclamation |
" | Guillemet droit | # | Croisillon et parfois Dièse ou (aussi dénommé signe numéro 8) |
% | Pourcent | & | Esperluette |
‘ | Apostrophe (guillemet fermant simple ou accent aigu) | ( | Parenthèse ouvrante |
) | Parenthèse fermante | * | Astérisque |
+ | Plus | , | Virgule |
- | Moins (aussi dénommé tiret8 ou trait d'union13) | . | Point |
/ | Barre oblique (Slash en anglais) | 0 | Le chiffre zéro |
1 | Le chiffre un | 2 | Le chiffre deux |
3 | Le chiffre trois | 4 | Le chiffre quatre |
5 | Le chiffre cinq | 6 | Le chiffre six |
7 | Le chiffre sept | 8 | Le chiffre huit |
9 | Le chiffre neuf | : | Deux-points |
; | Point-virgule | < | Inférieur |
= | Égal | > | Supérieur |
? | Point d'interrogation | @ | Arobace (aussi dénommé Arobase ou A commercial8) |
A | B | ||
C | D | ||
E | F | ||
G | H | ||
I | J | ||
K | L | ||
M | N | ||
O | P | ||
Q | R | ||
S | T | ||
U | V | ||
W | X | ||
Y | Z | ||
[ | Crochet ouvrant | ] | Crochet fermant |
_ | trait bas 8 aussi dénommé Tiret bas, ou souligné (underscore en anglais) | a | |
b | c | ||
d | e | ||
f | g | ||
h | i | ||
j | k | ||
l | m | ||
n | o | ||
p | q | ||
r | s | ||
t | u | ||
v | w | ||
x | y | ||
z | à | ||
è | é | ||
ù | € | Euro |
Caractère | Remplacé par | Caractère | Remplacé par |
À | A | Á | A |
 | A | à | A |
Ä | A | Å | A |
È | E | É | E |
Ë | E | Ì | I |
Í | I | Î | I |
Ï | I | Ò | O |
Ó | O | Ô | O |
Õ | O | Ö | O |
Ù | U | Ú | U |
Û | U | Ü | U |
á | a | â | a |
ã | a | ä | a |
å | a | ç | c |
ê | e | ë | e |
ì | i | í | i |
î | i | ï | i |
ð | o | ñ | n |
ò | o | ó | o |
ô | o | õ | o |
ö | o | ù | u |
ú | u | û | u |
ü | u | ý | y |
ÿ | y |
Caractère | Encodage | Caractère | Encodage |
Espace | %20 | $ | %24 |
& | %26 | + | %2B |
, | %2C | / | %2F |
: | %3A | ; | %3B |
? | %3D | @ | %40 |
€ | Ê ou %ca | Saut de ligne | Õ ou %d5 |
Zone GMT | Correspondance | Zone GMT | Correspondance |
Pacific/Midway | (GMT-11:00) Midway Island, Samoa | America/Adak | (GMT-10:00) Hawaii-Aleutian |
Etc/GMT+10 | (GMT-10:00) Hawaii | Pacific/Marquesas | (GMT-09:30) Marquesas Islands |
Pacific/Gambier | (GMT-09:00) Gambier Islands | America/Anchorage | (GMT-09:00) Alaska |
America/Ensenada | (GMT-08:00) Tijuana, Baja California | Etc/GMT+8 | (GMT-08:00) Pitcairn Islands |
America/Los_Angeles | (GMT-08:00) Pacific Time (US & Canada) | America/Denver | (GMT-07:00) Mountain Time (US & Canada) |
America/Chihuahua | (GMT-07:00) Chihuahua, La Paz, Mazatlan | America/Dawson_Creek | (GMT-07:00) Arizona |
America/Belize | (GMT-06:00) Saskatchewan, Central America | America/Cancun | (GMT-06:00) Guadalajara, Mexico City, Monterrey |
Chile/EasterIsland | (GMT-06:00) Easter Island | America/Chicago | (GMT-06:00) Central Time (US & Canada) |
America/New_York | (GMT-05:00) Eastern Time (US & Canada) | America/Havana | (GMT-05:00) Cuba |
America/Bogota | (GMT-05:00) Bogota, Lima, Quito, Rio Branco | America/Caracas | (GMT-04:30) Caracas |
America/Santiago | (GMT-04:00) Santiago | America/La_Paz | (GMT-04:00) La Paz |
Atlantic/Stanley | (GMT-04:00) Faukland Islands | America/Campo_Grande | (GMT-04:00) Brazil |
America/Goose_Bay | (GMT-04:00) Atlantic Time (Goose Bay) | America/Glace_Bay | (GMT-04:00) Atlantic Time (Canada) |
America/St_Johns | (GMT-03:30) Newfoundland | America/Araguaina | (GMT-03:00) UTC-3 |
America/Montevideo | (GMT-03:00) Montevideo | America/Miquelon | (GMT-03:00) Miquelon, St. Pierre |
America/Godthab | (GMT-03:00) Greenland | America/Argentina/Buenos_Aires | (GMT-03:00) Buenos Aires |
America/Sao_Paulo | (GMT-03:00) Brasilia | America/Noronha | (GMT-02:00) Mid-Atlantic |
Atlantic/Cape_Verde | (GMT-01:00) Cape Verde Is. | Atlantic/Azores | (GMT-01:00) Azores |
Europe/Belfast | (GMT) Greenwich Mean Time : Belfast | Europe/Dublin | (GMT) Greenwich Mean Time : Dublin |
Europe/Lisbon | (GMT) Greenwich Mean Time : Lisbon | Europe/London | (GMT) Greenwich Mean Time : London |
Africa/Abidjan | (GMT) Monrovia, Reykjavik | Europe/Amsterdam | (GMT+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna |
Europe/Belgrade | (GMT+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague | Europe/Brussels | (GMT+01:00) Brussels, Copenhagen, Madrid, Paris |
Africa/Algiers | (GMT+01:00) West Central Africa | Africa/Windhoek | (GMT+01:00) Windhoek |
Asia/Beirut | (GMT+02:00) Beirut | Africa/Cairo | (GMT+02:00) Cairo |
Asia/Gaza | (GMT+02:00) Gaza | Africa/Blantyre | (GMT+02:00) Harare, Pretoria |
Asia/Jerusalem | (GMT+02:00) Jerusalem | Europe/Minsk | (GMT+02:00) Minsk |
Asia/Damascus | (GMT+02:00) Syria | Europe/Moscow | (GMT+03:00) Moscow, St. Petersburg, Volgograd |
Africa/Addis_Ababa | (GMT+03:00) Nairobi | Asia/Tehran | (GMT+03:30) Tehran |
Asia/Dubai | (GMT+04:00) Abu Dhabi, Muscat | Asia/Yerevan | (GMT+04:00) Yerevan |
Asia/Kabul | (GMT+04:30) Kabul | Asia/Yekaterinburg | (GMT+05:00) Ekaterinburg |
Asia/Tashkent | (GMT+05:00) Tashkent | Asia/Kolkata | (GMT+05:30) Chennai, Kolkata, Mumbai, New Delhi |
Asia/Katmandu | (GMT+05:45) Kathmandu | Asia/Dhaka | (GMT+06:00) Astana, Dhaka |
Asia/Novosibirsk | (GMT+06:00) Novosibirsk | Asia/Rangoon | (GMT+06:30) Yangon (Rangoon) |
Asia/Bangkok | (GMT+07:00) Bangkok, Hanoi, Jakarta | Asia/Krasnoyarsk | (GMT+07:00) Krasnoyarsk |
Asia/Hong_Kong | (GMT+08:00) Beijing, Chongqing, Hong Kong, Urumqi | Asia/Irkutsk | (GMT+08:00) Irkutsk, Ulaan Bataar |
Australia/Perth | (GMT+08:00) Perth | Australia/Eucla | (GMT+08:45) Eucla |
Asia/Tokyo | (GMT+09:00) Osaka, Sapporo, Tokyo | Asia/Seoul | (GMT+09:00) Seoul |
Asia/Yakutsk | (GMT+09:00) Yakutsk | Australia/Adelaide | (GMT+09:30) Adelaide |
Australia/Darwin | (GMT+09:30) Darwin | Australia/Brisbane | (GMT+10:00) Brisbane |
Australia/Hobart | (GMT+10:00) Hobart | Asia/Vladivostok | (GMT+10:00) Vladivostok |
Australia/Lord_Howe | (GMT+10:30) Lord Howe Island | Etc/GMT-11 | (GMT+11:00) Solomon Is., New Caledonia |
Asia/Magadan | (GMT+11:00) Magadan | Pacific/Norfolk | (GMT+11:30) Norfolk Island |
Asia/Anadyr | (GMT+12:00) Anadyr, Kamchatka | Pacific/Auckland | (GMT+12:00) Auckland, Wellington |
Etc/GMT-12 | (GMT+12:00) Fiji, Kamchatka, Marshall Is. | Pacific/Chatham | (GMT+12:45) Chatham Islands |
Pacific/Tongatapu | (GMT+13:00) Nuku'alofa | Pacific/Kiritimati | (GMT+14:00) Kiritimati |
Code | Message | Code | Message |
000 | Service temporairement indisponible | 002 | Service temporairement indisponible |
003 | Service temporairement indisponible | 004 | Service temporairement indisponible |
005 | Service temporairement indisponible | 006 | Service temporairement indisponible |
007 | Service temporairement indisponible | 008 | Service temporairement indisponible |
009 | Code d'erreur illégal | 010 | Expiration de la temporisation du réseau |
100 | Fonctionnalité non supportée | 101 | Abonné inconnu |
102 | Fonctionnalité non offerte | 103 | Appel bloqué |
104 | Opération bloquée | 105 | Surcharge du SMS-C |
106 | Fonctionnalité non supportée | 107 | Abonné absent |
108 | Echec de remise | 109 | Surcharge su SMS-C |
110 | Erreur de protocole | 111 | Mobile non équipé |
112 | SMS-C inconnu | 113 | Surcharge du SMS-C |
114 | Mobile illégal | 115 | Mobile pas abonné |
116 | Erreur dans le mobile | 117 | Couche basse SMS non provisionnée |
118 | Echec du système | 119 | Erreur système du PLMN |
120 | Erreur système du HLR | 121 | Erreur du système du VLR |
122 | Erreur du système du VLR précédent | 123 | Erreur du système du MSC de contrôle |
124 | Erreur du système du VMC | 125 | Erreur du système du EIR |
126 | Erreur système | 127 | Valeur inattendue |
200 | Erreur dans l'adresse du SMS-C | 201 | Période de validité absolue non valide |
202 | Message court trop long | 203 | Impossible de lire le message GSM |
204 | Impossible de convertir en alphabet IA5 | 206 | Format de période de validité invalide |
207 | Message dupliqué | 208 | Indicateur de type de message (MT) invalide |
Code | Message | Description |
1 | ACK | Message is delivered to destination |
0 | ERROR | Message is undeliverable |
Code | Message | Description |
1 | ENROUTE | The message is in enroute state |
2 | DELIVERED | Message is delivered to destination |
3 | EXPIRED | Message validity period has expired |
4 | DELETED | Message has been deleted |
5 | UNDELIVERABLE | Message is undeliverable |
6 | ACCEPTED | Message is in accepted state (i.e. has been manually read on behalf of the subscriber by customer service) |
7 | UNKNOWN | Message is in an invalid state |
8 | REJECTED | Message is in a rejected state |
<envoi>
<keyid>[CLE_IDENTIFICATION]</keyid>
<num>[NUMERO_MOBILE]</num>
<sms>[MESSAGE]</sms>
<emailId>[ID_UNIQUE]</emailId>
</envoi>
[num];;[1];;[2];;[3]
Exemple sans données dynamiques:
33601020304
Les arguments [sms] et [num] ne doivent plus être renseignés dans le corps du message.
Paramètre | Type | Obligatoire | Détails | |||||||||||||||||||||
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
|||||||||||||||||||||
emailId | Number | Oui | identifiant unique de l’email | |||||||||||||||||||||
num | String | Oui |
Numéro de téléphone du destinataire Au format international sans le + Ex: 33601020304 Ne pas renseigner si fourni dans le fichier mobiles.csv |
|||||||||||||||||||||
sms | String | Oui |
Message envoyé au destinataire 1 SMS peut contenir jusqu'à 160 caractères Possibilité d'envoyer des messages plus long (jusqu'à 6 SMS concaténés) pour un total de 918 caractères (6 x 153) (7 caractères étant réserves pour des entêtes techniques) Le cout unitaire sera alors multiplié par le nombre de SMS correspondants Cf Argument smslong Ne pas renseigner si fourni dans le fichier mobiles.csv |
|||||||||||||||||||||
emetteur | String | Non |
Emetteur du message Par défaut, un numéro de fixe sur 10 chiffres Ex: 0422850268 Contraintes:
|
|||||||||||||||||||||
smslong | Number | Non |
Argument indiquant le nombre de SMS concaténés Si le nombre de SMS exact est connu alors indiquer ce nombre Si le nombre calculé par l'API diffère alors un message d'erreur sera retourné (code 32) Pour éviter ce controle et autoriser les messages sur plus de 1 SMS, utiliser la valeur 999
|
|||||||||||||||||||||
nostop | Number | Non |
Argument pour ne pas afficher automatiquement la mention STOP SMS en fin de message Utiliser la valeur 1 |
|||||||||||||||||||||
emailNot | String | Non |
Adresse email où envoyer les retours détaillés des envois Ex: not@masociete.com |
|||||||||||||||||||||
emailAck | String | Non |
Adresse email où envoyer si l’email a bien été traité ou non Ex: ack@masociete.com |
|||||||||||||||||||||
tracker | String | Non |
Généré par le client Renvoyé en paramètre des urls pour les retours des accusés de réception et les retours des sms réponses Longueur max de 50 caractères Ex: order-ab78pq9 |
|||||||||||||||||||||
date_envoi |
Date au format YYYY-MM-DD hh:mm |
Non |
Date à laquelle le message sera envoyé Envoi immédiat si non renseigné |
<envoi>
<keyid>a296464ce012b8ab710a</keyid>
<num>33601020304</num>
<sms>L’été est finiÕSuper promo -10% à partir de 50€ d’ achat !!!</sms>
<emetteur>MaSociete</emetteur>
<emailNot>not@masociete.com</emailNot>
<emailAck>ack@masociete.com</emailAck>
<emailId>1548</emailId>
</envoi>
Paramètre | Type | Obligatoire | Détails | |||||||||||||||||||||
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
|||||||||||||||||||||
emailId | Number | Oui | identifiant unique de l’email | |||||||||||||||||||||
num[X] | String | Oui |
Numéro de téléphone du destinataire Au format international sans le + Ex: 33601020304 Ne pas renseigner si fourni dans le fichier mobiles.csv |
|||||||||||||||||||||
sms[X] | String | Oui |
Message envoyé au destinataire 1 SMS peut contenir jusqu'à 160 caractères Possibilité d'envoyer des messages plus long (jusqu'à 6 SMS concaténés) pour un total de 918 caractères (6 x 153) (7 caractères étant réserves pour des entêtes techniques) Le cout unitaire sera alors multiplié par le nombre de SMS correspondants Cf Argument smslong Ne pas renseigner si fourni dans le fichier mobiles.csv |
|||||||||||||||||||||
emetteur | String | Non |
Emetteur du message Par défaut, un numéro de fixe sur 10 chiffres Ex: 0422850268 Contraintes:
|
|||||||||||||||||||||
smslong | Number | Non |
Argument indiquant le nombre de SMS concaténés Si le nombre de SMS exact est connu alors indiquer ce nombre Si le nombre calculé par l'API diffère alors un message d'erreur sera retourné (code 32) Pour éviter ce controle et autoriser les messages sur plus de 1 SMS, utiliser la valeur 999
|
|||||||||||||||||||||
nostop | Number | Non |
Argument pour ne pas afficher automatiquement la mention STOP SMS en fin de message Utiliser la valeur 1 |
|||||||||||||||||||||
emailNot | String | Non |
Adresse email où envoyer les retours détaillés des envois Ex: not@masociete.com |
|||||||||||||||||||||
emailAck | String | Non |
Adresse email où envoyer si l’email a bien été traité ou non Ex: ack@masociete.com |
|||||||||||||||||||||
tracker[X] | String | Non |
Généré par le client Renvoyé en paramètre des urls pour les retours des accusés de réception et les retours des sms réponses Longueur max de 50 caractères Ex: order-ab78pq9 |
|||||||||||||||||||||
date_envoi |
Date au format YYYY-MM-DD hh:mm |
Non |
Date à laquelle le message sera envoyé Envoi immédiat si non renseigné |
<envoi>
<keyid>a296464ce012b8ab710a</keyid>
<num1>33601020304</num1>
<num2>33601020305</num2>
<sms>L’été est finiÕSuper promo -10% à partir de 50€ d’ achat !!!</sms>
<emetteur>MaSociete</emetteur>
<emailNot>not@masociete.com</emailNot>
<emailAck>ack@masociete.com</emailAck>
<emailId>1548</emailId>
</envoi>
<envoi>
<keyid>a296464ce012b8ab710a</keyid>
<num1>33601020304</num1>
<num2>33601020305</num2>
<sms1>L’été est finiÕSuper promo -10% à partir de 50€ d’ achat !!!</sms1>
<sms2>L’été est finiÕSuper promo -20% à partir de 100€ d’achat !!!</sms2>
<emetteur>MaSociete</emetteur>
<emailNot>not@masociete.com</emailNot>
<emailAck>ack@masociete.com</emailAck>
<emailId>1548</emailId>
</envoi>
Paramètre | Type | Détails |
emailId | Number | Identifiant fourni lors de l'envoi afin d'associer la réponse |
code | Number | Code correspondant au tableau des Ack |
message | String | Libellé correspondant au tableau des ack |
<?xml version="1.0" encoding="ISO-8859-1"?>
<etatAck>
<emailId>[emailId]</emailId>
<code>[codeAck]</code>
<message>[messageAck]</message>
</etatAck>
Paramètre | Type | Détails |
emailId | Number | Identifiant fourni lors de l'envoi afin d'associer la réponse |
code | Number | Code correspondant au tableau des Ack |
tel | String | Numéro de téléphone associé au code retour |
message | String | Libellé correspondant au tableau des ack |
<?xml version="1.0" encoding="ISO-8859-1"?>
<etatNot>
<emailId>[emailId]</emailId>
</etatNot>
<etat>
<code>[code]</code>
<tel>[tel]</tel>
<message>[message]</message>
</etat>
<?xml version="1.0" encoding="ISO-8859-1"?>
<etatNot>
<emailId>[emailId]</emailId>
</etatNot>
<etat1>
<code1>[code]</code1>
<tel1>[tel]</tel1>
<message1>[message]</message1>
</etat1>
...
<etatN>
<codeN>[code]</codeN>
<telN>[tel]</telN>
<messageN>[message]</messageN>
</etatN>
Code erreur | Message |
0 | Votre email a bien ete traite |
1 | emailId deja traite |
2 | emailId non renseigne |
Code erreur | Message |
0 | Votre message a bien ete envoye |
1 | The login is empty |
2 | The password is empty |
3 | Your credentials are incorrect |
4 | Vous devez saisir un message! |
5 | Le message ne doit pas depasser XXX caracteres! |
6 | Vous devez saisir un numero de telephone valide! |
7 | Un numero de telephone est sur 10 chiffres! |
9 | La route que vous avez saisie n'existe pas! |
10 | Vous n'avez pas les droits necessaires pour utiliser cette route! |
11 | Le numero de telephone est dans la liste noire! |
12 | Votre credit de MT est epuise! |
13 | La route Lowcost est down! |
14 | L'adresse IP n'est pas autorisee! |
15 | Vous devez indiquer un canal d'envoi! |
16 | L'emetteur ne peut pas etre vide! |
17 | L'emetteur doit etre sur plus de 3 caracteres et sur 11 caracteres maximum! |
18 | L'emetteur ne peut pas comporter que des chiffres! |
19 | Si un emetteur est indique, le message ne doit pas depasser 149 caracteres afin de pouvoir ajouter le texte 'STOP XXXXX' |
20 | L'emetteur ne peut pas etre modifie sur le canal LowCost! |
21 | Le numero de telephone n'est pas attribue! |
22 | Le numero de telephone est attribue a un Full MVNO |
23 | Le nombre maximum de telephones par requete est de 500 |
24 | Pas d'envoi commercial entre 20h et 08h, ni les jours feries |
25 | Il est obligatoire d'indiquer le cout vers les numeros en 0899. Ex: Pour plus de renseignements appelez le 0899 XX XX XX (1E35/apl+0.34E/min) |
26 | Il est obligatoire d'indiquer le cout vers les numeros en 0892. Ex: Pour plus de renseignements appelez le 0892 XX XX XX (0.34E/min) |
27 | L'indicatif pays du telephone n'est pas autorise! |
28 | Votre credit de qualification est epuise! |
29 | Nous ne pouvons donner suite a votre demande (overflow) |
30 | Erreur sur le domaine de connexion |
31 | Le message ne doit pas depasser XXX caracteres! |
32 | Le message est sur XXX SMS (XXX caracteres) alors que la demande est sur XXX SMS |
33 | Cet emetteur n'est pas autorise! |
34 | La valeur de smslong doit etre un entier! |
35 | Votre credit de HLR est epuise! |
36 | Vous n'etes pas autorise a retirer le STOP SMS! |
37 | Les numeros de telephone ne sont pas tous a destination du meme pays! |
38 | Le message ne doit pas depasser XXX caracteres! |
39 | Le message ne doit pas depasser XXX caracteres! |
40 | Le format de message ucs2 n'est pas autorise pour les numeros en France metropolitaine! |
41 | Vous n'etes pas autorise aux requetes HLR! |
42 | L'emetteur ne peut pas comporter de caracteres speciaux! |
43 | La date d'envoi n'est pas au bon format (AAAA-MM-JJ HH:MM)! |
44 | La zone GMT n'existe pas! |
100 | Votre repertoire a ete cree! |
101 | Vous devez saisir un nom de repertoire! |
102 | Votre identifiant de repertoire ne correspond a aucune donnee! |
103 | Votre donnee a ete ajoutee dans le repertoire! |
104 | Ce repertoire ne peut pas etre modifie car une campagne est programme dessus! |
105 | La donnee est deja presente dans le repertoire! |
106 | Votre donnee a ete supprimee du repertoire |
107 | La donnee n'est pas presente dans le repertoire! |
108 | Cet identifiant ne correspond a aucun repertoire! |
201 | Vous devez saisir une date de debut de selection! |
202 | Vous devez saisir une date de fin de selection! |
203 | La date de debut de selection n'est pas au bon format (AAAA-MM-JJ HH:MM)! |
204 | La date de fin de selection n'est pas au bon format (AAAA-MM-JJ HH:MM)! |
205 | La selection depasse 200 000 donnees! Merci de la reduire! |
206 | La selection ne correspond a aucune donnee! |
207 | Historique des envois |
210 | Le mot cle a ete ajoute |
211 | Le mot cle a ete supprime |
212 | Liste des mot cles pour ce compte |
213 | Le mot cle n'est pas disponible |
214 | Le mot cle n'existe pas pour ce compte |
215 | Aucun mot cle pour ce compte |
216 | Le mot cle ne doit contenir ni espace, ni caractere speciaux |
217 | Le mot cle doit etre entre 3 et 20 caracteres |
220 | L emetteur a ete ajoute |
221 | L emetteur a ete supprime |
222 | Liste des emetteurs pour ce compte |
223 | L emetteur n'est pas disponible |
224 | L emetteur n'existe pas pour ce compte |
225 | Aucun emetteur pour ce compte |
230 | Le sous compte a ete ajoute |
231 | Vous devez saisir un identifiant/login pour la creation du sous compte |
232 | Vous devez saisir un mot de passe pour la creation du sous compte |
233 | Un sous compte existe deja avec cet identifiant |
234 | Aucun sous compte avec ces identifiants |
235 | Vous devez renseigner l indicatif du pays associe au prix |
236 | Vous devez renseigner un prix |
237 | Le prix a ete cree |
238 | Vous devez renseigner le montant du credit a ajouter |
239 | Le credit a ete ajoute au sous compte |
240 | La commande saisie ne correspond a aucune fonctionnalite |
241 | Le prix a ete mis a jour |
242 | Vous devez saisir la cle d identifcation du sous compte |
243 | Un sous compte ne peut pas avoir de sous compte |
244 | La restriction STOP a ete desactivee |
245 | La restriction STOP a ete activee |
246 | La restriction horaire a ete desactivee |
247 | La restriction horaire a ete activee |
248 | Les donnees de restriction ne sont pas correctes |
250 | Le lien court a ete genere |
251 | Le prix unitaire |
252 | L encours a ete defini pour le sous compte |
253 | Vous devez renseigner un encours positif |
254 | L encours |
255 | Vous devez renseigner une url de retour SMS valide |
256 | L url de retour SMS a ete defini pour le sous compte |
257 | Vous devez renseigner une url de retour valide |
258 | L url de retour a ete defini pour le sous compte |
777 | Le service est en maintenance. |
900 | keyId is valid |
901 | keyId is not valid |
998 | L encodage du message est incorrect |
999 | Une erreur est survenue. Merci de contacter le service technique |
<?php
/////////////////////////////////////////////////////////
// Fonction qui transforme un fichier xml en tableau
/////////////////////////////////////////////////////////
function XML2Array($xml, $recursive=true){
if(!$recursive){
$array=simplexml_load_string($xml);
}else{
$array=$xml;
}
$newArray=array();
$array=(array)$array;
foreach($array as $key => $value){
$value=(array)$value;
if(isset($value[0])){
$newArray[$key]=trim($value[0]);
}else{
$newArray[$key]=XML2Array($value,true);
}
}
return $newArray ;
}
/////////////////////////////////////////////////////////
// Fonction qui transforme une chaine en donnee xml
/////////////////////////////////////////////////////////
function string2XML($out){
$xml='';
$out=explode("\n", $out);
foreach($out as $line){
if( strstr($line, '<etat') || strstr($line, '<credit>')) {
$xml .= trim($line)."\n";
}
}
// Ne pas mettre d'indentation sinon cela ne fonctionne plus
$out = <<<XML
$xml
XML;
$xml = simplexml_load_string($out);
return $xml;
}
?>
Python
/*
Fonction pour appel url avec multipart
*/
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.List;
/**
* This utility class provides an abstraction layer for sending multipart HTTP
* POST requests to a web server.
* @author www.codejava.net
*
*/
public class MultipartUtility {
private final String boundary;
private static final String LINE_FEED = "\r\n";
private HttpURLConnection httpConn;
private String charset;
private OutputStream outputStream;
private PrintWriter writer;
/**
* This constructor initializes a new HTTP POST request with content type
* is set to multipart/form-data
* @param requestURL
* @param charset
* @throws IOException
*/
public MultipartUtility(String requestURL, String charset)
throws IOException {
this.charset = charset;
// creates a unique boundary based on time stamp
boundary = "===" + System.currentTimeMillis() + "===";
URL url = new URL(requestURL);
httpConn = (HttpURLConnection) url.openConnection();
httpConn.setUseCaches(false);
httpConn.setDoOutput(true); // indicates POST method
httpConn.setDoInput(true);
httpConn.setRequestProperty("Content-Type",
"multipart/form-data; boundary=" + boundary);
httpConn.setRequestProperty("User-Agent", "CodeJava Agent");
httpConn.setRequestProperty("Test", "Bonjour");
outputStream = httpConn.getOutputStream();
writer = new PrintWriter(new OutputStreamWriter(outputStream, charset),
true);
}
/**
* Adds a form field to the request
* @param name field name
* @param value field value
*/
public void addFormField(String name, String value) {
writer.append("--" + boundary).append(LINE_FEED);
writer.append("Content-Disposition: form-data; name=\"" + name + "\"")
.append(LINE_FEED);
writer.append("Content-Type: text/plain; charset=" + charset).append(
LINE_FEED);
writer.append(LINE_FEED);
writer.append(value).append(LINE_FEED);
writer.flush();
}
/**
* Adds a upload file section to the request
* @param fieldName name attribute in <input type="file" name="..." />
* @param uploadFile a File to be uploaded
* @throws IOException
*/
public void addFilePart(String fieldName, File uploadFile)
throws IOException {
String fileName = uploadFile.getName();
writer.append("--" + boundary).append(LINE_FEED);
writer.append(
"Content-Disposition: form-data; name=\"" + fieldName
+ "\"; filename=\"" + fileName + "\"")
.append(LINE_FEED);
writer.append(
"Content-Type: "
+ URLConnection.guessContentTypeFromName(fileName))
.append(LINE_FEED);
writer.append("Content-Transfer-Encoding: binary").append(LINE_FEED);
writer.append(LINE_FEED);
writer.flush();
FileInputStream inputStream = new FileInputStream(uploadFile);
byte[] buffer = new byte[4096];
int bytesRead = -1;
while ((bytesRead = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
outputStream.flush();
inputStream.close();
writer.append(LINE_FEED);
writer.flush();
}
/**
* Adds a header field to the request.
* @param name - name of the header field
* @param value - value of the header field
*/
public void addHeaderField(String name, String value) {
writer.append(name + ": " + value).append(LINE_FEED);
writer.flush();
}
/**
* Completes the request and receives response from the server.
* @return a list of Strings as response in case the server returned
* status OK, otherwise an exception is thrown.
* @throws IOException
*/
public List<String> finish() throws IOException {
List<String> response = new ArrayList<String>();
writer.append(LINE_FEED).flush();
writer.append("--" + boundary + "--").append(LINE_FEED);
writer.close();
// checks servers status code first
int status = httpConn.getResponseCode();
if (status == HttpURLConnection.HTTP_OK) {
BufferedReader reader = new BufferedReader(new InputStreamReader(
httpConn.getInputStream()));
String line = null;
while ((line = reader.readLine()) != null) {
response.add(line);
}
reader.close();
httpConn.disconnect();
} else {
throw new IOException("Server returned non-OK status: " + status);
}
return response;
}
}
https://www.isendpro.com/cgi-bin/smv.pyl
Paramètre | Type | Obligatoire | Détails |
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
setFichier | Number | Oui | Utiliser la valeur 1 |
uploadedfile | String | Oui | Chemin vers le fichier en local |
Paramètre | Type | Détails |
code | Number | Code correspondant au tableau des erreurs |
message | String | Libellé correspondant au tableau des erreurs (cf Annexes) |
fichierId | Number | Identifiant numérique correspondant au fichier vocal importé |
<?xml version="1.0" encoding="ISO-8859-1"?>
<etat>
<fichierId>1574</fichierId>
<message> Le fichier a bien été importé</message>
</etat>
<?xml version="1.0" encoding="ISO-8859-1"?>
<etat>
<code>106</code>
<message> Seuls les fichiers .wma, .wav sont acceptés!</message>
</etat>
curl -v -include \
'https://www.isendpro.com/cgi-bin/smv.pyl' \
-F 'keyid=a296464ce012b8ab710a' \
-F 'setFichier=1' \
-F uploadedfile=@test.wav
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$url = 'https://www.isendpro.com/cgi-bin/smv.pyl';
$ficVocal='/[PATH]/test.wav';
if(function_exists('curl_file_create')) { // php 5.5+
$cFile = curl_file_create($ficVocal);
}else{
$cFile = '@' . realpath($ficVocal);
}
$ch = curl_init();
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'setFichier' => '1',
'uploadedfile' => $cFile
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => array('Content-type: multipart/form-data'),
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$out = curl_exec($ch);
curl_close($ch);
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$xml = string2XML($out);
$repetat = XML2Array($xml);
// Erreur generale
if (!isset($repetat['fichierId'])){
echo 'Code: '.$repetat['code'];
echo $sautligne;
echo 'Message: '.$repetat['message'];
echo $sautligne;
}else{
// Envoi OK
echo 'fichierId: '.$repetat['fichierId'];
echo $sautligne;
echo 'Message: '.$repetat['message'];
echo $sautligne;
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
import xmltodict
url = 'https://www.isendpro.com/cgi-bin/smv.pyl'
params = {
'keyid': 'a296464ce012b8ab710a',
'setFichier': '1'
}
files = {
'uploadedfile': open('/[PATH]/test.wav', 'rb')
}
response = requests.post(url, params, files=files)
print(response.text)
####################################################################################
#- Traitement du retour
####################################################################################
repetat=xmltodict.parse(response.text)
if not repetat.has_key('etat'):
# Erreur inconnue
print 'Erreur inconnue: '+repetat
else:
repetat=repetat['etat']
# Erreur generale
if not repetat.has_key('fichierId'):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Envoi OK
else:
print 'fichierId: '+repetat['fichierId']
print 'Message: '+repetat['message']
import java.io.File;
import java.io.IOException;
import java.util.List;
import java.io.StringReader;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;
import java.io.PrintWriter;
public class TestDocs {
public static void main(String[] args) {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
String charset = "UTF-8";
File uploadFile1 = new File("test.wav");
String requestURL = "https://www.isendpro.com/cgi-bin/smv.pyl";
try {
MultipartUtility multipart = new MultipartUtility(requestURL, charset);
multipart.addHeaderField("User-Agent", "CodeJava");
multipart.addHeaderField("Test-Header", "Header-Value");
multipart.addFormField("keyid", "a296464ce012b8ab710a");
multipart.addFormField("setFichier", "1");
multipart.addFilePart("uploadedfile", uploadFile1);
List<String> response = multipart.finish();
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
for (String line : response) {
System.out.println(line);
try {
InputSource is = new InputSource(new StringReader(line));
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(is);
//System.out.println("Root element :" + doc.getDocumentElement().getNodeName());
if(doc.getDocumentElement().getNodeName()!="etat"){
// Erreur inconnue
System.out.println("Erreur inconnue: "+line);
}else{
NodeList nList = doc.getElementsByTagName("etat");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
Element eElement = (Element) nNode;
NodeList nl = eElement.getElementsByTagName("fichierId");
// Erreur generale
if (nl.getLength() == 0) {
System.out.println("Code: "+eElement.getElementsByTagName("code").item(0).getTextContent());
System.out.println("Message: "+eElement.getElementsByTagName("message").item(0).getTextContent());
// Infos de retour
}else{
System.out.println("fichierId: "+eElement.getElementsByTagName("fichierId").item(0).getTextContent());
System.out.println("Message: "+eElement.getElementsByTagName("message").item(0).getTextContent());
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
} catch (Exception ex) {
System.err.println(ex);
}
}
}
https://www.isendpro.com/cgi-bin/smv.pyl?keyid=[KEYID]&type_appel=[TYPE_APPEL]&fichierid=[FICHIERID]&num=[NUM]&emetteur=[EMETTEUR]&tracker=[TRACKER]
Paramètre | Type | Obligatoire | Détails |
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
num | String | Oui |
Numéro de téléphone du destinataire Au format international sans le + Ex: 33601020304 |
fichierid | Number | Oui | Identifiant numérique associé au message vocal à envoyer |
type_appel | Number | Oui |
Type d'appel à effectuer
|
emetteur | String | Non |
Emetteur du message Par défaut, un numéro de fixe sur 10 chiffres Ex: 0422850268 Contraintes:
|
tracker | String | Non |
Généré par le client Renvoyé en paramètre des urls pour les retours des accusés de réception et les retours des sms réponses Longueur max de 50 caractères Ex: order-ab78pq9 |
date_envoi |
Date au format YYYY-MM-DD hh:mm |
Non |
Date à laquelle le message sera envoyé Envoi immédiat si non renseigné |
Paramètre | Type | Détails |
code | Number | Code correspondant au tableau des erreurs |
tel | String | Numéro de téléphone associé au code retour |
message | String | Libellé correspondant au tableau des erreurs |
<?xml version="1.0" encoding="ISO-8859-1"?>
<etat>
<code>0</code>
<tel>33601020304</tel>
<message>Votre message a bien ete envoye</message>
</etat>
<?xml version="1.0" encoding="ISO-8859-1"?>
<etat>
<code>21</code>
<tel>33814222448</tel>
<message>Le numéro de téléphone n'est pas attribué!</message>
</etat>
curl -X POST \
'https://www.isendpro.com/cgi-bin/smv.pyl' \
-H 'cache-control: no-cache' \
-d 'keyid=a296464ce012b8ab710a&fichierid=5572&type_appel=1&num=33601020304&tracker=test001'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$url = 'https://www.isendpro.com/cgi-bin/smv.pyl';
$ch = curl_init();
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'fichierid' => 5572,
'type_appel' => 1,
'num' => 33601020304,
'tracker' => 'test001'
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => array('Content-type: multipart/form-data'),
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$out = curl_exec($ch);
curl_close($ch);
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$xml = string2XML($out);
$repetatList=XML2Array($xml);
if(!array_key_exists('etat1', $repetatList)){
$repetatList=array($repetatList);
}
foreach($repetatList as $key => $value){
$cpt='';
if($key!='0'){
$cpt=str_replace('etat', '', $key);
}
// Erreur generale
if (!isset($value['tel'.$cpt])){
echo 'Code: '.$value['code'];
echo $sautligne;
echo 'message: '.$value['message'];
echo $sautligne;
break;
}else{
echo '-----------';
echo $sautligne;
echo 'Data '.$cpt;
echo $sautligne;
// Erreur specifique au numero de telephone
if ($value['code'.$cpt]!=0){
echo 'Code: '.$value['code'.$cpt];
echo $sautligne;
echo 'message: '.$value['message'.$cpt];
echo $sautligne;
echo 'tel: '.$value['tel'.$cpt];
echo $sautligne;
// Envoi OK
}else{
echo 'Code: '.$value['code'.$cpt];
echo $sautligne;
echo 'message: '.$value['message'.$cpt];
echo $sautligne;
echo 'tel: '.$value['tel'.$cpt];
echo $sautligne;
}
}
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
import xmltodict
url = 'https://www.isendpro.com/cgi-bin/smv.pyl'
params = {
'keyid': 'a296464ce012b8ab710a',
'fichierid': 5572,
'type_appel': 1,
'num': 33601020304,
'tracker': 'test001'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Traitement du retour
####################################################################################
repetat=xmltodict.parse(response.text)
if not repetat.has_key('etat'):
# Erreur inconnue
print 'Erreur inconnue: '+repetat
else:
#repetat=repetat['etat']
repetatList=repetat['etat']
if not repetatList.has_key('etat1'):
repetatList={'0':repetat['etat']}
keysList=repetatList.keys()
keysList.sort()
for key in keysList:
repetat=repetatList[key]
cpt=''
if key!='0':
cpt=key.replace('etat','')
# Erreur generale
if not repetat.has_key('tel'+cpt):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
else:
print '-----------'
print 'Data '+str(key)
# Erreur specifique au numero de telephone
if repetat['code'+cpt]!=0:
print 'Code: '+repetat['code'+cpt]
print 'Message: '+repetat['message'+cpt]
print 'Tel: '+repetat['tel'+cpt]
# Envoi OK
else:
print 'Code: '+repetat['code'+cpt]
print 'Message: '+repetat['message'+cpt]
print 'Tel: '+repetat['tel'+cpt]
import java.io.File;
import java.io.IOException;
import java.util.List;
import java.io.StringReader;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;
import java.io.PrintWriter;
public class TestDocs {
public static void main(String[] args) {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
String charset = "UTF-8";
File uploadFile1 = new File("test.wav");
String requestURL = "https://www.isendpro.com/cgi-bin/smv.pyl";
try {
MultipartUtility multipart = new MultipartUtility(requestURL, charset);
multipart.addHeaderField("User-Agent", "CodeJava");
multipart.addHeaderField("Test-Header", "Header-Value");
multipart.addFormField("keyid", "a296464ce012b8ab710a");
multipart.addFormField("fichierid", "5572");
multipart.addFormField("type_appel","1");
multipart.addFormField("num", "33601020304");
multipart.addFormField("tracker", "test001");
List<String> response = multipart.finish();
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
for (String line : response) {
System.out.println(line);
try {
InputSource is = new InputSource(new StringReader(line));
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(is);
//System.out.println("Root element :" + doc.getDocumentElement().getNodeName());
if(doc.getDocumentElement().getNodeName()!="etat"){
// Erreur inconnue
System.out.println("Erreur inconnue: "+line);
}else{
NodeList nList = doc.getElementsByTagName("etat");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
Element eElement = (Element) nNode;
NodeList nl = eElement.getElementsByTagName("tel");
// Erreur generale
if (nl.getLength() == 0) {
System.out.println("Code: "+eElement.getElementsByTagName("code").item(0).getTextContent());
System.out.println("Message: "+eElement.getElementsByTagName("message").item(0).getTextContent());
// Infos de retour
}else{
System.out.println("Code: "+eElement.getElementsByTagName("code").item(0).getTextContent());
System.out.println("Message: "+eElement.getElementsByTagName("message").item(0).getTextContent());
System.out.println("tel: "+eElement.getElementsByTagName("tel").item(0).getTextContent());
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
} catch (Exception ex) {
System.err.println(ex);
}
}
}
http(s)://www.isendpro.com/cgi-bin/smv.pyl?keyid=[KEYID]&type_appel=[TYPE_APPEL]&fichierid1=[FICHIERID1]&num1=[NUM1]&fichierid2=[FICHIERID2]&num2=[NUM2]...&fichierid50=[FICHIERID50]&num50=[NUM50]&emetteur=[EMETTEUR]&tracker=[TRACKER]
Paramètre | Type | Obligatoire | Détails |
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
num[X] | String | Oui |
Numéro de téléphone du destinataire Au format international sans le + Ex: 33601020304 |
fichierid[X] | Number | Oui | Identifiant numérique associé au message vocal à envoyer |
type_appel | Number | Oui |
Type d'appel à effectuer
|
emetteur | String | Non |
Emetteur du message Par défaut, un numéro de fixe sur 10 chiffres Ex: 0422850268 Contraintes:
|
tracker[X] | String | Non |
Généré par le client Renvoyé en paramètre des urls pour les retours des accusés de réception et les retours des sms réponses Longueur max de 50 caractères Ex: order-ab78pq9 |
date_envoi |
Date au format YYYY-MM-DD hh:mm |
Non |
Date à laquelle le message sera envoyé Envoi immédiat si non renseigné |
Paramètre | Type | Détails |
code[X] | Number | Code correspondant au tableau des erreurs |
tel[X] | String | Numéro de téléphone associé au code retour |
message[X] | String | Libellé correspondant au tableau des erreurs |
<?xml version="1.0" encoding="ISO-8859-1"?>
<etat>
<etat1>
<code1>0</code1>
<tel1>33601020304</tel1>
<message1>Votre message a bien ete envoye</message1>
</etat1>
<etat2>
<code2>0</code2>
<tel2>0601020305</tel2>
<message2>Votre message a bien ete envoye</message2>
</etat2>
</etat>
<?xml version="1.0" encoding="ISO-8859-1"?>
<etat>
<etat1>
<code1>21</code1>
<tel1>33801020304</tel1>
<message1>Le numéro de téléphone n'est pas attribué!</message1>
</etat1>
<etat2>
<code2>21</code2>
<tel2>0801020305</tel2>
<message2>Le numéro de téléphone n'est pas attribué!</message2>
</etat2>
</etat>
curl -X POST \
'https://www.isendpro.com/cgi-bin/smv.pyl' \
-H 'cache-control: no-cache' \
-d 'keyid=a296464ce012b8ab710a&fichierid=5572&type_appel=1&num1=33601020304&tracker1=test001X01&num2=0601020305&tracker2=test001X02'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$url = 'https://www.isendpro.com/cgi-bin/smv.pyl';
$ch = curl_init();
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'fichierid' => 557200,
'type_appel' => 1,
'num1' => 33601020304,
'tracker1' => 'test001X01',
'num2' => 33601020305,
'tracker2' => 'test001X02'
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => array('Content-type: multipart/form-data'),
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$out = curl_exec($ch);
curl_close($ch);
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$xml = string2XML($out);
$repetatList=XML2Array($xml);
if(!array_key_exists('etat1', $repetatList)){
$repetatList=array($repetatList);
}
foreach($repetatList as $key => $value){
$cpt='';
if($key!='0'){
$cpt=str_replace('etat', '', $key);
}
// Erreur generale
if (!isset($value['tel'.$cpt])){
echo 'Code: '.$value['code'];
echo $sautligne;
echo 'message: '.$value['message'];
echo $sautligne;
break;
}else{
echo '-----------';
echo $sautligne;
echo 'Data '.$cpt;
echo $sautligne;
// Erreur specifique au numero de telephone
if ($value['code'.$cpt]!=0){
echo 'Code: '.$value['code'.$cpt];
echo $sautligne;
echo 'message: '.$value['message'.$cpt];
echo $sautligne;
echo 'tel: '.$value['tel'.$cpt];
echo $sautligne;
// Envoi OK
}else{
echo 'Code: '.$value['code'.$cpt];
echo $sautligne;
echo 'message: '.$value['message'.$cpt];
echo $sautligne;
echo 'tel: '.$value['tel'.$cpt];
echo $sautligne;
}
}
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
import xmltodict
import types
url = 'https://www.isendpro.com/cgi-bin/smv.pyl'
params = {
'keyid': 'a296464ce012b8ab710a',
'fichierid': 5572,
'type_appel': 1,
'num1': 33601020304,
'tracker1': 'test001X01',
'num2': 33601020305,
'tracker2': 'test001X02'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Traitement du retour
####################################################################################
repetat=xmltodict.parse(response.text)
if not repetat.has_key('etat'):
# Erreur inconnue
print 'Erreur inconnue: '+repetat
else:
#repetat=repetat['etat']
repetatList=repetat['etat']
if not repetatList.has_key('etat1'):
repetatList={'0':repetat['etat']}
keysList=repetatList.keys()
keysList.sort()
for key in keysList:
repetat=repetatList[key]
cpt=''
if key!='0':
cpt=key.replace('etat','')
# Erreur generale
if not repetat.has_key('tel'+cpt):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
else:
print '-----------'
print 'Data '+str(key)
# Erreur specifique au numero de telephone
if repetat['code'+cpt]!=0:
print 'Code: '+repetat['code'+cpt]
print 'Message: '+repetat['message'+cpt]
print 'Tel: '+repetat['tel'+cpt]
# Envoi OK
else:
print 'Code: '+repetat['code'+cpt]
print 'Message: '+repetat['message'+cpt]
print 'Tel: '+repetat['tel'+cpt]
import java.io.File;
import java.io.IOException;
import java.util.List;
import java.io.StringReader;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;
import java.io.PrintWriter;
public class TestDocs {
public static void main(String[] args) {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
String charset = "UTF-8";
File uploadFile1 = new File("test.wav");
String requestURL = "https://www.isendpro.com/cgi-bin/smv.pyl";
try {
MultipartUtility multipart = new MultipartUtility(requestURL, charset);
multipart.addHeaderField("User-Agent", "CodeJava");
multipart.addHeaderField("Test-Header", "Header-Value");
multipart.addFormField("keyid", "a296464ce012b8ab710a");
multipart.addFormField("fichierid", "5572");
multipart.addFormField("type_appel", "1");
multipart.addFormField("num1", "33601020304");
multipart.addFormField("tracker1", "test001X01");
multipart.addFormField("num2", "33601020305");
multipart.addFormField("tracker2", "test001X02");
List<String> response = multipart.finish();
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
for (String line : response) {
System.out.println(line);
try {
InputSource is = new InputSource(new StringReader(line));
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(is);
//System.out.println("Root element :" + doc.getDocumentElement().getNodeName());
if(doc.getDocumentElement().getNodeName()!="etat"){
// Erreur inconnue
System.out.println("Erreur inconnue: "+line);
}else{
NodeList nList = doc.getElementsByTagName("etat");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
NodeList nList2 = nNode.getChildNodes();
// Erreur generale
if(nList2.item(0).getNodeName()=="code"){
System.out.println("Code: "+nList2.item(0).getTextContent());
System.out.println("Message: "+nList2.item(1).getTextContent());
}else{
// Infos de retour
for(int i=0; i<nList2.getLength(); i++) {
Node n = nList2.item(i);
Element airportElem = (Element)n;
System.out.println("--------------------");
System.out.println("Node :" + n.getNodeName());
NodeList nList3 = n.getChildNodes();
//System.out.println("n3 Length:" + nList3.getLength());
for(int j=0; j<nList3.getLength(); j++) {
System.out.println(nList3.item(j).getNodeName()+": "+nList3.item(j).getTextContent());
}
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
} catch (Exception ex) {
System.err.println(ex);
}
}
}
https://www.isendpro.com/cgi-bin/smv.pyl?keyid=[KEYID]&credit=[CREDIT]&type_envoi=[TYPE_ENVOI]
Paramètre | Type | Obligatoire | Détails |
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
credit | Number | Oui |
Number indiquant le type de crédit restant
|
type_envoi | Number | Oui |
Number indiquant le type de crédit concernée
|
Paramètre | Type | Détails |
credit | String |
Nombre à virgule indiquant le crédit restant en euros HT Ex: 561.20 |
quantite | Number |
Nombre indiquant le nombre de crédits restants en quantité d'envois Ex: 8974 |
<?xml version="1.0" encoding="ISO-8859-1"?>
<etat>
<credit>110</credit>
<quantite>4074</quantite>
</etat>
curl -X POST \
'https://www.isendpro.com/cgi-bin/smv.pyl' \
-H 'cache-control: no-cache' \
-d 'keyid=a296464ce012b8ab710a&credit=2&type_envoi=0'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$url = 'https://www.isendpro.com/cgi-bin/smv.pyl';
$ch = curl_init();
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'credit' => 2,
'type_envoi' => 0
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => array('Content-type: multipart/form-data'),
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$out = curl_exec($ch);
curl_close($ch);
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$xml = string2XML($out);
$repetat = XML2Array($xml);
// Erreur generale
if (!isset($repetat['credit'])){
echo 'Code: '.$repetat['code'];
echo $sautligne;
echo 'Message: '.$repetat['message'];
echo $sautligne;
}else{
// Credit OK
echo 'credit: '.$repetat['credit'];
echo $sautligne;
if (isset($repetat['quantite'])){
echo 'quantite: '.$repetat['quantite'];
echo $sautligne;
}
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
import xmltodict
url = 'https://www.isendpro.com/cgi-bin/smv.pyl'
params = {
'keyid': 'a296464ce012b8ab710a',
'credit': 2,
'type_envoi': 0
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Traitement du retour
####################################################################################
repetat=xmltodict.parse(response.text)
if not repetat.has_key('etat'):
# Erreur inconnue
print 'Erreur inconnue: '+repetat
else:
repetat=repetat['etat']
# Erreur generale
if not repetat.has_key('credit'):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Envoi OK
else:
print 'credit: '+repetat['credit']
if repetat.has_key('quantite'):
print 'quantite: '+repetat['quantite']
import java.io.File;
import java.io.IOException;
import java.util.List;
import java.io.StringReader;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;
import java.io.PrintWriter;
public class TestDocs {
public static void main(String[] args) {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
String charset = "UTF-8";
File uploadFile1 = new File("test.wav");
String requestURL = "https://www.isendpro.com/cgi-bin/smv.pyl";
try {
MultipartUtility multipart = new MultipartUtility(requestURL, charset);
multipart.addHeaderField("User-Agent", "CodeJava");
multipart.addHeaderField("Test-Header", "Header-Value");
multipart.addFormField("keyid", "a296464ce012b8ab710a");
multipart.addFormField("credit", "2");
multipart.addFormField("type_envoi","0");
List<String> response = multipart.finish();
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
for (String line : response) {
System.out.println(line);
try {
InputSource is = new InputSource(new StringReader(line));
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(is);
//System.out.println("Root element :" + doc.getDocumentElement().getNodeName());
if(doc.getDocumentElement().getNodeName()!="etat"){
// Erreur inconnue
System.out.println("Erreur inconnue: "+line);
}else{
NodeList nList = doc.getElementsByTagName("etat");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
Element eElement = (Element) nNode;
NodeList nl = eElement.getElementsByTagName("credit");
// Erreur generale
if (nl.getLength() == 0) {
System.out.println("Code: "+eElement.getElementsByTagName("code").item(0).getTextContent());
System.out.println("Message: "+eElement.getElementsByTagName("message").item(0).getTextContent());
// Infos de retour
}else{
System.out.println("credit: "+eElement.getElementsByTagName("credit").item(0).getTextContent());
System.out.println("quantite: "+eElement.getElementsByTagName("quantite").item(0).getTextContent());
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
} catch (Exception ex) {
System.err.println(ex);
}
}
}
www.votre_adresse.com/votre_page_web??tel=[TEL]&date=[DATE]&heure=[HEURE]&id=[ID]&tracker=[TRACKER]&erreur=[ERREUR]&decroche=[DECROCHE]&duree=[DUREE]
Paramètre | Type | Obligatoire | Détails |
tel | String | Oui |
Numéro de téléphone du destinataire Au format international sans le + Ex: 33601020304 |
date |
Date au format AAAA-MM-JJ |
Oui | La date de réception de l'accusé |
heure |
Date au format HH:MM:SS |
Oui | L'heure de réception de l'accusé |
id | Number | Oui | Identifiant unique de l'accusé |
tracker | String | Oui | Argument éventuellement fourni lors de l'envoi pour une identification simplifiée |
erreur | Number | Oui |
Indique s'il y a une erreur lors de l'envoi
|
duree | Number | Oui |
Durée de l'appel en secondes Ex: 150 |
Code erreur | Message |
0 | Votre message a bien ete envoye |
1 | Le Champ Login est vide |
2 | Le Champ PWD est vide |
3 | Vos identifiants sont incorrectes |
4 | Vous devez saisir un message! |
5 | Le message ne doit pas dépasser XXX caractères! |
6 | Vous devez saisir un numéro de téléphone valide! |
7 | Un numéro de téléphone est sur 10 chiffres! |
9 | La route que vous avez saisie n'existe pas! |
10 | Vous n'avez pas les droits nécessaires pour utiliser cette route! |
11 | Le numéro de téléphone est dans la liste noire! |
12 | Votre crédit de MT est épuisé! |
13 | La route Lowcost est down! |
14 | L'adresse IP n'est pas autorisée! |
15 | Vous devez indiquer un canal d'envoi! |
16 | L'émetteur ne peut pas etre vide! |
21 | Le numéro de téléphone n'est pas attribué! |
22 | Le numéro de téléphone est attribue à un Full MVNO |
23 | Le nombre maximum de téléphones par requete est de 50 |
24 | Pas d'envoi commercial entre 20h et 08h, ni les jours fériés |
25 | Il est obligatoire d'indiquer le cout vers les numeros en 0899. Ex: Pour plus de renseignements appelez le 0899 XX XX XX (1E35/apl+0.34E/min) |
26 | Il est obligatoire d'indiquer le cout vers les numeros en 0892. Ex: Pour plus de renseignements appelez le 0892 XX XX XX (0.34E/min) |
27 | L'indicatif pays du téléphone n'est pas autorisé! |
28 | Votre crédit de qualification est épuisé! |
29 | Nous ne pouvons donner suite à votre demande (overflow) |
30 | Erreur sur le domaine de connexion |
31 | Le message ne doit pas dépasser XXX caractères! |
32 | Le message est sur DATA1 SMS (DATA2 caractères) alors que la demande est sur DATA3 SMS |
33 | Cet émetteur n'est pas autorisé! |
34 | La valeur de smslong doit etre un entier! |
37 | Les numeros de telephone ne sont pas tous a destination du meme pays! |
43 | La date d'envoi n'est pas au bon format (AAAA-MM-JJ HH:MM)! |
100 | Vous devez saisir un type d'appel valide |
101 | Les appels répondeurs ne fonctionnent pas avec les numéros de fixe! |
102 | Vous devez saisir un fichier valide! |
103 | L'émetteur doit etre sur 10 chiffres! |
104 | L'émetteur ne doit comporter que des chiffres! |
105 | L'émetteur ne peut pas etre un numéro en 08! |
106 | Seuls les fichiers .wma, .wav sont acceptés! |
107 | Votre fichier dépasse XXX secondes! |
108 | Votre fichier doit dépasser XXX secondes! |
200 | Le numéro de téléphone doit etre un fixe |
206 | Seuls les fichiers .pdf sont acceptés! |
207 | Votre fichier dépasse XXX pages! |
208 | Votre fichier doit dépasser 1 page! |
209 | Votre fichier dépasse XXX Ko par page! |
210 | Votre fichier converti est trop lourd! Merci de contacter le support! |
211 | Vous devez saisir un identifiant de fichier |
1000 | Le fichier a bien été importé |
999 | Une erreur est survenue. Merci de contacter le service technique |
<?xml version="1.0" encoding="ISO-8859-1"?>
<etat>
<etat1>
<code1>21</code1>
<tel1>33601020304</tel1>
<message1>Le numéro de téléphone n'est pas attribué!</message1>
</etat1>
<etat2>
<code2>11</code2>
<tel2>33601020305</tel2>
<message2>Le numéro de téléphone est dans la liste noire!</message2>
</etat2>
<etat2>
<code2>0</code2>
<tel2>33601020306</tel2>
<message2>Votre message a bien ete envoye</message2>
</etat2>
</etat>
<?php
/////////////////////////////////////////////////////////
// Fonction qui transforme un fichier xml en tableau
/////////////////////////////////////////////////////////
function XML2Array($xml, $recursive=true){
if(!$recursive){
$array=simplexml_load_string($xml);
}else{
$array=$xml;
}
$newArray=array();
$array=(array)$array;
foreach($array as $key => $value){
$value=(array)$value;
if(isset($value[0])){
$newArray[$key]=trim($value[0]);
}else{
$newArray[$key]=XML2Array($value,true);
}
}
return $newArray ;
}
/////////////////////////////////////////////////////////
// Fonction qui transforme une chaine en donnee xml
/////////////////////////////////////////////////////////
function string2XML($out){
$xml='';
$out=explode("\n", $out);
foreach($out as $line){
if( strstr($line, '<etat') || strstr($line, '<credit>')) {
$xml .= trim($line)."\n";
}
}
// Ne pas mettre d'indentation sinon cela ne fonctionne plus
$out = <<<XML
$xml
XML;
$xml = simplexml_load_string($out);
return $xml;
}
?>
Python
curl -X POST \
'https://www.isendpro.com/cgi-bin/' \
-H 'cache-control: no-cache' \
-d 'keyid=a296464ce012b8ab710a&num=33601020304&sms=Bonjour! Bienvenue sur iSendPro!&emetteur=isendpro&tracker=test001'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$url = 'https://www.isendpro.com/cgi-bin/';
$ch = curl_init();
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'num' => '33601020304',
'sms' => 'Bonjour! Bienvenue sur iSendPro!',
'emetteur' => 'isendpro'
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => array('Content-type: multipart/form-data'),
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$out = curl_exec($ch);
curl_close($ch);
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$xml = string2XML($out);
$repetatList=XML2Array($xml);
if(!array_key_exists('etat1', $repetatList)){
$repetatList=array($repetatList);
}
foreach($repetatList as $key => $value){
$cpt='';
if($key!='0'){
$cpt=str_replace('etat', '', $key);
}
// Erreur generale
if (!isset($value['tel'.$cpt])){
echo 'Code: '.$value['code'];
echo $sautligne;
echo 'message: '.$value['message'];
echo $sautligne;
break;
}else{
echo '-----------';
echo $sautligne;
echo 'Data '.$cpt;
echo $sautligne;
// Erreur specifique au numero de telephone
if ($value['code'.$cpt]!=0){
echo 'Code: '.$value['code'.$cpt];
echo $sautligne;
echo 'message: '.$value['message'.$cpt];
echo $sautligne;
echo 'tel: '.$value['tel'.$cpt];
echo $sautligne;
// Envoi OK
}else{
echo 'Code: '.$value['code'.$cpt];
echo $sautligne;
echo 'message: '.$value['message'.$cpt];
echo $sautligne;
echo 'tel: '.$value['tel'.$cpt];
echo $sautligne;
}
}
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
import xmltodict
import types
url = 'https://www.isendpro.com/cgi-bin/'
params = {
'keyid': 'a296464ce012b8ab710a',
'num': '33601020304',
'sms': 'Bonjour! Bienvenue sur iSendPro!',
'emetteur': 'isendpro'
}
response = requests.post(url, params)
####################################################################################
#- Traitement du retour
####################################################################################
repetat=xmltodict.parse(response.text)
if not repetat.has_key('etat'):
# Erreur inconnue
print 'Erreur inconnue: '+repetat
else:
#repetat=repetat['etat']
repetatList=repetat['etat']
if not repetatList.has_key('etat1'):
repetatList={'0':repetat['etat']}
keysList=repetatList.keys()
keysList.sort()
for key in keysList:
repetat=repetatList[key]
cpt=''
if key!='0':
cpt=key.replace('etat','')
# Erreur generale
if not repetat.has_key('tel'+cpt):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
else:
print '-----------'
print 'Data '+str(key)
# Erreur specifique au numero de telephone
if repetat['code'+cpt]!=0:
print 'Code: '+repetat['code'+cpt]
print 'Message: '+repetat['message'+cpt]
print 'Tel: '+repetat['tel'+cpt]
# Envoi OK
else:
print 'Code: '+repetat['code'+cpt]
print 'Message: '+repetat['message'+cpt]
print 'Tel: '+repetat['tel'+cpt]
import java.io.*;
import java.net.*;
import java.util.*;
import java.nio.charset.StandardCharsets;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;
import java.io.PrintWriter;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_http."/cgi-bin/";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("num", "33601020304");
paramsTablo.put("sms", "Bonjour! Bienvenue sur ".$marque_nom_court."!");
paramsTablo.put("emetteur", "isendpro");
StringBuilder urlParameters = new StringBuilder();
for (Map.Entry<String,String> param : paramsTablo.entrySet()) {
if (urlParameters.length() != 0) urlParameters.append("&");
urlParameters.append(URLEncoder.encode(param.getKey(), "UTF-8"));
urlParameters.append("=");
urlParameters.append(URLEncoder.encode(String.valueOf(param.getValue()), "UTF-8"));
}
System.out.println(urlParameters);
byte[] postData = urlParameters.toString().getBytes("UTF-8");
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
String line = content.toString();
try {
InputSource is = new InputSource(new StringReader(line));
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(is);
if(doc.getDocumentElement().getNodeName()!="etat"){
// Erreur inconnue
System.out.println("Erreur inconnue: "+line);
}else{
NodeList nList = doc.getElementsByTagName("etat");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
Node nodeN1 = nNode.getFirstChild();
if(nodeN1!=null){
String n1Name = nodeN1.getNodeName();
if(!n1Name.contains("etat")){
nodeN1 = nNode;
}
}
while(nodeN1!=null){
String n1Name = nodeN1.getNodeName();
System.out.println("-----------");
System.out.println(n1Name);
var erreur=1;
Node nodeN2 = nodeN1.getFirstChild();
while(nodeN2!=null){
String n2Name = nodeN2.getNodeName();
String n2Value = nodeN2.getFirstChild().getNodeValue();
System.out.println(n2Name+": "+n2Value);
nodeN2=nodeN2.getNextSibling();
if(n2Name.contains("code")){
if(n2Value.equals("0")){
erreur=0;
}
}
}
System.out.println("erreur: "+erreur);
if(erreur==1){
// Erreur dans le retour
}else{
// OK
}
nodeN1=nodeN1.getNextSibling();
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
} catch (Exception ex) {
System.err.println(ex);
}
}
}
curl -X POST \
'https://www.isendpro.com/cgi-bin/' \
-H 'cache-control: no-cache' \
-d 'keyid=a296464ce012b8ab710a&num=33601020304&sms=Bonjour! Bienvenue sur iSendPro! 🙂&ucs2=1'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$url = 'https://www.isendpro.com/cgi-bin/';
$ch = curl_init();
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'num' => '33601020304',
'sms' => 'Bonjour! Bienvenue sur iSendPro! 🙂',
'ucs2' => '1'
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => array('Content-type: multipart/form-data'),
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$out = curl_exec($ch);
curl_close($ch);
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$xml = string2XML($out);
$repetatList=XML2Array($xml);
if(!array_key_exists('etat1', $repetatList)){
$repetatList=array($repetatList);
}
foreach($repetatList as $key => $value){
$cpt='';
if($key!='0'){
$cpt=str_replace('etat', '', $key);
}
// Erreur generale
if (!isset($value['tel'.$cpt])){
echo 'Code: '.$value['code'];
echo $sautligne;
echo 'message: '.$value['message'];
echo $sautligne;
break;
}else{
echo '-----------';
echo $sautligne;
echo 'Data '.$cpt;
echo $sautligne;
// Erreur specifique au numero de telephone
if ($value['code'.$cpt]!=0){
echo 'Code: '.$value['code'.$cpt];
echo $sautligne;
echo 'message: '.$value['message'.$cpt];
echo $sautligne;
echo 'tel: '.$value['tel'.$cpt];
echo $sautligne;
// Envoi OK
}else{
echo 'Code: '.$value['code'.$cpt];
echo $sautligne;
echo 'message: '.$value['message'.$cpt];
echo $sautligne;
echo 'tel: '.$value['tel'.$cpt];
echo $sautligne;
}
}
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
import xmltodict
import types
url = 'https://www.isendpro.com/cgi-bin/'
params = {
'keyid': 'a296464ce012b8ab710a',
'num': '33601020304',
'sms': 'Bonjour! Bienvenue sur iSendPro! 🙂',
'ucs2': '1'
}
response = requests.post(url, params)
####################################################################################
#- Traitement du retour
####################################################################################
repetat=xmltodict.parse(response.text)
if not repetat.has_key('etat'):
# Erreur inconnue
print 'Erreur inconnue: '+repetat
else:
#repetat=repetat['etat']
repetatList=repetat['etat']
if not repetatList.has_key('etat1'):
repetatList={'0':repetat['etat']}
keysList=repetatList.keys()
keysList.sort()
for key in keysList:
repetat=repetatList[key]
cpt=''
if key!='0':
cpt=key.replace('etat','')
# Erreur generale
if not repetat.has_key('tel'+cpt):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
else:
print '-----------'
print 'Data '+str(key)
# Erreur specifique au numero de telephone
if repetat['code'+cpt]!=0:
print 'Code: '+repetat['code'+cpt]
print 'Message: '+repetat['message'+cpt]
print 'Tel: '+repetat['tel'+cpt]
# Envoi OK
else:
print 'Code: '+repetat['code'+cpt]
print 'Message: '+repetat['message'+cpt]
print 'Tel: '+repetat['tel'+cpt]
import java.io.*;
import java.net.*;
import java.util.*;
import java.nio.charset.StandardCharsets;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;
import java.io.PrintWriter;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_http."/cgi-bin/";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("num", "33601020304");
paramsTablo.put("sms", "Bonjour! Bienvenue sur ".$marque_nom_court."! 🙂");
paramsTablo.put("ucs2", "1");
StringBuilder urlParameters = new StringBuilder();
for (Map.Entry<String,String> param : paramsTablo.entrySet()) {
if (urlParameters.length() != 0) urlParameters.append("&");
urlParameters.append(URLEncoder.encode(param.getKey(), "UTF-8"));
urlParameters.append("=");
urlParameters.append(URLEncoder.encode(String.valueOf(param.getValue()), "UTF-8"));
}
System.out.println(urlParameters);
byte[] postData = urlParameters.toString().getBytes("UTF-8");
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
String line = content.toString();
try {
InputSource is = new InputSource(new StringReader(line));
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(is);
if(doc.getDocumentElement().getNodeName()!="etat"){
// Erreur inconnue
System.out.println("Erreur inconnue: "+line);
}else{
NodeList nList = doc.getElementsByTagName("etat");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
Node nodeN1 = nNode.getFirstChild();
if(nodeN1!=null){
String n1Name = nodeN1.getNodeName();
if(!n1Name.contains("etat")){
nodeN1 = nNode;
}
}
while(nodeN1!=null){
String n1Name = nodeN1.getNodeName();
System.out.println("-----------");
System.out.println(n1Name);
var erreur=1;
Node nodeN2 = nodeN1.getFirstChild();
while(nodeN2!=null){
String n2Name = nodeN2.getNodeName();
String n2Value = nodeN2.getFirstChild().getNodeValue();
System.out.println(n2Name+": "+n2Value);
nodeN2=nodeN2.getNextSibling();
if(n2Name.contains("code")){
if(n2Value.equals("0")){
erreur=0;
}
}
}
System.out.println("erreur: "+erreur);
if(erreur==1){
// Erreur dans le retour
}else{
// OK
}
nodeN1=nodeN1.getNextSibling();
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
} catch (Exception ex) {
System.err.println(ex);
}
}
}
https://www.isendpro.com/cgi-bin/
Paramètre | Type | Obligatoire | Détails | |||||||||||||||||||||
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
|||||||||||||||||||||
num | String | Oui |
Numéro de téléphone du destinataire Au format international sans le + Ex: 33601020304 |
|||||||||||||||||||||
sms | String | Oui |
Message envoyé au destinataire 1 SMS peut contenir jusqu'à 160 caractères Possibilité d'envoyer des messages plus long (jusqu'à 6 SMS concaténés) pour un total de 918 caractères (6 x 153) (7 caractères étant réserves pour des entêtes techniques) Le cout unitaire sera alors multiplié par le nombre de SMS correspondants Cf Argument smslong |
|||||||||||||||||||||
emetteur | String | Non |
Emetteur du message Par défaut, un numéro court sur 5 chiffres Ex: 36007 Contraintes:
|
|||||||||||||||||||||
tracker | String | Non |
Généré par le client Renvoyé en paramètre des urls pour les retours des accusés de réception et les retours des sms réponses Longueur max de 50 caractères Ex: order-ab78pq9 |
|||||||||||||||||||||
smslong | Number | Non |
Argument indiquant le nombre de SMS concaténés Si le nombre de SMS exact est connu alors indiquer ce nombre Si le nombre calculé par l'API diffère alors un message d'erreur sera retourné (code 32) Pour éviter ce controle et autoriser les messages sur plus de 1 SMS, utiliser la valeur 999
|
|||||||||||||||||||||
nostop | Number | Non |
Argument pour ne pas afficher automatiquement la mention STOP SMS en fin de message Utiliser la valeur 1 |
|||||||||||||||||||||
date_envoi |
Date au format YYYY-MM-DD hh:mm |
Non | Date à laquelle le message sera envoyé | |||||||||||||||||||||
gmt_zone | Fuseau horaire | Non |
A renseigner, en cas d'envoi différé sur un autre fuseau horaire que celui par défaut (GMT+1 Europe/Brussels) Ex: Pour un envoi vers des destinataires en Argentine à l'horaire local et non celui de la France, la valeur de l'argument gmt_zone serait America/Havana |
|||||||||||||||||||||
ucs2 | Number | Non |
Permet l'utilisation de caractères en alphabet non latin (russe, chinois, arabe, etc) et/ou avec des émojis Contraintes:
|
|||||||||||||||||||||
numAzur | Number | Non |
Dans le cadre d'une utilisation combinée entre SMS Azur et l'API, il est possible de forcer le numéro d'expéditeur à être le même que celui utilisé sur SMS Azur Utiliser la valeur 1 |
|||||||||||||||||||||
domtom | Number | Non |
Les envois vers les préfixes opérateurs à destination des DOM TOM (ou DROM-COM) sans l'indicatif pays associé (ex: +262 pour La Réunion) seront acceptés par l'API mais ne pourront etre délivrés Pour forcer leur traitement au tarif en vigueur, utiliser la valeur 1 |
|||||||||||||||||||||
sandbox | Number | Non |
Activation du mode "bac à sable" Ce champ permet de ne pas envoyer réellement les SMS lors de la requête Les envois ne sont pas facturés Utiliser la valeur 1 |
Paramètre | Type | Détails |
code | Number | Code correspondant au tableau des erreurs |
tel | String | Numéro de téléphone associé au code retour |
message | String | Libellé correspondant au tableau des erreurs |
sandbox | Number |
Si 'sandbox' était dans les paramètres d'appels alors sa valeur est 1 Sinon le paramètre n'est pas affiché du tout |
<?xml version="1.0" encoding="ISO-8859-1"?>
<etat>
<code>0</code>
<tel>33601020304</tel>
<message>Votre message a bien ete envoye</message>
</etat>
<?xml version="1.0" encoding="ISO-8859-1"?>
<etat>
<code>6</code>
<message>Vous devez saisir un numéro de téléphone</message>
</etat>
curl -X POST \
'https://www.isendpro.com/cgi-bin/' \
-H 'cache-control: no-cache' \
-d 'keyid=a296464ce012b8ab710a&num=33601020304&sms=Bonjour! Bienvenue sur iSendPro!&emetteur=isendpro&tracker=test001'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$url = 'https://www.isendpro.com/cgi-bin/';
$ch = curl_init();
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'num' => '33601020304',
'sms' => 'Bonjour! Bienvenue sur iSendPro!',
'emetteur' => 'isendpro'
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => array('Content-type: multipart/form-data'),
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$out = curl_exec($ch);
curl_close($ch);
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$xml = string2XML($out);
$repetatList=XML2Array($xml);
if(!array_key_exists('etat1', $repetatList)){
$repetatList=array($repetatList);
}
foreach($repetatList as $key => $value){
$cpt='';
if($key!='0'){
$cpt=str_replace('etat', '', $key);
}
// Erreur generale
if (!isset($value['tel'.$cpt])){
echo 'Code: '.$value['code'];
echo $sautligne;
echo 'message: '.$value['message'];
echo $sautligne;
break;
}else{
echo '-----------';
echo $sautligne;
echo 'Data '.$cpt;
echo $sautligne;
// Erreur specifique au numero de telephone
if ($value['code'.$cpt]!=0){
echo 'Code: '.$value['code'.$cpt];
echo $sautligne;
echo 'message: '.$value['message'.$cpt];
echo $sautligne;
echo 'tel: '.$value['tel'.$cpt];
echo $sautligne;
// Envoi OK
}else{
echo 'Code: '.$value['code'.$cpt];
echo $sautligne;
echo 'message: '.$value['message'.$cpt];
echo $sautligne;
echo 'tel: '.$value['tel'.$cpt];
echo $sautligne;
}
}
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
import xmltodict
import types
url = 'https://www.isendpro.com/cgi-bin/'
params = {
'keyid': 'a296464ce012b8ab710a',
'num': '33601020304',
'sms': 'Bonjour! Bienvenue sur iSendPro!',
'emetteur': 'isendpro'
}
response = requests.post(url, params)
####################################################################################
#- Traitement du retour
####################################################################################
repetat=xmltodict.parse(response.text)
if not repetat.has_key('etat'):
# Erreur inconnue
print 'Erreur inconnue: '+repetat
else:
#repetat=repetat['etat']
repetatList=repetat['etat']
if not repetatList.has_key('etat1'):
repetatList={'0':repetat['etat']}
keysList=repetatList.keys()
keysList.sort()
for key in keysList:
repetat=repetatList[key]
cpt=''
if key!='0':
cpt=key.replace('etat','')
# Erreur generale
if not repetat.has_key('tel'+cpt):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
else:
print '-----------'
print 'Data '+str(key)
# Erreur specifique au numero de telephone
if repetat['code'+cpt]!=0:
print 'Code: '+repetat['code'+cpt]
print 'Message: '+repetat['message'+cpt]
print 'Tel: '+repetat['tel'+cpt]
# Envoi OK
else:
print 'Code: '+repetat['code'+cpt]
print 'Message: '+repetat['message'+cpt]
print 'Tel: '+repetat['tel'+cpt]
import java.io.*;
import java.net.*;
import java.util.*;
import java.nio.charset.StandardCharsets;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;
import java.io.PrintWriter;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_http."/cgi-bin/";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("num", "33601020304");
paramsTablo.put("sms", "Bonjour! Bienvenue sur ".$marque_nom_court."!");
paramsTablo.put("emetteur", "isendpro");
StringBuilder urlParameters = new StringBuilder();
for (Map.Entry<String,String> param : paramsTablo.entrySet()) {
if (urlParameters.length() != 0) urlParameters.append("&");
urlParameters.append(URLEncoder.encode(param.getKey(), "UTF-8"));
urlParameters.append("=");
urlParameters.append(URLEncoder.encode(String.valueOf(param.getValue()), "UTF-8"));
}
System.out.println(urlParameters);
byte[] postData = urlParameters.toString().getBytes("UTF-8");
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
String line = content.toString();
try {
InputSource is = new InputSource(new StringReader(line));
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(is);
if(doc.getDocumentElement().getNodeName()!="etat"){
// Erreur inconnue
System.out.println("Erreur inconnue: "+line);
}else{
NodeList nList = doc.getElementsByTagName("etat");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
Node nodeN1 = nNode.getFirstChild();
if(nodeN1!=null){
String n1Name = nodeN1.getNodeName();
if(!n1Name.contains("etat")){
nodeN1 = nNode;
}
}
while(nodeN1!=null){
String n1Name = nodeN1.getNodeName();
System.out.println("-----------");
System.out.println(n1Name);
var erreur=1;
Node nodeN2 = nodeN1.getFirstChild();
while(nodeN2!=null){
String n2Name = nodeN2.getNodeName();
String n2Value = nodeN2.getFirstChild().getNodeValue();
System.out.println(n2Name+": "+n2Value);
nodeN2=nodeN2.getNextSibling();
if(n2Name.contains("code")){
if(n2Value.equals("0")){
erreur=0;
}
}
}
System.out.println("erreur: "+erreur);
if(erreur==1){
// Erreur dans le retour
}else{
// OK
}
nodeN1=nodeN1.getNextSibling();
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
} catch (Exception ex) {
System.err.println(ex);
}
}
}
https://www.isendpro.com/cgi-bin/
Paramètre | Type | Obligatoire | Détails | |||||||||||||||||||||
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
|||||||||||||||||||||
num[X] | String | Oui |
Numéro de téléphone du destinataire Au format international sans le + Ex: 33601020304 |
|||||||||||||||||||||
sms[X] | String | Oui |
Message envoyé au destinataire 1 SMS peut contenir jusqu'à 160 caractères Possibilité d'envoyer des messages plus long (jusqu'à 6 SMS concaténés) pour un total de 918 caractères (6 x 153) (7 caractères étant réserves pour des entêtes techniques) Le cout unitaire sera alors multiplié par le nombre de SMS correspondants Cf Argument smslong |
|||||||||||||||||||||
emetteur | String | Non |
Emetteur du message Par défaut, un numéro court sur 5 chiffres Ex: 36007 Contraintes:
|
|||||||||||||||||||||
tracker[X] | String | Non |
Généré par le client Renvoyé en paramètre des urls pour les retours des accusés de réception et les retours des sms réponses Longueur max de 50 caractères Ex: order-ab78pq9 |
|||||||||||||||||||||
smslong | Number | Non |
Argument indiquant le nombre de SMS concaténés Si le nombre de SMS exactes est connu alors indiquer ce nombre Si le nombre calculé par l'API diffère alors un message d'erreur sera retourné (code 32) Pour éviter ce controle et autoriser les messages sur plus de 1 SMS, utiliser la valeur 999
|
|||||||||||||||||||||
nostop | Number | Non |
Argument pour ne pas afficher automatiquement la mention STOP SMS en fin de message Utiliser la valeur 1 |
|||||||||||||||||||||
date_envoi |
Date au format YYYY-MM-DD hh:mm |
Non |
Date à laquelle le message sera envoyé Envoi immédiat si non renseigné |
|||||||||||||||||||||
gmt_zone | Fuseau horaire | Non |
A renseigner, en cas d'envoi différé sur un autre fuseau horaire que celui par défaut (GMT+1 Europe/Brussels) Ex: Pour un envoi vers des destinataires en Argentine à l'horaire local et non celui de la France, la valeur de l'argument gmt_zone serait America/Havana |
|||||||||||||||||||||
ucs2 | Number | Non |
Permet l'utilisation de caractères en alphabet non latin (russe, chinois, arabe, etc) et/ou avec des émojis Contraintes:
|
|||||||||||||||||||||
numAzur | Number | Non |
Dans le cadre d'une utilisation combinée entre SMS Azur et l'API, il est possible de forcer le numéro d'expéditeur à être le même que celui utilisé sur SMS Azur Utiliser la valeur 1 |
|||||||||||||||||||||
domtom | Number | Non |
Les envois vers les préfixes opérateurs à destination des DOM TOM (ou DROM-COM) sans l'indicatif pays associé (ex: +262 pour La Réunion) seront acceptés par l'API mais ne pourront etre délivrés Pour forcer leur traitement au tarif en vigueur, utiliser la valeur 1 |
|||||||||||||||||||||
sandbox | Number | Non |
Activation du mode "bac à sable" Ce champ permet de ne pas envoyer réellement les SMS lors de la requête Les envois ne sont pas facturés Utiliser la valeur 1 |
Paramètre | Type | Détails |
code | Number | Code correspondant au tableau des erreurs |
tel | String | Numéro de téléphone associé au code retour |
message | String | Libellé correspondant au tableau des erreurs |
sandbox | Number |
Si 'sandbox' était dans les paramètres d'appels alors sa valeur est 1 Sinon le paramètre n'est pas affiché du tout |
<?xml version="1.0" encoding="ISO-8859-1"?>
<etat>
<etat1>
<code1>0</code1>
<tel1>33601020304</tel1>
<message1>Votre message a bien ete envoye</message1>
</etat1>
<etat2>
<code2>0</code2>
<tel2>33601020304</tel2>
<message2>Votre message a bien ete envoye</message2>
</etat2>
</etat>
<?xml version="1.0" encoding="ISO-8859-1"?>
<etat>
<etat1>
<code1>21</code1>
<tel1>33601020304</tel1>
<message1>Le numéro de téléphone n'est pas attribué!</message1>
</etat1>
<etat2>
<code2>11</code2>
<tel2>33601020304</tel2>
<message2>Le numero de telephone est dans la liste noire!</message2>
</etat2>
</etat>
curl -X POST \
'https://www.isendpro.com/cgi-bin/' \
-H 'cache-control: no-cache' \
-d 'keyid=a296464ce012b8ab710a&num1=33601020304&num2=33601020305&num3=33601020306&sms=Bonjour! Bienvenue sur iSendPro!&emetteur=isendpro'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$url = 'https://www.isendpro.com/cgi-bin/';
$ch = curl_init();
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'num1' => '33601020304',
'num2' => '33601020305',
'sms' => 'Bonjour! Bienvenue sur iSendPro!',
'emetteur' => 'isendpro'
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => array('Content-type: multipart/form-data'),
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$out = curl_exec($ch);
curl_close($ch);
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$xml = string2XML($out);
$repetatList=XML2Array($xml);
if(!array_key_exists('etat1', $repetatList)){
$repetatList=array($repetatList);
}
foreach($repetatList as $key => $value){
$cpt='';
if($key!='0'){
$cpt=str_replace('etat', '', $key);
}
// Erreur generale
if (!isset($value['tel'.$cpt])){
echo 'Code: '.$value['code'];
echo $sautligne;
echo 'message: '.$value['message'];
echo $sautligne;
break;
}else{
echo '-----------';
echo $sautligne;
echo 'Data '.$cpt;
echo $sautligne;
// Erreur specifique au numero de telephone
if ($value['code'.$cpt]!=0){
echo 'Code: '.$value['code'.$cpt];
echo $sautligne;
echo 'message: '.$value['message'.$cpt];
echo $sautligne;
echo 'tel: '.$value['tel'.$cpt];
echo $sautligne;
// Envoi OK
}else{
echo 'Code: '.$value['code'.$cpt];
echo $sautligne;
echo 'message: '.$value['message'.$cpt];
echo $sautligne;
echo 'tel: '.$value['tel'.$cpt];
echo $sautligne;
}
}
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
import xmltodict
import types
url = 'https://www.isendpro.com/cgi-bin/'
params = {
'keyid': 'a296464ce012b8ab710a',
'num1': '33601020304',
'num2': '33601020305',
'sms': 'Bonjour! Bienvenue sur iSendPro!',
'emetteur': 'isendpro'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Traitement du retour
####################################################################################
repetat=xmltodict.parse(response.text)
if not repetat.has_key('etat'):
# Erreur inconnue
print 'Erreur inconnue: '+repetat
else:
#repetat=repetat['etat']
repetatList=repetat['etat']
if not repetatList.has_key('etat1'):
repetatList={'0':repetat['etat']}
keysList=repetatList.keys()
keysList.sort()
for key in keysList:
repetat=repetatList[key]
cpt=''
if key!='0':
cpt=key.replace('etat','')
# Erreur generale
if not repetat.has_key('tel'+cpt):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
else:
print '-----------'
print 'Data '+str(key)
# Erreur specifique au numero de telephone
if repetat['code'+cpt]!=0:
print 'Code: '+repetat['code'+cpt]
print 'Message: '+repetat['message'+cpt]
print 'Tel: '+repetat['tel'+cpt]
# Envoi OK
else:
print 'Code: '+repetat['code'+cpt]
print 'Message: '+repetat['message'+cpt]
print 'Tel: '+repetat['tel'+cpt]
import java.io.*;
import java.net.*;
import java.util.*;
import java.nio.charset.StandardCharsets;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;
import java.io.PrintWriter;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_http."/cgi-bin/";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("num1", "33601020304");
paramsTablo.put("num2", "33601020305");
paramsTablo.put("num3", "33601020306");
paramsTablo.put("sms", "Bonjour! Bienvenue sur ".$marque_nom_court."!");
paramsTablo.put("emetteur", "isendpro");
StringBuilder urlParameters = new StringBuilder();
for (Map.Entry<String,String> param : paramsTablo.entrySet()) {
if (urlParameters.length() != 0) urlParameters.append("&");
urlParameters.append(URLEncoder.encode(param.getKey(), "UTF-8"));
urlParameters.append("=");
urlParameters.append(URLEncoder.encode(String.valueOf(param.getValue()), "UTF-8"));
}
System.out.println(urlParameters);
byte[] postData = urlParameters.toString().getBytes("UTF-8");
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
String line = content.toString();
try {
InputSource is = new InputSource(new StringReader(line));
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(is);
if(doc.getDocumentElement().getNodeName()!="etat"){
// Erreur inconnue
System.out.println("Erreur inconnue: "+line);
}else{
NodeList nList = doc.getElementsByTagName("etat");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
Node nodeN1 = nNode.getFirstChild();
if(nodeN1!=null){
String n1Name = nodeN1.getNodeName();
if(!n1Name.contains("etat")){
nodeN1 = nNode;
}
}
while(nodeN1!=null){
String n1Name = nodeN1.getNodeName();
System.out.println("-----------");
System.out.println(n1Name);
var erreur=1;
Node nodeN2 = nodeN1.getFirstChild();
while(nodeN2!=null){
String n2Name = nodeN2.getNodeName();
String n2Value = nodeN2.getFirstChild().getNodeValue();
System.out.println(n2Name+": "+n2Value);
nodeN2=nodeN2.getNextSibling();
if(n2Name.contains("code")){
if(n2Value.equals("0")){
erreur=0;
}
}
}
System.out.println("erreur: "+erreur);
if(erreur==1){
// Erreur dans le retour
}else{
// OK
}
nodeN1=nodeN1.getNextSibling();
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
} catch (Exception ex) {
System.err.println(ex);
}
}
}
https://www.isendpro.com/cgi-bin/
Paramètre | Type | Obligatoire | Détails |
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
repertoireId | String | Oui | Identifiant du répertoire cible |
sms | String | Oui |
Message envoyé au destinataire 1 SMS peut contenir jusqu'à 160 caractères Possibilité d'envoyer des messages plus long (jusqu'à 6 SMS concaténés) pour un total de 918 caractères (6 x 153) (7 caractères étant réserves pour des entêtes techniques) Le cout unitaire sera alors multiplié par le nombre de SMS correspondants Cf Argument smslong |
emetteur | String | Non |
Emetteur du message Par défaut, un numéro court sur 5 chiffres Ex: 36007 Contraintes:
|
tracker | String | Non |
Argument généré par le client afin d'associer les accusés de réception ou les réponses Longueur max de 50 caractères Ex: order-ab78pq9 |
smslong | Number | Non |
Argument indiquant le nombre de SMS concaténés Si le nombre de SMS exactes est connu alors indiquer ce nombre Si le nombre calculé par l'API diffère alors un message d'erreur sera retourné (code 32) Pour éviter ce controle et autoriser les messages sur plus de 1 SMS, utiliser la valeur 999 |
nostop | Number | Non |
Argument pour ne pas afficher automatiquement la mention STOP SMS en fin de message Utiliser la valeur 1 |
date_envoi |
Date au format YYYY-MM-DD hh:mm |
Non |
Date à laquelle le message sera envoyé Envoi immédiat si non renseigné |
gmt_zone | Fuseau horaire | Non |
A renseigner, en cas d'envoi différé sur un autre fuseau horaire que celui par défaut (Europe/London) |
ucs2 | Number | Non |
Permet l'utilisation de caractères en alphabet non latin (russe, chinois, arabe, etc) et/ou avec des émojis Contraintes:
|
numAzur | Number | Non |
Dans le cadre d'une utilisation combinée entre SMS Azur et l'API, il est possible de forcer le numéro d'expéditeur à être le même que celui utilisé sur SMS Azur Utiliser la valeur 1 |
domtom | Number | Non |
Les envois vers les préfixes opérateurs à destination des DOM TOM (ou DROM-COM) sans l'indicatif pays associé (ex: +262 pour La Réunion) seront acceptés par l'API mais ne pourront etre délivrés Pour forcer leur traitement au tarif en vigueur, utiliser la valeur 1 |
sandbox | Number | Non |
Activation du mode "bac à sable" Ce champ permet de ne pas envoyer réellement les SMS lors de la requête Les envois ne sont pas facturés Utiliser la valeur 1 |
Paramètre | Type | Détails |
code | Number | Code correspondant au tableau des erreurs |
repertoireId | String | Identifiant du répertoire cible |
message | String | Libellé correspondant au tableau des erreurs |
sandbox | Number |
Si 'sandbox' était dans les paramètres d'appels alors sa valeur est 1 Sinon le paramètre n'est pas affiché du tout |
<?xml version="1.0" encoding="ISO-8859-1"?>
<etat>
<code>0</code>
<message>Votre message a bien ete envoye</message>
<repertoireId>123456789</repertoireId>
</etat>
<?xml version="1.0" encoding="ISO-8859-1"?>
<etat>
<code>108</code>
<message>Cet identifiant ne correspond a aucun repertoire!</message>
<repertoireId>123456789</repertoireId>
</etat>
curl -X POST \
'https://www.isendpro.com/cgi-bin/' \
-H 'cache-control: no-cache' \
-d 'keyid=a296464ce012b8ab710a&repertoireId=123456789&sms=Bonjour! Bienvenue sur iSendPro!&emetteur=isendpro'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$url = 'https://www.isendpro.com/cgi-bin/';
$ch = curl_init();
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'repertoireId' => '123456789',
'sms' => 'Bonjour! Bienvenue sur iSendPro!',
'emetteur' => 'isendpro'
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => array('Content-type: multipart/form-data'),
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$out = curl_exec($ch);
curl_close($ch);
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$xml = string2XML($out);
$repetatList=XML2Array($xml);
if(!array_key_exists('etat1', $repetatList)){
$repetatList=array($repetatList);
}
foreach($repetatList as $key => $value){
$cpt='';
if($key!='0'){
$cpt=str_replace('etat', '', $key);
}
// Erreur generale
if (!isset($value['repertoireId'.$cpt])){
echo 'Code: '.$value['code'];
echo $sautligne;
echo 'message: '.$value['message'];
echo $sautligne;
break;
}else{
echo '-----------';
echo $sautligne;
echo 'Data '.$cpt;
echo $sautligne;
// Erreur specifique au repertoire
if ($value['code'.$cpt]!=0){
echo 'Code: '.$value['code'.$cpt];
echo $sautligne;
echo 'message: '.$value['message'.$cpt];
echo $sautligne;
echo 'repertoireId: '.$value['repertoireId'.$cpt];
echo $sautligne;
// Envoi OK
}else{
echo 'Code: '.$value['code'.$cpt];
echo $sautligne;
echo 'message: '.$value['message'.$cpt];
echo $sautligne;
echo 'repertoireId: '.$value['repertoireId'.$cpt];
echo $sautligne;
}
}
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
import xmltodict
import types
url = 'https://www.isendpro.com/cgi-bin/'
params = {
'keyid': 'a296464ce012b8ab710a',
'repertoireId': '123456789',
'sms': 'Bonjour! Bienvenue sur iSendPro!',
'emetteur': 'isendpro'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Traitement du retour
####################################################################################
repetat=xmltodict.parse(response.text)
if not repetat.has_key('etat'):
# Erreur inconnue
print 'Erreur inconnue: '+repetat
else:
#repetat=repetat['etat']
repetatList=repetat['etat']
if not repetatList.has_key('etat1'):
repetatList={'0':repetat['etat']}
keysList=repetatList.keys()
keysList.sort()
for key in keysList:
repetat=repetatList[key]
cpt=''
if key!='0':
cpt=key.replace('etat','')
# Erreur generale
if not repetat.has_key('repertoireId'+cpt):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
else:
print '-----------'
print 'Data '+str(key)
# Erreur specifique au repertoire
if repetat['code'+cpt]!=0:
print 'Code: '+repetat['code'+cpt]
print 'Message: '+repetat['message'+cpt]
print 'repertoireId: '+repetat['repertoireId'+cpt]
# Envoi OK
else:
print 'Code: '+repetat['code'+cpt]
print 'Message: '+repetat['message'+cpt]
print 'repertoireId: '+repetat['repertoireId'+cpt]
import java.io.*;
import java.net.*;
import java.util.*;
import java.nio.charset.StandardCharsets;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;
import java.io.PrintWriter;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_http."/cgi-bin/";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("repertoireId", "123456789");
paramsTablo.put("sms", "Bonjour! Bienvenue sur ".$marque_nom_court."!");
paramsTablo.put("emetteur", "isendpro");
StringBuilder urlParameters = new StringBuilder();
for (Map.Entry<String,String> param : paramsTablo.entrySet()) {
if (urlParameters.length() != 0) urlParameters.append("&");
urlParameters.append(URLEncoder.encode(param.getKey(), "UTF-8"));
urlParameters.append("=");
urlParameters.append(URLEncoder.encode(String.valueOf(param.getValue()), "UTF-8"));
}
System.out.println(urlParameters);
byte[] postData = urlParameters.toString().getBytes("UTF-8");
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
String line = content.toString();
try {
InputSource is = new InputSource(new StringReader(line));
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(is);
if(doc.getDocumentElement().getNodeName()!="etat"){
// Erreur inconnue
System.out.println("Erreur inconnue: "+line);
}else{
NodeList nList = doc.getElementsByTagName("etat");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
Node nodeN1 = nNode.getFirstChild();
if(nodeN1!=null){
String n1Name = nodeN1.getNodeName();
if(!n1Name.contains("etat")){
nodeN1 = nNode;
}
}
while(nodeN1!=null){
String n1Name = nodeN1.getNodeName();
System.out.println("-----------");
System.out.println(n1Name);
var erreur=1;
Node nodeN2 = nodeN1.getFirstChild();
while(nodeN2!=null){
String n2Name = nodeN2.getNodeName();
String n2Value = nodeN2.getFirstChild().getNodeValue();
System.out.println(n2Name+": "+n2Value);
nodeN2=nodeN2.getNextSibling();
if(n2Name.contains("code")){
if(n2Value.equals("0")){
erreur=0;
}
}
}
System.out.println("erreur: "+erreur);
if(erreur==1){
// Erreur dans le retour
}else{
// OK
}
nodeN1=nodeN1.getNextSibling();
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
} catch (Exception ex) {
System.err.println(ex);
}
}
}
https://www.isendpro.com/cgi-bin/
Paramètre | Type | Obligatoire | Détails |
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
type_shortlink | Number | Non |
Type d'url raccourcie 0: www.sms.ht (valeur par défaut) 1: url2.fr |
shortlink | String | Oui | Url à raccourcir |
Paramètre | Type | Détails |
code | Number | Code correspondant au tableau des erreurs |
message | String | Libellé correspondant au tableau des erreurs (cf Annexes) |
shortlink | String |
Url raccourcie Format: www.sms.ht/[XXXX] ou url2.fr/[XXXX] Ex: www.sms.ht/6gHw ou url2.fr/6gHw |
<?xml version="1.0" encoding="ISO-8859-1"?>
<etat>
<code>250</code>
<message>Le lien court a ete genere</message>
<shortlink>www.sms.ht/6X8Y</shortlink>
</etat>
curl -X POST \
'https://www.isendpro.com/cgi-bin/' \
-H 'cache-control: no-cache' \
-d 'keyid=a296464ce012b8ab710a&shortlink=https://www.google.com/'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$url = 'https://www.isendpro.com/cgi-bin/';
$ch = curl_init();
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'shortlink' => 'https://www.google.com/'
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => array('Content-type: multipart/form-data'),
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$out = curl_exec($ch);
curl_close($ch);
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$xml = string2XML($out);
$repetatList=XML2Array($xml);
if(!array_key_exists('etat1', $repetatList)){
$repetatList=array($repetatList);
}
foreach($repetatList as $key => $value){
$cpt='';
if($key!='0'){
$cpt=str_replace('etat', '', $key);
}
// Erreur generale
if (!isset($value['shortlink'.$cpt])){
echo 'Code: '.$value['code'];
echo $sautligne;
echo 'message: '.$value['message'];
echo $sautligne;
break;
}else{
echo '-----------';
echo $sautligne;
echo 'Data '.$cpt;
echo $sautligne;
// Infos de retour
echo 'Code: '.$value['code'];
echo $sautligne;
echo 'Message: '.$value['message'];
echo $sautligne;
echo 'shortlink: '.$value['shortlink'];
}
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
import xmltodict
import types
url = 'https://www.isendpro.com/cgi-bin/'
params = {
'keyid': 'a296464ce012b8ab710a',
'shortlink': 'https://www.google.com/'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Traitement du retour
####################################################################################
repetat=xmltodict.parse(response.text)
if not repetat.has_key('etat'):
# Erreur inconnue
print 'Erreur inconnue: '+repetat
else:
#repetat=repetat['etat']
repetatList=repetat['etat']
if not repetatList.has_key('etat1'):
repetatList={'0':repetat['etat']}
keysList=repetatList.keys()
keysList.sort()
for key in keysList:
repetat=repetatList[key]
cpt=''
if key!='0':
cpt=key.replace('etat','')
# Erreur generale
if not repetat.has_key('shortlink'+cpt):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
else:
print '-----------'
print 'Data '+str(key)
# Infos du retour
print 'Code: '+repetat['code'+cpt]
print 'Message: '+repetat['message'+cpt]
print 'shortlink: '+repetat['shortlink'+cpt]
import java.io.*;
import java.net.*;
import java.util.*;
import java.nio.charset.StandardCharsets;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;
import java.io.PrintWriter;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_http."/cgi-bin/";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("shortlink", "https://www.google.com/");
StringBuilder urlParameters = new StringBuilder();
for (Map.Entry<String,String> param : paramsTablo.entrySet()) {
if (urlParameters.length() != 0) urlParameters.append("&");
urlParameters.append(URLEncoder.encode(param.getKey(), "UTF-8"));
urlParameters.append("=");
urlParameters.append(URLEncoder.encode(String.valueOf(param.getValue()), "UTF-8"));
}
System.out.println(urlParameters);
byte[] postData = urlParameters.toString().getBytes("UTF-8");
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
String line = content.toString();
try {
InputSource is = new InputSource(new StringReader(line));
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(is);
if(doc.getDocumentElement().getNodeName()!="etat"){
// Erreur inconnue
System.out.println("Erreur inconnue: "+line);
}else{
NodeList nList = doc.getElementsByTagName("etat");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
Node nodeN1 = nNode.getFirstChild();
if(nodeN1!=null){
String n1Name = nodeN1.getNodeName();
if(!n1Name.contains("etat")){
nodeN1 = nNode;
}
}
while(nodeN1!=null){
String n1Name = nodeN1.getNodeName();
System.out.println("-----------");
System.out.println(n1Name);
var erreur=1;
Node nodeN2 = nodeN1.getFirstChild();
while(nodeN2!=null){
String n2Name = nodeN2.getNodeName();
String n2Value = nodeN2.getFirstChild().getNodeValue();
System.out.println(n2Name+": "+n2Value);
nodeN2=nodeN2.getNextSibling();
if(n2Name.contains("code")){
if(n2Value.equals("0")){
erreur=0;
}
}
}
System.out.println("erreur: "+erreur);
if(erreur==1){
// Erreur dans le retour
}else{
// OK
}
nodeN1=nodeN1.getNextSibling();
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
} catch (Exception ex) {
System.err.println(ex);
}
}
}
https://www.isendpro.com/cgi-bin/
Paramètre | Type | Obligatoire | Détails |
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
rapportCampagne | Number | Oui |
Utiliser la valeur suivante:
|
date_deb |
Date au format YYYY-MM-DD hh:mm |
Oui | Date de début des envois de la sélection |
date_fin |
Date au format YYYY-MM-DD hh:mm |
Oui | Date de fin des envois de la sélection |
Paramètre | Type | Détails |
Date d'envoi | date | Date d'envoi du SMS |
Emetteur | String | Emeteur du message |
Destinataire | String | Numéro de téléphone destinataire du message |
Message | String | Message envoyé |
Information complémentaire | String | Indique l'opérateur et l'état du message |
Infos details | String | Indique l'accusé de réception fourni par l'opérateur |
Statut | String | Statut du message |
SMS retour | String | Eventuelle réponse du destinataire |
Canal | String | Haute Qualite |
Prix | Number | Cout du message |
STOP | Number | Indique si le destinataire a répondu STOP |
Tracker | String | Argument éventuellement fourni lors de l'envoi pour une identification simplifiée |
Operateur | String | Opérateur associé au destinataire |
Date AR | date | Date de réception de l'accusé de réception opérateur |
Code erreur | Number | Code associé à l'accusé de réception |
Paramètre | Type | Détails |
Date d'envoi | date | Date d'envoi du SMS |
Campagne | String | Libellé de la campagne |
Répertoire | String | Répertoire(s) associé(s) aux envois |
Emetteur | String | Emeteur du message |
Message | String | Message de la campagne si hors API |
Pays | String | Pays des destinataires |
Envois prévus | Number | Quantité d'envois prévus |
Envois reels | Number | Quantité d'envois réels |
Envois non aboutis | Number | Quantité d'envois non aboutis |
SMS Long | Number | Nombre de SMS pour le message |
STOP | Number | Quantités de STOP recus |
clics | Number | Quantités de clics |
Visiteur unique | Number | Quantités de visiteurs uniques |
Taux visite | Number | Taux de visite |
Cout HT | Number | Cout de la campagne en euros HT |
curl -X POST \
'https://www.isendpro.com/cgi-bin/' \
-H 'cache-control: no-cache' \
-d 'keyid=a296464ce012b8ab710a&rapportCampagne=1&date_deb=2020-01-01 10:00&date_fin=2020-01-07 10:00'
-o rapportCampagne.zip
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$zipName = 'rapportCampagne.zip';
$zipDirectory = '/VOTRE_REPERTOIRE/';
$fp = fopen($zipDirectory.$zipName, 'w');
$url = 'https://www.isendpro.com/cgi-bin/';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'rapportCampagne' => 1,
'date_deb' => '2020-01-01 10:00',
'date_fin' => '2020-01-07 20:00',
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
curl_setopt($ch, CURLOPT_FILE, $fp);
$response = curl_exec($ch);
fwrite($fp, $response);
curl_close($ch);
fclose($fp);
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
// Unzip du fichier
$za = new ZipArchive();
$za->open($zipDirectory.$zipName);
for( $i = 0; $i < $za->numFiles; $i++ ){
$stat = $za->statIndex( $i );
$fileName = basename($stat['name']);
print_r($fileName.PHP_EOL);
$za->extractTo($zipDirectory);
$za->close();
// Lecture du fichier csv dans le zip
$fn = fopen($fileName, 'r');
// Liste des titres de colonnes
$titres = fgetcsv($fn, 1000, ';');
while (($data = fgetcsv($fn, 1000, ';')) !== FALSE){
foreach($data as $i => $d){
if($d){
// Affichage des donnees de la ligne
echo $titres[$i].' => '.$d.PHP_EOL;
}
}
// Saut de ligne
echo PHP_EOL;
}
// Suppression du fichier .csv
unlink($zipDirectory.$fileName);
}
// Suppression du fichier .zip
unlink($zipDirectory.$zipName);
?>
####################################################################################
#- Envoi requete
####################################################################################
import shutil
import requests
import xmltodict
import types
import zipfile
import os
zipName = 'rapportCampagne.zip'
zipDirectory = '/VOTRE_REPERTOIRE/'
url = 'https://www.isendpro.com/cgi-bin/'
params = {
'keyid': 'a296464ce012b8ab710a',
'rapportCampagne': 1,
'date_deb': '2020-01-01 10:00',
'date_fin': '2020-01-07 20:00',
}
response = requests.post(url, params, stream=True)
with open(zipDirectory+zipName, 'wb') as f:
response.raw.decode_content = True
shutil.copyfileobj(response.raw, f)
####################################################################################
#- Traitement du retour
####################################################################################
myzipfile = zipfile.ZipFile(zipDirectory+zipName)
for fileName in myzipfile.namelist():
# Unzip du fichier vers zipDirectory
with zipfile.ZipFile(zipDirectory+zipName, 'r') as zip_ref:
zip_ref.extractall(zipDirectory)
# Lecture du fichier csv dans le zip
fichier = open(zipDirectory+fileName)
lines = fichier.readlines()
firstLine=1
for line in lines:
line=line.strip()
line=line.split(';')
if firstLine:
# Liste des titres de colonnes
firstLine=0
titres=line
else:
i=0
for data in line:
if data:
# Affichage des donnees de la ligne
print titres[i]+' => '+data
i+=1
# Suppression du fichier .csv
os.remove(zipDirectory+fileName)
# Suppression du fichier .zip
os.remove(zipDirectory+zipName)
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.io.BufferedReader;
import java.io.FileReader;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
/**
* Size of the buffer to read/write data
*/
private static final int BUFFER_SIZE = 4096;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_http."/cgi-bin/";
var zipName = "rapportCampagne.zip";
var zipDirectory = "/VOTRE_REPERTOIRE/";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("rapportCampagne", "1");
paramsTablo.put("date_deb", "2020-01-01 10:00");
paramsTablo.put("date_fin", "2020-01-07 20:00");
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
File myzipfile = new File(zipDirectory+zipName);
OutputStream outStream = new FileOutputStream(myzipfile);
InputStream inputStream = con.getInputStream();
int read;
byte[] bytes = new byte[1024];
while ((read = inputStream.read(bytes)) != -1) {
outStream.write(bytes, 0, read);
}
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
File destDir = new File(zipDirectory);
ZipInputStream zipIn = new ZipInputStream(new FileInputStream(zipDirectory+zipName));
ZipEntry entry = zipIn.getNextEntry();
// iterates over entries in the zip file
while (entry != null) {
File mycsvfile = new File(zipDirectory+entry.getName());
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(zipDirectory+entry.getName()));
byte[] bytesIn = new byte[BUFFER_SIZE];
int read2 = 0;
while ((read2 = zipIn.read(bytesIn)) != -1) {
bos.write(bytesIn, 0, read2);
}
bos.close();
BufferedReader reader;
String lineD;
String data;
ArrayList<String> titres=new ArrayList<String>();
reader = new BufferedReader(new FileReader(zipDirectory+entry.getName()));
String line = reader.readLine();
// Liste des titres de colonnes
if (line != null) {
lineD = line.trim();
titres=new ArrayList<String>(Arrays.asList(lineD.split(";")));
}
while (line != null) {
line = reader.readLine();
if (line != null) {
lineD = line.trim();
ArrayList<String> lineList = new ArrayList<String>(Arrays.asList(lineD.split(";")));
for (int i = 0; i < lineList.size(); i++) {
data = (String)lineList.get(i);
data = data.trim();
System.out.println(titres.get(i)+" => "+data);
}
System.out.println(" ");
}
}
reader.close();
// Suppression du fichier .csv
mycsvfile.delete();
zipIn.closeEntry();
entry = zipIn.getNextEntry();
}
zipIn.close();
// Suppression du fichier .zip
myzipfile.delete();
} finally {
con.disconnect();
}
}
}
https://www.isendpro.com/cgi-bin/
Paramètre | Type | Obligatoire | Détails |
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
rapportCampagneData | Number | Oui | Utiliser la valeur 1 |
date_deb |
Date au format YYYY-MM-DD hh:mm |
Oui | Date de début des envois de la sélection |
date_fin |
Date au format YYYY-MM-DD hh:mm |
Oui | Date de fin des envois de la sélection |
select_deb | Number | Non |
Ce nombre indique la position de début des résultats de la sélection Ex: select_deb=1000 pour obtenir les données après les 1000ers résultats |
select_pas | Number | Non |
Ce nombre indique la quantité de résultats dans la sélection La valeur maximum acceptée est 1000 Ex: select_pas=500 pour obtenir 500 données |
select_msisdn | Array | Non |
Ajout de cette liste dans la requête de rapport de campagne
Au format international sans le + Ex: [ "33601020304", "33601020305", "33601020306" ] |
select_tracker | String | Non |
Ajout de ce critère dans la requête de rapport de campagne La recherche sera étendue à tous les trackers commençant par le tracker indiqué Ex: Si select_tracker=camp001 alors seront recherchés les trackers camp001-001 et camp001-002 |
Paramètre | Type | Détails |
code | Number | Code correspondant au tableau des erreurs |
tel | String | Numéro de téléphone associé au code retour |
message | String | Libellé correspondant au tableau des erreurs |
historySender | String | Emetteur du message |
historyMsg | String | Message envoyé au destinataire |
historyDate | String | Date d'envoi du message au destinataire au format AAAA-MM-JJ HH:MM:SS |
historyTracker | String | tracker associé au message envoyé au destinataire |
historyOperator | String | Opérateur associé au message envoyé au destinataire |
historyResponse | String |
Réponse éventuelle retournée par le destinataire Si aucune réponse la valeur est "-" |
historyDeliveryAR | String |
Indique si le message a bien été livré Les valeurs possibles sont:
|
historyDeliveryARtime | String | Date de la notification de livraison du message au destinataire au format AAAA-MM-JJ HH:MM:SS |
historyDelivery1 | String | Complément d'information sur la notification |
historyDelivery2 | String | Complément d'information sur la notification |
historyNbSMSlong | Number | Nombre de SMS pour ce message |
<?xml version="1.0" encoding="ISO-8859-1"?>
<etat>
<etat1>
<code1>207</code1>
<tel1>33601020304</tel1>
<message1>Historique des envois</message1>
<historySender1>MaSociete</historySender1>
<historyMsg1>Votre test 1 a bien été recu</historyMsg1>
<historyDate1>2020-04-14 14:58:02</historyDate1>
<historyTracker1>camp001-002</historyTracker1>
<historyOperator1>SFR</historyOperator1>
<historyResponse1>-</historyResponse1>
<historyDeliveryAR1>OK</historyDeliveryAR1>
<historyDeliveryARtime1>2020-04-14 14:58:03</historyDeliveryARtime1>
<historyDelivery11>SFR: SMS remis</historyDelivery11>
<historyDelivery21>Message for 0033601020304 has been delivered</historyDelivery21>
<historyNbSMSlong1>1</historyNbSMSlong1>
</etat1>
<etat2>
<code2>207</code2>
<tel2>33614222448</tel2>
<message2>Historique des envois</message2>
<historySender2>MaSociete</historySender2>
<historyMsg2>Les Soldes commencent fort : 10E offerts pour les premiers arrivés sur http://cdiscount.sms.ht/?XTNP Et d'autres offres exclusives !ÕSTOP 38085</historyMsg2>
<historyDate2>2020-01-08 07:41:52</historyDate2>
<historyTracker2>camp001-001</historyTracker2>
<historyOperator2>SFR</historyOperator2>
<historyResponse2>-</historyResponse2>
<historyDeliveryAR2>OK</historyDeliveryAR2>
<historyDeliveryARtime2>2020-01-08 07:41:58</historyDeliveryARtime2>
<historyDelivery12>SFR: SMS remis</historyDelivery12>
<historyDelivery22>Message for 0033614222448 has been delivered</historyDelivery22>
<historyNbSMSlong2>1</historyNbSMSlong2>
</etat2>
</etat>
curl -X POST \
'https://www.isendpro.com/cgi-bin/' \
-H 'cache-control: no-cache' \
-d 'keyid=a296464ce012b8ab710a&rapportCampagneData=1&date_deb=2020-01-01 10:00&date_fin=2020-01-07 10:00&select_tracker=camp001&select_deb=0&select_pas=500'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://www.isendpro.com/cgi-bin/';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'rapportCampagneData' => '1',
'date_deb' => '2020-01-01 00:00',
'date_fin' => '2020-01-10 00:00',
'select_deb' => '0',
'select_pas' => '500',
'select_tracker' => 'camp001'
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$out = curl_exec($ch);
curl_close($ch);
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$xml = string2XML($out);
$repetatList=XML2Array($xml);
if(!array_key_exists('etat1', $repetatList)){
$repetatList=array($repetatList);
}
foreach($repetatList as $key => $value){
$cpt='';
if($key!='0'){
$cpt=str_replace('etat', '', $key);
}
// Erreur generale
if (!isset($value['tel'.$cpt])){
echo 'Code: '.$value['code'];
echo $sautligne;
echo 'message: '.$value['message'];
echo $sautligne;
break;
}else{
echo '-----------';
echo $sautligne;
echo 'Data '.$cpt;
echo $sautligne;
// infos de retour
echo 'Code: '.$value['code'.$cpt];
echo $sautligne;
echo 'Message: '.$value['message'.$cpt];
echo $sautligne;
echo 'Tel: '.$value['tel'.$cpt];
echo $sautligne;
echo $sautligne;
echo 'historySender: '.$repetat->historySender;
echo 'historyMsg: '.$value['historyMsg'.$cpt];
echo $sautligne;
echo 'historyDate: '.$value['historyDate'.$cpt];
echo $sautligne;
echo 'historyTracker: '.$value['historyTracker'.$cpt];
echo $sautligne;
echo 'historyOperator: '.$value['historyOperator'.$cpt];
echo $sautligne;
echo 'historyResponse: '.$value['historyResponse'.$cpt];
echo $sautligne;
echo 'historyDeliveryAR: '.$value['historyDeliveryAR'.$cpt];
echo $sautligne;
echo 'historyDeliveryARtime: '.$value['historyDeliveryARtime'.$cpt];
echo $sautligne;
echo 'historyDelivery1: '.$value['historyDelivery1'.$cpt];
echo $sautligne;
echo 'historyDelivery2: '.$value['historyDelivery2'.$cpt];
echo $sautligne;
echo 'historyNbSMSlong: '.$value['historyNbSMSlong'.$cpt];
echo $sautligne;
}
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
import xmltodict
import types
url = 'https://www.isendpro.com/cgi-bin/'
params = {
'keyid' : 'a296464ce012b8ab710a',
'rapportCampagneData' : '1',
'date_deb' : '2020-01-01 00:00',
'date_fin' : '2020-01-10 00:00',
'select_deb' : '0',
'select_pas' : '500',
'select_tracker' : 'camp001'
}
response = requests.post(url, params)
####################################################################################
#- Traitement du retour
####################################################################################
repetat=xmltodict.parse(response.text)
if not repetat.has_key('etat'):
# Erreur inconnue
print 'Erreur inconnue: '+repetat
else:
#repetat=repetat['etat']
repetatList=repetat['etat']
if not repetatList.has_key('etat1'):
repetatList={'0':repetat['etat']}
keysList=repetatList.keys()
keysList.sort()
for key in keysList:
repetat=repetatList[key]
cpt=''
if key!='0':
cpt=key.replace('etat','')
# Erreur generale
if not repetat.has_key('tel'+cpt):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
else:
print '-----------'
print 'Data '+str(key)
# Infos du retour
print 'Code: '+repetat['code'+cpt]
print 'Message: '+repetat['message'+cpt]
print 'Tel: '+repetat['tel'+cpt]
print 'historySender: '+repetat['historySender']
print 'historyMsg: '+repetat['historyMsg'+cpt]
print 'historyDate: '+repetat['historyDate'+cpt]
print 'historyTracker: '+repetat['historyTracker'+cpt]
print 'historyOperator: '+repetat['historyOperator'+cpt]
print 'historyResponse: '+repetat['historyResponse'+cpt]
print 'historyDeliveryAR: '+repetat['historyDeliveryAR'+cpt]
print 'historyDeliveryARtime: '+repetat['historyDeliveryARtime'+cpt]
print 'historyDelivery1: '+repetat['historyDelivery1'+cpt]
print 'historyDelivery2: '+repetat['historyDelivery2'+cpt]
print 'historyNbSMSlong: '+repetat['historyNbSMSlong'+cpt]
import java.io.*;
import java.net.*;
import java.util.*;
import java.nio.charset.StandardCharsets;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;
import java.io.PrintWriter;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_http."/cgi-bin/";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("rapportCampagneData", "1");
paramsTablo.put("date_deb", "2020-01-01 10:00");
paramsTablo.put("date_fin", "2020-01-07 20:00");
StringBuilder urlParameters = new StringBuilder();
for (Map.Entry<String,String> param : paramsTablo.entrySet()) {
if (urlParameters.length() != 0) urlParameters.append("&");
urlParameters.append(URLEncoder.encode(param.getKey(), "UTF-8"));
urlParameters.append("=");
urlParameters.append(URLEncoder.encode(String.valueOf(param.getValue()), "UTF-8"));
}
System.out.println(urlParameters);
byte[] postData = urlParameters.toString().getBytes("UTF-8");
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
String line = content.toString();
line = line.replace("&", "&");
try {
InputSource is = new InputSource(new StringReader(line));
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(is);
if(doc.getDocumentElement().getNodeName()!="etat"){
// Erreur inconnue
System.out.println("Erreur inconnue: "+line);
}else{
NodeList nList = doc.getElementsByTagName("etat");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
Node nodeN1 = nNode.getFirstChild();
if(nodeN1!=null){
String n1Name = nodeN1.getNodeName();
if(!n1Name.contains("etat")){
nodeN1 = nNode;
}
}
while(nodeN1!=null){
String n1Name = nodeN1.getNodeName();
System.out.println("-----------");
System.out.println(n1Name);
var erreur=1;
Node nodeN2 = nodeN1.getFirstChild();
while(nodeN2!=null){
String n2Name = nodeN2.getNodeName();
String n2Value = nodeN2.getFirstChild().getNodeValue();
System.out.println(n2Name+": "+n2Value);
nodeN2=nodeN2.getNextSibling();
if(n2Name.contains("code")){
if(n2Value.equals("0")){
erreur=0;
}
}
}
System.out.println("erreur: "+erreur);
if(erreur==1){
// Erreur dans le retour
}else{
// OK
}
nodeN1=nodeN1.getNextSibling();
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
} catch (Exception ex) {
System.err.println(ex);
}
}
}
https://www.isendpro.com/cgi-bin/
Paramètre | Type | Obligatoire | Détails |
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
num | String | Oui |
Numéro de téléphone du destinataire Au format international sans le + Ex: 33601020304 |
sms | String | Oui |
Message envoyé au destinataire 1 SMS peut contenir jusqu'à 160 caractères Possibilité d'envoyer des messages plus long (jusqu'à 6 SMS concaténés) pour un total de 918 caractères (6 x 153) (7 caractères étant réserves pour des entêtes techniques) Le cout unitaire sera alors multiplié par le nombre de SMS correspondants Cf Argument smslong |
emetteur | String | Non |
Emetteur du message Par défaut, un numéro court sur 5 chiffres Ex: 36007 Contraintes:
|
comptage | Number | Oui | Utiliser la valeur 1 |
Paramètre | Type | Détails |
tel | String | Numéro de téléphone associé au code retour |
nb_sms | number | Nombre de SMS pour contenir le message |
nb_caractere | number | Nombre de caractères pour contenir le message |
<?xml version="1.0" encoding="ISO-8859-1"?>
<etat>
<tel>33601020304</tel>
<nb_sms>1</nb_sms>
<nb_caractere>43</nb_caractere>
</etat>
curl -X POST \
'https://www.isendpro.com/cgi-bin/' \
-H 'cache-control: no-cache' \
-d 'keyid=a296464ce012b8ab710a&num=33601020304&sms=Bonjour! Bienvenue sur iSendPro!&emetteur=isendpro&comptage=1'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$url = 'https://www.isendpro.com/cgi-bin/';
$ch = curl_init();
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'num' => '33601020304',
'sms' => 'Bonjour! Bienvenue sur iSendPro!',
'emetteur' => 'isendpro',
'comptage' => 1
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => array('Content-type: multipart/form-data'),
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$out = curl_exec($ch);
curl_close($ch);
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$xml = string2XML($out);
$repetatList=XML2Array($xml);
if(!array_key_exists('etat1', $repetatList)){
$repetatList=array($repetatList);
}
foreach($repetatList as $key => $value){
$cpt='';
if($key!='0'){
$cpt=str_replace('etat', '', $key);
}
// Erreur generale
if (!isset($value['tel'.$cpt])){
echo 'Code: '.$value['code'];
echo $sautligne;
echo 'message: '.$value['message'];
echo $sautligne;
break;
}else{
echo '-----------';
echo $sautligne;
echo 'Data '.$cpt;
echo $sautligne;
// Erreur du retour
echo 'tel: '.$value['tel'];
echo $sautligne;
echo 'nb_sms: '.$value['nb_sms'];
echo $sautligne;
echo 'nb_caractere: '.$value['nb_caractere'];
}
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
import xmltodict
import types
url = 'https://www.isendpro.com/cgi-bin/'
params = {
'keyid': 'a296464ce012b8ab710a',
'num': '33601020304',
'sms': 'Bonjour! Bienvenue sur iSendPro!',
'emetteur': 'isendpro',
'comptage': 1
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Traitement du retour
####################################################################################
repetat=xmltodict.parse(response.text)
if not repetat.has_key('etat'):
# Erreur inconnue
print 'Erreur inconnue: '+repetat
else:
#repetat=repetat['etat']
repetatList=repetat['etat']
if not repetatList.has_key('etat1'):
repetatList={'0':repetat['etat']}
keysList=repetatList.keys()
keysList.sort()
for key in keysList:
repetat=repetatList[key]
cpt=''
if key!='0':
cpt=key.replace('etat','')
# Erreur generale
if not repetat.has_key('tel'+cpt):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
else:
print '-----------'
print 'Data '+str(key)
# Infos du retour
print 'tel: '+repetat['tel'+cpt]
print 'nb_sms: '+repetat['nb_sms'+cpt]
print 'nb_caractere: '+repetat['nb_caractere'+cpt]
import java.io.*;
import java.net.*;
import java.util.*;
import java.nio.charset.StandardCharsets;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;
import java.io.PrintWriter;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_http."/cgi-bin/";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("num", "33601020304");
paramsTablo.put("sms", "Bonjour! Bienvenue sur ".$marque_nom_court."!");
paramsTablo.put("emetteur", "isendpro");
paramsTablo.put("comptage", "1");
StringBuilder urlParameters = new StringBuilder();
for (Map.Entry<String,String> param : paramsTablo.entrySet()) {
if (urlParameters.length() != 0) urlParameters.append("&");
urlParameters.append(URLEncoder.encode(param.getKey(), "UTF-8"));
urlParameters.append("=");
urlParameters.append(URLEncoder.encode(String.valueOf(param.getValue()), "UTF-8"));
}
System.out.println(urlParameters);
byte[] postData = urlParameters.toString().getBytes("UTF-8");
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
String line = content.toString();
try {
InputSource is = new InputSource(new StringReader(line));
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(is);
if(doc.getDocumentElement().getNodeName()!="etat"){
// Erreur inconnue
System.out.println("Erreur inconnue: "+line);
}else{
NodeList nList = doc.getElementsByTagName("etat");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
Node nodeN1 = nNode.getFirstChild();
if(nodeN1!=null){
String n1Name = nodeN1.getNodeName();
if(!n1Name.contains("etat")){
nodeN1 = nNode;
}
}
while(nodeN1!=null){
String n1Name = nodeN1.getNodeName();
System.out.println("-----------");
System.out.println(n1Name);
var erreur=1;
Node nodeN2 = nodeN1.getFirstChild();
while(nodeN2!=null){
String n2Name = nodeN2.getNodeName();
String n2Value = nodeN2.getFirstChild().getNodeValue();
System.out.println(n2Name+": "+n2Value);
nodeN2=nodeN2.getNextSibling();
if(n2Name.contains("nb_sms")){
erreur=0;
}
}
System.out.println("erreur: "+erreur);
if(erreur==1){
// Erreur dans le retour
}else{
// OK
}
nodeN1=nodeN1.getNextSibling();
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
} catch (Exception ex) {
System.err.println(ex);
}
}
}
https://www.isendpro.com/cgi-bin/
Paramètre | Type | Obligatoire | Détails |
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
credit | Number | Oui |
Number indiquant le type de crédit restant
|
Paramètre | Type | Détails |
credit | String |
Nombre à virgule indiquant le crédit restant en euros HT Ex: 561.20 |
quantite | Number |
Nombre indiquant le nombre de crédits restants en quantité de SMS Ex: 8974 |
<?xml version="1.0" encoding="ISO-8859-1"?>
<etat>
<credit>7.327</credit>
<quantite>183</quantite>
</etat>
curl -X POST \
'https://www.isendpro.com/cgi-bin/' \
-H 'cache-control: no-cache' \
-d 'keyid=a296464ce012b8ab710a&credit=2'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$url = 'https://www.isendpro.com/cgi-bin/';
$ch = curl_init();
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'credit' => 2
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => array('Content-type: multipart/form-data'),
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$out = curl_exec($ch);
curl_close($ch);
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$xml = string2XML($out);
$repetatList=XML2Array($xml);
if(!array_key_exists('etat1', $repetatList)){
$repetatList=array($repetatList);
}
foreach($repetatList as $key => $value){
$cpt='';
if($key!='0'){
$cpt=str_replace('etat', '', $key);
}
// Erreur generale
if (!isset($value['credit'.$cpt])){
echo 'Code: '.$value['code'];
echo $sautligne;
echo 'message: '.$value['message'];
echo $sautligne;
break;
}else{
echo '-----------';
echo $sautligne;
echo 'Data '.$cpt;
echo $sautligne;
// Infos du retour
echo 'credit: '.$value['credit'];
echo $sautligne;
if (isset($value['quantite'])){
echo 'quantite: '.$value['quantite'];
echo $sautligne;
}
}
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
import xmltodict
import types
url = 'https://www.isendpro.com/cgi-bin/'
params = {
'keyid' : 'a296464ce012b8ab710a',
'credit' : 2
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Traitement du retour
####################################################################################
repetat=xmltodict.parse(response.text)
if not repetat.has_key('etat'):
# Erreur inconnue
print 'Erreur inconnue: '+repetat
else:
#repetat=repetat['etat']
repetatList=repetat['etat']
if not repetatList.has_key('etat1'):
repetatList={'0':repetat['etat']}
keysList=repetatList.keys()
keysList.sort()
for key in keysList:
repetat=repetatList[key]
cpt=''
if key!='0':
cpt=key.replace('etat','')
# Erreur generale
if not repetat.has_key('credit'+cpt):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
else:
print '-----------'
print 'Data '+str(key)
# Infos du retour
print 'credit: '+repetat['credit'+cpt]
if repetat.has_key('quantite'+cpt):
print 'quantite: '+repetat['quantite'+cpt]
import java.io.*;
import java.net.*;
import java.util.*;
import java.nio.charset.StandardCharsets;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;
import java.io.PrintWriter;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_http."/cgi-bin/";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("credit", "2");
StringBuilder urlParameters = new StringBuilder();
for (Map.Entry<String,String> param : paramsTablo.entrySet()) {
if (urlParameters.length() != 0) urlParameters.append("&");
urlParameters.append(URLEncoder.encode(param.getKey(), "UTF-8"));
urlParameters.append("=");
urlParameters.append(URLEncoder.encode(String.valueOf(param.getValue()), "UTF-8"));
}
System.out.println(urlParameters);
byte[] postData = urlParameters.toString().getBytes("UTF-8");
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
String line = content.toString();
try {
InputSource is = new InputSource(new StringReader(line));
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(is);
if(doc.getDocumentElement().getNodeName()!="etat"){
// Erreur inconnue
System.out.println("Erreur inconnue: "+line);
}else{
NodeList nList = doc.getElementsByTagName("etat");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
Node nodeN1 = nNode.getFirstChild();
if(nodeN1!=null){
String n1Name = nodeN1.getNodeName();
if(!n1Name.contains("etat")){
nodeN1 = nNode;
}
}
while(nodeN1!=null){
String n1Name = nodeN1.getNodeName();
System.out.println("-----------");
System.out.println(n1Name);
var erreur=1;
Node nodeN2 = nodeN1.getFirstChild();
while(nodeN2!=null){
String n2Name = nodeN2.getNodeName();
String n2Value = nodeN2.getFirstChild().getNodeValue();
System.out.println(n2Name+": "+n2Value);
nodeN2=nodeN2.getNextSibling();
if(n2Name.contains("credit")){
erreur=0;
}
}
System.out.println("erreur: "+erreur);
if(erreur==1){
// Erreur dans le retour
}else{
// OK
}
nodeN1=nodeN1.getNextSibling();
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
} catch (Exception ex) {
System.err.println(ex);
}
}
}
https://www.isendpro.com/cgi-bin/
Paramètre | Type | Obligatoire | Détails |
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
countryCode | String | Oui | Indicatif international du pays sans le + |
getPrice | String | Oui | Utiliser la valeur '1' |
Paramètre | Type | Détails |
code | Number | Code correspondant au tableau des erreurs |
message | String | Libellé correspondant au tableau des erreurs |
countryCode | Number | Indicatif international du pays sans le + |
accountPrice | String |
Prix unitaire en euros HT avec le point (.) comme séparateur des centimes Ex: 0.067 |
<?xml version="1.0" encoding="ISO-8859-1"?>
<etat>
<code>251</code>
<message>Le prix unitaire</message>
<countryCode>33</countryCode>
<accountPrice>0.04</accountPrice>
</etat>
curl -X POST \
'https://www.isendpro.com/cgi-bin/' \
-H 'cache-control: no-cache' \
-d 'keyid=a296464ce012b8ab710a&countryCode=33&getPrice=1'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$url = 'https://www.isendpro.com/cgi-bin/';
$ch = curl_init();
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'countryCode' => '33',
'getPrice' => '1'
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => array('Content-type: multipart/form-data'),
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$out = curl_exec($ch);
curl_close($ch);
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$xml = string2XML($out);
$repetatList=XML2Array($xml);
if(!array_key_exists('etat1', $repetatList)){
$repetatList=array($repetatList);
}
foreach($repetatList as $key => $value){
$cpt='';
if($key!='0'){
$cpt=str_replace('etat', '', $key);
}
// Erreur generale
if (!isset($value['countryCode'.$cpt])){
echo 'Code: '.$value['code'];
echo $sautligne;
echo 'message: '.$value['message'];
echo $sautligne;
break;
}else{
echo '-----------';
echo $sautligne;
echo 'Data '.$cpt;
echo $sautligne;
// Infos de retour
echo 'Code: '.$value['code'];
echo $sautligne;
echo 'Message: '.$value['message'];
echo $sautligne;
echo 'countryCode: '.$value['countryCode'];
echo $sautligne;
echo 'accountPrice: '.$value['accountPrice'];
echo $sautligne;
}
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
import xmltodict
import types
url = 'https://www.isendpro.com/cgi-bin/'
params = {
'keyid': 'a296464ce012b8ab710a',
'countryCode': '33',
'getPrice': '1'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Traitement du retour
####################################################################################
repetat=xmltodict.parse(response.text)
if not repetat.has_key('etat'):
# Erreur inconnue
print 'Erreur inconnue: '+repetat
else:
#repetat=repetat['etat']
repetatList=repetat['etat']
if not repetatList.has_key('etat1'):
repetatList={'0':repetat['etat']}
keysList=repetatList.keys()
keysList.sort()
for key in keysList:
repetat=repetatList[key]
cpt=''
if key!='0':
cpt=key.replace('etat','')
# Erreur generale
if not repetat.has_key('countryCode'+cpt):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
else:
print '-----------'
print 'Data '+str(key)
# Infos du retour
print 'Code: '+repetat['code'+cpt]
print 'Message: '+repetat['message'+cpt]
print 'countryCode: '+repetat['countryCode'+cpt]
print 'accountPrice: '+repetat['accountPrice'+cpt]
import java.io.*;
import java.net.*;
import java.util.*;
import java.nio.charset.StandardCharsets;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;
import java.io.PrintWriter;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_http."/cgi-bin/";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("countryCode", "33");
paramsTablo.put("getPrice", "1");
StringBuilder urlParameters = new StringBuilder();
for (Map.Entry<String,String> param : paramsTablo.entrySet()) {
if (urlParameters.length() != 0) urlParameters.append("&");
urlParameters.append(URLEncoder.encode(param.getKey(), "UTF-8"));
urlParameters.append("=");
urlParameters.append(URLEncoder.encode(String.valueOf(param.getValue()), "UTF-8"));
}
System.out.println(urlParameters);
byte[] postData = urlParameters.toString().getBytes("UTF-8");
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
String line = content.toString();
try {
InputSource is = new InputSource(new StringReader(line));
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(is);
if(doc.getDocumentElement().getNodeName()!="etat"){
// Erreur inconnue
System.out.println("Erreur inconnue: "+line);
}else{
NodeList nList = doc.getElementsByTagName("etat");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
Node nodeN1 = nNode.getFirstChild();
if(nodeN1!=null){
String n1Name = nodeN1.getNodeName();
if(!n1Name.contains("etat")){
nodeN1 = nNode;
}
}
while(nodeN1!=null){
String n1Name = nodeN1.getNodeName();
System.out.println("-----------");
System.out.println(n1Name);
var erreur=1;
Node nodeN2 = nodeN1.getFirstChild();
while(nodeN2!=null){
String n2Name = nodeN2.getNodeName();
String n2Value = nodeN2.getFirstChild().getNodeValue();
System.out.println(n2Name+": "+n2Value);
nodeN2=nodeN2.getNextSibling();
if(n2Name.contains("countryCode")){
erreur=0;
}
}
System.out.println("erreur: "+erreur);
if(erreur==1){
// Erreur dans le retour
}else{
// OK
}
nodeN1=nodeN1.getNextSibling();
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
} catch (Exception ex) {
System.err.println(ex);
}
}
}
https://www.isendpro.com/cgi-bin/
Paramètre | Type | Obligatoire | Détails |
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
num[X] | String | Oui |
Numéro de téléphone du destinataire Au format international sans le + Ex: 33601020304 |
getHLR | Number | Oui | Utiliser la valeur 1 |
Paramètre | Type | Détails |
tel | String | Numéro de téléphone associé au code retour |
operateur | String |
Chaine de caracteres indiquant la valeur de l'opérateur Liste des opérateur:
|
<?xml version="1.0" encoding="ISO-8859-1"?>
<etat>
<etat1>
<tel1>33601020304</tel1>
<operateur1>INVALIDE</operateur1>
</etat1>
<etat2>
<tel2>33601020305</tel2>
<operateur2>BOUY</operateur2>
</etat2>
<etat3>
<tel3>33601020306</tel3>
<operateur3>BOUY-LISTE NOIRE</operateur3>
</etat3>
</etat>
curl -X POST \
'https://www.isendpro.com/cgi-bin/' \
-H 'cache-control: no-cache' \
-d 'keyid=a296464ce012b8ab710a&num1=33601020304&num2=33601020305&num3=33601020306&getHLR=1'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$url = 'https://www.isendpro.com/cgi-bin/';
$ch = curl_init();
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'num1' => '33601020304',
'num2' => '33601020305',
'getHLR' => '1'
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => array('Content-type: multipart/form-data'),
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$out = curl_exec($ch);
curl_close($ch);
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$xml = string2XML($out);
$repetatList=XML2Array($xml);
if(!array_key_exists('etat1', $repetatList)){
$repetatList=array($repetatList);
}
foreach($repetatList as $key => $value){
$cpt='';
if($key!='0'){
$cpt=str_replace('etat', '', $key);
}
// Erreur generale
if (!isset($value['tel'.$cpt])){
echo 'Code: '.$value['code'];
echo $sautligne;
echo 'message: '.$value['message'];
echo $sautligne;
break;
}else{
echo '-----------';
echo $sautligne;
echo 'Data '.$cpt;
echo $sautligne;
// Infos du retour
echo 'Tel: '.$value['tel'.$cpt];
echo $sautligne;
echo 'Operateur: '.$value['operateur'.$cpt];
echo $sautligne;
}
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
import xmltodict
import types
url = 'https://www.isendpro.com/cgi-bin/'
params = {
'keyid': 'a296464ce012b8ab710a',
'num1': '33601020304',
'num2': '33601020305',
'getHLR': 1
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Traitement du retour
####################################################################################
repetat=xmltodict.parse(response.text)
if not repetat.has_key('etat'):
# Erreur inconnue
print 'Erreur inconnue: '+repetat
else:
#repetat=repetat['etat']
repetatList=repetat['etat']
if not repetatList.has_key('etat1'):
repetatList={'0':repetat['etat']}
keysList=repetatList.keys()
keysList.sort()
for key in keysList:
repetat=repetatList[key]
cpt=''
if key!='0':
cpt=key.replace('etat','')
# Erreur generale
if not repetat.has_key('tel'+cpt):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
else:
print '-----------'
print 'Data '+str(key)
# Infos du retour
print 'tel: '+repetat['tel'+cpt]
print 'operateur: '+repetat['operateur'+cpt]
import java.io.*;
import java.net.*;
import java.util.*;
import java.nio.charset.StandardCharsets;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;
import java.io.PrintWriter;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_http."/cgi-bin/";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("num1", "33601020304");
paramsTablo.put("num2", "33601020305");
paramsTablo.put("getHLR", "1");
StringBuilder urlParameters = new StringBuilder();
for (Map.Entry<String,String> param : paramsTablo.entrySet()) {
if (urlParameters.length() != 0) urlParameters.append("&");
urlParameters.append(URLEncoder.encode(param.getKey(), "UTF-8"));
urlParameters.append("=");
urlParameters.append(URLEncoder.encode(String.valueOf(param.getValue()), "UTF-8"));
}
System.out.println(urlParameters);
byte[] postData = urlParameters.toString().getBytes("UTF-8");
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
String line = content.toString();
try {
InputSource is = new InputSource(new StringReader(line));
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(is);
if(doc.getDocumentElement().getNodeName()!="etat"){
// Erreur inconnue
System.out.println("Erreur inconnue: "+line);
}else{
NodeList nList = doc.getElementsByTagName("etat");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
Node nodeN1 = nNode.getFirstChild();
if(nodeN1!=null){
String n1Name = nodeN1.getNodeName();
if(!n1Name.contains("etat")){
nodeN1 = nNode;
}
}
while(nodeN1!=null){
String n1Name = nodeN1.getNodeName();
System.out.println("-----------");
System.out.println(n1Name);
var erreur=1;
Node nodeN2 = nodeN1.getFirstChild();
while(nodeN2!=null){
String n2Name = nodeN2.getNodeName();
String n2Value = nodeN2.getFirstChild().getNodeValue();
System.out.println(n2Name+": "+n2Value);
nodeN2=nodeN2.getNextSibling();
if(n2Name.contains("tel")){
erreur=0;
}
}
System.out.println("erreur: "+erreur);
if(erreur==1){
// Erreur dans le retour
}else{
// OK
}
nodeN1=nodeN1.getNextSibling();
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
} catch (Exception ex) {
System.err.println(ex);
}
}
}
https://www.isendpro.com/cgi-bin/
Paramètre | Type | Obligatoire | Détails |
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
num[X] | String | Oui |
Numéro de téléphone du destinataire Au format international sans le + Ex: 33601020304 |
setlisteNoire | Number | Oui |
Utiliser la valeur 1 |
Paramètre | Type | Détails |
tel | String | Numéro de téléphone associé au code retour |
listeNoire | String | Confirmation de l'ajout: OK |
<?xml version="1.0" encoding="ISO-8859-1"?>
<etat>
<tel>33601020304</tel>
<listeNoire>OK</listeNoire>
</etat>
curl -X POST \
'https://www.isendpro.com/cgi-bin/' \
-H 'cache-control: no-cache' \
-d 'keyid=a296464ce012b8ab710a&num=33601020304&setlisteNoire=1'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://www.isendpro.com/cgi-bin/';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'num' => '33601020304',
'setlisteNoire' => 1
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$out = curl_exec($ch);
curl_close($ch);
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$xml = string2XML($out);
$repetatList=XML2Array($xml);
if(!array_key_exists('etat1', $repetatList)){
$repetatList=array($repetatList);
}
foreach($repetatList as $key => $value){
$cpt='';
if($key!='0'){
$cpt=str_replace('etat', '', $key);
}
// Erreur generale
if (!isset($value['tel'.$cpt])){
echo 'Code: '.$value['code'];
echo $sautligne;
echo 'message: '.$value['message'];
echo $sautligne;
break;
}else{
echo '-----------';
echo $sautligne;
echo 'Data '.$cpt;
echo $sautligne;
// Infos de retour
echo 'tel: '.$value['tel'.$cpt];
echo $sautligne;
echo 'listeNoire: '.$value['listeNoire'.$cpt];
echo $sautligne;
}
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
import xmltodict
import types
url = 'https://www.isendpro.com/cgi-bin/'
params = {
'keyid': 'a296464ce012b8ab710a',
'num': '33601020304',
'setlisteNoire':1
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Traitement du retour
####################################################################################
repetat=xmltodict.parse(response.text)
if not repetat.has_key('etat'):
# Erreur inconnue
print 'Erreur inconnue: '+repetat
else:
#repetat=repetat['etat']
repetatList=repetat['etat']
if not repetatList.has_key('etat1'):
repetatList={'0':repetat['etat']}
keysList=repetatList.keys()
keysList.sort()
for key in keysList:
repetat=repetatList[key]
cpt=''
if key!='0':
cpt=key.replace('etat','')
# Erreur generale
if not repetat.has_key('tel'+cpt):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
else:
print '-----------'
print 'Data '+str(key)
# Infos du retour
print 'tel: '+repetat['tel'+cpt]
print 'listeNoire: '+repetat['listeNoire'+cpt]
import java.io.*;
import java.net.*;
import java.util.*;
import java.nio.charset.StandardCharsets;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;
import java.io.PrintWriter;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_http."/cgi-bin/";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("num", "33601020304");
paramsTablo.put("setlisteNoire","1");
StringBuilder urlParameters = new StringBuilder();
for (Map.Entry<String,String> param : paramsTablo.entrySet()) {
if (urlParameters.length() != 0) urlParameters.append("&");
urlParameters.append(URLEncoder.encode(param.getKey(), "UTF-8"));
urlParameters.append("=");
urlParameters.append(URLEncoder.encode(String.valueOf(param.getValue()), "UTF-8"));
}
System.out.println(urlParameters);
byte[] postData = urlParameters.toString().getBytes("UTF-8");
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
String line = content.toString();
try {
InputSource is = new InputSource(new StringReader(line));
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(is);
if(doc.getDocumentElement().getNodeName()!="etat"){
// Erreur inconnue
System.out.println("Erreur inconnue: "+line);
}else{
NodeList nList = doc.getElementsByTagName("etat");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
Node nodeN1 = nNode.getFirstChild();
if(nodeN1!=null){
String n1Name = nodeN1.getNodeName();
if(!n1Name.contains("etat")){
nodeN1 = nNode;
}
}
while(nodeN1!=null){
String n1Name = nodeN1.getNodeName();
System.out.println("-----------");
System.out.println(n1Name);
var erreur=1;
Node nodeN2 = nodeN1.getFirstChild();
while(nodeN2!=null){
String n2Name = nodeN2.getNodeName();
String n2Value = nodeN2.getFirstChild().getNodeValue();
System.out.println(n2Name+": "+n2Value);
nodeN2=nodeN2.getNextSibling();
if(n2Name.contains("tel")){
erreur=0;
}
}
System.out.println("erreur: "+erreur);
if(erreur==1){
// Erreur dans le retour
}else{
// OK
}
nodeN1=nodeN1.getNextSibling();
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
} catch (Exception ex) {
System.err.println(ex);
}
}
}
https://www.isendpro.com/cgi-bin/
Paramètre | Type | Obligatoire | Détails |
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
num[X] | String | Oui |
Numéro de téléphone du destinataire Au format international sans le + Ex: 33601020304 |
delListeNoire | Number | Oui |
Utiliser la valeur 1 |
Paramètre | Type | Détails |
tel | String | Numéro de téléphone associé au code retour |
listeNoire | String |
Retour sur la tentative de suppression
|
<?xml version="1.0" encoding="ISO-8859-1"?>
<etat>
<tel>33601020304</tel>
<listeNoire>SUPPRESSION OK</listeNoire>
</etat>
<?xml version="1.0" encoding="ISO-8859-1"?>
<etat>
<tel>33601020304</tel>
<listeNoire>SUPPRESSION NOK</listeNoire>
</etat>
curl -X POST \
'https://www.isendpro.com/cgi-bin/' \
-H 'cache-control: no-cache' \
-d 'keyid=a296464ce012b8ab710a&num=33601020304&delListeNoire=1'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://www.isendpro.com/cgi-bin/';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'num' => '33601020304',
'delListeNoire' => 1
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$out = curl_exec($ch);
curl_close($ch);
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$xml = string2XML($out);
$repetatList=XML2Array($xml);
if(!array_key_exists('etat1', $repetatList)){
$repetatList=array($repetatList);
}
foreach($repetatList as $key => $value){
$cpt='';
if($key!='0'){
$cpt=str_replace('etat', '', $key);
}
// Erreur generale
if (!isset($value['tel'.$cpt])){
echo 'Code: '.$value['code'];
echo $sautligne;
echo 'message: '.$value['message'];
echo $sautligne;
break;
}else{
echo '-----------';
echo $sautligne;
echo 'Data '.$cpt;
echo $sautligne;
// Infos de retour
echo 'tel: '.$value['tel'.$cpt];
echo $sautligne;
echo 'listeNoire: '.$value['listeNoire'.$cpt];
echo $sautligne;
}
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
import xmltodict
import types
url = 'https://www.isendpro.com/cgi-bin/'
params = {
'keyid': 'a296464ce012b8ab710a',
'num': '33601020304',
'delListeNoire':1
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Traitement du retour
####################################################################################
repetat=xmltodict.parse(response.text)
if not repetat.has_key('etat'):
# Erreur inconnue
print 'Erreur inconnue: '+repetat
else:
#repetat=repetat['etat']
repetatList=repetat['etat']
if not repetatList.has_key('etat1'):
repetatList={'0':repetat['etat']}
keysList=repetatList.keys()
keysList.sort()
for key in keysList:
repetat=repetatList[key]
cpt=''
if key!='0':
cpt=key.replace('etat','')
# Erreur generale
if not repetat.has_key('tel'+cpt):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
else:
print '-----------'
print 'Data '+str(key)
# Infos du retour
print 'tel: '+repetat['tel'+cpt]
print 'listeNoire: '+repetat['listeNoire'+cpt]
import java.io.*;
import java.net.*;
import java.util.*;
import java.nio.charset.StandardCharsets;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;
import java.io.PrintWriter;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_http."/cgi-bin/";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("num", "33601020304");
paramsTablo.put("delListeNoire", "1");
StringBuilder urlParameters = new StringBuilder();
for (Map.Entry<String,String> param : paramsTablo.entrySet()) {
if (urlParameters.length() != 0) urlParameters.append("&");
urlParameters.append(URLEncoder.encode(param.getKey(), "UTF-8"));
urlParameters.append("=");
urlParameters.append(URLEncoder.encode(String.valueOf(param.getValue()), "UTF-8"));
}
System.out.println(urlParameters);
byte[] postData = urlParameters.toString().getBytes("UTF-8");
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
String line = content.toString();
try {
InputSource is = new InputSource(new StringReader(line));
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(is);
if(doc.getDocumentElement().getNodeName()!="etat"){
// Erreur inconnue
System.out.println("Erreur inconnue: "+line);
}else{
NodeList nList = doc.getElementsByTagName("etat");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
Node nodeN1 = nNode.getFirstChild();
if(nodeN1!=null){
String n1Name = nodeN1.getNodeName();
if(!n1Name.contains("etat")){
nodeN1 = nNode;
}
}
while(nodeN1!=null){
String n1Name = nodeN1.getNodeName();
System.out.println("-----------");
System.out.println(n1Name);
var erreur=1;
Node nodeN2 = nodeN1.getFirstChild();
while(nodeN2!=null){
String n2Name = nodeN2.getNodeName();
String n2Value = nodeN2.getFirstChild().getNodeValue();
System.out.println(n2Name+": "+n2Value);
nodeN2=nodeN2.getNextSibling();
if(n2Name.contains("tel")){
erreur=0;
}
}
System.out.println("erreur: "+erreur);
if(erreur==1){
// Erreur dans le retour
}else{
// OK
}
nodeN1=nodeN1.getNextSibling();
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
} catch (Exception ex) {
System.err.println(ex);
}
}
}
https://www.isendpro.com/cgi-bin/
Paramètre | Type | Obligatoire | Détails |
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
getListeNoire | Number | Oui |
Utiliser la valeur 1 |
curl -X POST \
'https://www.isendpro.com/cgi-bin/' \
-H 'cache-control: no-cache' \
-d 'keyid=a296464ce012b8ab710a&num=33601020304&getListeNoire=1'
-o listenoire.zip
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$zipName = 'listenoire.zip';
$zipDirectory = '/VOTRE_REPERTOIRE/';
$fp = fopen($zipDirectory.$zipName, 'w');
$url = 'https://www.isendpro.com/cgi-bin/';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'getListeNoire' => 1
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
curl_setopt($ch, CURLOPT_FILE, $fp);
$response = curl_exec($ch);
fwrite($fp, $response);
curl_close($ch);
fclose($fp);
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
// Unzip du fichier
$za = new ZipArchive();
$za->open($zipDirectory.$zipName);
for( $i = 0; $i < $za->numFiles; $i++ ){
$stat = $za->statIndex( $i );
$fileName = basename($stat['name']);
print_r($fileName.PHP_EOL);
$za->extractTo($zipDirectory);
$za->close();
// Lecture du fichier csv dans le zip
$fn = fopen($fileName, 'r');
// Liste des titres de colonnes
$titres = fgetcsv($fn, 1000, ';');
while (($data = fgetcsv($fn, 1000, ';')) !== FALSE){
foreach($data as $i => $d){
if($d){
// Affichage des donnees de la ligne
echo $titres[$i].' => '.$d.PHP_EOL;
}
}
// Saut de ligne
echo PHP_EOL;
}
// Suppression du fichier .csv
unlink($zipDirectory.$fileName);
}
// Suppression du fichier .zip
unlink($zipDirectory.$zipName);
?>
####################################################################################
#- Envoi requete
####################################################################################
import shutil
import requests
import xmltodict
import types
import zipfile
import os
zipName = 'listenoire.zip'
zipDirectory = '/VOTRE_REPERTOIRE/'
url = 'https://www.isendpro.com/cgi-bin/'
params = {
'keyid': 'a296464ce012b8ab710a',
'getListeNoire': 1
}
response = requests.post(url, params, stream=True)
with open(zipDirectory+zipName, 'wb') as f:
response.raw.decode_content = True
shutil.copyfileobj(response.raw, f)
####################################################################################
#- Traitement du retour
####################################################################################
myzipfile = zipfile.ZipFile(zipDirectory+zipName)
for fileName in myzipfile.namelist():
# Unzip du fichier vers zipDirectory
with zipfile.ZipFile(zipDirectory+zipName, 'r') as zip_ref:
zip_ref.extractall(zipDirectory)
# Lecture du fichier csv dans le zip
fichier = open(zipDirectory+fileName)
lines = fichier.readlines()
firstLine=1
for line in lines:
line=line.strip()
line=line.split(';')
if firstLine:
# Liste des titres de colonnes
firstLine=0
titres=line
else:
i=0
for data in line:
if data:
# Affichage des donnees de la ligne
print titres[i]+' => '+data
i+=1
# Suppression du fichier .csv
os.remove(zipDirectory+fileName)
# Suppression du fichier .zip
os.remove(zipDirectory+zipName)
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.io.BufferedReader;
import java.io.FileReader;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
/**
* Size of the buffer to read/write data
*/
private static final int BUFFER_SIZE = 4096;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_http."/cgi-bin/";
var zipName = "listenoire.zip";
var zipDirectory = "/VOTRE_REPERTOIRE/";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("getListeNoire", "1");
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
File myzipfile = new File(zipDirectory+zipName);
OutputStream outStream = new FileOutputStream(myzipfile);
InputStream inputStream = con.getInputStream();
int read;
byte[] bytes = new byte[1024];
while ((read = inputStream.read(bytes)) != -1) {
outStream.write(bytes, 0, read);
}
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
File destDir = new File(zipDirectory);
ZipInputStream zipIn = new ZipInputStream(new FileInputStream(zipDirectory+zipName));
ZipEntry entry = zipIn.getNextEntry();
// iterates over entries in the zip file
while (entry != null) {
File mycsvfile = new File(zipDirectory+entry.getName());
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(zipDirectory+entry.getName()));
byte[] bytesIn = new byte[BUFFER_SIZE];
int read2 = 0;
while ((read2 = zipIn.read(bytesIn)) != -1) {
bos.write(bytesIn, 0, read2);
}
bos.close();
BufferedReader reader;
String lineD;
String data;
ArrayList<String> titres=new ArrayList<String>();
reader = new BufferedReader(new FileReader(zipDirectory+entry.getName()));
String line = reader.readLine();
// Liste des titres de colonnes
if (line != null) {
lineD = line.trim();
titres=new ArrayList<String>(Arrays.asList(lineD.split(";")));
}
while (line != null) {
line = reader.readLine();
if (line != null) {
lineD = line.trim();
ArrayList<String> lineList = new ArrayList<String>(Arrays.asList(lineD.split(";")));
for (int i = 0; i < lineList.size(); i++) {
data = (String)lineList.get(i);
data = data.trim();
System.out.println(titres.get(i)+" => "+data);
}
System.out.println(" ");
}
}
reader.close();
// Suppression du fichier .csv
mycsvfile.delete();
zipIn.closeEntry();
entry = zipIn.getNextEntry();
}
zipIn.close();
// Suppression du fichier .zip
myzipfile.delete();
} finally {
con.disconnect();
}
}
}
https://www.isendpro.com/cgi-bin/
Paramètre | Type | Obligatoire | Détails |
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
repertoireNom | String | Oui |
Nom du nouveau répertoire |
repertoireEdit | String | Oui |
Utiliser la valeur 'create' |
Paramètre | Type | Détails |
code | Number | Code correspondant au tableau des erreurs |
repertoireId | String | Identifiant du répertoire créé |
message | String | Libellé correspondant au tableau des erreurs |
<?xml version="1.0" encoding="ISO-8859-1"?>
<etat>
<code>100</code>
<message>Votre repertoire a ete cree!</message>
<repertoireId>123456789</repertoireId>
</etat>
curl -X POST \
'https://www.isendpro.com/cgi-bin/' \
-H 'cache-control: no-cache' \
-d 'keyid=a296464ce012b8ab710a&repertoireNom=MonNouveauRepertoire&repertoireEdit=create'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://www.isendpro.com/cgi-bin/';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'repertoireNom' => 'MonNouveauRepertoire',
'repertoireEdit' => 'create'
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$out = curl_exec($ch);
curl_close($ch);
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$xml = string2XML($out);
$repetatList=XML2Array($xml);
if(!array_key_exists('etat1', $repetatList)){
$repetatList=array($repetatList);
}
foreach($repetatList as $key => $value){
$cpt='';
if($key!='0'){
$cpt=str_replace('etat', '', $key);
}
// Erreur generale
if (!isset($value['repertoireId'.$cpt])){
echo 'Code: '.$value['code'];
echo $sautligne;
echo 'message: '.$value['message'];
echo $sautligne;
break;
}else{
echo '-----------';
echo $sautligne;
echo 'Data '.$cpt;
echo $sautligne;
// Infos de retour
echo 'Code: '.$value['code'];
echo $sautligne;
echo 'message: '.$value['message'];
echo $sautligne;
echo 'repertoireId: '.$value['repertoireId'];
echo $sautligne;
}
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
import xmltodict
import types
url = 'https://www.isendpro.com/cgi-bin/'
params = {
'keyid': 'a296464ce012b8ab710a',
'repertoireNom': 'repertoireNom',
'repertoireEdit': 'create'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Traitement du retour
####################################################################################
repetat=xmltodict.parse(response.text)
if not repetat.has_key('etat'):
# Erreur inconnue
print 'Erreur inconnue: '+repetat
else:
#repetat=repetat['etat']
repetatList=repetat['etat']
if not repetatList.has_key('etat1'):
repetatList={'0':repetat['etat']}
keysList=repetatList.keys()
keysList.sort()
for key in keysList:
repetat=repetatList[key]
cpt=''
if key!='0':
cpt=key.replace('etat','')
# Erreur generale
if not repetat.has_key('repertoireId'+cpt):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
else:
print '-----------'
print 'Data '+str(key)
# Infos du retour
print 'Code: '+repetat['code'+cpt]
print 'Message: '+repetat['message'+cpt]
print 'RepertoireId: '+repetat['repertoireId'+cpt]
import java.io.*;
import java.net.*;
import java.util.*;
import java.nio.charset.StandardCharsets;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;
import java.io.PrintWriter;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_http."/cgi-bin/";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("repertoireNom", "repertoireNom");
paramsTablo.put("repertoireEdit", "create");
StringBuilder urlParameters = new StringBuilder();
for (Map.Entry<String,String> param : paramsTablo.entrySet()) {
if (urlParameters.length() != 0) urlParameters.append("&");
urlParameters.append(URLEncoder.encode(param.getKey(), "UTF-8"));
urlParameters.append("=");
urlParameters.append(URLEncoder.encode(String.valueOf(param.getValue()), "UTF-8"));
}
System.out.println(urlParameters);
byte[] postData = urlParameters.toString().getBytes("UTF-8");
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
String line = content.toString();
try {
InputSource is = new InputSource(new StringReader(line));
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(is);
if(doc.getDocumentElement().getNodeName()!="etat"){
// Erreur inconnue
System.out.println("Erreur inconnue: "+line);
}else{
NodeList nList = doc.getElementsByTagName("etat");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
Node nodeN1 = nNode.getFirstChild();
if(nodeN1!=null){
String n1Name = nodeN1.getNodeName();
if(!n1Name.contains("etat")){
nodeN1 = nNode;
}
}
while(nodeN1!=null){
String n1Name = nodeN1.getNodeName();
System.out.println("-----------");
System.out.println(n1Name);
var erreur=1;
Node nodeN2 = nodeN1.getFirstChild();
while(nodeN2!=null){
String n2Name = nodeN2.getNodeName();
String n2Value = nodeN2.getFirstChild().getNodeValue();
System.out.println(n2Name+": "+n2Value);
nodeN2=nodeN2.getNextSibling();
if(n2Name.contains("repertoireId")){
erreur=0;
}
}
System.out.println("erreur: "+erreur);
if(erreur==1){
// Erreur dans le retour
}else{
// OK
}
nodeN1=nodeN1.getNextSibling();
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
} catch (Exception ex) {
System.err.println(ex);
}
}
}
https://www.isendpro.com/cgi-bin/
Paramètre | Type | Obligatoire | Détails |
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
num[X] | String | Oui |
Numéro de téléphone du destinataire Au format international sans le + Ex: 33601020304 |
repertoireId | String | Oui | Identifiant du répertoire à modifier |
repertoireEdit | String | Oui |
Utiliser la valeur 'add' |
champ[Y]_[X] | Array | Non |
Liste des données à associer au champ pour chaque numéro [Y] est à remplacer par un entier entre 1 et 27 inclus [X] est à remplacer par la valeur associé au numéro à ajouter Par défaut:
|
Paramètre | Type | Détails |
code | Number | Code correspondant au tableau des erreurs |
repertoireId | Number | Identifiant du répertoire créé |
tel | String | Numéro de téléphone associé au code retour |
message | String | Libellé correspondant au tableau des erreurs |
<?xml version="1.0" encoding="ISO-8859-1"?>
<etat>
<etat1>
<code1>103</code1>
<message1>Votre donnee a ete ajoutee dans le repertoire!</message1>
<tel1>33601020304</tel1>
<repertoireId1>123456789</repertoireId1>
</etat1>
<etat2>
<code2>103</code2>
<message2>Votre donnee a ete ajoutee dans le repertoire!</message2>
<tel2>33601020305</tel2>
<repertoireId2>123456789</repertoireId2>
</etat2>
</etat>
<?xml version="1.0" encoding="ISO-8859-1"?>
<etat>
<etat1>
<code1>105</code1>
<message1>La donnee est deja presente dans le repertoire!</message1>
<tel1>33601020304</tel1>
<repertoireId1>123456789</repertoireId1>
</etat1>
<etat2>
<code2>105</code2>
<message2>La donnee est deja presente dans le repertoire!</message2>
<tel2>33601020305</tel2>
<repertoireId2>123456789</repertoireId2>
</etat2>
</etat>
curl -X POST \
'https://www.isendpro.com/cgi-bin/' \
-H 'cache-control: no-cache' \
-d 'keyid=a296464ce012b8ab710a&repertoireEdit=add&repertoireId=39258&num1=33601020304&champ1_1=Pierre&champ2_1=Paris&num2=33601020305&champ1_2=Paul&champ2_2=Lyon&num3=33601020306&champ1_3=Paul&champ2_3=Lyon'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://www.isendpro.com/cgi-bin/';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'repertoireEdit' => 'add',
'repertoireId' => '159007',
'num1' => '33601020304',
'num2' => '33601020305',
'num3' => '33601020306',
'champ1_1' => 'Pierre',
'champ1_2' => 'Paul',
'champ1_3' => 'Jacques',
'champ2_1' => 'Paris',
'champ2_2' => 'Lyon',
'champ2_3' => 'Marseille'
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$out = curl_exec($ch);
curl_close($ch);
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$xml = string2XML($out);
$repetatList=XML2Array($xml);
if(!array_key_exists('etat1', $repetatList)){
$repetatList=array($repetatList);
}
foreach($repetatList as $key => $value){
$cpt='';
if($key!='0'){
$cpt=str_replace('etat', '', $key);
}
// Erreur generale
if (!isset($value['tel'.$cpt])){
echo 'Code: '.$value['code'];
echo $sautligne;
echo 'message: '.$value['message'];
echo $sautligne;
break;
}else{
echo '-----------';
echo $sautligne;
echo 'Data '.$cpt;
echo $sautligne;
// Infos de retour
echo 'Code: '.$value['code'.$cpt];
echo $sautligne;
echo 'message: '.$value['message'.$cpt];
echo $sautligne;
echo 'tel: '.$value['tel'.$cpt];
echo $sautligne;
echo 'repertoireId: '.$value['repertoireId'];
echo $sautligne;
}
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
import xmltodict
import types
url = 'https://www.isendpro.com/cgi-bin/'
params = {
'keyid': 'a296464ce012b8ab710a',
'repertoireEdit': 'add',
'repertoireId': '39258',
'num1': '33601020304',
'num2': '33601020305',
'num3': '33601020306',
'champ1_1': 'Pierre',
'champ1_2': 'Paul',
'champ1_3': 'Jacques',
'champ2_1': 'Paris',
'champ2_2': 'Lyon',
'champ2_3': 'Marseille'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Traitement du retour
####################################################################################
repetat=xmltodict.parse(response.text)
if not repetat.has_key('etat'):
# Erreur inconnue
print 'Erreur inconnue: '+repetat
else:
#repetat=repetat['etat']
repetatList=repetat['etat']
if not repetatList.has_key('etat1'):
repetatList={'0':repetat['etat']}
keysList=repetatList.keys()
keysList.sort()
for key in keysList:
repetat=repetatList[key]
cpt=''
if key!='0':
cpt=key.replace('etat','')
# Erreur generale
if not repetat.has_key('tel'+cpt):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
else:
print '-----------'
print 'Data '+str(key)
# Infos du retour
print 'Code: '+repetat['code'+cpt]
print 'Message: '+repetat['message'+cpt]
print 'tel: '+repetat['tel'+cpt]
print 'RepertoireId: '+repetat['repertoireId']
import java.io.*;
import java.net.*;
import java.util.*;
import java.nio.charset.StandardCharsets;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;
import java.io.PrintWriter;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_http."/cgi-bin/";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("repertoireEdit", "add");
paramsTablo.put("repertoireId", "159094");
paramsTablo.put("num1", "33601020304");
paramsTablo.put("num2", "33601020305");
paramsTablo.put("num3", "33601020306");
paramsTablo.put("champ1_1", "Pierre");
paramsTablo.put("champ1_2", "Paul");
paramsTablo.put("champ1_3", "Jacques");
paramsTablo.put("champ2_1", "Paris");
paramsTablo.put("champ2_2", "Lyon");
paramsTablo.put("champ2_3", "Marseille");
StringBuilder urlParameters = new StringBuilder();
for (Map.Entry<String,String> param : paramsTablo.entrySet()) {
if (urlParameters.length() != 0) urlParameters.append("&");
urlParameters.append(URLEncoder.encode(param.getKey(), "UTF-8"));
urlParameters.append("=");
urlParameters.append(URLEncoder.encode(String.valueOf(param.getValue()), "UTF-8"));
}
System.out.println(urlParameters);
byte[] postData = urlParameters.toString().getBytes("UTF-8");
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
String line = content.toString();
try {
InputSource is = new InputSource(new StringReader(line));
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(is);
if(doc.getDocumentElement().getNodeName()!="etat"){
// Erreur inconnue
System.out.println("Erreur inconnue: "+line);
}else{
NodeList nList = doc.getElementsByTagName("etat");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
Node nodeN1 = nNode.getFirstChild();
if(nodeN1!=null){
String n1Name = nodeN1.getNodeName();
if(!n1Name.contains("etat")){
nodeN1 = nNode;
}
}
while(nodeN1!=null){
String n1Name = nodeN1.getNodeName();
System.out.println("-----------");
System.out.println(n1Name);
var erreur=1;
Node nodeN2 = nodeN1.getFirstChild();
while(nodeN2!=null){
String n2Name = nodeN2.getNodeName();
String n2Value = nodeN2.getFirstChild().getNodeValue();
System.out.println(n2Name+": "+n2Value);
nodeN2=nodeN2.getNextSibling();
if(n2Name.contains("repertoireId")){
erreur=0;
}
}
System.out.println("erreur: "+erreur);
if(erreur==1){
// Erreur dans le retour
}else{
// OK
}
nodeN1=nodeN1.getNextSibling();
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
} catch (Exception ex) {
System.err.println(ex);
}
}
}
https://www.isendpro.com/cgi-bin/
Paramètre | Type | Obligatoire | Détails |
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
num[X] | String | Oui |
Numéro de téléphone du destinataire Au format international sans le + Ex: 33601020304 |
repertoireId | String | Oui | Identifiant du répertoire à modifier |
repertoireEdit | String | Oui |
Utiliser la valeur 'del' |
Paramètre | Type | Détails |
code | Number | Code correspondant au tableau des erreurs |
repertoireId | Number | Identifiant du répertoire créé |
tel | String | Numéro de téléphone associé au code retour |
message | String | Libellé correspondant au tableau des erreurs |
<?xml version="1.0" encoding="ISO-8859-1"?>
<etat>
<etat1>
<code1>106</code1>
<message1>Votre donnee a ete supprimee du repertoire</message1>
<tel1>33601020304</tel1>
<repertoireId1>123456789</repertoireId1>
</etat1>
<etat2>
<code2>106</code2>
<message2>Votre donnee a ete supprimee du repertoire</message2>
<tel2>33601020305</tel2>
<repertoireId2>123456789</repertoireId2>
</etat2>
</etat>
<?xml version="1.0" encoding="ISO-8859-1"?>
<etat>
<etat1>
<code1>107</code1>
<message1>La donnee n'est pas presente dans le repertoire!</message1>
<tel1>33601020304</tel1>
<repertoireId1>123456789</repertoireId1>
</etat1>
<etat2>
<code2>107</code2>
<message2>La donnee n'est pas presente dans le repertoire!</message2>
<tel2>33601020305</tel2>
<repertoireId2>123456789</repertoireId2>
</etat2>
</etat>
curl -X POST \
'https://www.isendpro.com/cgi-bin/' \
-H 'cache-control: no-cache' \
-d 'keyid=a296464ce012b8ab710a&repertoireEdit=del&repertoireId=39258&num1=33601020304&num2=33601020305&num3=33601020306'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://www.isendpro.com/cgi-bin/';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'repertoireEdit' => 'del',
'repertoireId' => '39258',
'num1' => '33601020304',
'num2' => '33601020305',
'num3' => '33601020306'
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$out = curl_exec($ch);
curl_close($ch);
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$xml = string2XML($out);
$repetatList=XML2Array($xml);
if(!array_key_exists('etat1', $repetatList)){
$repetatList=array($repetatList);
}
foreach($repetatList as $key => $value){
$cpt='';
if($key!='0'){
$cpt=str_replace('etat', '', $key);
}
// Erreur generale
if (!isset($value['tel'.$cpt])){
echo 'Code: '.$value['code'];
echo $sautligne;
echo 'message: '.$value['message'];
echo $sautligne;
break;
}else{
echo '-----------';
echo $sautligne;
echo 'Data '.$cpt;
echo $sautligne;
// Infos de retour
echo 'Code: '.$value['code'.$cpt];
echo $sautligne;
echo 'message: '.$value['message'.$cpt];
echo $sautligne;
echo 'tel: '.$value['tel'];
echo $sautligne;
echo 'repertoireId: '.$value['repertoireId'.$cpt];
echo $sautligne;
}
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
import xmltodict
import types
url = 'https://www.isendpro.com/cgi-bin/'
params = {
'keyid': 'a296464ce012b8ab710a',
'repertoireEdit': 'del',
'repertoireId': '39258',
'num1': '33601020304',
'num2': '33601020305',
'num3': '33601020306'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Traitement du retour
####################################################################################
repetat=xmltodict.parse(response.text)
if not repetat.has_key('etat'):
# Erreur inconnue
print 'Erreur inconnue: '+repetat
else:
#repetat=repetat['etat']
repetatList=repetat['etat']
if not repetatList.has_key('etat1'):
repetatList={'0':repetat['etat']}
keysList=repetatList.keys()
keysList.sort()
for key in keysList:
repetat=repetatList[key]
cpt=''
if key!='0':
cpt=key.replace('etat','')
# Erreur generale
if not repetat.has_key('tel'+cpt):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
else:
print '-----------'
print 'Data '+str(key)
# Infos du retour
print 'Code: '+repetat['code'+cpt]
print 'Message: '+repetat['message'+cpt]
print 'tel: '+repetat['tel'+cpt]
print 'RepertoireId: '+repetat['repertoireId']
import java.io.*;
import java.net.*;
import java.util.*;
import java.nio.charset.StandardCharsets;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;
import java.io.PrintWriter;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_http."/cgi-bin/";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("repertoireEdit", "del");
paramsTablo.put("repertoireId", "159094");
paramsTablo.put("num1", "33601020304");
paramsTablo.put("num2", "33601020305");
paramsTablo.put("num3", "33601020306");
StringBuilder urlParameters = new StringBuilder();
for (Map.Entry<String,String> param : paramsTablo.entrySet()) {
if (urlParameters.length() != 0) urlParameters.append("&");
urlParameters.append(URLEncoder.encode(param.getKey(), "UTF-8"));
urlParameters.append("=");
urlParameters.append(URLEncoder.encode(String.valueOf(param.getValue()), "UTF-8"));
}
System.out.println(urlParameters);
byte[] postData = urlParameters.toString().getBytes("UTF-8");
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
String line = content.toString();
try {
InputSource is = new InputSource(new StringReader(line));
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(is);
if(doc.getDocumentElement().getNodeName()!="etat"){
// Erreur inconnue
System.out.println("Erreur inconnue: "+line);
}else{
NodeList nList = doc.getElementsByTagName("etat");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
Node nodeN1 = nNode.getFirstChild();
if(nodeN1!=null){
String n1Name = nodeN1.getNodeName();
if(!n1Name.contains("etat")){
nodeN1 = nNode;
}
}
while(nodeN1!=null){
String n1Name = nodeN1.getNodeName();
System.out.println("-----------");
System.out.println(n1Name);
var erreur=1;
Node nodeN2 = nodeN1.getFirstChild();
while(nodeN2!=null){
String n2Name = nodeN2.getNodeName();
String n2Value = nodeN2.getFirstChild().getNodeValue();
System.out.println(n2Name+": "+n2Value);
nodeN2=nodeN2.getNextSibling();
if(n2Name.contains("repertoireId")){
erreur=0;
}
}
System.out.println("erreur: "+erreur);
if(erreur==1){
// Erreur dans le retour
}else{
// OK
}
nodeN1=nodeN1.getNextSibling();
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
} catch (Exception ex) {
System.err.println(ex);
}
}
}
www.votre_adresse.com/votre_page_web
L'API appellera alors www.votre_adresse.com/votre_page_web?tel=[TEL]&libelle=[LIBELLE]&statut=[STATUT]&code_erreur=[CODE_ERREUR]&date=[DATE]&heure=[HEURE]&id=[ID]&operateur=[OPERATEUR]&tracker=[TRACKER]
Paramètre | Type | Obligatoire | Détails |
tel | String | Oui |
Numéro de téléphone du destinataire Au format 06XXXXXXXX ou 07XXXXXXXX pour la France métropolitaine Au format international sans le + pour les autres pays Ex: 0601020304 ou 32101020304 |
libelle | String | Oui | Libellé sur le statut de l'accusé de réception |
statut | Number | Oui |
Statut du message
|
Code erreur | String | Oui | Code associé à l'accusé de réception (cf Annexes) |
date |
Date au format AAAA-MM-JJ |
Oui | La date de réception de l'accusé |
heure |
Date au format HH:MM:SS |
Oui | L'heure de réception de l'accusé |
id | Number | Oui | Identifiant unique de l'accusé |
operateur | String | Oui | Chaine de caracteres indiquant la valeur de l'opérateur (cf Annexes) |
tracker | String | Oui | Argument éventuellement fourni lors de l'envoi pour une identification simplifiée |
validation
Opérateur | Réponse |
Orange | Oui |
SFR | Oui |
Bouygues | Oui |
Free | Oui |
NRJ | Oui |
Coriolis | Oui |
Syma | Oui |
Truphone | Oui |
OnOff | Oui |
Lebara | Oui |
Lyca | Non |
Legos | Non |
Transatel | Non |
www.votre_adresse.com/votre_page_web
L'API appellera alors www.votre_adresse.com/votre_page_web?tel=[TEL]&id_retour=[ID_RETOUR]&msg_sms=[MSG_SMS]&tracker=[TRACKER]
Paramètre | Type | Obligatoire | Détails |
tel | String | Oui |
Numéro de téléphone du destinataire Au format 06XXXXXXXX ou 07XXXXXXXX pour la France métropolitaine Au format international sans le + pour les autres pays Ex: 0601020304 ou 32101020304 |
id_retour | Number | Oui | Identifiant unique de l'accusé |
msg_sms | String | Oui | Réponse envoyée par le destinataire |
tracker | String | Oui | Argument éventuellement fourni lors de l'envoi pour une identification simplifiée |
indicatif_pays | Number | Oui | Indicatif du pays du numéro |
datetime | Datetime | Oui | Horodatage de réception de la réponse sur notre plateforme au format AAAA-MM-JJ HH:MM:SS |
validation
https://www.isendpro.com/cgi-bin/
Paramètre | Type | Obligatoire | Détails |
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
subAccountLogin | String | Oui | Identifiant de connexion pour le nouveau sous compte |
subAccountPassword | String | Oui | Mot de passe de connexion pour le nouveau sous compte |
subAccountEdit | String | Oui | Utiliser la valeur 'addAccount' |
Paramètre | Type | Détails |
code | Number | Code correspondant au tableau des erreurs |
message | String | Libellé correspondant au tableau des erreurs |
subAccountLogin | String | Identifiant de connexion pour le nouveau sous compte |
subAccountId | String | Id pour le nouveau sous compte |
subAccountKeyId | String | Clé d'identification (KeyId) pour le nouveau sous compte |
<?xml version="1.0" encoding="ISO-8859-1"?>
<etat>
<code>230</code>
<message>Le sous compte a ete ajoute</message>
<subAccountLogin>subaccount2018</subAccountLogin>
<subAccountId>20474</subAccountId>
<subAccountKeyId>ber296464ce018ab710a</subAccountKeyId>
</etat>
curl -X POST \
'https://www.isendpro.com/cgi-bin/' \
-H 'cache-control: no-cache' \
-d 'keyid=a296464ce012b8ab710a&subAccountLogin=MonIdentifiant&subAccountPassword=MonMotdpasse&subAccountEdit=addAccount'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://www.isendpro.com/cgi-bin/';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'subAccountLogin' => 'MonIdentifiant',
'subAccountPassword'=> 'MonMotdpasse',
'subAccountEdit' => 'addAccount'
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$out = curl_exec($ch);
curl_close($ch);
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$xml = string2XML($out);
$repetatList=XML2Array($xml);
if(!array_key_exists('etat1', $repetatList)){
$repetatList=array($repetatList);
}
foreach($repetatList as $key => $value){
$cpt='';
if($key!='0'){
$cpt=str_replace('etat', '', $key);
}
// Erreur generale
if (!isset($value['subAccountLogin'.$cpt])){
echo 'Code: '.$value['code'];
echo $sautligne;
echo 'message: '.$value['message'];
echo $sautligne;
break;
}else{
echo '-----------';
echo $sautligne;
echo 'Data '.$cpt;
echo $sautligne;
// Infos de retour
echo 'Code: '.$value['code'.$cpt];
echo $sautligne;
echo 'message: '.$value['message'.$cpt];
echo $sautligne;
echo 'subAccountLogin: '.$value['subAccountLogin'];
if (isset($value['subAccountId'])){
echo $sautligne;
echo 'subAccountId: '.$value['subAccountId'];
}
if (isset($value['subAccountKeyId'])){
echo $sautligne;
echo 'subAccountKeyId: '.$value['subAccountKeyId'];
}
echo $sautligne;
}
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
import xmltodict
import types
url = 'https://www.isendpro.com/cgi-bin/'
params = {
'keyid': 'a296464ce012b8ab710a',
'subAccountLogin': 'MonIdentifiant',
'subAccountPassword': 'MonMotdpasse',
'subAccountEdit': 'addAccount'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Traitement du retour
####################################################################################
repetat=xmltodict.parse(response.text)
if not repetat.has_key('etat'):
# Erreur inconnue
print 'Erreur inconnue: '+repetat
else:
#repetat=repetat['etat']
repetatList=repetat['etat']
if not repetatList.has_key('etat1'):
repetatList={'0':repetat['etat']}
keysList=repetatList.keys()
keysList.sort()
for key in keysList:
repetat=repetatList[key]
cpt=''
if key!='0':
cpt=key.replace('etat','')
# Erreur generale
if not repetat.has_key('subAccountLogin'+cpt):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
else:
print '-----------'
print 'Data '+str(key)
# Infos du retour
print 'Code: '+repetat['code'+cpt]
print 'Message: '+repetat['message'+cpt]
print 'subAccountLogin: '+repetat['subAccountLogin'+cpt]
if repetat.has_key('subAccountId'):
print 'subAccountId: '+repetat['subAccountId'+cpt]
if repetat.has_key('subAccountKeyId'):
print 'subAccountKeyId: '+repetat['subAccountKeyId'+cpt]
import java.io.*;
import java.net.*;
import java.util.*;
import java.nio.charset.StandardCharsets;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;
import java.io.PrintWriter;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_http."/cgi-bin/";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("subAccountLogin", "MonIdentifiantJava");
paramsTablo.put("subAccountPassword", "MonMotdpasse");
paramsTablo.put("subAccountEdit", "addAccount");
StringBuilder urlParameters = new StringBuilder();
for (Map.Entry<String,String> param : paramsTablo.entrySet()) {
if (urlParameters.length() != 0) urlParameters.append("&");
urlParameters.append(URLEncoder.encode(param.getKey(), "UTF-8"));
urlParameters.append("=");
urlParameters.append(URLEncoder.encode(String.valueOf(param.getValue()), "UTF-8"));
}
System.out.println(urlParameters);
byte[] postData = urlParameters.toString().getBytes("UTF-8");
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
String line = content.toString();
try {
InputSource is = new InputSource(new StringReader(line));
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(is);
if(doc.getDocumentElement().getNodeName()!="etat"){
// Erreur inconnue
System.out.println("Erreur inconnue: "+line);
}else{
NodeList nList = doc.getElementsByTagName("etat");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
Node nodeN1 = nNode.getFirstChild();
if(nodeN1!=null){
String n1Name = nodeN1.getNodeName();
if(!n1Name.contains("etat")){
nodeN1 = nNode;
}
}
while(nodeN1!=null){
String n1Name = nodeN1.getNodeName();
System.out.println("-----------");
System.out.println(n1Name);
var erreur=1;
Node nodeN2 = nodeN1.getFirstChild();
while(nodeN2!=null){
String n2Name = nodeN2.getNodeName();
String n2Value = nodeN2.getFirstChild().getNodeValue();
System.out.println(n2Name+": "+n2Value);
nodeN2=nodeN2.getNextSibling();
if(n2Name.contains("subAccountKeyId")){
erreur=0;
}
}
System.out.println("erreur: "+erreur);
if(erreur==1){
// Erreur dans le retour
}else{
// OK
}
nodeN1=nodeN1.getNextSibling();
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
} catch (Exception ex) {
System.err.println(ex);
}
}
}
https://www.isendpro.com/cgi-bin/
Paramètre | Type | Obligatoire | Détails |
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
subAccountKeyId | String | Oui | Chaine de caractère unique identifiant le sous compte |
subAccountPrice | String | Oui |
Valeur du prix unitaire en euro HT pour 1 SMS Le séparateur de centimes est le point (.) Ex: 0.044 |
subAccountCountryCode | String | Oui |
Indicatif international du pays associé au prix sans le + Ex: 39 pour Italie ou 32 pour Belgique |
subAccountEdit | String | Oui | Utiliser la valeur 'setPrice' |
Paramètre | Type | Détails |
code | Number | Code correspondant au tableau des erreurs |
message | String | Libellé correspondant au tableau des erreurs |
subAccountId | String | Id pour le nouveau sous compte |
subAccountKeyId | String | Clé d'identification (KeyId) pour le nouveau sous compte |
<?xml version="1.0" encoding="ISO-8859-1"?>
<etat>
<code>241</code>
<message>Le prix a ete mis a jour</message>
<subAccountKeyId>ber296464ce018ab710a</subAccountKeyId>
<subAccountId>20474</subAccountId>
<subAccountCountryCode>39</subAccountCountryCode>
</etat>
<?xml version="1.0" encoding="ISO-8859-1"?>
<etat>
<code>234</code>
<message>Aucun sous compte avec ces identifiants</message>
<subAccountKeyId>ber296464ce018ab710a</subAccountKeyId>
<subAccountCountryCode>39</subAccountCountryCode>
</etat>
curl -X POST \
'https://www.isendpro.com/cgi-bin/' \
-H 'cache-control: no-cache' \
-d 'keyid=a296464ce012b8ab710a&subAccountKeyId=ber296464ce018ab710a&subAccountPrice=0.068&subAccountCountryCode=39&subAccountEdit=setPrice'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://www.isendpro.com/cgi-bin/';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'subAccountKeyId' => 'ber296464ce018ab710a',
'subAccountPrice' => '0.068',
'subAccountCountryCode' => '39',
'subAccountEdit' => 'setPrice'
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$out = curl_exec($ch);
curl_close($ch);
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$xml = string2XML($out);
$repetatList=XML2Array($xml);
if(!array_key_exists('etat1', $repetatList)){
$repetatList=array($repetatList);
}
foreach($repetatList as $key => $value){
$cpt='';
if($key!='0'){
$cpt=str_replace('etat', '', $key);
}
// Erreur generale
if (!isset($value['subAccountKeyId'.$cpt])){
echo 'Code: '.$value['code'];
echo $sautligne;
echo 'message: '.$value['message'];
echo $sautligne;
break;
}else{
echo '-----------';
echo $sautligne;
echo 'Data '.$cpt;
echo $sautligne;
// Infos de retour
echo 'Code: '.$value['code'.$cpt];
echo $sautligne;
echo 'message: '.$value['message'.$cpt];
echo $sautligne;
echo 'subAccountKeyId: '.$value['subAccountKeyId'];
if (isset($value['subAccountId'])){
echo $sautligne;
echo 'subAccountId: '.$value['subAccountId'];
}
if (isset($value['subAccountCountryCode'])){
echo $sautligne;
echo 'subAccountCountryCode: '.$value['subAccountCountryCode'];
}
echo $sautligne;
}
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
import xmltodict
import types
url = 'https://www.isendpro.com/cgi-bin/'
params = {
'keyid' : 'a296464ce012b8ab710a',
'subAccountKeyId' : 'ber296464ce018ab710a',
'subAccountPrice' : '0.068',
'subAccountCountryCode' : '39',
'subAccountEdit' : 'setPrice'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Traitement du retour
####################################################################################
repetat=xmltodict.parse(response.text)
if not repetat.has_key('etat'):
# Erreur inconnue
print 'Erreur inconnue: '+repetat
else:
#repetat=repetat['etat']
repetatList=repetat['etat']
if not repetatList.has_key('etat1'):
repetatList={'0':repetat['etat']}
keysList=repetatList.keys()
keysList.sort()
for key in keysList:
repetat=repetatList[key]
cpt=''
if key!='0':
cpt=key.replace('etat','')
# Erreur generale
if not repetat.has_key('subAccountKeyId'+cpt):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
else:
print '-----------'
print 'Data '+str(key)
# Infos du retour
print 'Code: '+repetat['code'+cpt]
print 'Message: '+repetat['message'+cpt]
print 'subAccountKeyId: '+repetat['subAccountKeyId'+cpt]
if repetat.has_key('subAccountId'):
print 'subAccountId: '+repetat['subAccountId'+cpt]
if repetat.has_key('subAccountCountryCode'):
print 'subAccountCountryCode: '+repetat['subAccountCountryCode'+cpt]
import java.io.*;
import java.net.*;
import java.util.*;
import java.nio.charset.StandardCharsets;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;
import java.io.PrintWriter;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_http."/cgi-bin/";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("subAccountKeyId", "ber296464ce018ab710a0");
paramsTablo.put("subAccountPrice", "0.068");
paramsTablo.put("subAccountCountryCode", "39");
paramsTablo.put("subAccountEdit", "setPrice");
StringBuilder urlParameters = new StringBuilder();
for (Map.Entry<String,String> param : paramsTablo.entrySet()) {
if (urlParameters.length() != 0) urlParameters.append("&");
urlParameters.append(URLEncoder.encode(param.getKey(), "UTF-8"));
urlParameters.append("=");
urlParameters.append(URLEncoder.encode(String.valueOf(param.getValue()), "UTF-8"));
}
System.out.println(urlParameters);
byte[] postData = urlParameters.toString().getBytes("UTF-8");
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
String line = content.toString();
try {
InputSource is = new InputSource(new StringReader(line));
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(is);
if(doc.getDocumentElement().getNodeName()!="etat"){
// Erreur inconnue
System.out.println("Erreur inconnue: "+line);
}else{
NodeList nList = doc.getElementsByTagName("etat");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
Node nodeN1 = nNode.getFirstChild();
if(nodeN1!=null){
String n1Name = nodeN1.getNodeName();
if(!n1Name.contains("etat")){
nodeN1 = nNode;
}
}
while(nodeN1!=null){
String n1Name = nodeN1.getNodeName();
System.out.println("-----------");
System.out.println(n1Name);
var erreur=1;
Node nodeN2 = nodeN1.getFirstChild();
while(nodeN2!=null){
String n2Name = nodeN2.getNodeName();
String n2Value = nodeN2.getFirstChild().getNodeValue();
System.out.println(n2Name+": "+n2Value);
nodeN2=nodeN2.getNextSibling();
if(n2Name.contains("subAccountId")){
erreur=0;
}
}
System.out.println("erreur: "+erreur);
if(erreur==1){
// Erreur dans le retour
}else{
// OK
}
nodeN1=nodeN1.getNextSibling();
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
} catch (Exception ex) {
System.err.println(ex);
}
}
}
https://www.isendpro.com/cgi-bin/
Paramètre | Type | Obligatoire | Détails |
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
subAccountKeyId | String | Oui | Chaine de caractère unique identifiant le sous compte |
subAccountCountryCode | String | Oui |
Indicatif international du pays associé au prix sans le + Ex: 39 pour Italie ou 32 pour Belgique |
subAccountEdit | String | Oui | Utiliser la valeur 'getPrice' |
Paramètre | Type | Détails |
code | Number | Code correspondant au tableau des erreurs |
message | String | Libellé correspondant au tableau des erreurs |
subAccountId | String | Id pour le sous compte |
subAccountKeyId | String | Clé d'identification (KeyId) pour le sous compte |
subAccountCountryCode | String | Indicatif international du pays associé au prix sans le + |
subAccountPrice | String | Prix unitaire en euros HT avec le point (.) comme séparateur des centimes |
<?xml version="1.0" encoding="ISO-8859-1"?>
<etat>
<code>251</code>
<message>Le prix unitaire</message>
<subAccountKeyId>ber296464ce018ab710a</subAccountKeyId>
<subAccountId>20474</subAccountId>
<subAccountCountryCode>39</subAccountCountryCode>
<subAccountPrice>0.049</subAccountPrice>
</etat>
curl -X POST \
'https://www.isendpro.com/cgi-bin/' \
-H 'cache-control: no-cache' \
-d 'keyid=a296464ce012b8ab710a&subAccountKeyId=ber296464ce018ab710a&subAccountCountryCode=39&subAccountEdit=getPrice'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://www.isendpro.com/cgi-bin/';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'subAccountKeyId' => 'ber296464ce018ab710a',
'subAccountCountryCode' => '39',
'subAccountEdit' => 'getPrice'
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$out = curl_exec($ch);
curl_close($ch);
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$xml = string2XML($out);
$repetatList=XML2Array($xml);
if(!array_key_exists('etat1', $repetatList)){
$repetatList=array($repetatList);
}
foreach($repetatList as $key => $value){
$cpt='';
if($key!='0'){
$cpt=str_replace('etat', '', $key);
}
// Erreur generale
if (!isset($value['subAccountKeyId'.$cpt])){
echo 'Code: '.$value['code'];
echo $sautligne;
echo 'message: '.$value['message'];
echo $sautligne;
break;
}else{
echo '-----------';
echo $sautligne;
echo 'Data '.$cpt;
echo $sautligne;
// Infos de retour
echo 'Code: '.$value['code'.$cpt];
echo $sautligne;
echo 'message: '.$value['message'.$cpt];
echo $sautligne;
echo 'subAccountKeyId: '.$value['subAccountKeyId'];
if (isset($value['subAccountId'])){
echo $sautligne;
echo 'subAccountId: '.$value['subAccountId'];
}
if (isset($value['subAccountCountryCode'])){
echo $sautligne;
echo 'subAccountCountryCode: '.$value['subAccountCountryCode'];
}
if (isset($value['subAccountPrice'])){
echo $sautligne;
echo 'subAccountPrice: '.$value['subAccountPrice'];
}
echo $sautligne;
}
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
import xmltodict
import types
url = 'https://www.isendpro.com/cgi-bin/'
params = {
'keyid' : 'a296464ce012b8ab710a',
'subAccountKeyId' : 'ber296464ce018ab710a',
'subAccountCountryCode' : '39',
'subAccountEdit' : 'getPrice'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Traitement du retour
####################################################################################
repetat=xmltodict.parse(response.text)
if not repetat.has_key('etat'):
# Erreur inconnue
print 'Erreur inconnue: '+repetat
else:
#repetat=repetat['etat']
repetatList=repetat['etat']
if not repetatList.has_key('etat1'):
repetatList={'0':repetat['etat']}
keysList=repetatList.keys()
keysList.sort()
for key in keysList:
repetat=repetatList[key]
cpt=''
if key!='0':
cpt=key.replace('etat','')
# Erreur generale
if not repetat.has_key('subAccountKeyId'+cpt):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
else:
print '-----------'
print 'Data '+str(key)
# Infos du retour
print 'Code: '+repetat['code'+cpt]
print 'Message: '+repetat['message'+cpt]
print 'subAccountKeyId: '+repetat['subAccountKeyId'+cpt]
if repetat.has_key('subAccountId'):
print 'subAccountId: '+repetat['subAccountId'+cpt]
if repetat.has_key('subAccountCountryCode'):
print 'subAccountCountryCode: '+repetat['subAccountCountryCode'+cpt]
if repetat.has_key('subAccountPrice'):
print 'subAccountPrice: '+repetat['subAccountPrice'+cpt]
import java.io.*;
import java.net.*;
import java.util.*;
import java.nio.charset.StandardCharsets;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;
import java.io.PrintWriter;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_http."/cgi-bin/";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("subAccountKeyId", "ber296464ce018ab710a");
paramsTablo.put("subAccountCountryCode", "39");
paramsTablo.put("subAccountEdit", "getPrice");
StringBuilder urlParameters = new StringBuilder();
for (Map.Entry<String,String> param : paramsTablo.entrySet()) {
if (urlParameters.length() != 0) urlParameters.append("&");
urlParameters.append(URLEncoder.encode(param.getKey(), "UTF-8"));
urlParameters.append("=");
urlParameters.append(URLEncoder.encode(String.valueOf(param.getValue()), "UTF-8"));
}
System.out.println(urlParameters);
byte[] postData = urlParameters.toString().getBytes("UTF-8");
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
String line = content.toString();
try {
InputSource is = new InputSource(new StringReader(line));
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(is);
if(doc.getDocumentElement().getNodeName()!="etat"){
// Erreur inconnue
System.out.println("Erreur inconnue: "+line);
}else{
NodeList nList = doc.getElementsByTagName("etat");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
Node nodeN1 = nNode.getFirstChild();
if(nodeN1!=null){
String n1Name = nodeN1.getNodeName();
if(!n1Name.contains("etat")){
nodeN1 = nNode;
}
}
while(nodeN1!=null){
String n1Name = nodeN1.getNodeName();
System.out.println("-----------");
System.out.println(n1Name);
var erreur=1;
Node nodeN2 = nodeN1.getFirstChild();
while(nodeN2!=null){
String n2Name = nodeN2.getNodeName();
String n2Value = nodeN2.getFirstChild().getNodeValue();
System.out.println(n2Name+": "+n2Value);
nodeN2=nodeN2.getNextSibling();
if(n2Name.contains("subAccountId")){
erreur=0;
}
}
System.out.println("erreur: "+erreur);
if(erreur==1){
// Erreur dans le retour
}else{
// OK
}
nodeN1=nodeN1.getNextSibling();
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
} catch (Exception ex) {
System.err.println(ex);
}
}
}
https://www.isendpro.com/cgi-bin/
Paramètre | Type | Obligatoire | Détails |
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
subAccountKeyId | String | Oui | Chaine de caractère unique identifiant le sous compte |
subAccountAddCredit | Number | Oui |
Montant en euros HT à ajouter Le séparateur de centimes est le point (.) Ex: 150.0 |
subAccountEdit | String | Oui | Utiliser la valeur 'addCredit' |
Paramètre | Type | Détails |
code | Number | Code correspondant au tableau des erreurs |
message | String | Libellé correspondant au tableau des erreurs |
subAccountId | String | Id pour le nouveau sous compte |
subAccountKeyId | String | Clé d'identification (KeyId) pour le nouveau sous compte |
<?xml version="1.0" encoding="ISO-8859-1"?>
<etat>
<code>239</code>
<message>Le credit a ete ajoute au sous compte</message>
<subAccountKeyId>ber296464ce018ab710a</subAccountKeyId>
<subAccountId>20474</subAccountId>
</etat>
<?xml version="1.0" encoding="ISO-8859-1"?>
<etat>
<code>234</code>
<message>Aucun sous compte avec ces identifiants</message>
<subAccountKeyId>ber296464ce018ab710a</subAccountKeyId>
</etat>
curl -X POST \
'https://www.isendpro.com/cgi-bin/' \
-H 'cache-control: no-cache' \
-d 'keyid=a296464ce012b8ab710a&subAccountKeyId=ber296464ce018ab710a&subAccountAddCredit=150&subAccountEdit=addCredit'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://www.isendpro.com/cgi-bin/';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'subAccountKeyId' => 'ber296464ce018ab710a',
'subAccountAddCredit' => '150',
'subAccountEdit' => 'addCredit'
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$out = curl_exec($ch);
curl_close($ch);
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$xml = string2XML($out);
$repetatList=XML2Array($xml);
if(!array_key_exists('etat1', $repetatList)){
$repetatList=array($repetatList);
}
foreach($repetatList as $key => $value){
$cpt='';
if($key!='0'){
$cpt=str_replace('etat', '', $key);
}
// Erreur generale
if (!isset($value['subAccountKeyId'.$cpt])){
echo 'Code: '.$value['code'];
echo $sautligne;
echo 'message: '.$value['message'];
echo $sautligne;
break;
}else{
echo '-----------';
echo $sautligne;
echo 'Data '.$cpt;
echo $sautligne;
// Infos de retour
echo 'Code: '.$value['code'.$cpt];
echo $sautligne;
echo 'message: '.$value['message'.$cpt];
echo $sautligne;
echo 'subAccountKeyId: '.$value['subAccountKeyId'];
if (isset($value['subAccountId'])){
echo $sautligne;
echo 'subAccountId: '.$value['subAccountId'];
}
echo $sautligne;
}
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
import xmltodict
import types
url = 'https://www.isendpro.com/cgi-bin/'
params = {
'keyid': 'a296464ce012b8ab710a',
'subAccountKeyId': 'ber296464ce018ab710a',
'subAccountAddCredit': '150',
'subAccountEdit': 'addCredit'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Traitement du retour
####################################################################################
repetat=xmltodict.parse(response.text)
if not repetat.has_key('etat'):
# Erreur inconnue
print 'Erreur inconnue: '+repetat
else:
#repetat=repetat['etat']
repetatList=repetat['etat']
if not repetatList.has_key('etat1'):
repetatList={'0':repetat['etat']}
keysList=repetatList.keys()
keysList.sort()
for key in keysList:
repetat=repetatList[key]
cpt=''
if key!='0':
cpt=key.replace('etat','')
# Erreur generale
if not repetat.has_key('subAccountKeyId'+cpt):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
else:
print '-----------'
print 'Data '+str(key)
# Infos du retour
print 'Code: '+repetat['code'+cpt]
print 'Message: '+repetat['message'+cpt]
print 'subAccountKeyId: '+repetat['subAccountKeyId'+cpt]
print 'subAccountId: '+repetat['subAccountId'+cpt]
import java.io.*;
import java.net.*;
import java.util.*;
import java.nio.charset.StandardCharsets;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;
import java.io.PrintWriter;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_http."/cgi-bin/";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("subAccountKeyId", "ber296464ce018ab710a");
paramsTablo.put("subAccountAddCredit", "150");
paramsTablo.put("subAccountEdit", "addCredit");
StringBuilder urlParameters = new StringBuilder();
for (Map.Entry<String,String> param : paramsTablo.entrySet()) {
if (urlParameters.length() != 0) urlParameters.append("&");
urlParameters.append(URLEncoder.encode(param.getKey(), "UTF-8"));
urlParameters.append("=");
urlParameters.append(URLEncoder.encode(String.valueOf(param.getValue()), "UTF-8"));
}
System.out.println(urlParameters);
byte[] postData = urlParameters.toString().getBytes("UTF-8");
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
String line = content.toString();
try {
InputSource is = new InputSource(new StringReader(line));
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(is);
if(doc.getDocumentElement().getNodeName()!="etat"){
// Erreur inconnue
System.out.println("Erreur inconnue: "+line);
}else{
NodeList nList = doc.getElementsByTagName("etat");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
Node nodeN1 = nNode.getFirstChild();
if(nodeN1!=null){
String n1Name = nodeN1.getNodeName();
if(!n1Name.contains("etat")){
nodeN1 = nNode;
}
}
while(nodeN1!=null){
String n1Name = nodeN1.getNodeName();
System.out.println("-----------");
System.out.println(n1Name);
var erreur=1;
Node nodeN2 = nodeN1.getFirstChild();
while(nodeN2!=null){
String n2Name = nodeN2.getNodeName();
String n2Value = nodeN2.getFirstChild().getNodeValue();
System.out.println(n2Name+": "+n2Value);
nodeN2=nodeN2.getNextSibling();
if(n2Name.contains("subAccountId")){
erreur=0;
}
}
System.out.println("erreur: "+erreur);
if(erreur==1){
// Erreur dans le retour
}else{
// OK
}
nodeN1=nodeN1.getNextSibling();
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
} catch (Exception ex) {
System.err.println(ex);
}
}
}
https://www.isendpro.com/cgi-bin/
Paramètre | Type | Obligatoire | Détails |
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
subAccountKeyId | String | Oui | Chaine de caractère unique identifiant le sous compte |
subAccountOutstanding | Number | Oui | Nouveau montant en euros HT de l'encours |
subAccountEdit | String | Oui | Utiliser la valeur 'setOutstanding' |
Paramètre | Type | Détails |
code | Number | Code correspondant au tableau des erreurs |
message | String | Libellé correspondant au tableau des erreurs |
subAccountId | String | Id pour le nouveau sous compte |
subAccountKeyId | String | Clé d'identification (KeyId) pour le nouveau sous compte |
<?xml version="1.0" encoding="ISO-8859-1"?>
<etat>
<code>252</code>
<message>L encours a ete defini pour le sous compte</message>
<subAccountKeyId>ber296464ce018ab710a</subAccountKeyId>
<subAccountId>20474</subAccountId>
</etat>
<?xml version="1.0" encoding="ISO-8859-1"?>
<etat>
<code>234</code>
<message>Aucun sous compte avec ces identifiants</message>
<subAccountKeyId>ber296464ce018ab710a</subAccountKeyId>
</etat>
curl -X POST \
'https://www.isendpro.com/cgi-bin/' \
-H 'cache-control: no-cache' \
-d 'keyid=a296464ce012b8ab710a&subAccountKeyId=ber296464ce018ab710a&subAccountOutstanding=150&subAccountEdit=setOutstanding'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://www.isendpro.com/cgi-bin/';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'subAccountKeyId' => 'ber296464ce018ab710a',
'subAccountOutstanding' => '150',
'subAccountEdit' => 'setOutstanding'
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$out = curl_exec($ch);
curl_close($ch);
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$xml = string2XML($out);
$repetatList=XML2Array($xml);
if(!array_key_exists('etat1', $repetatList)){
$repetatList=array($repetatList);
}
foreach($repetatList as $key => $value){
$cpt='';
if($key!='0'){
$cpt=str_replace('etat', '', $key);
}
// Erreur generale
if (!isset($value['subAccountKeyId'.$cpt])){
echo 'Code: '.$value['code'];
echo $sautligne;
echo 'message: '.$value['message'];
echo $sautligne;
break;
}else{
echo '-----------';
echo $sautligne;
echo 'Data '.$cpt;
echo $sautligne;
// Infos de retour
echo 'Code: '.$value['code'.$cpt];
echo $sautligne;
echo 'message: '.$value['message'.$cpt];
echo $sautligne;
echo 'subAccountKeyId: '.$value['subAccountKeyId'];
echo $sautligne;
echo 'subAccountId: '.$value['subAccountId'];
}
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
import xmltodict
import types
url = 'https://www.isendpro.com/cgi-bin/'
params = {
'keyid' : 'a296464ce012b8ab710a',
'subAccountKeyId' : 'ber296464ce018ab710a',
'subAccountOutstanding' : '150',
'subAccountEdit' : 'setOutstanding'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Traitement du retour
####################################################################################
repetat=xmltodict.parse(response.text)
if not repetat.has_key('etat'):
# Erreur inconnue
print 'Erreur inconnue: '+repetat
else:
#repetat=repetat['etat']
repetatList=repetat['etat']
if not repetatList.has_key('etat1'):
repetatList={'0':repetat['etat']}
keysList=repetatList.keys()
keysList.sort()
for key in keysList:
repetat=repetatList[key]
cpt=''
if key!='0':
cpt=key.replace('etat','')
# Erreur generale
if not repetat.has_key('subAccountKeyId'+cpt):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
else:
print '-----------'
print 'Data '+str(key)
# Infos du retour
print 'Code: '+repetat['code'+cpt]
print 'Message: '+repetat['message'+cpt]
print 'subAccountKeyId: '+repetat['subAccountKeyId'+cpt]
print 'subAccountId: '+repetat['subAccountId'+cpt]
import java.io.*;
import java.net.*;
import java.util.*;
import java.nio.charset.StandardCharsets;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;
import java.io.PrintWriter;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_http."/cgi-bin/";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("subAccountKeyId", "ber296464ce018ab710a");
paramsTablo.put("subAccountOutstanding", "150");
paramsTablo.put("subAccountEdit", "setOutstanding");
StringBuilder urlParameters = new StringBuilder();
for (Map.Entry<String,String> param : paramsTablo.entrySet()) {
if (urlParameters.length() != 0) urlParameters.append("&");
urlParameters.append(URLEncoder.encode(param.getKey(), "UTF-8"));
urlParameters.append("=");
urlParameters.append(URLEncoder.encode(String.valueOf(param.getValue()), "UTF-8"));
}
System.out.println(urlParameters);
byte[] postData = urlParameters.toString().getBytes("UTF-8");
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
String line = content.toString();
try {
InputSource is = new InputSource(new StringReader(line));
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(is);
if(doc.getDocumentElement().getNodeName()!="etat"){
// Erreur inconnue
System.out.println("Erreur inconnue: "+line);
}else{
NodeList nList = doc.getElementsByTagName("etat");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
Node nodeN1 = nNode.getFirstChild();
if(nodeN1!=null){
String n1Name = nodeN1.getNodeName();
if(!n1Name.contains("etat")){
nodeN1 = nNode;
}
}
while(nodeN1!=null){
String n1Name = nodeN1.getNodeName();
System.out.println("-----------");
System.out.println(n1Name);
var erreur=1;
Node nodeN2 = nodeN1.getFirstChild();
while(nodeN2!=null){
String n2Name = nodeN2.getNodeName();
String n2Value = nodeN2.getFirstChild().getNodeValue();
System.out.println(n2Name+": "+n2Value);
nodeN2=nodeN2.getNextSibling();
if(n2Name.contains("subAccountId")){
erreur=0;
}
}
System.out.println("erreur: "+erreur);
if(erreur==1){
// Erreur dans le retour
}else{
// OK
}
nodeN1=nodeN1.getNextSibling();
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
} catch (Exception ex) {
System.err.println(ex);
}
}
}
https://www.isendpro.com/cgi-bin/
Paramètre | Type | Obligatoire | Détails |
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
subAccountKeyId | String | Oui | Chaine de caractère unique identifiant le sous compte |
subAccountEdit | String | Oui | Utiliser la valeur 'getOutstanding' |
Paramètre | Type | Détails |
code | Number | Code correspondant au tableau des erreurs |
message | String | Libellé correspondant au tableau des erreurs |
subAccountId | String | Id pour le nouveau sous compte |
subAccountKeyId | String | Clé d'identification (KeyId) pour le nouveau sous compte |
subAccountOutstanding | String | Montant de l'encours en euros HT |
<?xml version="1.0" encoding="ISO-8859-1"?>
<etat>
<code>254</code>
<message>L encours</message>
<subAccountKeyId>ber296464ce018ab710a</subAccountKeyId>
<subAccountId>20474</subAccountId>
<subAccountOutstanding>150</subAccountOutstanding>
</etat>
<?xml version="1.0" encoding="ISO-8859-1"?>
<etat>
<code>234</code>
<message>Aucun sous compte avec ces identifiants</message>
<subAccountKeyId>ber296464ce018ab710a</subAccountKeyId>
</etat>
curl -X POST \
'https://www.isendpro.com/cgi-bin/' \
-H 'cache-control: no-cache' \
-d 'keyid=a296464ce012b8ab710a&subAccountKeyId=ber296464ce018ab710a&subAccountEdit=getOutstanding'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://www.isendpro.com/cgi-bin/';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'subAccountKeyId' => 'ber296464ce018ab710a',
'subAccountEdit' => 'getOutstanding'
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$out = curl_exec($ch);
curl_close($ch);
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$xml = string2XML($out);
$repetatList=XML2Array($xml);
if(!array_key_exists('etat1', $repetatList)){
$repetatList=array($repetatList);
}
foreach($repetatList as $key => $value){
$cpt='';
if($key!='0'){
$cpt=str_replace('etat', '', $key);
}
// Erreur generale
if (!isset($value['subAccountKeyId'.$cpt])){
echo 'Code: '.$value['code'];
echo $sautligne;
echo 'message: '.$value['message'];
echo $sautligne;
break;
}else{
echo '-----------';
echo $sautligne;
echo 'Data '.$cpt;
echo $sautligne;
// Infos de retour
echo 'Code: '.$value['code'.$cpt];
echo $sautligne;
echo 'message: '.$value['message'.$cpt];
echo $sautligne;
echo 'subAccountKeyId: '.$value['subAccountKeyId'];
if (isset($value['subAccountOutstanding'])){
echo $sautligne;
echo 'subAccountOutstanding: '.$value['subAccountOutstanding'];
}
echo $sautligne;
}
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
import xmltodict
import types
url = 'https://www.isendpro.com/cgi-bin/'
params = {
'keyid' : 'a296464ce012b8ab710a',
'subAccountKeyId' : 'ber296464ce018ab710a',
'subAccountEdit' : 'getOutstanding'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Traitement du retour
####################################################################################
repetat=xmltodict.parse(response.text)
if not repetat.has_key('etat'):
# Erreur inconnue
print 'Erreur inconnue: '+repetat
else:
#repetat=repetat['etat']
repetatList=repetat['etat']
if not repetatList.has_key('etat1'):
repetatList={'0':repetat['etat']}
keysList=repetatList.keys()
keysList.sort()
for key in keysList:
repetat=repetatList[key]
cpt=''
if key!='0':
cpt=key.replace('etat','')
# Erreur generale
if not repetat.has_key('subAccountKeyId'+cpt):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
else:
print '-----------'
print 'Data '+str(key)
# Infos du retour
print 'Code: '+repetat['code'+cpt]
print 'Message: '+repetat['message'+cpt]
print 'subAccountKeyId: '+repetat['subAccountKeyId'+cpt]
if repetat.has_key('subAccountOutstanding'+cpt):
print 'subAccountOutstanding: '+repetat['subAccountOutstanding'+cpt]
import java.io.*;
import java.net.*;
import java.util.*;
import java.nio.charset.StandardCharsets;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;
import java.io.PrintWriter;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_http."/cgi-bin/";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("subAccountKeyId", "ber296464ce018ab710a");
paramsTablo.put("subAccountEdit", "getOutstanding");
StringBuilder urlParameters = new StringBuilder();
for (Map.Entry<String,String> param : paramsTablo.entrySet()) {
if (urlParameters.length() != 0) urlParameters.append("&");
urlParameters.append(URLEncoder.encode(param.getKey(), "UTF-8"));
urlParameters.append("=");
urlParameters.append(URLEncoder.encode(String.valueOf(param.getValue()), "UTF-8"));
}
System.out.println(urlParameters);
byte[] postData = urlParameters.toString().getBytes("UTF-8");
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
String line = content.toString();
try {
InputSource is = new InputSource(new StringReader(line));
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(is);
if(doc.getDocumentElement().getNodeName()!="etat"){
// Erreur inconnue
System.out.println("Erreur inconnue: "+line);
}else{
NodeList nList = doc.getElementsByTagName("etat");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
Node nodeN1 = nNode.getFirstChild();
if(nodeN1!=null){
String n1Name = nodeN1.getNodeName();
if(!n1Name.contains("etat")){
nodeN1 = nNode;
}
}
while(nodeN1!=null){
String n1Name = nodeN1.getNodeName();
System.out.println("-----------");
System.out.println(n1Name);
var erreur=1;
Node nodeN2 = nodeN1.getFirstChild();
while(nodeN2!=null){
String n2Name = nodeN2.getNodeName();
String n2Value = nodeN2.getFirstChild().getNodeValue();
System.out.println(n2Name+": "+n2Value);
nodeN2=nodeN2.getNextSibling();
if(n2Name.contains("subAccountOutstanding")){
erreur=0;
}
}
System.out.println("erreur: "+erreur);
if(erreur==1){
// Erreur dans le retour
}else{
// OK
}
nodeN1=nodeN1.getNextSibling();
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
} catch (Exception ex) {
System.err.println(ex);
}
}
}
https://www.isendpro.com/cgi-bin/
Paramètre | Type | Obligatoire | Détails |
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
subAccountKeyId | String | Oui | Chaine de caractère unique identifiant le sous compte |
subAccountRestrictionStop | Number | Oui |
Activation ou désactivation de la restriction STOP SMS
|
subAccountEdit | String | Oui | Utiliser la valeur 'setRestriction' |
Paramètre | Type | Détails |
code | Number | Code correspondant au tableau des erreurs |
message | String | Libellé correspondant au tableau des erreurs |
subAccountId | String | Id pour le nouveau sous compte |
subAccountKeyId | String | Clé d'identification (KeyId) pour le nouveau sous compte |
<?xml version="1.0" encoding="ISO-8859-1"?>
<etat>
<code>244</code>
<message>La restriction STOP a ete desactivee</message>
<subAccountKeyId>ber296464ce018ab710a</subAccountKeyId>
<subAccountId>20474</subAccountId>
</etat>
<?xml version="1.0" encoding="ISO-8859-1"?>
<etat>
<code>234</code>
<message>Aucun sous compte avec ces identifiants</message>
<subAccountKeyId>ber296464ce018ab710a</subAccountKeyId>
<subAccountId>20474</subAccountId>
</etat>
curl -X POST \
'https://www.isendpro.com/cgi-bin/' \
-H 'cache-control: no-cache' \
-d 'keyid=a296464ce012b8ab710a&subAccountKeyId=ber296464ce018ab710a&subAccountRestrictionStop=0&subAccountEdit=setRestriction'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://www.isendpro.com/cgi-bin/';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'subAccountKeyId' => 'ber296464ce018ab710a',
'subAccountRestrictionStop' => '0',
'subAccountEdit' => 'setRestriction'
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$out = curl_exec($ch);
curl_close($ch);
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$xml = string2XML($out);
$repetatList=XML2Array($xml);
if(!array_key_exists('etat1', $repetatList)){
$repetatList=array($repetatList);
}
foreach($repetatList as $key => $value){
$cpt='';
if($key!='0'){
$cpt=str_replace('etat', '', $key);
}
// Erreur generale
if (!isset($value['subAccountKeyId'.$cpt])){
echo 'Code: '.$value['code'];
echo $sautligne;
echo 'message: '.$value['message'];
echo $sautligne;
break;
}else{
echo '-----------';
echo $sautligne;
echo 'Data '.$cpt;
echo $sautligne;
// Infos de retour
echo 'Code: '.$value['code'.$cpt];
echo $sautligne;
echo 'message: '.$value['message'.$cpt];
echo $sautligne;
echo 'subAccountKeyId: '.$value['subAccountKeyId'];
if (isset($value['subAccountId'])){
echo $sautligne;
echo 'subAccountId: '.$value['subAccountId'];
}
echo $sautligne;
}
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
import xmltodict
import types
url = 'https://www.isendpro.com/cgi-bin/'
params = {
'keyid' : 'a296464ce012b8ab710a',
'subAccountKeyId' : 'ber296464ce018ab710a',
'subAccountRestrictionStop' : '0',
'subAccountEdit' : 'setRestriction'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Traitement du retour
####################################################################################
repetat=xmltodict.parse(response.text)
if not repetat.has_key('etat'):
# Erreur inconnue
print 'Erreur inconnue: '+repetat
else:
#repetat=repetat['etat']
repetatList=repetat['etat']
if not repetatList.has_key('etat1'):
repetatList={'0':repetat['etat']}
keysList=repetatList.keys()
keysList.sort()
for key in keysList:
repetat=repetatList[key]
cpt=''
if key!='0':
cpt=key.replace('etat','')
# Erreur generale
if not repetat.has_key('subAccountKeyId'+cpt):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
else:
print '-----------'
print 'Data '+str(key)
# Infos du retour
print 'Code: '+repetat['code'+cpt]
print 'Message: '+repetat['message'+cpt]
print 'subAccountKeyId: '+repetat['subAccountKeyId'+cpt]
print 'subAccountId: '+repetat['subAccountId'+cpt]
import java.io.*;
import java.net.*;
import java.util.*;
import java.nio.charset.StandardCharsets;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;
import java.io.PrintWriter;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_http."/cgi-bin/";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("subAccountKeyId", "ber296464ce018ab710a");
paramsTablo.put("subAccountRestrictionStop","0");
paramsTablo.put("subAccountEdit", "setRestriction");
StringBuilder urlParameters = new StringBuilder();
for (Map.Entry<String,String> param : paramsTablo.entrySet()) {
if (urlParameters.length() != 0) urlParameters.append("&");
urlParameters.append(URLEncoder.encode(param.getKey(), "UTF-8"));
urlParameters.append("=");
urlParameters.append(URLEncoder.encode(String.valueOf(param.getValue()), "UTF-8"));
}
System.out.println(urlParameters);
byte[] postData = urlParameters.toString().getBytes("UTF-8");
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
String line = content.toString();
try {
InputSource is = new InputSource(new StringReader(line));
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(is);
if(doc.getDocumentElement().getNodeName()!="etat"){
// Erreur inconnue
System.out.println("Erreur inconnue: "+line);
}else{
NodeList nList = doc.getElementsByTagName("etat");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
Node nodeN1 = nNode.getFirstChild();
if(nodeN1!=null){
String n1Name = nodeN1.getNodeName();
if(!n1Name.contains("etat")){
nodeN1 = nNode;
}
}
while(nodeN1!=null){
String n1Name = nodeN1.getNodeName();
System.out.println("-----------");
System.out.println(n1Name);
var erreur=1;
Node nodeN2 = nodeN1.getFirstChild();
while(nodeN2!=null){
String n2Name = nodeN2.getNodeName();
String n2Value = nodeN2.getFirstChild().getNodeValue();
System.out.println(n2Name+": "+n2Value);
nodeN2=nodeN2.getNextSibling();
if(n2Name.contains("subAccountId")){
erreur=0;
}
}
System.out.println("erreur: "+erreur);
if(erreur==1){
// Erreur dans le retour
}else{
// OK
}
nodeN1=nodeN1.getNextSibling();
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
} catch (Exception ex) {
System.err.println(ex);
}
}
}
https://www.isendpro.com/cgi-bin/
Paramètre | Type | Obligatoire | Détails |
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
subAccountKeyId | String | Oui | Chaine de caractère unique identifiant le sous compte |
subAccountRestrictionTime | Number | Oui |
Activation ou désactivation de la restriction horaire
|
subAccountEdit | String | Oui | Utiliser la valeur 'setRestriction' |
Paramètre | Type | Détails |
code | Number | Code correspondant au tableau des erreurs |
message | String | Libellé correspondant au tableau des erreurs |
subAccountId | String | Id pour le nouveau sous compte |
subAccountKeyId | String | Clé d'identification (KeyId) pour le nouveau sous compte |
<?xml version="1.0" encoding="ISO-8859-1"?>
<etat>
<code>246</code>
<message>La restriction horaire a ete desactivee</message>
<subAccountKeyId>ber296464ce018ab710a</subAccountKeyId>
<subAccountId>20474</subAccountId>
</etat>
<?xml version="1.0" encoding="ISO-8859-1"?>
<etat>
<code>234</code>
<message>Aucun sous compte avec ces identifiants</message>
<subAccountKeyId>ber296464ce018ab710a</subAccountKeyId>
<subAccountId>20474</subAccountId>
</etat>
curl -X POST \
'https://www.isendpro.com/cgi-bin/' \
-H 'cache-control: no-cache' \
-d 'keyid=a296464ce012b8ab710a&subAccountKeyId=ber296464ce018ab710a&subAccountRestrictionTime=0&subAccountEdit=setRestriction'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://www.isendpro.com/cgi-bin/';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'subAccountKeyId' => 'ber296464ce018ab710a',
'subAccountRestrictionTime' => '0',
'subAccountEdit' => 'setRestriction'
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$out = curl_exec($ch);
curl_close($ch);
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$xml = string2XML($out);
$repetatList=XML2Array($xml);
if(!array_key_exists('etat1', $repetatList)){
$repetatList=array($repetatList);
}
foreach($repetatList as $key => $value){
$cpt='';
if($key!='0'){
$cpt=str_replace('etat', '', $key);
}
// Erreur generale
if (!isset($value['subAccountKeyId'.$cpt])){
echo 'Code: '.$value['code'];
echo $sautligne;
echo 'message: '.$value['message'];
echo $sautligne;
break;
}else{
echo '-----------';
echo $sautligne;
echo 'Data '.$cpt;
echo $sautligne;
// Infos de retour
echo 'Code: '.$value['code'.$cpt];
echo $sautligne;
echo 'message: '.$value['message'.$cpt];
echo $sautligne;
echo 'subAccountKeyId: '.$value['subAccountKeyId'];
if (isset($value['subAccountId'])){
echo $sautligne;
echo 'subAccountId: '.$value['subAccountId'];
}
echo $sautligne;
}
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
import xmltodict
import types
url = 'https://www.isendpro.com/cgi-bin/'
params = {
'keyid' : 'a296464a296464ce012b8ab710ae012b8ab710a',
'subAccountKeyId' : 'ber296464ce018ab710a',
'subAccountRestrictionTime' : '0',
'subAccountEdit' : 'setRestriction'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Traitement du retour
####################################################################################
repetat=xmltodict.parse(response.text)
if not repetat.has_key('etat'):
# Erreur inconnue
print 'Erreur inconnue: '+repetat
else:
#repetat=repetat['etat']
repetatList=repetat['etat']
if not repetatList.has_key('etat1'):
repetatList={'0':repetat['etat']}
keysList=repetatList.keys()
keysList.sort()
for key in keysList:
repetat=repetatList[key]
cpt=''
if key!='0':
cpt=key.replace('etat','')
# Erreur generale
if not repetat.has_key('subAccountKeyId'+cpt):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
else:
print '-----------'
print 'Data '+str(key)
# Infos du retour
print 'Code: '+repetat['code'+cpt]
print 'Message: '+repetat['message'+cpt]
print 'subAccountKeyId: '+repetat['subAccountKeyId'+cpt]
print 'subAccountId: '+repetat['subAccountId'+cpt]
import java.io.*;
import java.net.*;
import java.util.*;
import java.nio.charset.StandardCharsets;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;
import java.io.PrintWriter;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_http."/cgi-bin/";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("subAccountKeyId", "ber296464ce018ab710a");
paramsTablo.put("subAccountRestrictionTime","0");
paramsTablo.put("subAccountEdit", "setRestriction");
StringBuilder urlParameters = new StringBuilder();
for (Map.Entry<String,String> param : paramsTablo.entrySet()) {
if (urlParameters.length() != 0) urlParameters.append("&");
urlParameters.append(URLEncoder.encode(param.getKey(), "UTF-8"));
urlParameters.append("=");
urlParameters.append(URLEncoder.encode(String.valueOf(param.getValue()), "UTF-8"));
}
System.out.println(urlParameters);
byte[] postData = urlParameters.toString().getBytes("UTF-8");
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
String line = content.toString();
try {
InputSource is = new InputSource(new StringReader(line));
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(is);
if(doc.getDocumentElement().getNodeName()!="etat"){
// Erreur inconnue
System.out.println("Erreur inconnue: "+line);
}else{
NodeList nList = doc.getElementsByTagName("etat");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
Node nodeN1 = nNode.getFirstChild();
if(nodeN1!=null){
String n1Name = nodeN1.getNodeName();
if(!n1Name.contains("etat")){
nodeN1 = nNode;
}
}
while(nodeN1!=null){
String n1Name = nodeN1.getNodeName();
System.out.println("-----------");
System.out.println(n1Name);
var erreur=1;
Node nodeN2 = nodeN1.getFirstChild();
while(nodeN2!=null){
String n2Name = nodeN2.getNodeName();
String n2Value = nodeN2.getFirstChild().getNodeValue();
System.out.println(n2Name+": "+n2Value);
nodeN2=nodeN2.getNextSibling();
if(n2Name.contains("subAccountId")){
erreur=0;
}
}
System.out.println("erreur: "+erreur);
if(erreur==1){
// Erreur dans le retour
}else{
// OK
}
nodeN1=nodeN1.getNextSibling();
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
} catch (Exception ex) {
System.err.println(ex);
}
}
}
https://www.isendpro.com/cgi-bin/
Paramètre | Type | Obligatoire | Détails |
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
subAccountKeyId | String | Oui | Chaine de caractère unique identifiant le sous compte |
subAccountAdresseRetour | String | Oui |
Adresse de retour vers lequel sera envoyé les accusés de réception Ex: https://monurlderetour.php |
subAccountEdit | String | Oui | Utiliser la valeur 'setAdresseRetour' |
Paramètre | Type | Détails |
code | Number | Code correspondant au tableau des erreurs |
message | String | Libellé correspondant au tableau des erreurs |
subAccountId | String | Id pour le nouveau sous compte |
subAccountKeyId | String | Clé d'identification (KeyId) pour le nouveau sous compte |
<?xml version="1.0" encoding="ISO-8859-1"?>
<etat>
<code>258</code>
<message>L url de retour a ete defini pour le sous compte</message>
<subAccountKeyId>ber296464ce018ab710a</subAccountKeyId>
<subAccountId>20474</subAccountId>
</etat>
<?xml version="1.0" encoding="ISO-8859-1"?>
<etat>
<code>257</code>
<message>Vous devez renseigner une url de retour valide</message>
<subAccountKeyId>ber296464ce018ab710a</subAccountKeyId>
</etat>
curl -X POST \
'https://www.isendpro.com/cgi-bin/' \
-H 'cache-control: no-cache' \
-d 'keyid=a296464ce012b8ab710a&subAccountKeyId=ber296464ce018ab710a&subAccountAdresseRetour=https://monurlderetour.php&subAccountEdit=setAdresseRetour'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://www.isendpro.com/cgi-bin/';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'subAccountKeyId' => 'ber296464ce018ab710a',
'subAccountAdresseRetour' => 'https://monurlderetour.php',
'subAccountEdit' => 'setAdresseRetour'
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$out = curl_exec($ch);
curl_close($ch);
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$xml = string2XML($out);
$repetatList=XML2Array($xml);
if(!array_key_exists('etat1', $repetatList)){
$repetatList=array($repetatList);
}
foreach($repetatList as $key => $value){
$cpt='';
if($key!='0'){
$cpt=str_replace('etat', '', $key);
}
// Erreur generale
if (!isset($value['subAccountKeyId'.$cpt])){
echo 'Code: '.$value['code'];
echo $sautligne;
echo 'message: '.$value['message'];
echo $sautligne;
break;
}else{
echo '-----------';
echo $sautligne;
echo 'Data '.$cpt;
echo $sautligne;
// Infos de retour
echo 'Code: '.$value['code'.$cpt];
echo $sautligne;
echo 'message: '.$value['message'.$cpt];
echo $sautligne;
echo 'subAccountKeyId: '.$value['subAccountKeyId'];
if (isset($value['subAccountId'])){
echo $sautligne;
echo 'subAccountId: '.$value['subAccountId'];
}
echo $sautligne;
}
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
import xmltodict
import types
url = 'https://www.isendpro.com/cgi-bin/'
params = {
'keyid' : 'a296464ce012b8ab710a',
'subAccountKeyId' : 'ber296464ce018ab710a',
'subAccountAdresseRetour' : 'https://monurlderetour.php',
'subAccountEdit' : 'setAdresseRetour'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Traitement du retour
####################################################################################
repetat=xmltodict.parse(response.text)
if not repetat.has_key('etat'):
# Erreur inconnue
print 'Erreur inconnue: '+repetat
else:
#repetat=repetat['etat']
repetatList=repetat['etat']
if not repetatList.has_key('etat1'):
repetatList={'0':repetat['etat']}
keysList=repetatList.keys()
keysList.sort()
for key in keysList:
repetat=repetatList[key]
cpt=''
if key!='0':
cpt=key.replace('etat','')
# Erreur generale
if not repetat.has_key('subAccountKeyId'+cpt):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
else:
print '-----------'
print 'Data '+str(key)
# Infos du retour
print 'Code: '+repetat['code'+cpt]
print 'Message: '+repetat['message'+cpt]
print 'subAccountKeyId: '+repetat['subAccountKeyId'+cpt]
print 'subAccountId: '+repetat['subAccountId'+cpt]
import java.io.*;
import java.net.*;
import java.util.*;
import java.nio.charset.StandardCharsets;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;
import java.io.PrintWriter;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_http."/cgi-bin/";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("subAccountKeyId", "ber296464ce018ab710a");
paramsTablo.put("subAccountAdresseRetour", "https://monurlderetour.php");
paramsTablo.put("subAccountEdit", "setAdresseRetour");
StringBuilder urlParameters = new StringBuilder();
for (Map.Entry<String,String> param : paramsTablo.entrySet()) {
if (urlParameters.length() != 0) urlParameters.append("&");
urlParameters.append(URLEncoder.encode(param.getKey(), "UTF-8"));
urlParameters.append("=");
urlParameters.append(URLEncoder.encode(String.valueOf(param.getValue()), "UTF-8"));
}
System.out.println(urlParameters);
byte[] postData = urlParameters.toString().getBytes("UTF-8");
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
String line = content.toString();
try {
InputSource is = new InputSource(new StringReader(line));
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(is);
if(doc.getDocumentElement().getNodeName()!="etat"){
// Erreur inconnue
System.out.println("Erreur inconnue: "+line);
}else{
NodeList nList = doc.getElementsByTagName("etat");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
Node nodeN1 = nNode.getFirstChild();
if(nodeN1!=null){
String n1Name = nodeN1.getNodeName();
if(!n1Name.contains("etat")){
nodeN1 = nNode;
}
}
while(nodeN1!=null){
String n1Name = nodeN1.getNodeName();
System.out.println("-----------");
System.out.println(n1Name);
var erreur=1;
Node nodeN2 = nodeN1.getFirstChild();
while(nodeN2!=null){
String n2Name = nodeN2.getNodeName();
String n2Value = nodeN2.getFirstChild().getNodeValue();
System.out.println(n2Name+": "+n2Value);
nodeN2=nodeN2.getNextSibling();
if(n2Name.contains("subAccountId")){
erreur=0;
}
}
System.out.println("erreur: "+erreur);
if(erreur==1){
// Erreur dans le retour
}else{
// OK
}
nodeN1=nodeN1.getNextSibling();
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
} catch (Exception ex) {
System.err.println(ex);
}
}
}
https://www.isendpro.com/cgi-bin/
Paramètre | Type | Obligatoire | Détails |
keyid | String | Oui |
Chaine de caractère unique identifiant votre compte Ex: a296464ce012b8ab710a |
subAccountKeyId | String | Oui | Chaine de caractère unique identifiant le sous compte |
subAccountAdresseSMSretour | String | Oui |
Adresse de retour vers lequel sera envoyé les réponses Ex: https://monurlderetour.php |
subAccountEdit | String | Oui | Utiliser la valeur 'setAdresseSMSretour' |
Paramètre | Type | Détails |
code | Number | Code correspondant au tableau des erreurs |
message | String | Libellé correspondant au tableau des erreurs |
subAccountId | String | Id pour le nouveau sous compte |
subAccountKeyId | String | Clé d'identification (KeyId) pour le nouveau sous compte |
<?xml version="1.0" encoding="ISO-8859-1"?>
<etat>
<code>256</code>
<message>L url de retour SMS a ete defini pour le sous compte</message>
<subAccountKeyId>ber296464ce018ab710a</subAccountKeyId>
<subAccountId>20474</subAccountId>
</etat>
<?xml version="1.0" encoding="ISO-8859-1"?>
<etat>
<code>255</code>
<message>Vous devez renseigner une url de retour SMS valide</message>
<subAccountKeyId>ber296464ce018ab710a</subAccountKeyId>
</etat>
curl -X POST \
'https://www.isendpro.com/cgi-bin/' \
-H 'cache-control: no-cache' \
-d 'keyid=a296464ce012b8ab710a&subAccountKeyId=ber296464ce018ab710a&subAccountAdresseRetour=https://monurlderetour.php&subAccountEdit=setAdresseSMSretour'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://www.isendpro.com/cgi-bin/';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'subAccountKeyId' => 'ber296464ce018ab710a',
'subAccountAdresseSMSretour'=> 'https://monurlderetour.php',
'subAccountEdit' => 'setAdresseSMSretour'
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$out = curl_exec($ch);
curl_close($ch);
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // Si utilisation script
//$sautligne="<br>"; // Si utilisation html
$xml = string2XML($out);
$repetatList=XML2Array($xml);
if(!array_key_exists('etat1', $repetatList)){
$repetatList=array($repetatList);
}
foreach($repetatList as $key => $value){
$cpt='';
if($key!='0'){
$cpt=str_replace('etat', '', $key);
}
// Erreur generale
if (!isset($value['subAccountKeyId'.$cpt])){
echo 'Code: '.$value['code'];
echo $sautligne;
echo 'message: '.$value['message'];
echo $sautligne;
break;
}else{
echo '-----------';
echo $sautligne;
echo 'Data '.$cpt;
echo $sautligne;
// Infos de retour
echo 'Code: '.$value['code'.$cpt];
echo $sautligne;
echo 'message: '.$value['message'.$cpt];
echo $sautligne;
echo 'subAccountKeyId: '.$value['subAccountKeyId'];
if (isset($value['subAccountId'])){
echo $sautligne;
echo 'subAccountId: '.$value['subAccountId'];
}
echo $sautligne;
}
}
?>
####################################################################################
#- Envoi requete
####################################################################################
import requests
import xmltodict
import types
url = 'https://www.isendpro.com/cgi-bin/'
params = {
'keyid': 'a296464ce012b8ab710a',
'subAccountKeyId': 'ber296464ce018ab710a',
'subAccountAdresseSMSretour': 'https://monurlderetour.php',
'subAccountEdit': 'setAdresseSMSretour'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Traitement du retour
####################################################################################
repetat=xmltodict.parse(response.text)
if not repetat.has_key('etat'):
# Erreur inconnue
print 'Erreur inconnue: '+repetat
else:
#repetat=repetat['etat']
repetatList=repetat['etat']
if not repetatList.has_key('etat1'):
repetatList={'0':repetat['etat']}
keysList=repetatList.keys()
keysList.sort()
for key in keysList:
repetat=repetatList[key]
cpt=''
if key!='0':
cpt=key.replace('etat','')
# Erreur generale
if not repetat.has_key('subAccountKeyId'+cpt):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
else:
print '-----------'
print 'Data '+str(key)
# Infos du retour
print 'Code: '+repetat['code'+cpt]
print 'Message: '+repetat['message'+cpt]
print 'subAccountKeyId: '+repetat['subAccountKeyId'+cpt]
print 'subAccountId: '+repetat['subAccountId'+cpt]
import java.io.*;
import java.net.*;
import java.util.*;
import java.nio.charset.StandardCharsets;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;
import java.io.PrintWriter;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Envoi requete
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_http."/cgi-bin/";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("subAccountKeyId", "ber296464ce018ab710a");
paramsTablo.put("subAccountAdresseSMSretour", "https://monurlderetour.php");
paramsTablo.put("subAccountEdit", "setAdresseSMSretour");
StringBuilder urlParameters = new StringBuilder();
for (Map.Entry<String,String> param : paramsTablo.entrySet()) {
if (urlParameters.length() != 0) urlParameters.append("&");
urlParameters.append(URLEncoder.encode(param.getKey(), "UTF-8"));
urlParameters.append("=");
urlParameters.append(URLEncoder.encode(String.valueOf(param.getValue()), "UTF-8"));
}
System.out.println(urlParameters);
byte[] postData = urlParameters.toString().getBytes("UTF-8");
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Traitement du retour
////////////////////////////////////////////////////////////////////////////////////
String line = content.toString();
try {
InputSource is = new InputSource(new StringReader(line));
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(is);
if(doc.getDocumentElement().getNodeName()!="etat"){
// Erreur inconnue
System.out.println("Erreur inconnue: "+line);
}else{
NodeList nList = doc.getElementsByTagName("etat");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
Node nodeN1 = nNode.getFirstChild();
if(nodeN1!=null){
String n1Name = nodeN1.getNodeName();
if(!n1Name.contains("etat")){
nodeN1 = nNode;
}
}
while(nodeN1!=null){
String n1Name = nodeN1.getNodeName();
System.out.println("-----------");
System.out.println(n1Name);
var erreur=1;
Node nodeN2 = nodeN1.getFirstChild();
while(nodeN2!=null){
String n2Name = nodeN2.getNodeName();
String n2Value = nodeN2.getFirstChild().getNodeValue();
System.out.println(n2Name+": "+n2Value);
nodeN2=nodeN2.getNextSibling();
if(n2Name.contains("subAccountId")){
erreur=0;
}
}
System.out.println("erreur: "+erreur);
if(erreur==1){
// Erreur dans le retour
}else{
// OK
}
nodeN1=nodeN1.getNextSibling();
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
} catch (Exception ex) {
System.err.println(ex);
}
}
}
Code | Opérateur |
ORAN | Orange |
SFR | SFR |
BOUY | Bouygues Telecom |
FREE | FREE Mobile |
NRJ | NRJ Mobile |
LYCA | LYCA Mobile |
MUND | Mundio Mobile |
CORI | Coriolis Telecom |
LBRA | Lebara |
TRAT | Transatel |
COMP | Completel |
LEGO | Legos |
MOQU | Mobiquithings |
TRUP | Truphone |
SMAA | Syma Mobile |
AIRM | Airtel |
Code erreur | Message |
0 | Votre message a bien ete envoye |
1 | The login is empty |
2 | The password is empty |
3 | Your credentials are incorrect |
4 | Vous devez saisir un message! |
5 | Le message ne doit pas depasser XXX caracteres! |
6 | Vous devez saisir un numero de telephone valide! |
7 | Un numero de telephone est sur 10 chiffres! |
9 | La route que vous avez saisie n'existe pas! |
10 | Vous n'avez pas les droits necessaires pour utiliser cette route! |
11 | Le numero de telephone est dans la liste noire! |
12 | Votre credit de MT est epuise! |
13 | La route Lowcost est down! |
14 | L'adresse IP n'est pas autorisee! |
15 | Vous devez indiquer un canal d'envoi! |
16 | L'emetteur ne peut pas etre vide! |
17 | L'emetteur doit etre sur plus de 3 caracteres et sur 11 caracteres maximum! |
18 | L'emetteur ne peut pas comporter que des chiffres! |
19 | Si un emetteur est indique, le message ne doit pas depasser 149 caracteres afin de pouvoir ajouter le texte 'STOP XXXXX' |
20 | L'emetteur ne peut pas etre modifie sur le canal LowCost! |
21 | Le numero de telephone n'est pas attribue! |
22 | Le numero de telephone est attribue a un Full MVNO |
23 | Le nombre maximum de telephones par requete est de 500 |
24 | Pas d'envoi commercial entre 20h et 08h, ni les jours feries |
25 | Il est obligatoire d'indiquer le cout vers les numeros en 0899. Ex: Pour plus de renseignements appelez le 0899 XX XX XX (1E35/apl+0.34E/min) |
26 | Il est obligatoire d'indiquer le cout vers les numeros en 0892. Ex: Pour plus de renseignements appelez le 0892 XX XX XX (0.34E/min) |
27 | L'indicatif pays du telephone n'est pas autorise! |
28 | Votre credit de qualification est epuise! |
29 | Nous ne pouvons donner suite a votre demande (overflow) |
30 | Erreur sur le domaine de connexion |
31 | Le message ne doit pas depasser XXX caracteres! |
32 | Le message est sur XXX SMS (XXX caracteres) alors que la demande est sur XXX SMS |
33 | Cet emetteur n'est pas autorise! |
34 | La valeur de smslong doit etre un entier! |
35 | Votre credit de HLR est epuise! |
36 | Vous n'etes pas autorise a retirer le STOP SMS! |
37 | Les numeros de telephone ne sont pas tous a destination du meme pays! |
38 | Le message ne doit pas depasser XXX caracteres! |
39 | Le message ne doit pas depasser XXX caracteres! |
40 | Le format de message ucs2 n'est pas autorise pour les numeros en France metropolitaine! |
41 | Vous n'etes pas autorise aux requetes HLR! |
42 | L'emetteur ne peut pas comporter de caracteres speciaux! |
43 | La date d'envoi n'est pas au bon format (AAAA-MM-JJ HH:MM)! |
44 | La zone GMT n'existe pas! |
45 | L'emetteur ne peut pas contenir 5 chiffres consecutifs! |
100 | Votre repertoire a ete cree! |
101 | Vous devez saisir un nom de repertoire! |
102 | Votre identifiant de repertoire ne correspond a aucune donnee! |
103 | Votre donnee a ete ajoutee dans le repertoire! |
104 | Ce repertoire ne peut pas etre modifie car une campagne est programme dessus! |
105 | La donnee est deja presente dans le repertoire! |
106 | Votre donnee a ete supprimee du repertoire |
107 | La donnee n'est pas presente dans le repertoire! |
108 | Cet identifiant ne correspond a aucun repertoire! |
201 | Vous devez saisir une date de debut de selection! |
202 | Vous devez saisir une date de fin de selection! |
203 | La date de debut de selection n'est pas au bon format (AAAA-MM-JJ HH:MM)! |
204 | La date de fin de selection n'est pas au bon format (AAAA-MM-JJ HH:MM)! |
205 | La selection depasse 200 000 donnees! Merci de la reduire! |
206 | La selection ne correspond a aucune donnee! |
207 | Historique des envois |
210 | Le mot cle a ete ajoute |
211 | Le mot cle a ete supprime |
212 | Liste des mot cles pour ce compte |
213 | Le mot cle n'est pas disponible |
214 | Le mot cle n'existe pas pour ce compte |
215 | Aucun mot cle pour ce compte |
216 | Le mot cle ne doit contenir ni espace, ni caractere speciaux |
217 | Le mot cle doit etre entre 3 et 20 caracteres |
220 | L emetteur a ete ajoute |
221 | L emetteur a ete supprime |
222 | Liste des emetteurs pour ce compte |
223 | L emetteur n'est pas disponible |
224 | L emetteur n'existe pas pour ce compte |
225 | Aucun emetteur pour ce compte |
230 | Le sous compte a ete ajoute |
231 | Vous devez saisir un identifiant/login pour la creation du sous compte |
232 | Vous devez saisir un mot de passe pour la creation du sous compte |
233 | Un sous compte existe deja avec cet identifiant |
234 | Aucun sous compte avec ces identifiants |
235 | Vous devez renseigner l indicatif du pays associe au prix |
236 | Vous devez renseigner un prix |
237 | Le prix a ete cree |
238 | Vous devez renseigner le montant du credit a ajouter |
239 | Le credit a ete ajoute au sous compte |
240 | La commande saisie ne correspond a aucune fonctionnalite |
241 | Le prix a ete mis a jour |
242 | Vous devez saisir la cle d identifcation du sous compte |
243 | Un sous compte ne peut pas avoir de sous compte |
244 | La restriction STOP a ete desactivee |
245 | La restriction STOP a ete activee |
246 | La restriction horaire a ete desactivee |
247 | La restriction horaire a ete activee |
248 | Les donnees de restriction ne sont pas correctes |
250 | Le lien court a ete genere |
251 | Le prix unitaire |
252 | L encours a ete defini pour le sous compte |
253 | Vous devez renseigner un encours positif |
254 | L encours |
255 | Vous devez renseigner une url de retour SMS valide |
256 | L url de retour SMS a ete defini pour le sous compte |
257 | Vous devez renseigner une url de retour valide |
258 | L url de retour a ete defini pour le sous compte |
259 | Le mot de passe du sous compte n est pas conforme! Minimum de 10 caracteres, une minuscule, une majuscule, un chiffre et un caractere special |
260 | Le quota max de requete rapportCampagne a ete depasse |
261 | Le quota max de requete shortlink a ete depasse |
777 | Le service est en maintenance. |
900 | keyId is valid |
901 | keyId is not valid |
998 | L encodage du message est incorrect |
999 | Une erreur est survenue. Merci de contacter le service technique |
Caractère | Signification | Caractère | Signification |
SP | Espace (Space en anglais) | ! | Point d'exclamation |
" | Guillemet droit | # | Croisillon et parfois Dièse ou (aussi dénommé signe numéro 8) |
% | Pourcent | & | Esperluette |
‘ | Apostrophe (guillemet fermant simple ou accent aigu) | ( | Parenthèse ouvrante |
) | Parenthèse fermante | * | Astérisque |
+ | Plus | , | Virgule |
- | Moins (aussi dénommé tiret8 ou trait d'union13) | . | Point |
/ | Barre oblique (Slash en anglais) | 0 | Le chiffre zéro |
1 | Le chiffre un | 2 | Le chiffre deux |
3 | Le chiffre trois | 4 | Le chiffre quatre |
5 | Le chiffre cinq | 6 | Le chiffre six |
7 | Le chiffre sept | 8 | Le chiffre huit |
9 | Le chiffre neuf | : | Deux-points |
; | Point-virgule | < | Inférieur |
= | Égal | > | Supérieur |
? | Point d'interrogation | @ | Arobace (aussi dénommé Arobase ou A commercial8) |
A | B | ||
C | D | ||
E | F | ||
G | H | ||
I | J | ||
K | L | ||
M | N | ||
O | P | ||
Q | R | ||
S | T | ||
U | V | ||
W | X | ||
Y | Z | ||
[ | Crochet ouvrant | ] | Crochet fermant |
_ | trait bas 8 aussi dénommé Tiret bas, ou souligné (underscore en anglais) | a | |
b | c | ||
d | e | ||
f | g | ||
h | i | ||
j | k | ||
l | m | ||
n | o | ||
p | q | ||
r | s | ||
t | u | ||
v | w | ||
x | y | ||
z | à | ||
è | é | ||
ù | € | Euro |
Caractère | Remplacé par | Caractère | Remplacé par |
À | A | Á | A |
 | A | à | A |
Ä | A | Å | A |
È | E | É | E |
Ë | E | Ì | I |
Í | I | Î | I |
Ï | I | Ò | O |
Ó | O | Ô | O |
Õ | O | Ö | O |
Ù | U | Ú | U |
Û | U | Ü | U |
á | a | â | a |
ã | a | ä | a |
å | a | ç | c |
ê | e | ë | e |
ì | i | í | i |
î | i | ï | i |
ð | o | ñ | n |
ò | o | ó | o |
ô | o | õ | o |
ö | o | ù | u |
ú | u | û | u |
ü | u | ý | y |
ÿ | y |
Caractère | Encodage | Caractère | Encodage |
Espace | %20 | $ | %24 |
& | %26 | + | %2B |
, | %2C | / | %2F |
: | %3A | ; | %3B |
? | %3D | @ | %40 |
€ | Ê ou %ca | Saut de ligne | Õ ou %d5 |
Zone GMT | Correspondance | Zone GMT | Correspondance |
Pacific/Midway | (GMT-11:00) Midway Island, Samoa | America/Adak | (GMT-10:00) Hawaii-Aleutian |
Etc/GMT+10 | (GMT-10:00) Hawaii | Pacific/Marquesas | (GMT-09:30) Marquesas Islands |
Pacific/Gambier | (GMT-09:00) Gambier Islands | America/Anchorage | (GMT-09:00) Alaska |
America/Ensenada | (GMT-08:00) Tijuana, Baja California | Etc/GMT+8 | (GMT-08:00) Pitcairn Islands |
America/Los_Angeles | (GMT-08:00) Pacific Time (US & Canada) | America/Denver | (GMT-07:00) Mountain Time (US & Canada) |
America/Chihuahua | (GMT-07:00) Chihuahua, La Paz, Mazatlan | America/Dawson_Creek | (GMT-07:00) Arizona |
America/Belize | (GMT-06:00) Saskatchewan, Central America | America/Cancun | (GMT-06:00) Guadalajara, Mexico City, Monterrey |
Chile/EasterIsland | (GMT-06:00) Easter Island | America/Chicago | (GMT-06:00) Central Time (US & Canada) |
America/New_York | (GMT-05:00) Eastern Time (US & Canada) | America/Havana | (GMT-05:00) Cuba |
America/Bogota | (GMT-05:00) Bogota, Lima, Quito, Rio Branco | America/Caracas | (GMT-04:30) Caracas |
America/Santiago | (GMT-04:00) Santiago | America/La_Paz | (GMT-04:00) La Paz |
Atlantic/Stanley | (GMT-04:00) Faukland Islands | America/Campo_Grande | (GMT-04:00) Brazil |
America/Goose_Bay | (GMT-04:00) Atlantic Time (Goose Bay) | America/Glace_Bay | (GMT-04:00) Atlantic Time (Canada) |
America/St_Johns | (GMT-03:30) Newfoundland | America/Araguaina | (GMT-03:00) UTC-3 |
America/Montevideo | (GMT-03:00) Montevideo | America/Miquelon | (GMT-03:00) Miquelon, St. Pierre |
America/Godthab | (GMT-03:00) Greenland | America/Argentina/Buenos_Aires | (GMT-03:00) Buenos Aires |
America/Sao_Paulo | (GMT-03:00) Brasilia | America/Noronha | (GMT-02:00) Mid-Atlantic |
Atlantic/Cape_Verde | (GMT-01:00) Cape Verde Is. | Atlantic/Azores | (GMT-01:00) Azores |
Europe/Belfast | (GMT) Greenwich Mean Time : Belfast | Europe/Dublin | (GMT) Greenwich Mean Time : Dublin |
Europe/Lisbon | (GMT) Greenwich Mean Time : Lisbon | Europe/London | (GMT) Greenwich Mean Time : London |
Africa/Abidjan | (GMT) Monrovia, Reykjavik | Europe/Amsterdam | (GMT+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna |
Europe/Belgrade | (GMT+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague | Europe/Brussels | (GMT+01:00) Brussels, Copenhagen, Madrid, Paris |
Africa/Algiers | (GMT+01:00) West Central Africa | Africa/Windhoek | (GMT+01:00) Windhoek |
Asia/Beirut | (GMT+02:00) Beirut | Africa/Cairo | (GMT+02:00) Cairo |
Asia/Gaza | (GMT+02:00) Gaza | Africa/Blantyre | (GMT+02:00) Harare, Pretoria |
Asia/Jerusalem | (GMT+02:00) Jerusalem | Europe/Minsk | (GMT+02:00) Minsk |
Asia/Damascus | (GMT+02:00) Syria | Europe/Moscow | (GMT+03:00) Moscow, St. Petersburg, Volgograd |
Africa/Addis_Ababa | (GMT+03:00) Nairobi | Asia/Tehran | (GMT+03:30) Tehran |
Asia/Dubai | (GMT+04:00) Abu Dhabi, Muscat | Asia/Yerevan | (GMT+04:00) Yerevan |
Asia/Kabul | (GMT+04:30) Kabul | Asia/Yekaterinburg | (GMT+05:00) Ekaterinburg |
Asia/Tashkent | (GMT+05:00) Tashkent | Asia/Kolkata | (GMT+05:30) Chennai, Kolkata, Mumbai, New Delhi |
Asia/Katmandu | (GMT+05:45) Kathmandu | Asia/Dhaka | (GMT+06:00) Astana, Dhaka |
Asia/Novosibirsk | (GMT+06:00) Novosibirsk | Asia/Rangoon | (GMT+06:30) Yangon (Rangoon) |
Asia/Bangkok | (GMT+07:00) Bangkok, Hanoi, Jakarta | Asia/Krasnoyarsk | (GMT+07:00) Krasnoyarsk |
Asia/Hong_Kong | (GMT+08:00) Beijing, Chongqing, Hong Kong, Urumqi | Asia/Irkutsk | (GMT+08:00) Irkutsk, Ulaan Bataar |
Australia/Perth | (GMT+08:00) Perth | Australia/Eucla | (GMT+08:45) Eucla |
Asia/Tokyo | (GMT+09:00) Osaka, Sapporo, Tokyo | Asia/Seoul | (GMT+09:00) Seoul |
Asia/Yakutsk | (GMT+09:00) Yakutsk | Australia/Adelaide | (GMT+09:30) Adelaide |
Australia/Darwin | (GMT+09:30) Darwin | Australia/Brisbane | (GMT+10:00) Brisbane |
Australia/Hobart | (GMT+10:00) Hobart | Asia/Vladivostok | (GMT+10:00) Vladivostok |
Australia/Lord_Howe | (GMT+10:30) Lord Howe Island | Etc/GMT-11 | (GMT+11:00) Solomon Is., New Caledonia |
Asia/Magadan | (GMT+11:00) Magadan | Pacific/Norfolk | (GMT+11:30) Norfolk Island |
Asia/Anadyr | (GMT+12:00) Anadyr, Kamchatka | Pacific/Auckland | (GMT+12:00) Auckland, Wellington |
Etc/GMT-12 | (GMT+12:00) Fiji, Kamchatka, Marshall Is. | Pacific/Chatham | (GMT+12:45) Chatham Islands |
Pacific/Tongatapu | (GMT+13:00) Nuku'alofa | Pacific/Kiritimati | (GMT+14:00) Kiritimati |
Code | Message | Code | Message |
000 | Service temporairement indisponible | 002 | Service temporairement indisponible |
003 | Service temporairement indisponible | 004 | Service temporairement indisponible |
005 | Service temporairement indisponible | 006 | Service temporairement indisponible |
007 | Service temporairement indisponible | 008 | Service temporairement indisponible |
009 | Code d'erreur illégal | 010 | Expiration de la temporisation du réseau |
100 | Fonctionnalité non supportée | 101 | Abonné inconnu |
102 | Fonctionnalité non offerte | 103 | Appel bloqué |
104 | Opération bloquée | 105 | Surcharge du SMS-C |
106 | Fonctionnalité non supportée | 107 | Abonné absent |
108 | Echec de remise | 109 | Surcharge su SMS-C |
110 | Erreur de protocole | 111 | Mobile non équipé |
112 | SMS-C inconnu | 113 | Surcharge du SMS-C |
114 | Mobile illégal | 115 | Mobile pas abonné |
116 | Erreur dans le mobile | 117 | Couche basse SMS non provisionnée |
118 | Echec du système | 119 | Erreur système du PLMN |
120 | Erreur système du HLR | 121 | Erreur du système du VLR |
122 | Erreur du système du VLR précédent | 123 | Erreur du système du MSC de contrôle |
124 | Erreur du système du VMC | 125 | Erreur du système du EIR |
126 | Erreur système | 127 | Valeur inattendue |
200 | Erreur dans l'adresse du SMS-C | 201 | Période de validité absolue non valide |
202 | Message court trop long | 203 | Impossible de lire le message GSM |
204 | Impossible de convertir en alphabet IA5 | 206 | Format de période de validité invalide |
207 | Message dupliqué | 208 | Indicateur de type de message (MT) invalide |
Code | Message | Description |
1 | ACK | Message is delivered to destination |
0 | ERROR | Message is undeliverable |
Code | Message | Description |
1 | ENROUTE | The message is in enroute state |
2 | DELIVERED | Message is delivered to destination |
3 | EXPIRED | Message validity period has expired |
4 | DELETED | Message has been deleted |
5 | UNDELIVERABLE | Message is undeliverable |
6 | ACCEPTED | Message is in accepted state (i.e. has been manually read on behalf of the subscriber by customer service) |
7 | UNKNOWN | Message is in an invalid state |
8 | REJECTED | Message is in a rejected state |
{
"etat":{
"etat":[
{
"code":"21",
"tel":"0600208432",
"message":"The phone number is invalid"
},
{
"code":"11",
"tel":"0771058335",
"message":"The phone number is in the blacklist"
},
{
"code":"0",
"tel":"0695208432",
"message":"Your message has been sent"v
}
]
}
}
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/sms' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"num": "33601020304",
"sms": "Hello! Welcome to iSendPro!",
"emetteur": "isendpro"
}'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://apirest.isendpro.com/cgi-bin/sms';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'num' => '33601020304',
'sms' => 'Hello! Welcome to iSendPro!',
'emetteur' => 'isendpro'
);
$params = json_encode($params);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
echo $response;
curl_close($ch);
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // If script use
//$sautligne="<br>"; // If html use
$reponsejson=json_decode($response);
$repetat=$reponsejson->etat->etat;
if (!isset($repetat->code)){
$repetat=$reponsejson->etat->etat[0];
}
// General error
if (!isset($repetat->tel)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
// Specific error to the phone number
}else if (isset($repetat->tel) && ($repetat->code!=0)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
echo 'Tel: '.$repetat->tel;
// Sending OK
}else if (isset($repetat->tel) && ($repetat->code==0)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
echo 'Tel: '.$repetat->tel;
}
?>
####################################################################################
#- Send request
####################################################################################
import requests
url = 'https://apirest.isendpro.com/cgi-bin/sms'
params = {
'keyid': 'a296464ce012b8ab710a',
'num': '33601020304',
'sms': 'Hello! Welcome to iSendPro!',
'emetteur': 'isendpro'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Return processing
####################################################################################
reponsejson=response.json()
repetat=reponsejson['etat']
if not repetat.has_key('code'):
try:
repetat=reponsejson['etat']['etat'][0]
except:
repetat=reponsejson['etat']['etat']
# General error
if not repetat.has_key('tel'):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Specific error to the phone number
elif repetat.has_key('tel') and repetat['code']!=0:
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
print 'Tel: '+repetat['tel']
# Sending OK
elif repetat.has_key('tel') and repetat['code']==0:
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
print 'Tel: '+repetat['tel']
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_rest."/cgi-bin/sms";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("num", "33601020304");
paramsTablo.put("sms", "Hello! Welcome to iSendPro!");
paramsTablo.put("senderid", "isendpro");
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
Map reponsejson = new Gson().fromJson(content.toString(), Map.class);
Map repetat = (Map)reponsejson.get("etat");
if (! repetat.containsKey("code")){
try{
repetat=(Map)reponsejson.get("etat");
var repetatArray=((ArrayList)(repetat.get("etat"))).get(0);
repetat=(Map)(repetatArray);
}catch(Exception e) {
repetat=(Map)reponsejson.get("etat");
repetat=(Map)repetat.get("etat");
}
}
// General error
if (! repetat.containsKey("tel")){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
// Specific error to the phone number
}else if(repetat.containsKey("tel") && repetat.get("code")!="0"){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
System.out.println("Tel: "+repetat.get("tel"));
// Sending OK
}else if(repetat.containsKey("tel") && repetat.get("code")=="0"){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
System.out.println("Tel: "+repetat.get("tel"));
}
} finally {
con.disconnect();
}
}
}
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/sms' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"num": "33601020304",
"sms": "Hello! Welcome to iSendPro! 🙂",
"ucs2": "1"
}'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://apirest.isendpro.com/cgi-bin/sms';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'num' => '33601020304',
'sms' => 'Hello! Welcome to iSendPro! 🙂',
'ucs2' => '1'
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
echo $response;
curl_close($ch);
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // If script use
//$sautligne="<br>"; // If html use
$reponsejson=json_decode($response);
$repetat=$reponsejson->etat->etat;
if (!isset($repetat->code)){
$repetat=$reponsejson->etat->etat[0];
}
// General error
if (!isset($repetat->tel)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
// Specific error to the phone number
}else if (isset($repetat->tel) && ($repetat->code!=0)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
echo 'Tel: '.$repetat->tel;
// Sending OK
}else if (isset($repetat->tel) && ($repetat->code==0)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
echo 'Tel: '.$repetat->tel;
}
?>
####################################################################################
#- Send request
####################################################################################
import requests
url = 'https://apirest.isendpro.com/cgi-bin/sms'
params = {
'keyid': 'a296464ce012b8ab710a',
'num': '33601020304',
'sms': 'Hello! Welcome to iSendPro! 🙂',
'ucs2': '1'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Return processing
####################################################################################
reponsejson=response.json()
repetat=reponsejson['etat']
if not repetat.has_key('code'):
try:
repetat=reponsejson['etat']['etat'][0]
except:
repetat=reponsejson['etat']['etat']
# General error
if not repetat.has_key('tel'):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Specific error to the phone number
elif repetat.has_key('tel') and repetat['code']!=0:
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
print 'Tel: '+repetat['tel']
# Sending OK
elif repetat.has_key('tel') and repetat['code']==0:
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
print 'Tel: '+repetat['tel']
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_rest."/cgi-bin/sms";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("num", "33601020304");
paramsTablo.put("sms", "Hello! Welcome to iSendPro! 🙂");
paramsTablo.put("ucs2", "1");
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
Map reponsejson = new Gson().fromJson(content.toString(), Map.class);
Map repetat = (Map)reponsejson.get("etat");
if (! repetat.containsKey("code")){
try{
repetat=(Map)reponsejson.get("etat");
var repetatArray=((ArrayList)(repetat.get("etat"))).get(0);
repetat=(Map)(repetatArray);
}catch(Exception e) {
repetat=(Map)reponsejson.get("etat");
repetat=(Map)repetat.get("etat");
}
}
// General error
if (! repetat.containsKey("tel")){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
// Specific error to the phone number
}else if(repetat.containsKey("tel") && repetat.get("code")!="0"){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
System.out.println("Tel: "+repetat.get("tel"));
// Sending OK
}else if(repetat.containsKey("tel") && repetat.get("code")=="0"){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
System.out.println("Tel: "+repetat.get("tel"));
}
} finally {
con.disconnect();
}
}
}
https://apirest.isendpro.com/cgi-bin/sms
Parameter | Type | Mandatory | Details | |||||||||||||||||||||
keyid | String | Yes |
Unique string identifying your account E.g.: a296464ce012b8ab710a |
|||||||||||||||||||||
num | String | Yes |
Recipient's phone number In international format without the + E.g.: 33601020304 |
|||||||||||||||||||||
sms | String | Yes |
Message sent to the recipient 1 SMS can contain up to 160 characters Possibility to send longer messages (up to 6 concatenated SMS) for a total of 918 characters (6 x 153) (7 characters being reserved for technical headings) The unit cost will then be multiplied by the number of corresponding SMS messages. Cf Argument smslong |
|||||||||||||||||||||
senderid | String | No |
Message sender By default, a 5-digit short number E.g.: 36007 Constraints:
|
|||||||||||||||||||||
tracker | String | No |
Client generated Returned as a parameter in the urls for acknowledgement and sms response returns Maximum length of 50 characters E.g.: order-ab78pq9 |
|||||||||||||||||||||
smslong | Number | No |
Argument indicating the number of concatenated SMS messages If the exact number of SMS is known then indicate this number If the number calculated by the API differs then an error message will be returned (code 32). To avoid this control and allow messages on more than 1 SMS, use the value 999.
|
|||||||||||||||||||||
nostop | Number | No |
Argument for not automatically displaying STOP SMS at the end of the message Use value 1 |
|||||||||||||||||||||
sending_date |
Date in the format YYYY-MM-DD hh:mm |
No | Date on which the message will be sent | |||||||||||||||||||||
gmt_zone | Time Zone | No |
To be filled in, in case of delayed sending on another Time Zone than the default one (GMT+1 Europe/Brussels) E.g.: For a shipment to recipients in Argentina with local time and No. in France, the value of the gmt_zone argument would be America/Havana. |
|||||||||||||||||||||
ucs2 | Number | No |
Allows the use of characters in No Latin alphabet (Russian, Chinese, Arabic, etc) and/or with emojis Constraints:
|
|||||||||||||||||||||
numAzur | Number | No |
Within the framework of a combined use between SMS Azur and the API, it is possible to force the sender number to be the same as the one used on SMS Azur. Use value 1 |
|||||||||||||||||||||
domtom | Number | No |
Sendings to operator prefixes to DOM TOM (or DROM-COM) without the associated country code (e.g. +262 for Reunion Island) are refused by the API To force their treatment at the current rate, use value 1 |
|||||||||||||||||||||
sandbox | Number | No |
Activation of the "sandbox" mode This field allows you to not actually send the SMS during the query . Sendings are not charged . Use value 1 |
Parameter | Type | Details |
code | Number | Code corresponding to the error table |
tel | String | Phone number associated with the return code |
message | String | Wording corresponding to the error table |
sandbox | Number |
If 'sandbox' was in the calling parameters, it's value is 1 If not, this parameter is not displayed at all |
{
"etat":{
"etat":[
{
"code": "0",
"tel": "0680010203",
"message": "Your message has been sent"
}
]
}
}
{
"etat":{
"etat":[
{
"code": "6",
"message": "You must enter a valid phone number"
}
]
}
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/sms' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"num": "33601020304",
"sms": "Hello! Welcome to iSendPro!",
"senderid": "isendpro"
}'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://apirest.isendpro.com/cgi-bin/sms';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'num' => '33601020304',
'sms' => 'Hello! Welcome to iSendPro!',
'senderid' => 'isendpro'
);
$params = json_encode($params);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
echo $response;
curl_close($ch);
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // If script use
//$sautligne="<br>"; // If html use
$reponsejson=json_decode($response);
$repetat=$reponsejson->etat->etat;
if (!isset($repetat->code)){
$repetat=$reponsejson->etat->etat[0];
}
// General error
if (!isset($repetat->tel)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
// Specific error to the phone number
}else if (isset($repetat->tel) && ($repetat->code!=0)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
echo 'Tel: '.$repetat->tel;
// Sending OK
}else if (isset($repetat->tel) && ($repetat->code==0)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
echo 'Tel: '.$repetat->tel;
}
?>
####################################################################################
#- Send request
####################################################################################
import requests
url = 'https://apirest.isendpro.com/cgi-bin/sms'
params = {
'keyid': 'a296464ce012b8ab710a',
'num': '33601020304',
'sms': 'Hello! Welcome to iSendPro!',
'senderid': 'isendpro'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Return processing
####################################################################################
reponsejson=response.json()
repetat=reponsejson['etat']
if not repetat.has_key('code'):
try:
repetat=reponsejson['etat']['etat'][0]
except:
repetat=reponsejson['etat']['etat']
# General error
if not repetat.has_key('tel'):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Specific error to the phone number
elif repetat.has_key('tel') and repetat['code']!=0:
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
print 'Tel: '+repetat['tel']
# Sending OK
elif repetat.has_key('tel') and repetat['code']==0:
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
print 'Tel: '+repetat['tel']
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_rest."/cgi-bin/sms";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("num", "33601020304");
paramsTablo.put("sms", "Hello! Welcome to iSendPro!");
paramsTablo.put("senderid", "isendpro");
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
Map reponsejson = new Gson().fromJson(content.toString(), Map.class);
Map repetat = (Map)reponsejson.get("etat");
if (! repetat.containsKey("code")){
try{
repetat=(Map)reponsejson.get("etat");
var repetatArray=((ArrayList)(repetat.get("etat"))).get(0);
repetat=(Map)(repetatArray);
}catch(Exception e) {
repetat=(Map)reponsejson.get("etat");
repetat=(Map)repetat.get("etat");
}
}
// General error
if (! repetat.containsKey("tel")){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
// Specific error to the phone number
}else if(repetat.containsKey("tel") && repetat.get("code")!="0"){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
System.out.println("Tel: "+repetat.get("tel"));
// Sending OK
}else if(repetat.containsKey("tel") && repetat.get("code")=="0"){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
System.out.println("Tel: "+repetat.get("tel"));
}
} finally {
con.disconnect();
}
}
}
https://apirest.isendpro.com/cgi-bin/smsmulti
Parameter | Type | Mandatory | Details | |||||||||||||||||||||
keyid | String | Yes |
Unique string identifying your account E.g.: a296464ce012b8ab710a |
|||||||||||||||||||||
num | Array | Yes |
List of recipient's phone numbers In international format without the + E.g.: [ "33601020304", "33601020305", "33601020306" ] |
|||||||||||||||||||||
sms | String | Yes |
Message sent to the recipient 1 SMS can contain up to 160 characters Possibility to send longer messages (up to 6 concatenated SMS) for a total of 918 characters (6 x 153) (7 characters being reserved for technical headings) The unit cost will then be multiplied by the number of corresponding SMS messages. Cf Argument smslong |
|||||||||||||||||||||
senderid | String | No |
Message sender By default, a 5-digit short number E.g.: 36007 Constraints:
|
|||||||||||||||||||||
tracker | String | No |
Client-generated Returned as a parameter in the urls for acknowledgement and sms response returns Maximum length of 50 characters E.g.: order-ab78pq9 |
|||||||||||||||||||||
smslong | Number | No |
Argument indicating the number of concatenated SMS messages If the exact number of SMS is known then indicate this number If the number calculated by the API differs then an error message will be returned (code 32). To avoid this control and allow messages on more than 1 SMS, use the value 999.
|
|||||||||||||||||||||
nostop | Number | No |
Argument for not automatically displaying STOP SMS at the end of the message Use value 1 |
|||||||||||||||||||||
sending_date |
Date in the format YYYY-MM-DD hh:mm |
No |
Date on which the message will be sent Envoi immédiat si No renseigné |
|||||||||||||||||||||
gmt_zone | Time Zone | No |
To be filled in, in case of delayed sending on another Time Zone than the default one (GMT+1 Europe/Brussels) E.g.: For a shipment to recipients in Argentina with local time and No. in France, the value of the gmt_zone argument would be America/Havana. |
|||||||||||||||||||||
ucs2 | Number | No |
Allows the use of characters in No Latin alphabet (Russian, Chinese, Arabic, etc) and/or with emojis Constraints:
|
|||||||||||||||||||||
numAzur | Number | No |
Within the framework of a combined use between SMS Azur and the API, it is possible to force the sender number to be the same as the one used on SMS Azur. Use value 1 |
|||||||||||||||||||||
domtom | Number | No |
Sendings to operator prefixes to DOM TOM (or DROM-COM) without the associated country code (e.g. +262 for Reunion Island) are refused by the API To force their treatment at the current rate, use value 1 |
|||||||||||||||||||||
sandbox | Number | No |
Activation of the "sandbox" mode This field allows you to not actually send the SMS during the query . Sendings are not charged . Use value 1 |
Parameter | Type | Details |
code | Number | Code corresponding to the error table |
tel | String | Phone number associated with the return code |
message | String | Wording corresponding to the error table |
sandbox | Number |
If 'sandbox' was in the calling parameters, it's value is 1 If not, this parameter is not displayed at all |
{
"etat":{
"etat":[
{
"code": "0",
"tel": "33601020304",
"message": "Your message has been sent"
},
{
"code": "0",
"tel": "33601020305",
"message": "Your message has been sent"
}
]
}
}
{
"etat":{
"etat":[
{
"code": "21",
"tel": "33601020304",
"message": "Le numéro de téléphone n'est pas attribué!"
},
{
"code": "11",
"tel": "33601020305",
"message": "Le numero de telephone est dans la liste noire!""
}
]
}
}
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/smsmulti' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"num": ["33601020304","33601020305","33601020306"],
"sms": "Hello! Welcome to iSendPro!",
"senderid": "isendpro"
}'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://apirest.isendpro.com/cgi-bin/smsmulti';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'num' => ['33601020304','33601020305'],
'sms' => 'Hello! Welcome to iSendPro!',
'senderid' => 'isendpro'
);
$params = json_encode($params);
$options = array(
CURLOPT_URL => $url,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params,
CURLOPT_HTTPHEADER => array(
'Content-Type' => 'application/json',
'Content-Length: ' => strlen($params)
)
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // If script use
//$sautligne="<br>"; // If html use
$reponsejson=json_decode($response);
$repetatList=$reponsejson->etat->etat;
if(!is_array($repetatList)){
$repetatList=array($repetatList);
}
$cpt=1;
foreach($repetatList as $repetat){
echo '-----------';
echo $sautligne;
echo 'Data '.$cpt;
echo $sautligne;
// General error
if (!isset($repetat->tel)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
// Specific error to the phone number
}else if (isset($repetat->tel) && ($repetat->code!=0)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
echo 'Tel: '.$repetat->tel;
echo $sautligne;
// Sending OK
}else if (isset($repetat->tel) && ($repetat->code==0)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
echo 'Tel: '.$repetat->tel;
echo $sautligne;
}
$cpt+=1;
}
?>
####################################################################################
#- Send request
####################################################################################
import requests
import types
url = 'https://apirest.isendpro.com/cgi-bin/smsmulti'
params = {
'keyid': 'a296464ce012b8ab710a',
'num': ['33601020304','33601020305','33601020306'],
'sms': 'Hello! Welcome to iSendPro!',
'senderid': 'isendpro'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Return processing
####################################################################################
reponsejson=response.json()
repetatList=reponsejson['etat']['etat']
if not type(repetatList) is types.ListType:
repetatList=[repetatList]
cpt=1
for repetat in repetatList:
print '-----------'
print 'Data '+str(cpt)
# General error
if not repetat.has_key('tel'):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Specific error to the phone number
elif repetat.has_key('tel') and repetat['code']!=0:
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
print 'Tel: '+repetat['tel']
# Sending OK
elif repetat.has_key('tel') and repetat['code']==0:
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
print 'Tel: '+repetat['tel']
cpt+=1
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_rest."/cgi-bin/smsmulti";
ArrayList<String> listData = new ArrayList<String>();
listData.add("33601020304");
listData.add("33601020305");
listData.add("33601020306");
Map<String, Object> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("num", listData);
paramsTablo.put("sms", "Hello! Welcome to iSendPro!");
paramsTablo.put("senderid", "isendpro");
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
Map reponsejson = new Gson().fromJson(content.toString(), Map.class);
Map repetat = (Map)reponsejson.get("etat");
ArrayList repetatList = (ArrayList)repetat.get("etat");
if(! (repetatList instanceof ArrayList)){
repetatList.add(repetatList);
}
for (int i = 0; i < repetatList.size(); i++) {
repetat = (Map)repetatList.get(i);
System.out.println("-----------");
System.out.println("Data "+i);
// General error
if (! repetat.containsKey("tel")){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
// Specific error to the phone number
}else if(repetat.containsKey("tel") && repetat.get("code")!="0"){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
System.out.println("Tel: "+repetat.get("tel"));
// Sending OK
}else if(repetat.containsKey("tel") && repetat.get("code")=="0"){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
System.out.println("Tel: "+repetat.get("tel"));
}
}
} finally {
con.disconnect();
}
}
}
https://apirest.isendpro.com/cgi-bin/smsmulti
Parameter | Type | Mandatory | Details |
keyid | String | Yes |
Unique string identifying your account E.g.: a296464ce012b8ab710a |
directoryId | String | Yes | Target directory identifier |
sms | String | Yes |
Message sent to the recipient 1 SMS can contain up to 160 characters Possibility to send longer messages (up to 6 concatenated SMS) for a total of 918 characters (6 x 153) (7 characters being reserved for technical headings) The unit cost will then be multiplied by the number of corresponding SMS messages. Cf Argument smslong |
senderid | String | No |
Message sender By default, a 5-digit short number E.g.: 36007 Constraints:
|
tracker | String | No |
Client-generated argument to associate acknowledgements or responses Maximum length of 50 characters E.g.: order-ab78pq9 |
smslong | Number | No |
Argument indicating the number of concatenated SMS messages If the exact number of SMS is known then indicate this number If the number calculated by the API differs then an error message will be returned (code 32). To avoid this control and allow messages on more than 1 SMS, use the value 999. |
nostop | Number | No |
Argument for not automatically displaying STOP SMS at the end of the message Use value 1 |
sending_date |
Date in the format YYYY-MM-DD hh:mm |
No |
Date on which the message will be sent Immediate dispatch if not filled in |
gmt_zone | Time Zone | No |
To be filled in, in case of delayed sending on another Time Zone than the default one (Europe/London) |
ucs2 | Number | No |
Allows the use of characters in No Latin alphabet (Russian, Chinese, Arabic, etc) and/or with emojis Constraints:
|
numAzur | Number | No |
Within the framework of a combined use between SMS Azur and the API, it is possible to force the sender number to be the same as the one used on SMS Azur. Use value 1 |
domtom | Number | No |
Sendings to operator prefixes to DOM TOM (or DROM-COM) without the associated country code (e.g. +262 for Reunion Island) are refused by the API To force their treatment at the current rate, use value 1 |
sandbox | Number | No |
Activation of the "sandbox" mode This field allows you to not actually send the SMS during the query . Sendings are not charged . Use value 1 |
Parameter | Type | Details |
code | Number | Code corresponding to the error table |
directoryId | String | Target directory identifier |
message | String | Wording corresponding to the error table |
sandbox | Number |
If 'sandbox' was in the calling parameters, it's value is 1 If not, this parameter is not displayed at all |
{
"etat":{
"etat":[
{
"code": "0",
"directoryId": "123456789",
"message": "Your message has been sent"
}
]
}
}
{
"etat":{
"etat":[
{
"code": "108",
"directoryId": "123456789",
"message": "This id does not match any directory!"
}
]
}
}
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/smsmulti' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"directoryId":"123456789",
"sms": "Hello! Welcome to iSendPro!",
"senderid": "isendpro"
}'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://apirest.isendpro.com/cgi-bin/smsmulti';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'directoryId' => '123456789',
'sms' => 'Hello! Welcome to iSendPro!',
'senderid' => 'isendpro'
);
$params = json_encode($params);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // If script use
//$sautligne="<br>"; // If html use
$reponsejson=json_decode($response);
$repetat=$reponsejson->etat->etat;
if (!isset($repetat->code)){
$repetat=$reponsejson->etat->etat[0];
}
// General error
if (!isset($repetat->directoryId)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
// Erreur specifique au repertoire
}else if (isset($repetat->directoryId) && ($repetat->code!=0)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
echo 'directoryId: '.$repetat->directoryId;
// Sending OK
}else if (isset($repetat->directoryId) && ($repetat->code==0)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
echo 'directoryId: '.$repetat->directoryId;
}
?>
####################################################################################
#- Send request
####################################################################################
import requests
url = 'https://apirest.isendpro.com/cgi-bin/smsmulti'
params = {
'keyid': 'a296464ce012b8ab710a',
'directoryId': '123456789',
'sms': 'Hello! Welcome to iSendPro!',
'senderid': 'isendpro'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Return processing
####################################################################################
reponsejson=response.json()
repetat=reponsejson['etat']
if not repetat.has_key('code'):
try:
repetat=reponsejson['etat']['etat'][0]
except:
repetat=reponsejson['etat']['etat']
# General error
if not repetat.has_key('directoryId'):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Erreur specifique au repertoire
elif repetat.has_key('directoryId') and repetat['code']!=0:
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
print 'directoryId: '+repetat['directoryId']
# Sending OK
elif repetat.has_key('directoryId') and repetat['code']==0:
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
print 'directoryId: '+repetat['directoryId']
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_rest."/cgi-bin/smsmulti";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("directoryId", "123456789");
paramsTablo.put("sms", "Hello! Welcome to iSendPro!");
paramsTablo.put("senderid", "isendpro");
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
Map reponsejson = new Gson().fromJson(content.toString(), Map.class);
Map repetat = (Map)reponsejson.get("etat");
if (! repetat.containsKey("code")){
try{
repetat=(Map)reponsejson.get("etat");
var repetatArray=((ArrayList)(repetat.get("etat"))).get(0);
repetat=(Map)(repetatArray);
}catch(Exception e) {
repetat=(Map)reponsejson.get("etat");
repetat=(Map)repetat.get("etat");
}
}
// General error
if (! repetat.containsKey("directoryId")){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
// Erreur specifique au repertoire
}else if(repetat.containsKey("directoryId") && repetat.get("code")!="0"){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
System.out.println("directoryId: "+repetat.get("directoryId"));
// Sending OK
}else if(repetat.containsKey("directoryId") && repetat.get("code")=="0"){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
System.out.println("directoryId: "+repetat.get("directoryId"));
}
} finally {
con.disconnect();
}
}
}
https://apirest.isendpro.com/cgi-bin/shortlink
Parameter | Type | Mandatory | Details |
keyid | String | Yes |
Unique string identifying your account E.g.: a296464ce012b8ab710a |
type_shortlink | Number | No |
Shortened url type 0: www.sms.ht (default value) 1: url2.fr |
shortlink | String | Yes | Url to shorten |
Parameter | Type | Details |
code | Number | Code corresponding to the error table |
message | String | Wording corresponding to the error table (see Appendices) |
shortlink | String |
Shortened Url Format: www.sms.ht/[XXXX] ou url2.fr/[XXXX] E.g.: www.sms.ht/6gHw or url2.fr/6gHw |
{
"etat": {
"etat": [
{
"code": "250",
"message": "The shortlink has been generated",
"shortlink":"www.sms.ht/6X8Y"
}
]
}
}
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/shortlink' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"shortlink": "https://www.google.com/"
}'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://apirest.isendpro.com/cgi-bin/shortlink';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'shortlink' => 'https://www.google.com/'
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // If script use
//$sautligne="<br>"; // If html use
$reponsejson=json_decode($response);
$repetat=$reponsejson->etat->etat;
if (!isset($repetat->code)){
$repetat=$reponsejson->etat->etat[0];
}
// General error
if (!isset($repetat->shortlink)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
// Infos du lien court
}else{
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'shortlink: '.$repetat->shortlink;
echo $sautligne;
echo 'message: '.$repetat->message;
}
?>
####################################################################################
#- Send request
####################################################################################
import requests
url = 'https://apirest.isendpro.com/cgi-bin/shortlink'
params = {
'keyid': 'a296464ce012b8ab710a',
'shortlink': 'https://www.google.com/'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Return processing
####################################################################################
reponsejson=response.json()
repetat=reponsejson['etat']
if not repetat.has_key('code'):
try:
repetat=reponsejson['etat']['etat'][0]
except:
repetat=reponsejson['etat']['etat']
# General error
if not repetat.has_key('shortlink'):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Infos du lien court
else:
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
print 'Shortlink: '+repetat['shortlink']
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_rest."/cgi-bin/shortlink";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("shortlink", "https://www.google.com/");
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
Map reponsejson = new Gson().fromJson(content.toString(), Map.class);
Map repetat = (Map)reponsejson.get("etat");
if (! repetat.containsKey("code")){
try{
repetat=(Map)reponsejson.get("etat");
var repetatArray=((ArrayList)(repetat.get("etat"))).get(0);
repetat=(Map)(repetatArray);
}catch(Exception e) {
repetat=(Map)reponsejson.get("etat");
repetat=(Map)repetat.get("etat");
}
}
// General error
if (! repetat.containsKey("shortlink")){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
// Infos du lien court
}else{
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
System.out.println("shortlink: "+repetat.get("shortlink"));
}
} finally {
con.disconnect();
}
}
}
https://apirest.isendpro.com/cgi-bin/campagne
Parameter | Type | Mandatory | Details |
keyid | String | Yes |
Unique string identifying your account E.g.: a296464ce012b8ab710a |
sendingReport | Number | Yes |
Use the following value:
|
starting_date |
Date in the format YYYY-MM-DD hh:mm |
Yes | Start date for sending the selection |
ending_date |
Date in the format YYYY-MM-DD hh:mm |
Yes | End date for sending the selection |
Parameter | Type | Details |
Date d'envoi | date | Date of sending the SMS |
senderid | String | Message senderid |
Destinataire | String | Telephone number to which the message is addressed |
Message | String | Sent message |
Information complémentaire | String | Indicates operator and message status |
Infos details | String | Indicates the acknowledgement of receipt provided by the operator |
Statut | String | Message status |
SMS retour | String | Possible response from the recipient |
Canal | String | Haute Qualite |
Prix | Number | Cost of the message |
STOP | Number | Indicates whether the recipient has replied STOP |
Tracker | String | Argument possibly provided at the time of sending for a simplified identification |
Operateur | String | Operator associated with the recipient |
Date AR | date | Date of receipt of operator acknowledgement of receipt |
Code erreur | Number | Code associated with the acknowledgement of receipt |
Parameter | Type | Details |
Date d'envoi | date | Date of sending the SMS |
Campagne | String | Campaign title |
Répertoire | String | Directory(s) associated to sendings |
senderid | String | Message senderid |
Message | String | Campaign message if out of API |
Pays | String | Recipient's country |
Envois prévus | Number | Number of planned sendings |
Envois reels | Number | Number of actual sendings |
Envois No aboutis | Number | Number of undelivered sendings |
SMS Long | Number | Number of SMS for the message |
STOP | Number | Number of STOP received |
clics | Number | Number of clicks |
Visiteur unique | Number | Number of unique visitors |
Taux visite | Number | Rate of visits |
Cout HT | Number | Cost of the campaign in euros HT |
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/campagne' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"sendingReport": 1,
"starting_date": "2020-01-01 10:00",
"ending_date": "2020-01-07 20:00"
}' \
-o sendingReport.zip
<?php
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$zipName = 'sendingReport.zip';
$zipDirectory = '/VOTRE_REPERTOIRE/';
$fp = fopen($zipDirectory.$zipName, 'w');
$url = 'https://apirest.isendpro.com/cgi-bin/campagne';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'sendingReport' => 1,
'starting_date' => '2020-01-01 10:00',
'ending_date' => '2020-01-07 20:00',
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
curl_setopt($ch, CURLOPT_FILE, $fp);
$response = curl_exec($ch);
fwrite($fp, $response);
curl_close($ch);
fclose($fp);
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // If script use
//$sautligne="<br>"; // If html use
// Unzip the file
$za = new ZipArchive();
$za->open($zipDirectory.$zipName);
for( $i = 0; $i < $za->numFiles; $i++ ){
$stat = $za->statIndex( $i );
$fileName = basename($stat['name']);
print_r($fileName.PHP_EOL);
$za->extractTo($zipDirectory);
$za->close();
// Lecture du fichier csv dans le zip
$fn = fopen($fileName, 'r');
// Liste des titres de colonnes
$titres = fgetcsv($fn, 1000, ';');
while (($data = fgetcsv($fn, 1000, ';')) !== FALSE){
foreach($data as $i => $d){
if($d){
// Affichage des donnees de la ligne
echo $titres[$i].' => '.$d.PHP_EOL;
}
}
// Line break
echo PHP_EOL;
}
// Deleting the .csv file
unlink($zipDirectory.$fileName);
}
// Deleting the .zip file
unlink($zipDirectory.$zipName);
?>
####################################################################################
#- Send request
####################################################################################
import shutil
import requests
import zipfile
import os
zipName = 'sendingReport.zip'
zipDirectory = '/VOTRE_REPERTOIRE/'
url = 'https://apirest.isendpro.com/cgi-bin/campagne'
params = {
'keyid': 'a296464ce012b8ab710a',
'sendingReport': 1,
'starting_date': '2020-01-01 10:00',
'ending_date': '2020-01-07 20:00',
}
response = requests.post(url, params, stream=True)
with open(zipDirectory+zipName, 'wb') as f:
response.raw.decode_content = True
shutil.copyfileobj(response.raw, f)
####################################################################################
#- Return processing
####################################################################################
myzipfile = zipfile.ZipFile(zipDirectory+zipName)
for fileName in myzipfile.namelist():
# Unzip the file vers zipDirectory
with zipfile.ZipFile(zipDirectory+zipName, 'r') as zip_ref:
zip_ref.extractall(zipDirectory)
# Lecture du fichier csv dans le zip
fichier = open(zipDirectory+fileName)
lines = fichier.readlines()
firstLine=1
for line in lines:
line=line.strip()
line=line.split(';')
if firstLine:
# Liste des titres de colonnes
firstLine=0
titres=line
else:
i=0
for data in line:
if data:
# Affichage des donnees de la ligne
print titres[i]+' => '+data
i+=1
# Deleting the .csv file
os.remove(zipDirectory+fileName)
# Deleting the .zip file
os.remove(zipDirectory+zipName)
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.io.BufferedReader;
import java.io.FileReader;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
/**
* Size of the buffer to read/write data
*/
private static final int BUFFER_SIZE = 4096;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_rest."/cgi-bin/campagne";
var zipName = "sendingReport.zip";
var zipDirectory = "/VOTRE_REPERTOIRE/";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("sendingReport", "1");
paramsTablo.put("starting_date", "2020-01-01 10:00");
paramsTablo.put("ending_date", "2020-01-07 20:00");
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
File myzipfile = new File(zipDirectory+zipName);
OutputStream outStream = new FileOutputStream(myzipfile);
InputStream inputStream = con.getInputStream();
int read;
byte[] bytes = new byte[1024];
while ((read = inputStream.read(bytes)) != -1) {
outStream.write(bytes, 0, read);
}
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
File destDir = new File(zipDirectory);
ZipInputStream zipIn = new ZipInputStream(new FileInputStream(zipDirectory+zipName));
ZipEntry entry = zipIn.getNextEntry();
// iterates over entries in the zip file
while (entry != null) {
File mycsvfile = new File(zipDirectory+entry.getName());
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(zipDirectory+entry.getName()));
byte[] bytesIn = new byte[BUFFER_SIZE];
int read2 = 0;
while ((read2 = zipIn.read(bytesIn)) != -1) {
bos.write(bytesIn, 0, read2);
}
bos.close();
BufferedReader reader;
String lineD;
String data;
ArrayList<String> titres=new ArrayList<String>();
reader = new BufferedReader(new FileReader(zipDirectory+entry.getName()));
String line = reader.readLine();
// Liste des titres de colonnes
if (line != null) {
lineD = line.trim();
titres=new ArrayList<String>(Arrays.asList(lineD.split(";")));
}
while (line != null) {
line = reader.readLine();
if (line != null) {
lineD = line.trim();
ArrayList<String> lineList = new ArrayList<String>(Arrays.asList(lineD.split(";")));
for (int i = 0; i < lineList.size(); i++) {
data = (String)lineList.get(i);
data = data.trim();
System.out.println(titres.get(i)+" => "+data);
}
System.out.println(" ");
}
}
reader.close();
// Deleting the .csv file
mycsvfile.delete();
zipIn.closeEntry();
entry = zipIn.getNextEntry();
}
zipIn.close();
// Deleting the .zip file
myzipfile.delete();
} finally {
con.disconnect();
}
}
}
https://apirest.isendpro.com/cgi-bin/campagne
Parameter | Type | Mandatory | Details |
keyid | String | Yes |
Unique string identifying your account E.g.: a296464ce012b8ab710a |
rapportCampagneData | Number | Yes | Use value 1 |
starting_date |
Date in the format YYYY-MM-DD hh:mm |
Yes | Start date for sending the selection |
ending_date |
Date in the format YYYY-MM-DD hh:mm |
Yes | End date for sending the selection |
select_deb | Number | No |
This number indicates the starting position of the selection results. E.g.: select_deb=1000 to get the data after the 1000th results |
select_pas | Number | No |
This number indicates the amount of results in the selection. The maximum accepted value is 1000 E.g.: select_pas=500 to obtain 500 data |
select_msisdn | Array | No |
Added this list in the campaign report query
In international format without the + E.g.: [ "33601020304", "33601020305", "33601020306" ] |
select_tracker | String | No |
Added this criterion in the campaign report query The search will be extended to all trackers starting with the indicated tracker. E.g.: If select_tracker=camp001 then the trackers camp001-001 and camp001-002 will be searched. |
Parameter | Type | Details |
code | Number | Code corresponding to the error table |
tel | String | Phone number associated with the return code |
message | String | Wording corresponding to the error table |
historySender | String | Message senderid |
historyMsg | String | Message sent to the recipient |
historyDate | String | Date the message was sent to the recipient in the format AAAA-MM-JJ HH:MM:SS |
historyTracker | String | Tracker associated with the Message sent to the recipient |
historyOperator | String | Operator associated with the Message sent to the recipient |
historyResponse | String |
Possible answer returned by the recipient . If no answer the value is "-". |
historyResponseTime | String |
Date of the eventual reply returned by the recipient If no answer the value is "0000-00-00 00:00:00" |
historyDeliveryAR | String |
Indicates if the message has been delivered The possible values are:
|
historyDeliveryARtime | String | Date of the notification of delivery of the message to the recipient in the format AAAA-MM-JJ HH:MM:SS |
historyDelivery1 | String | More information on the notification |
historyDelivery2 | String | More information on the notification |
historyNbSMSlong | Number | Number of SMS for the message |
{
"etat": {
"etat": [
{
"code": "207",
"tel": "33601020304",
"message": "Sending history",
"historySender": "mycompany",
"historyMsg": "Votre test 1 a bien été recu",
"historyDate": "2020-04-14 14:58:02",
"historyTracker": "camp001-002",
"historyOperator": "SFR",
"historyResponse": "-",
"historyResponseTime": "0000-00-00 00:00:00",
"historyDeliveryAR": "OK",
"historyDeliveryARtime": "2020-04-14 14:58:03",
"historyDelivery1": "SFR: SMS remis",
"historyDelivery2": "Message for 0033601020304 has been delivered",
"historyNbSMSlong": "1"
},
{
"code": "207",
"tel": "33601020305",
"message": "Sending history",
"historySender": "mycompany",
"historyMsg": "Votre test 1 a bien été recu",
"historyDate": "2020-04-14 14:58:08",
"historyTracker": "camp001-001",
"historyOperator": "ORAN",
"historyResponse": "-",
"historyResponseTime": "0000-00-00 00:00:00",
"historyDeliveryAR": "OK",
"historyDeliveryARtime": "2020-04-14 14:58:10",
"historyDelivery1": "ORAN: SMS remis",
"historyDelivery2": "SMS remis le 14.04.20 a 14:58:10",
"historyNbSMSlong": "1"
}
]
}
}
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/campagne' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"rapportCampagneData": "1",
"select_tracker": "camp001",
"starting_date": "2020-04-01 00:00",
"ending_date": "2020-04-30 00:00",
"select_deb": "0",
"select_pas": "500"
}'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://apirest.isendpro.com/cgi-bin/campagne';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'rapportCampagneData' => '1',
'starting_date' => '2020-01-01 00:00',
'ending_date' => '2020-01-10 00:00',
'select_deb' => '0',
'select_pas' => '500',
'select_tracker' => 'camp001',
'select_msisdn' => ['33601020304','33601020305']
);
$params = json_encode($params);
$options = array(
CURLOPT_URL => $url,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params,
CURLOPT_HTTPHEADER => array(
'Content-Type' => 'application/json',
'Content-Length: ' => strlen($params)
)
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // If script use
//$sautligne="<br>"; // If html use
$reponsejson=json_decode($response);
$repetatList=$reponsejson->etat->etat;
if(!is_array($repetatList)){
$repetatList=array($repetatList);
}
$cpt=1;
foreach($repetatList as $repetat){
echo '-----------';
echo $sautligne;
echo 'Data '.$cpt;
echo $sautligne;
// General error
if (!isset($repetat->tel)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
// infos sur le retour
}else{
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
echo 'Tel: '.$repetat->tel;
echo $sautligne;
echo 'historySender: '.$repetat->historySender;
echo $sautligne;
echo 'historyMsg: '.$repetat->historyMsg;
echo $sautligne;
echo 'historyDate: '.$repetat->historyDate;
echo $sautligne;
echo 'historyTracker: '.$repetat->historyTracker;
echo $sautligne;
echo 'historyOperator: '.$repetat->historyOperator;
echo $sautligne;
echo 'historyResponse: '.$repetat->historyResponse;
echo $sautligne;
echo 'historyResponseTime: '.$repetat->historyResponseTime;
echo $sautligne;
echo 'historyDeliveryAR: '.$repetat->historyDeliveryAR;
echo $sautligne;
echo 'historyDeliveryARtime: '.$repetat->historyDeliveryARtime;
echo $sautligne;
echo 'historyDelivery1: '.$repetat->historyDelivery1;
echo $sautligne;
echo 'historyDelivery2: '.$repetat->historyDelivery2;
echo $sautligne;
echo 'historyNbSMSlong: '.$repetat->historyNbSMSlong;
echo $sautligne;
}
$cpt+=1;
}
?>
####################################################################################
#- Send request
####################################################################################
import requests
import types
url = 'https://apirest.isendpro.com/cgi-bin/campagne'
params = {
'keyid' : 'a296464ce012b8ab710a',
'rapportCampagneData' : '1',
'starting_date' : '2020-01-01 00:00',
'ending_date' : '2020-01-10 00:00',
'select_deb' : '0',
'select_pas' : '500',
'select_msisdn' : ['33601020304','33601020305'],
'select_tracker' : 'camp001'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Return processing
####################################################################################
reponsejson=response.json()
repetatList=reponsejson['etat']['etat']
if not type(repetatList) is types.ListType:
repetatList=[repetatList]
cpt=1
for repetat in repetatList:
print '-----------'
print 'Data '+str(cpt)
# General error
if not repetat.has_key('tel'):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Infos sur le retour
else:
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
print 'Tel: '+repetat['tel']
print 'historyMsg: '+repetat['historyMsg']
print 'historyMsg: '+repetat['historyMsg']
print 'historyDate: '+repetat['historyDate']
print 'historyTracker: '+repetat['historyTracker']
print 'historyOperator: '+repetat['historyOperator']
print 'historyResponse: '+repetat['historyResponse']
print 'historyResponseTime: '+repetat['historyResponseTime']
print 'historyDeliveryAR: '+repetat['historyDeliveryAR']
print 'historyDeliveryARtime: '+repetat['historyDeliveryARtime']
print 'historyDelivery1: '+repetat['historyDelivery1']
print 'historyDelivery2: '+repetat['historyDelivery2']
print 'historyNbSMSlong: '+repetat['historyNbSMSlong']
cpt+=1
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_rest."/cgi-bin/campagne";
ArrayList<String> listData = new ArrayList<String>();
listData.add("33601020304");
listData.add("33601020305");
Map<String, Object> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("rapportCampagneData", "1");
paramsTablo.put("starting_date", "2020-01-01 00:00");
paramsTablo.put("ending_date", "2020-01-10 00:00");
paramsTablo.put("select_deb", "0");
paramsTablo.put("select_pas", "500");
paramsTablo.put("select_tracker", "camp001");
paramsTablo.put("select_msisdn", listData);
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
Map reponsejson = new Gson().fromJson(content.toString(), Map.class);
Map repetat = (Map)reponsejson.get("etat");
ArrayList repetatList = (ArrayList)repetat.get("etat");
if(! (repetatList instanceof ArrayList)){
repetatList.add(repetatList);
}
for (int i = 0; i < repetatList.size(); i++) {
repetat = (Map)repetatList.get(i);
System.out.println("-----------");
System.out.println("Data "+i);
// General error
if (! repetat.containsKey("tel")){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
// Infos sur le retour
}else{
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
System.out.println("Tel: "+repetat.get("tel"));
System.out.println("historySender: "+repetat.get("historySender"));
System.out.println("historyMsg: "+repetat.get("historyMsg"));
System.out.println("historyDate: "+repetat.get("historyDate"));
System.out.println("historyTracker: "+repetat.get("historyTracker"));
System.out.println("historyOperator: "+repetat.get("historyOperator"));
System.out.println("historyResponse: "+repetat.get("historyResponse"));
System.out.println("historyResponseTime: "+repetat.get("historyResponseTime"));
System.out.println("historyDeliveryAR: "+repetat.get("historyDeliveryAR"));
System.out.println("historyDeliveryARtime: "+repetat.get("historyDeliveryARtime"));
System.out.println("historyDelivery1: "+repetat.get("historyDelivery1"));
System.out.println("historyDelivery2: "+repetat.get("historyDelivery2"));
System.out.println("historyNbSMSlong: "+repetat.get("historyNbSMSlong"));
}
}
} finally {
con.disconnect();
}
}
}
https://apirest.isendpro.com/cgi-bin/comptage
Parameter | Type | Mandatory | Details |
keyid | String | Yes |
Unique string identifying your account E.g.: a296464ce012b8ab710a |
num | String | Yes |
Recipient's phone number In international format without the + E.g.: 33601020304 |
sms | String | Yes |
Message sent to the recipient 1 SMS can contain up to 160 characters Possibility to send longer messages (up to 6 concatenated SMS) for a total of 918 characters (6 x 153) (7 characters being reserved for technical headings) The unit cost will then be multiplied by the number of corresponding SMS messages. Cf Argument smslong |
senderid | String | No |
Message sender By default, a 5-digit short number E.g.: 36007 Constraints:
|
counting | Number | Yes | Use value 1 |
Parameter | Type | Details |
tel | String | Phone number associated with the return code |
nb_sms | number | Nombre de SMS pour contenir le message |
nb_caractere | number | Nombre de caractères pour contenir le message |
{
"etat":{
"etat":[
{
"tel": "0680010203",
"nb_sms": "1",
"nb_caractere": "65"
}
]
}
}
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/comptage' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"num": "33601020304",
"sms": "Hello! Welcome to iSendPro!",
"senderid": "isendpro",
"counting": 1
}'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://apirest.isendpro.com/cgi-bin/comptage';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'num' => '33601020304',
'sms' => 'Hello! Welcome to iSendPro!',
'senderid' => 'isendpro',
'counting' => 1
);
$params = json_encode($params);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // If script use
//$sautligne="<br>"; // If html use
$reponsejson=json_decode($response);
$repetat=$reponsejson->etat->etat;
if (!isset($repetat->code)){
$repetat=$reponsejson->etat->etat[0];
}
// General error
if (!isset($repetat->tel)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
// Infos de counting
}else{
echo 'tel: '.$repetat->tel;
echo $sautligne;
echo 'nb_sms: '.$repetat->nb_sms;
echo $sautligne;
echo 'nb_caractere: '.$repetat->nb_caractere;
}
?>
####################################################################################
#- Send request
####################################################################################
import requests
url = 'https://apirest.isendpro.com/cgi-bin/comptage'
params = {
'keyid': 'a296464ce012b8ab710a',
'num': '33601020304',
'sms': 'Hello! Welcome to iSendPro!',
'senderid': 'isendpro',
'counting': 1
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Return processing
####################################################################################
reponsejson=response.json()
repetat=reponsejson['etat']
if not repetat.has_key('code'):
try:
repetat=reponsejson['etat']['etat'][0]
except:
repetat=reponsejson['etat']['etat']
# General error
if not repetat.has_key('tel'):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Infos de counting
else:
print 'tel: '+repetat['tel']
print 'nb_sms: '+repetat['nb_sms']
print 'nb_caractere: '+repetat['nb_caractere']
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_rest."/cgi-bin/comptage";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("num", "33601020304");
paramsTablo.put("sms", "Hello! Welcome to iSendPro!");
paramsTablo.put("senderid", "isendpro");
paramsTablo.put("counting", "1");
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
Map reponsejson = new Gson().fromJson(content.toString(), Map.class);
Map repetat = (Map)reponsejson.get("etat");
if (! repetat.containsKey("code")){
try{
repetat=(Map)reponsejson.get("etat");
var repetatArray=((ArrayList)(repetat.get("etat"))).get(0);
repetat=(Map)(repetatArray);
}catch(Exception e) {
repetat=(Map)reponsejson.get("etat");
repetat=(Map)repetat.get("etat");
}
}
// General error
if (! repetat.containsKey("tel")){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
// Infos de counting
}else{
System.out.println("tel: "+repetat.get("tel"));
System.out.println("nb_sms: "+repetat.get("nb_sms"));
System.out.println("nb_caractere: "+repetat.get("nb_caractere"));
}
} finally {
con.disconnect();
}
}
}
https://apirest.isendpro.com/cgi-bin/credit
Parameter | Type | Mandatory | Details |
keyid | String | Yes |
Unique string identifying your account E.g.: a296464ce012b8ab710a |
credit | Number | Yes |
Number indicating the type of credit remaining
|
Parameter | Type | Details |
credit | String |
Float indicating the remaining credit in euros excluding VAT E.g.: 561.20 |
quantite | Number |
Number indicating the number of remaining credits in SMS quantity E.g.: 8974 |
{
"etat":
{
"credit": "13.066",
"quantite": "326"
}
}
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/credit' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"credit": 2
}'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://apirest.isendpro.com/cgi-bin/credit';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'credit' => 2
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // If script use
//$sautligne="<br>"; // If html use
$reponsejson=json_decode($response);
$repetat=$reponsejson->etat;
// General error
if (!isset($repetat->credit)){
$repetat=$reponsejson->etat->etat[0];
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
// Infos de quantites
}else{
echo 'credit: '.$repetat->credit;
if (isset($repetat->quantite)){
echo $sautligne;
echo 'quantite: '.$repetat->quantite;
}
}
?>
####################################################################################
#- Send request
####################################################################################
import requests
url = 'https://apirest.isendpro.com/cgi-bin/credit'
params = {
'keyid' : 'a296464ce012b8ab710a',
'credit' : 2
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Return processing
####################################################################################
reponsejson=response.json()
repetat=reponsejson['etat']
# General error
if not repetat.has_key('credit'):
try:
repetat=reponsejson['etat']['etat'][0]
except:
repetat=reponsejson['etat']['etat']
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Infos de quantites
else:
print 'credit: '+repetat['credit']
if repetat.has_key('quantite'):
print 'quantite: '+repetat['quantite']
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_rest."/cgi-bin/credit";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("credit", "2");
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
Map reponsejson = new Gson().fromJson(content.toString(), Map.class);
Map repetat = (Map)reponsejson.get("etat");
// General error
if (! repetat.containsKey("credit")){
try{
repetat=(Map)reponsejson.get("etat");
var repetatArray=((ArrayList)(repetat.get("etat"))).get(0);
repetat=(Map)(repetatArray);
}catch(Exception e) {
repetat=(Map)reponsejson.get("etat");
repetat=(Map)repetat.get("etat");
}
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
// Infos de retour
}else{
System.out.println("credit: "+repetat.get("credit"));
if (repetat.containsKey("quantite")){
System.out.println("quantite: "+repetat.get("quantite"));
}
}
} finally {
con.disconnect();
}
}
}
https://apirest.isendpro.com/cgi-bin/credit
Parameter | Type | Mandatory | Details |
keyid | String | Yes |
Unique string identifying your account E.g.: a296464ce012b8ab710a |
countryCode | String | Yes | International country code without the +. |
getPrice | String | Yes | Use the value '1' |
Parameter | Type | Details |
code | Number | Code corresponding to the error table |
message | String | Wording corresponding to the error table |
countryCode | Number | International country code without the + |
accountPrice | String |
Unit price in euros excl. VAT with the dot (.) as a cent separator E.g.: 0.067 |
{
"etat":{
"etat":[
{
"code": "251",
"message": "The price",
"countryCode": "44",
"accountPrice": "0.067"
}
]
}
}
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/credit' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"countryCode": "33",
"getPrice": "1"
}'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://apirest.isendpro.com/cgi-bin/credit';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'countryCode' => '33',
'getPrice' => '1'
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // If script use
//$sautligne="<br>"; // If html use
$reponsejson=json_decode($response);
$repetat=$reponsejson->etat->etat;
if (!isset($repetat->code)){
$repetat=$reponsejson->etat->etat[0];
}
// General error
if (!isset($repetat->countryCode)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
// Infos de retour
}else{
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
echo 'countryCode: '.$repetat->countryCode;
echo $sautligne;
echo 'accountPrice: '.$repetat->accountPrice;
echo $sautligne;
}
?>
####################################################################################
#- Send request
####################################################################################
import requests
url = 'https://apirest.isendpro.com/cgi-bin/credit'
params = {
'keyid': 'a296464ce012b8ab710a',
'countryCode': '33',
'getPrice': '1'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Return processing
####################################################################################
reponsejson=response.json()
repetat=reponsejson['etat']
if not repetat.has_key('code'):
try:
repetat=reponsejson['etat']['etat'][0]
except:
repetat=reponsejson['etat']['etat']
# General error
if not repetat.has_key('countryCode'):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Infos de retour
else:
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
print 'countryCode: '+repetat['countryCode']
print 'accountPrice: '+repetat['accountPrice']
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_rest."/cgi-bin/credit";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("countryCode", "33");
paramsTablo.put("getPrice", "1");
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
Map reponsejson = new Gson().fromJson(content.toString(), Map.class);
Map repetat = (Map)reponsejson.get("etat");
if (! repetat.containsKey("code")){
try{
repetat=(Map)reponsejson.get("etat");
var repetatArray=((ArrayList)(repetat.get("etat"))).get(0);
repetat=(Map)(repetatArray);
}catch(Exception e) {
repetat=(Map)reponsejson.get("etat");
repetat=(Map)repetat.get("etat");
}
}
// General error
if (! repetat.containsKey("countryCode")){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
// Infos de retour
}else{
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
System.out.println("countryCode: "+repetat.get("countryCode"));
System.out.println("accountPrice: "+repetat.get("accountPrice"));
}
} finally {
con.disconnect();
}
}
}
https://apirest.isendpro.com/cgi-bin/hlr
Parameter | Type | Mandatory | Details |
keyid | String | Yes |
Unique string identifying your account E.g.: a296464ce012b8ab710a |
num | Array | Yes |
List of recipient's phone numbers In international format without the + E.g.: [ "33601020304", "33601020305", "33601020306" ] |
getHLR | Number | Yes | Use value 1 |
Parameter | Type | Details |
tel | String | Phone number associated with the return code |
operateur | String |
String of characters indicating the value of the operator List of operators:
|
{
"etat": {
"etat": [
{
"tel": "33601020304",
"operateur":"INVALIDE"
},
{
"tel": "33601020305",
"operateur":"SFR"
},
{
"tel": "33601020306",
"operateur":"BOUY-LISTE NOIRE"
}
]
}
}
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/hlr' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"num": ["33601020304","33601020305","33601020306"],
"getHLR": 1
}'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://apirest.isendpro.com/cgi-bin/hlr';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'num' => ['33601020304','33601020305'],
'getHLR' => 1
);
$params = json_encode($params);
$options = array(
CURLOPT_URL => $url,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params,
CURLOPT_HTTPHEADER => array(
'Content-Type' => 'application/json',
'Content-Length: ' => strlen($params)
)
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // If script use
//$sautligne="<br>"; // If html use
$reponsejson=json_decode($response);
$repetatList=$reponsejson->etat->etat;
if(!is_array($repetatList)){
$repetatList=array($repetatList);
}
$cpt=1;
foreach($repetatList as $repetat){
echo '-----------';
echo $sautligne;
echo 'Data '.$cpt;
echo $sautligne;
// General error
if (!isset($repetat->tel)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
// Infos sur le numero
}else{
echo 'Tel: '.$repetat->tel;
echo $sautligne;
echo 'Operateur: '.$repetat->operateur;
echo $sautligne;
}
$cpt+=1;
}
?>
####################################################################################
#- Send request
####################################################################################
import requests
import types
url = 'https://apirest.isendpro.com/cgi-bin/hlr'
params = {
'keyid': 'a296464ce012b8ab710a',
'num': ['33601020304','33601020305','33601020306'],
'getHLR': 1
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Return processing
####################################################################################
reponsejson=response.json()
repetatList=reponsejson['etat']['etat']
if not type(repetatList) is types.ListType:
repetatList=[repetatList]
cpt=1
for repetat in repetatList:
print '-----------'
print 'Data '+str(cpt)
# General error
if not repetat.has_key('tel'):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Infos sur le numero
elif repetat.has_key('tel'):
print 'Tel: '+repetat['tel']
print 'Operateur: '+repetat['operateur']
cpt+=1
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_rest."/cgi-bin/hlr";
ArrayList<String> listData = new ArrayList<String>();
listData.add("33601020304");
listData.add("33601020305");
listData.add("33601020306");
Map<String, Object> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("num", listData);
paramsTablo.put("getHLR", "1");
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
Map reponsejson = new Gson().fromJson(content.toString(), Map.class);
Map repetat = (Map)reponsejson.get("etat");
ArrayList repetatList = (ArrayList)repetat.get("etat");
if(! (repetatList instanceof ArrayList)){
repetatList.add(repetatList);
}
for (int i = 0; i < repetatList.size(); i++) {
repetat = (Map)repetatList.get(i);
System.out.println("-----------");
System.out.println("Data "+i);
// General error
if (! repetat.containsKey("tel")){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
// Specific error to the phone number
}else{
System.out.println("tel: "+repetat.get("tel"));
System.out.println("operateur: "+repetat.get("operateur"));
}
}
} finally {
con.disconnect();
}
}
}
https://apirest.isendpro.com/cgi-bin/setlistenoire
Parameter | Type | Mandatory | Details |
keyid | String | Yes |
Unique string identifying your account E.g.: a296464ce012b8ab710a |
num | String | Yes |
Recipient's phone number In international format without the + E.g.: 33601020304 |
setBlackList | Number | Yes |
Use value 1 |
Parameter | Type | Details |
tel | String | Phone number associated with the return code |
listeNoire | String | Adding confirmation: OK |
{
"etat": {
"etat": [
{
"tel": "33601020304",
"listeNoire": "OK"
}
]
}
}
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/setlistenoire' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"num": "33601020304",
"setBlackList": 1
}'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://apirest.isendpro.com/cgi-bin/setlistenoire';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'num' => '33601020304',
'setBlackList' => 1
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // If script use
//$sautligne="<br>"; // If html use
$reponsejson=json_decode($response);
$repetat=$reponsejson->etat->etat;
if (!isset($repetat->code)){
$repetat=$reponsejson->etat->etat[0];
}
// General error
if (!isset($repetat->tel)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
// Infos de retour
}else{
echo 'tel: '.$repetat->tel;
echo $sautligne;
echo 'listeNoire: '.$repetat->listeNoire;
echo $sautligne;
}
?>
####################################################################################
#- Send request
####################################################################################
import requests
url = 'https://apirest.isendpro.com/cgi-bin/setlistenoire'
params = {
'keyid': 'a296464ce012b8ab710a',
'num': '33601020304',
'setBlackList':1
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Return processing
####################################################################################
reponsejson=response.json()
repetat=reponsejson['etat']
if not repetat.has_key('code'):
try:
repetat=reponsejson['etat']['etat'][0]
except:
repetat=reponsejson['etat']['etat']
# General error
if not repetat.has_key('tel'):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Infos de retour
else:
print 'tel: '+repetat['tel']
print 'listeNoire: '+repetat['listeNoire']
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_rest."/cgi-bin/setlistenoire";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("num", "33601020304");
paramsTablo.put("setBlackList", "1");
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
Map reponsejson = new Gson().fromJson(content.toString(), Map.class);
Map repetat = (Map)reponsejson.get("etat");
if (! repetat.containsKey("code")){
try{
repetat=(Map)reponsejson.get("etat");
var repetatArray=((ArrayList)(repetat.get("etat"))).get(0);
repetat=(Map)(repetatArray);
}catch(Exception e) {
repetat=(Map)reponsejson.get("etat");
repetat=(Map)repetat.get("etat");
}
}
// General error
if (! repetat.containsKey("tel")){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
// Infos de retour
}else{
System.out.println("tel: "+repetat.get("tel"));
System.out.println("listeNoire: "+repetat.get("listeNoire"));
}
} finally {
con.disconnect();
}
}
}
https://apirest.isendpro.com/cgi-bin/dellistenoire
Parameter | Type | Mandatory | Details |
keyid | String | Yes |
Unique string identifying your account E.g.: a296464ce012b8ab710a |
num | String | Yes |
Recipient's phone number In international format without the + E.g.: 33601020304 |
delListeNoire | Number | Yes |
Use value 1 |
Parameter | Type | Details |
tel | String | Phone number associated with the return code |
listeNoire | String |
Response to the deletion attempt
|
{
"etat": {
"etat": [
{
"tel": "33601020304",
"listeNoire": "SUPPRESSION OK"
}
]
}
}
{
"etat": {
"etat": [
{
"tel": "33601020304",
"listeNoire": "SUPPRESSION NOK"
}
]
}
}
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/dellistenoire' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"num": "33601020304",
"delListeNoire": 1
}'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://apirest.isendpro.com/cgi-bin/dellistenoire';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'num' => '33601020304',
'delListeNoire' => 1
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // If script use
//$sautligne="<br>"; // If html use
$reponsejson=json_decode($response);
$repetat=$reponsejson->etat->etat;
if (!isset($repetat->code)){
$repetat=$reponsejson->etat->etat[0];
}
// General error
if (!isset($repetat->tel)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
// Infos de retour
}else{
echo 'tel: '.$repetat->tel;
echo $sautligne;
echo 'listeNoire: '.$repetat->listeNoire;
echo $sautligne;
}
?>
####################################################################################
#- Send request
####################################################################################
import requests
url = 'https://apirest.isendpro.com/cgi-bin/dellistenoire'
params = {
'keyid': 'a296464ce012b8ab710a',
'num': '33601020304',
'delListeNoire':1
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Return processing
####################################################################################
reponsejson=response.json()
repetat=reponsejson['etat']
if not repetat.has_key('code'):
try:
repetat=reponsejson['etat']['etat'][0]
except:
repetat=reponsejson['etat']['etat']
# General error
if not repetat.has_key('tel'):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Infos de retour
else:
print 'tel: '+repetat['tel']
print 'listeNoire: '+repetat['listeNoire']
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_rest."/cgi-bin/dellistenoire";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("num", "33601020304");
paramsTablo.put("delListeNoire", "1");
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
Map reponsejson = new Gson().fromJson(content.toString(), Map.class);
Map repetat = (Map)reponsejson.get("etat");
if (! repetat.containsKey("code")){
try{
repetat=(Map)reponsejson.get("etat");
var repetatArray=((ArrayList)(repetat.get("etat"))).get(0);
repetat=(Map)(repetatArray);
}catch(Exception e) {
repetat=(Map)reponsejson.get("etat");
repetat=(Map)repetat.get("etat");
}
}
// General error
if (! repetat.containsKey("tel")){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
// Infos de retour
}else{
System.out.println("tel: "+repetat.get("tel"));
System.out.println("listeNoire: "+repetat.get("listeNoire"));
}
} finally {
con.disconnect();
}
}
}
https://apirest.isendpro.com/cgi-bin/getlistenoire
Parameter | Type | Mandatory | Details |
keyid | String | Yes |
Unique string identifying your account E.g.: a296464ce012b8ab710a |
getListeNoire | Number | Yes |
Use value 1 |
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/getlistenoire' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"getListeNoire": 1
}' \
-o listenoire.zip
<?php
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$zipName = 'listenoire.zip';
$zipDirectory = '/VOTRE_REPERTOIRE/';
$fp = fopen($zipDirectory.$zipName, 'w');
$url = 'https://apirest.isendpro.com/cgi-bin/getlistenoire';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'getListeNoire' => 1
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
curl_setopt($ch, CURLOPT_FILE, $fp);
$response = curl_exec($ch);
fwrite($fp, $response);
curl_close($ch);
fclose($fp);
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // If script use
//$sautligne="<br>"; // If html use
// Unzip the file
$za = new ZipArchive();
$za->open($zipDirectory.$zipName);
for( $i = 0; $i < $za->numFiles; $i++ ){
$stat = $za->statIndex( $i );
$fileName = basename($stat['name']);
print_r($fileName.PHP_EOL);
$za->extractTo($zipDirectory);
$za->close();
// Lecture du fichier csv dans le zip
$fn = fopen($fileName, 'r');
// Liste des titres de colonnes
$titres = fgetcsv($fn, 1000, ';');
while (($data = fgetcsv($fn, 1000, ';')) !== FALSE){
foreach($data as $i => $d){
if($d){
// Affichage des donnees de la ligne
echo $titres[$i].' => '.$d.PHP_EOL;
}
}
// Line break
echo PHP_EOL;
}
// Deleting the .csv file
unlink($zipDirectory.$fileName);
}
// Deleting the .zip file
unlink($zipDirectory.$zipName);
?>
####################################################################################
#- Send request
####################################################################################
import shutil
import requests
import zipfile
import os
zipName = 'listenoire.zip'
zipDirectory = '/VOTRE_REPERTOIRE/'
url = 'https://apirest.isendpro.com/cgi-bin/getlistenoire'
params = {
'keyid': 'a296464ce012b8ab710a',
'getListeNoire': 1
}
response = requests.post(url, params, stream=True)
with open(zipDirectory+zipName, 'wb') as f:
response.raw.decode_content = True
shutil.copyfileobj(response.raw, f)
####################################################################################
#- Return processing
####################################################################################
myzipfile = zipfile.ZipFile(zipDirectory+zipName)
for fileName in myzipfile.namelist():
# Unzip the file vers zipDirectory
with zipfile.ZipFile(zipDirectory+zipName, 'r') as zip_ref:
zip_ref.extractall(zipDirectory)
# Lecture du fichier csv dans le zip
fichier = open(zipDirectory+fileName)
lines = fichier.readlines()
firstLine=1
for line in lines:
line=line.strip()
line=line.split(';')
if firstLine:
# Liste des titres de colonnes
firstLine=0
titres=line
else:
i=0
for data in line:
if data:
# Affichage des donnees de la ligne
print titres[i]+' => '+data
i+=1
# Deleting the .csv file
os.remove(zipDirectory+fileName)
# Deleting the .zip file
os.remove(zipDirectory+zipName)
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.io.BufferedReader;
import java.io.FileReader;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
/**
* Size of the buffer to read/write data
*/
private static final int BUFFER_SIZE = 4096;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_rest."/cgi-bin/getlistenoire";
var zipName = "listenoire.zip";
var zipDirectory = "/VOTRE_REPERTOIRE/";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("getListeNoire", "1");
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
File myzipfile = new File(zipDirectory+zipName);
OutputStream outStream = new FileOutputStream(myzipfile);
InputStream inputStream = con.getInputStream();
int read;
byte[] bytes = new byte[1024];
while ((read = inputStream.read(bytes)) != -1) {
outStream.write(bytes, 0, read);
}
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
File destDir = new File(zipDirectory);
ZipInputStream zipIn = new ZipInputStream(new FileInputStream(zipDirectory+zipName));
ZipEntry entry = zipIn.getNextEntry();
// iterates over entries in the zip file
while (entry != null) {
File mycsvfile = new File(zipDirectory+entry.getName());
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(zipDirectory+entry.getName()));
byte[] bytesIn = new byte[BUFFER_SIZE];
int read2 = 0;
while ((read2 = zipIn.read(bytesIn)) != -1) {
bos.write(bytesIn, 0, read2);
}
bos.close();
BufferedReader reader;
String lineD;
String data;
ArrayList<String> titres=new ArrayList<String>();
reader = new BufferedReader(new FileReader(zipDirectory+entry.getName()));
String line = reader.readLine();
// Liste des titres de colonnes
if (line != null) {
lineD = line.trim();
titres=new ArrayList<String>(Arrays.asList(lineD.split(";")));
}
while (line != null) {
line = reader.readLine();
if (line != null) {
lineD = line.trim();
ArrayList<String> lineList = new ArrayList<String>(Arrays.asList(lineD.split(";")));
for (int i = 0; i < lineList.size(); i++) {
data = (String)lineList.get(i);
data = data.trim();
System.out.println(titres.get(i)+" => "+data);
}
System.out.println(" ");
}
}
reader.close();
// Deleting the .csv file
mycsvfile.delete();
zipIn.closeEntry();
entry = zipIn.getNextEntry();
}
zipIn.close();
// Deleting the .zip file
myzipfile.delete();
} finally {
con.disconnect();
}
}
}
https://apirest.isendpro.com/cgi-bin/repertoire
Parameter | Type | Mandatory | Details |
keyid | String | Yes |
Unique string identifying your account E.g.: a296464ce012b8ab710a |
directoryName | String | Yes |
Name of the new directory |
directoryEdit | String | Yes |
Use the value 'create' |
Parameter | Type | Details |
code | Number | Code corresponding to the error table |
directoryId | String | Identifier of the created directory |
message | String | Wording corresponding to the error table |
{
"etat":{
"etat":[
{
"code": "100",
"directoryId": "39258",
"message": "Your directory has been created"
}
]
}
}
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/repertoire' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"directoryName": "MonNouveauRepertoire",
"directoryEdit": "create"
}'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://apirest.isendpro.com/cgi-bin/repertoire';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'directoryName' => 'MonNouveauRepertoire',
'directoryEdit' => 'create'
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // If script use
//$sautligne="<br>"; // If html use
$reponsejson=json_decode($response);
$repetat=$reponsejson->etat->etat;
if (!isset($repetat->code)){
$repetat=$reponsejson->etat->etat[0];
}
// General error
if (!isset($repetat->directoryId)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
// Infos de retour
}else{
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
echo 'directoryId: '.$repetat->directoryId;
echo $sautligne;
}
?>
####################################################################################
#- Send request
####################################################################################
import requests
url = 'https://apirest.isendpro.com/cgi-bin/repertoire'
params = {
'keyid': 'a296464ce012b8ab710a',
'directoryName': 'directoryName',
'directoryEdit': 'create'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Return processing
####################################################################################
reponsejson=response.json()
repetat=reponsejson['etat']
if not repetat.has_key('code'):
try:
repetat=reponsejson['etat']['etat'][0]
except:
repetat=reponsejson['etat']['etat']
# General error
if not repetat.has_key('directoryId'):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Infos de retour
else:
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
print 'directoryId: '+repetat['directoryId']
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_rest."/cgi-bin/repertoire";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("directoryName", "directoryName");
paramsTablo.put("directoryEdit", "create");
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
Map reponsejson = new Gson().fromJson(content.toString(), Map.class);
Map repetat = (Map)reponsejson.get("etat");
if (! repetat.containsKey("code")){
try{
repetat=(Map)reponsejson.get("etat");
var repetatArray=((ArrayList)(repetat.get("etat"))).get(0);
repetat=(Map)(repetatArray);
}catch(Exception e) {
repetat=(Map)reponsejson.get("etat");
repetat=(Map)repetat.get("etat");
}
}
// General error
if (! repetat.containsKey("directoryId")){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
// Infos de retour
}else{
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
System.out.println("directoryId: "+repetat.get("directoryId"));
}
} finally {
con.disconnect();
}
}
}
https://apirest.isendpro.com/cgi-bin/repertoire
Parameter | Type | Mandatory | Details |
keyid | String | Yes |
Unique string identifying your account E.g.: a296464ce012b8ab710a |
num | Array | Yes |
List of phone numbers to add In international format without the + E.g.: [ "33601020304", "33601020305", "33601020306" ] |
directoryId | String | Yes | Identifier of the directory to be modified |
directoryEdit | String | Yes |
Use the value 'add' |
champ[X] | Array | No |
List of data to be associated to the field for each number [X] is to be replaced by an integer between 1 and 27 inclusive By default:
|
Parameter | Type | Details |
code | Number | Code corresponding to the error table |
directoryId | Number | Identifier of the created directory |
tel | String | Phone number associated with the return code |
message | String | Wording corresponding to the error table |
{
"etat":{
"etat":[
{
"code": "103",
"directoryId": "39258",
"tel": "33601020304",
"message": "Your data has been added to the directory"
},
{
"code": "103",
"directoryId": "39258",
"tel": "33601020305",
"message": "Your data has been added to the directory"
}
]
}
}
{
"etat":{
"etat":[
{
"code": "105",
"directoryId": "39258",
"tel": "33601020304",
"message": "The data is already in the directory"
},
{
"code": "105",
"directoryId": "39258",
"tel": "33601020305",
"message": "The data is already in the directory"
}
]
}
}
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/repertoire' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"directoryEdit": "add",
"directoryId": "39258",
"num": ["33601020304","33601020305","33601020306"],
"champ1": ["Pierre","Paul","Jacques"],
"champ2": ["Paris","Lyon","Marseille"]
}'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://apirest.isendpro.com/cgi-bin/repertoire';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'directoryEdit' => 'add',
'directoryId' => '39258',
'num' => ['33601020304','33601020305','33601020306'],
'champ1' => ['Pierre','Paul','Jacques'],
'champ2' => ['Paris','Lyon','Marseille']
);
$params = json_encode($params);
$options = array(
CURLOPT_URL => $url,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params,
CURLOPT_HTTPHEADER => array(
'Content-Type' => 'application/json',
'Content-Length: ' => strlen($params)
)
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // If script use
//$sautligne="<br>"; // If html use
$reponsejson=json_decode($response);
$repetatList=$reponsejson->etat->etat;
if(!is_array($repetatList)){
$repetatList=array($repetatList);
}
$cpt=1;
foreach($repetatList as $repetat){
echo '-----------';
echo $sautligne;
echo 'Data '.$cpt;
echo $sautligne;
// General error
if (!isset($repetat->tel)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
// Infos sur le numero
}else{
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
echo 'Tel: '.$repetat->tel;
echo $sautligne;
echo 'directoryId: '.$repetat->directoryId;
echo $sautligne;
}
$cpt+=1;
}
?>
####################################################################################
#- Send request
####################################################################################
import requests
import types
url = 'https://apirest.isendpro.com/cgi-bin/repertoire'
params = {
'keyid': 'a296464ce012b8ab710a',
'directoryEdit': 'add',
'directoryId': '39258',
'num': ['33601020304','33601020305','33601020306'],
'champ1': ['Pierre','Paul','Jacques'],
'champ2': ['Paris','Lyon','Marseille']
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Return processing
####################################################################################
reponsejson=response.json()
repetatList=reponsejson['etat']['etat']
if not type(repetatList) is types.ListType:
repetatList=[repetatList]
cpt=1
for repetat in repetatList:
print '-----------'
print 'Data '+str(cpt)
# General error
if not repetat.has_key('tel'):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Infos sur le numero
else:
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
print 'Tel: '+repetat['tel']
print 'directoryId: '+repetat['directoryId']
cpt+=1
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_rest."/cgi-bin/repertoire";
ArrayList<String> listData = new ArrayList<String>();
listData.add("33601020304");
listData.add("33601020305");
listData.add("33601020306");
ArrayList<String> listChamp1 = new ArrayList<String>();
listChamp1.add("Pierre");
listChamp1.add("Paul");
listChamp1.add("Jacques");
ArrayList<String> listChamp2 = new ArrayList<String>();
listChamp2.add("Paris");
listChamp2.add("Lyon");
listChamp2.add("Marseille");
Map<String, Object> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("directoryEdit", "add");
paramsTablo.put("directoryId", "39258");
paramsTablo.put("num", listData);
paramsTablo.put("champ1", listChamp1);
paramsTablo.put("champ2", listChamp2);
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
Map reponsejson = new Gson().fromJson(content.toString(), Map.class);
Map repetat = (Map)reponsejson.get("etat");
ArrayList repetatList = (ArrayList)repetat.get("etat");
if(! (repetatList instanceof ArrayList)){
repetatList.add(repetatList);
}
for (int i = 0; i < repetatList.size(); i++) {
repetat = (Map)repetatList.get(i);
System.out.println("-----------");
System.out.println("Data "+i);
// General error
if (! repetat.containsKey("tel")){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
// Specific error to the phone number
}else{
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
System.out.println("tel: "+repetat.get("tel"));
System.out.println("directoryId: "+repetat.get("directoryId"));
}
}
} finally {
con.disconnect();
}
}
}
https://apirest.isendpro.com/cgi-bin/repertoire
Parameter | Type | Mandatory | Details |
keyid | String | Yes |
Unique string identifying your account E.g.: a296464ce012b8ab710a |
num | Array | Yes |
List of phone numbers to add In international format without the + E.g.: [ "33601020304", "33601020305", "33601020306" ] |
directoryId | String | Yes | Identifier of the directory to be modified |
directoryEdit | String | Yes |
Use the value 'del' |
Parameter | Type | Details |
code | Number | Code corresponding to the error table |
directoryId | Number | Identifier of the created directory |
tel | String | Phone number associated with the return code |
message | String | Wording corresponding to the error table |
{
"etat":{
"etat":[
{
"code": "106",
"directoryId": "39258",
"tel": "33601020304",
"message": "The data has been deleted from the directory"
},
{
"code": "106",
"directoryId": "39258",
"tel": "33601020305",
"message": "The data has been deleted from the directory"
}
]
}
}
{
"etat":{
"etat":[
{
"code": "107",
"directoryId": "39258",
"tel": "33601020304",
"message": "The data is not in the directory"
},
{
"code": "107",
"directoryId": "39258",
"tel": "33601020305",
"message": "The data is not in the directory"
}
]
}
}
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/repertoire' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"directoryEdit": "del",
"directoryId": "39258",
"num": ["33601020304","33601020305","33601020306"]
}'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://apirest.isendpro.com/cgi-bin/repertoire';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'directoryEdit' => 'del',
'directoryId' => '39258',
'num' => ['33601020304','33601020305','33601020306']
);
$params = json_encode($params);
$options = array(
CURLOPT_URL => $url,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params,
CURLOPT_HTTPHEADER => array(
'Content-Type' => 'application/json',
'Content-Length: ' => strlen($params)
)
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // If script use
//$sautligne="<br>"; // If html use
$reponsejson=json_decode($response);
$repetatList=$reponsejson->etat->etat;
if(!is_array($repetatList)){
$repetatList=array($repetatList);
}
$cpt=1;
foreach($repetatList as $repetat){
echo '-----------';
echo $sautligne;
echo 'Data '.$cpt;
echo $sautligne;
// General error
if (!isset($repetat->tel)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
// Infos sur le numero
}else{
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
echo 'Tel: '.$repetat->tel;
echo $sautligne;
echo 'directoryId: '.$repetat->directoryId;
echo $sautligne;
}
$cpt+=1;
}
?>
####################################################################################
#- Send request
####################################################################################
import requests
import types
url = 'https://apirest.isendpro.com/cgi-bin/repertoire'
params = {
'keyid': 'a296464ce012b8ab710a',
'directoryEdit': 'del',
'directoryId': '39258',
'num': ['33601020304','33601020305','33601020306']
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Return processing
####################################################################################
reponsejson=response.json()
repetatList=reponsejson['etat']['etat']
if not type(repetatList) is types.ListType:
repetatList=[repetatList]
cpt=1
for repetat in repetatList:
print '-----------'
print 'Data '+str(cpt)
# General error
if not repetat.has_key('tel'):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Infos sur le numero
else:
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
print 'Tel: '+repetat['tel']
print 'directoryId: '+repetat['directoryId']
cpt+=1
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_rest."/cgi-bin/repertoire";
ArrayList<String> listData = new ArrayList<String>();
listData.add("33601020304");
listData.add("33601020305");
listData.add("33601020306");
Map<String, Object> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("directoryEdit", "del");
paramsTablo.put("directoryId", "39258");
paramsTablo.put("num", listData);
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
Map reponsejson = new Gson().fromJson(content.toString(), Map.class);
Map repetat = (Map)reponsejson.get("etat");
ArrayList repetatList = (ArrayList)repetat.get("etat");
if(! (repetatList instanceof ArrayList)){
repetatList.add(repetatList);
}
for (int i = 0; i < repetatList.size(); i++) {
repetat = (Map)repetatList.get(i);
System.out.println("-----------");
System.out.println("Data "+i);
// General error
if (! repetat.containsKey("tel")){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
// Specific error to the phone number
}else{
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
System.out.println("tel: "+repetat.get("tel"));
System.out.println("directoryId: "+repetat.get("directoryId"));
}
}
} finally {
con.disconnect();
}
}
}
www.votre_adresse.com/votre_page_web?tel=[TEL]&libelle=[LIBELLE]&statut=[STATUT]&code_erreur=[CODE_ERREUR]&date=[DATE]&heure=[HEURE]&id=[ID]&operateur=[OPERATEUR]&tracker=[TRACKER]
Parameter | Type | Mandatory | Details |
tel | String | Yes |
Recipient's phone number In international format without the + E.g.: 33601020304 |
libelle | String | Yes | Wording on the status of the delivery report |
statut | Number | Yes |
Message Status
|
Error code | String | Yes | Code associated with the delevery report (see Appendices) |
date |
Date in the format AAAA-MM-JJ |
Yes | The date of receipt of the delivery report |
heure |
Date in the format HH:MM:SS |
Yes | The time of receipt of the delivery report |
id | Number | Yes | Unique identifier of the delivery report |
operateur | String | Yes | String of characters indicating the value of the operator (see Appendices) |
tracker | String | Yes | Argument possibly provided during sending for a simplified identification |
validation
www.votre_adresse.com/votre_page_web?tel=[TEL]&id_retour=[ID_RETOUR]&msg_sms=[MSG_SMS]&tracker=[TRACKER]
Parameter | Type | Mandatory | Details |
tel | String | Yes |
Recipient's phone number In international format without the + E.g.: 33601020304 |
id_retour | Number | Yes | Unique identifier of the acknoledgment |
msg_sms | String | Yes | Answer sent by the recipient |
tracker | String | Yes | Argument possibly provided at the time of sending for a simplified identification |
indicatif_pays | Number | Oui | Country code |
datetime | Datetime | Oui | Time of reception on our system with the format AAAA-MM-JJ HH:MM:SS |
validation
https://apirest.isendpro.com/cgi-bin/subaccount
Parameter | Type | Mandatory | Details |
keyid | String | Yes |
Unique string identifying your account E.g.: a296464ce012b8ab710a |
subAccountLogin | String | Yes | Login ID for the new sub account |
subAccountPassword | String | Yes | Login password for the new sub account |
subAccountEdit | String | Yes | Use the value 'addAccount' |
Parameter | Type | Details |
code | Number | Code corresponding to the error table |
message | String | Wording corresponding to the error table |
subAccountLogin | String | Login ID for the new sub account |
subAccountId | String | Id for the new sub account |
subAccountKeyId | String | Identification key (KeyId) for the new sub-account |
{
"etat": {
"etat": [
{
"code": "230",
"message": "Le sous compte a ete ajoute",
"subAccountLogin": "subaccount2018",
"subAccountId": "20474",
"subAccountKeyId": "ber296464ce018ab710a"
}
]
}
}
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/subaccount' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"subAccountLogin": "MonIdentifiant",
"subAccountPassword": "MonMotdpasse",
"subAccountEdit": "addAccount"
}'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://apirest.isendpro.com/cgi-bin/subaccount';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'subAccountLogin' => 'MonIdentifiant',
'subAccountPassword'=> 'MonMotdpasse',
'subAccountEdit' => 'addAccount'
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // If script use
//$sautligne="<br>"; // If html use
$reponsejson=json_decode($response);
$repetat=$reponsejson->etat->etat;
if (!isset($repetat->code)){
$repetat=$reponsejson->etat->etat[0];
}
// General error
if (!isset($repetat->subAccountLogin)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
// Infos de retour
}else{
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
echo 'subAccountLogin: '.$repetat->subAccountLogin;
if (isset($repetat->subAccountId)){
echo $sautligne;
echo 'subAccountId: '.$repetat->subAccountId;
}
if (isset($repetat->subAccountKeyId)){
echo $sautligne;
echo 'subAccountKeyId: '.$repetat->subAccountKeyId;
}
echo $sautligne;
}
?>
####################################################################################
#- Send request
####################################################################################
import requests
url = 'https://apirest.isendpro.com/cgi-bin/subaccount'
params = {
'keyid': 'a296464ce012b8ab710a',
'subAccountLogin': 'MonIdentifiant',
'subAccountPassword': 'MonMotdpasse',
'subAccountEdit': 'addAccount'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Return processing
####################################################################################
reponsejson=response.json()
repetat=reponsejson['etat']
if not repetat.has_key('code'):
try:
repetat=reponsejson['etat']['etat'][0]
except:
repetat=reponsejson['etat']['etat']
# General error
if not repetat.has_key('subAccountLogin'):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Infos de retour
else:
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
print 'subAccountLogin: '+repetat['subAccountLogin']
if repetat.has_key('subAccountId'):
print 'subAccountId: '+repetat['subAccountId']
if repetat.has_key('subAccountKeyId'):
print 'subAccountKeyId: '+repetat['subAccountKeyId']
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_rest."/cgi-bin/subaccount";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("subAccountLogin", "MonIdentifiantJava");
paramsTablo.put("subAccountPassword", "MonMotdpasse");
paramsTablo.put("subAccountEdit", "addAccount");
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
Map reponsejson = new Gson().fromJson(content.toString(), Map.class);
Map repetat = (Map)reponsejson.get("etat");
if (! repetat.containsKey("code")){
try{
repetat=(Map)reponsejson.get("etat");
var repetatArray=((ArrayList)(repetat.get("etat"))).get(0);
repetat=(Map)(repetatArray);
}catch(Exception e) {
repetat=(Map)reponsejson.get("etat");
repetat=(Map)repetat.get("etat");
}
}
// General error
if (! repetat.containsKey("subAccountLogin")){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
// Infos de retour
}else{
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
System.out.println("subAccountLogin: "+repetat.get("subAccountLogin"));
if (repetat.containsKey("subAccountId")){
System.out.println("subAccountId: "+repetat.get("subAccountId"));
}
if (repetat.containsKey("subAccountKeyId")){
System.out.println("subAccountKeyId: "+repetat.get("subAccountKeyId"));
}
}
} finally {
con.disconnect();
}
}
}
https://apirest.isendpro.com/cgi-bin/subaccount
Parameter | Type | Mandatory | Details |
keyid | String | Yes |
Unique string identifying your account E.g.: a296464ce012b8ab710a |
subAccountKeyId | String | Yes | Unique character string identifying the sub-account |
subAccountPrice | String | Yes |
Value of the unit price in euro HT for 1 SMS The penny separator is the dot (.) E.g.: 0.044 |
subAccountCountryCode | String | Yes |
International country code associated with the price without the +. E.g.: 39 for Italy or 32 for Belgium |
subAccountEdit | String | Yes | Use the value 'setPrice' |
Parameter | Type | Details |
code | Number | Code corresponding to the error table |
message | String | Wording corresponding to the error table |
subAccountId | String | Id for the new sub account |
subAccountKeyId | String | Identification key (KeyId) for the new sub-account |
{
"etat": {
"etat": [
{
"code": "241",
"message": "The price has been updated",
"subAccountId": "20474",
"subAccountKeyId": "ber296464ce018ab710a",
"subAccountCountryCode":"39"
}
]
}
}
{
"etat": {
"etat": [
{
"code": "234",
"message": "No account with these credentials",
"subAccountKeyId": "ber296464ce018ab710a",
}
]
}
}
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/subaccount' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"subAccountKeyId": "ber296464ce018ab710a",
"subAccountPrice": "0.068",
"subAccountCountryCode": "39",
"subAccountEdit": "setPrice"
}'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://apirest.isendpro.com/cgi-bin/subaccount';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'subAccountKeyId' => 'ber296464ce018ab710a',
'subAccountPrice' => '0.068',
'subAccountCountryCode' => '39',
'subAccountEdit' => 'setPrice'
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // If script use
//$sautligne="<br>"; // If html use
$reponsejson=json_decode($response);
$repetat=$reponsejson->etat->etat;
if (!isset($repetat->code)){
$repetat=$reponsejson->etat->etat[0];
}
// General error
if (!isset($repetat->subAccountKeyId)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
// Infos de retour
}else{
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
echo 'subAccountKeyId: '.$repetat->subAccountKeyId;
if (isset($repetat->subAccountId)){
echo $sautligne;
echo 'subAccountId: '.$repetat->subAccountId;
}
if (isset($repetat->subAccountCountryCode)){
echo $sautligne;
echo 'subAccountCountryCode: '.$repetat->subAccountCountryCode;
}
echo $sautligne;
}
?>
####################################################################################
#- Send request
####################################################################################
import requests
url = 'https://apirest.isendpro.com/cgi-bin/subaccount'
params = {
'keyid' : 'a296464ce012b8ab710a',
'subAccountKeyId' : 'ber296464ce018ab710a',
'subAccountPrice' : '0.068',
'subAccountCountryCode' : '39',
'subAccountEdit' : 'setPrice'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Return processing
####################################################################################
reponsejson=response.json()
repetat=reponsejson['etat']
if not repetat.has_key('code'):
try:
repetat=reponsejson['etat']['etat'][0]
except:
repetat=reponsejson['etat']['etat']
# General error
if not repetat.has_key('subAccountKeyId'):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Infos de retour
else:
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
print 'subAccountKeyId: '+repetat['subAccountKeyId']
if repetat.has_key('subAccountId'):
print 'subAccountId: '+repetat['subAccountId']
if repetat.has_key('subAccountCountryCode'):
print 'subAccountCountryCode: '+repetat['subAccountCountryCode']
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_rest."/cgi-bin/subaccount";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("subAccountKeyId", "ber296464ce018ab710a");
paramsTablo.put("subAccountPrice", "0.068");
paramsTablo.put("subAccountCountryCode", "39");
paramsTablo.put("subAccountEdit", "setPrice");
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
Map reponsejson = new Gson().fromJson(content.toString(), Map.class);
Map repetat = (Map)reponsejson.get("etat");
if (! repetat.containsKey("code")){
try{
repetat=(Map)reponsejson.get("etat");
var repetatArray=((ArrayList)(repetat.get("etat"))).get(0);
repetat=(Map)(repetatArray);
}catch(Exception e) {
repetat=(Map)reponsejson.get("etat");
repetat=(Map)repetat.get("etat");
}
}
// General error
if (! repetat.containsKey("subAccountKeyId")){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
// Infos de retour
}else{
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
if (repetat.containsKey("subAccountId")){
System.out.println("subAccountId: "+repetat.get("subAccountId"));
}
if (repetat.containsKey("subAccountKeyId")){
System.out.println("subAccountKeyId: "+repetat.get("subAccountKeyId"));
}
}
} finally {
con.disconnect();
}
}
}
https://apirest.isendpro.com/cgi-bin/subaccount
Parameter | Type | Mandatory | Details |
keyid | String | Yes |
Unique string identifying your account E.g.: a296464ce012b8ab710a |
subAccountKeyId | String | Yes | Unique character string identifying the sub-account |
subAccountCountryCode | String | Yes |
International country code associated with the price without the +. E.g.: 39 for Italy or 32 for Belgium |
subAccountEdit | String | Yes | Use the value 'getPrice' |
Parameter | Type | Details |
code | Number | Code corresponding to the error table |
message | String | Wording corresponding to the error table |
subAccountId | String | Id for the sub-account |
subAccountKeyId | String | Identification key (KeyId) for the sub-account |
subAccountCountryCode | String | International country code associated with the price without the + |
subAccountPrice | String | Unit price in euros excl. VAT with the dot (.) as a cent separator |
{
"etat": {
"etat": [
{
"code": "251",
"message": "The price",
"subAccountId": "20474",
"subAccountKeyId": "ber296464ce018ab710a",
"subAccountCountryCode":"344",
"subAccountPrice": "0.049"
}
]
}
}
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/subaccount' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"subAccountKeyId": "ber296464ce018ab710a",
"subAccountCountryCode": "39",
"subAccountEdit": "getPrice"
}'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://apirest.isendpro.com/cgi-bin/subaccount';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'subAccountKeyId' => 'ber296464ce018ab710a',
'subAccountCountryCode' => '39',
'subAccountEdit' => 'getPrice'
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // If script use
//$sautligne="<br>"; // If html use
$reponsejson=json_decode($response);
$repetat=$reponsejson->etat->etat;
if (!isset($repetat->code)){
$repetat=$reponsejson->etat->etat[0];
}
// General error
if (!isset($repetat->subAccountKeyId)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
// Infos de retour
}else{
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
echo 'subAccountKeyId: '.$repetat->subAccountKeyId;
if (isset($repetat->subAccountId)){
echo $sautligne;
echo 'subAccountId: '.$repetat->subAccountId;
}
if (isset($repetat->subAccountCountryCode)){
echo $sautligne;
echo 'subAccountCountryCode: '.$repetat->subAccountCountryCode;
}
if (isset($repetat->subAccountPrice)){
echo $sautligne;
echo 'subAccountPrice: '.$repetat->subAccountPrice;
}
echo $sautligne;
}
?>
####################################################################################
#- Send request
####################################################################################
import requests
url = 'https://apirest.isendpro.com/cgi-bin/subaccount'
params = {
'keyid' : 'a296464ce012b8ab710a',
'subAccountKeyId' : 'ber296464ce018ab710a',
'subAccountCountryCode' : '39',
'subAccountEdit' : 'getPrice'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Return processing
####################################################################################
reponsejson=response.json()
repetat=reponsejson['etat']
if not repetat.has_key('code'):
try:
repetat=reponsejson['etat']['etat'][0]
except:
repetat=reponsejson['etat']['etat']
# General error
if not repetat.has_key('subAccountKeyId'):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Infos de retour
else:
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
print 'subAccountKeyId: '+repetat['subAccountKeyId']
if repetat.has_key('subAccountId'):
print 'subAccountId: '+repetat['subAccountId']
if repetat.has_key('subAccountCountryCode'):
print 'subAccountCountryCode: '+repetat['subAccountCountryCode']
if repetat.has_key('subAccountPrice'):
print 'subAccountPrice: '+repetat['subAccountPrice']
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_rest."/cgi-bin/subaccount";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("subAccountKeyId", "ber296464ce018ab710a");
paramsTablo.put("subAccountCountryCode", "39");
paramsTablo.put("subAccountEdit", "getPrice");
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
Map reponsejson = new Gson().fromJson(content.toString(), Map.class);
Map repetat = (Map)reponsejson.get("etat");
if (! repetat.containsKey("code")){
try{
repetat=(Map)reponsejson.get("etat");
var repetatArray=((ArrayList)(repetat.get("etat"))).get(0);
repetat=(Map)(repetatArray);
}catch(Exception e) {
repetat=(Map)reponsejson.get("etat");
repetat=(Map)repetat.get("etat");
}
}
// General error
if (! repetat.containsKey("subAccountKeyId")){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
// Infos de retour
}else{
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
if (repetat.containsKey("subAccountId")){
System.out.println("subAccountId: "+repetat.get("subAccountId"));
}
if (repetat.containsKey("subAccountCountryCode")){
System.out.println("subAccountCountryCode: "+repetat.get("subAccountCountryCode"));
}
if (repetat.containsKey("subAccountPrice")){
System.out.println("subAccountPrice: "+repetat.get("subAccountPrice"));
}
}
} finally {
con.disconnect();
}
}
}
https://apirest.isendpro.com/cgi-bin/subaccount
Parameter | Type | Mandatory | Details |
keyid | String | Yes |
Unique string identifying your account E.g.: a296464ce012b8ab710a |
subAccountKeyId | String | Yes | Unique character string identifying the sub-account |
subAccountAddCredit | Number | Yes |
Amount in euros HT to be added The penny separator is the dot (.) E.g.: 150.0 |
subAccountEdit | String | Yes | Use the value 'addCredit' |
Parameter | Type | Details |
code | Number | Code corresponding to the error table |
message | String | Wording corresponding to the error table |
subAccountId | String | Id for the new sub account |
subAccountKeyId | String | Identification key (KeyId) for the new sub-account |
{
"etat": {
"etat": [
{
"code": "239",
"message": "Credit was added to the sub-account",
"subAccountId": "20474",
"subAccountKeyId": "ber296464ce018ab710a"
}
]
}
}
{
"etat": {
"etat": [
{
"code": "234",
"message": "No account with these credentials",
"subAccountKeyId": "ber296464ce018ab710a",
}
]
}
}
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/subaccount' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"subAccountKeyId": "ber296464ce018ab710a",
"subAccountAddCredit": "150",
"subAccountEdit": "addCredit"
}'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://apirest.isendpro.com/cgi-bin/subaccount';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'subAccountKeyId' => 'ber296464ce018ab710a',
'subAccountAddCredit' => '150',
'subAccountEdit' => 'addCredit'
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // If script use
//$sautligne="<br>"; // If html use
$reponsejson=json_decode($response);
$repetat=$reponsejson->etat->etat;
if (!isset($repetat->code)){
$repetat=$reponsejson->etat->etat[0];
}
// General error
if (!isset($repetat->subAccountKeyId)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
// Infos de retour
}else{
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
echo 'subAccountId: '.$repetat->subAccountKeyId;
echo $sautligne;
echo 'subAccountKeyId: '.$repetat->subAccountId;
echo $sautligne;
}
?>
####################################################################################
#- Send request
####################################################################################
import requests
url = 'https://apirest.isendpro.com/cgi-bin/subaccount'
params = {
'keyid': 'a296464ce012b8ab710a',
'subAccountKeyId': 'ber296464ce018ab710a',
'subAccountAddCredit': '150',
'subAccountEdit': 'addCredit'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Return processing
####################################################################################
reponsejson=response.json()
repetat=reponsejson['etat']
if not repetat.has_key('code'):
try:
repetat=reponsejson['etat']['etat'][0]
except:
repetat=reponsejson['etat']['etat']
# General error
if not repetat.has_key('subAccountKeyId'):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Infos de retour
else:
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
print 'subAccountId: '+repetat['subAccountId']
print 'subAccountKeyId: '+repetat['subAccountKeyId']
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_rest."/cgi-bin/subaccount";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("subAccountKeyId", "ber296464ce018ab710a");
paramsTablo.put("subAccountAddCredit", "150");
paramsTablo.put("subAccountEdit", "addCredit");
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
Map reponsejson = new Gson().fromJson(content.toString(), Map.class);
Map repetat = (Map)reponsejson.get("etat");
if (! repetat.containsKey("code")){
try{
repetat=(Map)reponsejson.get("etat");
var repetatArray=((ArrayList)(repetat.get("etat"))).get(0);
repetat=(Map)(repetatArray);
}catch(Exception e) {
repetat=(Map)reponsejson.get("etat");
repetat=(Map)repetat.get("etat");
}
}
// General error
if (! repetat.containsKey("subAccountKeyId")){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
// Infos de retour
}else{
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
System.out.println("subAccountId: "+repetat.get("subAccountId"));
System.out.println("subAccountKeyId: "+repetat.get("subAccountKeyId"));
}
} finally {
con.disconnect();
}
}
}
https://apirest.isendpro.com/cgi-bin/subaccount
Parameter | Type | Mandatory | Details |
keyid | String | Yes |
Unique string identifying your account E.g.: a296464ce012b8ab710a |
subAccountKeyId | String | Yes | Unique character string identifying the sub-account |
subAccountOutstanding | Number | Yes | New amount in euros excluding VAT of the outstanding amount |
subAccountEdit | String | Yes | Use the value 'setOutstanding' |
Parameter | Type | Details |
code | Number | Code corresponding to the error table |
message | String | Wording corresponding to the error table |
subAccountId | String | Id for the new sub account |
subAccountKeyId | String | Identification key (KeyId) for the new sub-account |
{
"etat": {
"etat": [
{
"code": "252",
"message": "Outstandings have been defined for the subaccount",
"subAccountId": "20474",
"subAccountKeyId": "ber296464ce018ab710a"
}
]
}
}
{
"etat": {
"etat": [
{
"code": "234",
"message": "No account with these credentials",
"subAccountKeyId": "ber296464ce018ab710a"
}
]
}
}
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/subaccount' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"subAccountKeyId": "ber296464ce018ab710a",
"subAccountOutstanding": "150",
"subAccountEdit": "setOutstanding"
}'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://apirest.isendpro.com/cgi-bin/subaccount';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'subAccountKeyId' => 'ber296464ce018ab710a',
'subAccountOutstanding' => '150',
'subAccountEdit' => 'setOutstanding'
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // If script use
//$sautligne="<br>"; // If html use
$reponsejson=json_decode($response);
$repetat=$reponsejson->etat->etat;
if (!isset($repetat->code)){
$repetat=$reponsejson->etat->etat[0];
}
// General error
if (!isset($repetat->subAccountKeyId)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
// Infos de retour
}else{
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
echo 'subAccountId: '.$repetat->subAccountKeyId;
echo $sautligne;
echo 'subAccountKeyId: '.$repetat->subAccountId;
echo $sautligne;
}
?>
####################################################################################
#- Send request
####################################################################################
import requests
url = 'https://apirest.isendpro.com/cgi-bin/subaccount'
params = {
'keyid' : 'a296464ce012b8ab710a',
'subAccountKeyId' : 'ber296464ce018ab710a',
'subAccountOutstanding' : '150',
'subAccountEdit' : 'setOutstanding'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Return processing
####################################################################################
reponsejson=response.json()
repetat=reponsejson['etat']
if not repetat.has_key('code'):
try:
repetat=reponsejson['etat']['etat'][0]
except:
repetat=reponsejson['etat']['etat']
# General error
if not repetat.has_key('subAccountKeyId'):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Infos de retour
else:
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
print 'subAccountId: '+repetat['subAccountId']
print 'subAccountKeyId: '+repetat['subAccountKeyId']
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_rest."/cgi-bin/subaccount";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("subAccountKeyId", "ber296464ce018ab710a");
paramsTablo.put("subAccountOutstanding", "150");
paramsTablo.put("subAccountEdit", "setOutstanding");
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
Map reponsejson = new Gson().fromJson(content.toString(), Map.class);
Map repetat = (Map)reponsejson.get("etat");
if (! repetat.containsKey("code")){
try{
repetat=(Map)reponsejson.get("etat");
var repetatArray=((ArrayList)(repetat.get("etat"))).get(0);
repetat=(Map)(repetatArray);
}catch(Exception e) {
repetat=(Map)reponsejson.get("etat");
repetat=(Map)repetat.get("etat");
}
}
// General error
if (! repetat.containsKey("subAccountKeyId")){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
// Infos de retour
}else{
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
System.out.println("subAccountId: "+repetat.get("subAccountId"));
System.out.println("subAccountKeyId: "+repetat.get("subAccountKeyId"));
}
} finally {
con.disconnect();
}
}
}
https://apirest.isendpro.com/cgi-bin/subaccount
Parameter | Type | Mandatory | Details |
keyid | String | Yes |
Unique string identifying your account E.g.: a296464ce012b8ab710a |
subAccountKeyId | String | Yes | Unique character string identifying the sub-account |
subAccountEdit | String | Yes | Use the value 'getOutstanding' |
Parameter | Type | Details |
code | Number | Code corresponding to the error table |
message | String | Wording corresponding to the error table |
subAccountId | String | Id for the new sub account |
subAccountKeyId | String | Identification key (KeyId) for the new sub-account |
subAccountOutstanding | String | Amount outstanding in euros excluding VAT |
{
"etat": {
"etat": [
{
"code": "254",
"message": "Outstandings",
"subAccountId": "20474",
"subAccountKeyId": "ber296464ce018ab710a",
"subAccountOutstanding": "150"
}
]
}
}
{
"etat": {
"etat": [
{
"code": "234",
"message": "No account with these credentials",
"subAccountKeyId": "ber296464ce018ab710a"
}
]
}
}
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/subaccount' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"subAccountKeyId": "ber296464ce018ab710a",
"subAccountEdit": "getOutstanding"
}'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://apirest.isendpro.com/cgi-bin/subaccount';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'subAccountKeyId' => 'ber296464ce018ab710a',
'subAccountEdit' => 'getOutstanding'
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // If script use
//$sautligne="<br>"; // If html use
$reponsejson=json_decode($response);
$repetat=$reponsejson->etat->etat;
if (!isset($repetat->code)){
$repetat=$reponsejson->etat->etat[0];
}
// General error
if (!isset($repetat->subAccountKeyId)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
// Infos de retour
}else{
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
echo 'subAccountKeyId: '.$repetat->subAccountKeyId;
echo $sautligne;
}
if (isset($repetat->subAccountOutstanding)){
echo $sautligne;
echo 'subAccountOutstanding: '.$repetat->subAccountOutstanding;
}
echo $sautligne;
}
?>
####################################################################################
#- Send request
####################################################################################
import requests
url = 'https://apirest.isendpro.com/cgi-bin/subaccount'
params = {
'keyid' : 'a296464ce012b8ab710a',
'subAccountKeyId' : 'ber296464ce018ab710a',
'subAccountEdit' : 'getOutstanding'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Return processing
####################################################################################
reponsejson=response.json()
repetat=reponsejson['etat']
if not repetat.has_key('code'):
try:
repetat=reponsejson['etat']['etat'][0]
except:
repetat=reponsejson['etat']['etat']
# General error
if not repetat.has_key('subAccountKeyId'):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Infos de retour
else:
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
print 'subAccountKeyId: '+repetat['subAccountKeyId']
if repetat.has_key('subAccountOutstanding'):
print 'subAccountOutstanding: '+repetat['subAccountOutstanding']
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_rest."/cgi-bin/subaccount";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("subAccountKeyId", "ber296464ce018ab710a");
paramsTablo.put("subAccountEdit", "getOutstanding");
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
Map reponsejson = new Gson().fromJson(content.toString(), Map.class);
Map repetat = (Map)reponsejson.get("etat");
if (! repetat.containsKey("code")){
try{
repetat=(Map)reponsejson.get("etat");
var repetatArray=((ArrayList)(repetat.get("etat"))).get(0);
repetat=(Map)(repetatArray);
}catch(Exception e) {
repetat=(Map)reponsejson.get("etat");
repetat=(Map)repetat.get("etat");
}
}
// General error
if (! repetat.containsKey("subAccountKeyId")){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
// Infos de retour
}else{
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
System.out.println("subAccountKeyId: "+repetat.get("subAccountKeyId"));
if (repetat.containsKey("subAccountOutstanding")){
System.out.println("subAccountOutstanding: "+repetat.get("subAccountOutstanding"));
}
}
} finally {
con.disconnect();
}
}
}
https://apirest.isendpro.com/cgi-bin/subaccount
Parameter | Type | Mandatory | Details |
keyid | String | Yes |
Unique string identifying your account E.g.: a296464ce012b8ab710a |
subAccountKeyId | String | Yes | Unique character string identifying the sub-account |
subAccountRestrictionStop | Number | Yes |
Enabled or Disabled the STOP SMS restriction
|
subAccountEdit | String | Yes | Use the value 'setRestriction' |
Parameter | Type | Details |
code | Number | Code corresponding to the error table |
message | String | Wording corresponding to the error table |
subAccountId | String | Id for the new sub account |
subAccountKeyId | String | Identification key (KeyId) for the new sub-account |
{
"etat": {
"etat": [
{
"code": "244",
"message": "The STOP restriction is desactivated",
"subAccountId": "20474",
"subAccountKeyId": "ber296464ce018ab710a"
}
]
}
}
{
"etat": {
"etat": [
{
"code": "234",
"message": "No account with these credentials",
"subAccountKeyId": "ber296464ce018ab710a"
}
]
}
}
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/subaccount' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"subAccountKeyId": "ber296464ce018ab710a",
"subAccountRestrictionStop": "0",
"subAccountEdit": "setRestriction"
}'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://apirest.isendpro.com/cgi-bin/subaccount';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'subAccountKeyId' => 'ber296464ce018ab710a',
'subAccountRestrictionStop' => '0',
'subAccountEdit' => 'setRestriction'
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // If script use
//$sautligne="<br>"; // If html use
$reponsejson=json_decode($response);
$repetat=$reponsejson->etat->etat;
if (!isset($repetat->code)){
$repetat=$reponsejson->etat->etat[0];
}
// General error
if (!isset($repetat->subAccountKeyId)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
// Infos de retour
}else{
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
echo 'subAccountId: '.$repetat->subAccountKeyId;
echo $sautligne;
echo 'subAccountKeyId: '.$repetat->subAccountId;
echo $sautligne;
}
?>
####################################################################################
#- Send request
####################################################################################
import requests
url = 'https://apirest.isendpro.com/cgi-bin/subaccount'
params = {
'keyid' : 'a296464ce012b8ab710a',
'subAccountKeyId' : 'ber296464ce018ab710a',
'subAccountRestrictionStop' : '0',
'subAccountEdit' : 'setRestriction'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Return processing
####################################################################################
reponsejson=response.json()
repetat=reponsejson['etat']
if not repetat.has_key('code'):
try:
repetat=reponsejson['etat']['etat'][0]
except:
repetat=reponsejson['etat']['etat']
# General error
if not repetat.has_key('subAccountKeyId'):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Infos de retour
else:
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
print 'subAccountId: '+repetat['subAccountId']
print 'subAccountKeyId: '+repetat['subAccountKeyId']
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_rest."/cgi-bin/subaccount";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("subAccountKeyId", "ber296464ce018ab710a");
paramsTablo.put("subAccountRestrictionStop","0");
paramsTablo.put("subAccountEdit", "setRestriction");
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
Map reponsejson = new Gson().fromJson(content.toString(), Map.class);
Map repetat = (Map)reponsejson.get("etat");
if (! repetat.containsKey("code")){
try{
repetat=(Map)reponsejson.get("etat");
var repetatArray=((ArrayList)(repetat.get("etat"))).get(0);
repetat=(Map)(repetatArray);
}catch(Exception e) {
repetat=(Map)reponsejson.get("etat");
repetat=(Map)repetat.get("etat");
}
}
// General error
if (! repetat.containsKey("subAccountKeyId")){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
// Infos de retour
}else{
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
System.out.println("subAccountId: "+repetat.get("subAccountId"));
System.out.println("subAccountKeyId: "+repetat.get("subAccountKeyId"));
}
} finally {
con.disconnect();
}
}
}
https://apirest.isendpro.com/cgi-bin/subaccount
Parameter | Type | Mandatory | Details |
keyid | String | Yes |
Unique string identifying your account E.g.: a296464ce012b8ab710a |
subAccountKeyId | String | Yes | Unique character string identifying the sub-account |
subAccountRestrictionTime | Number | Yes |
Enabled ou Disabled the time restriction
|
subAccountEdit | String | Yes | Use the value 'setRestriction' |
Parameter | Type | Details |
code | Number | Code corresponding to the error table |
message | String | Wording corresponding to the error table |
subAccountId | String | Id for the new sub account |
subAccountKeyId | String | Identification key (KeyId) for the new sub-account |
{
"etat": {
"etat": [
{
"code": "246",
"message": "The TIME restriction is desactivated",
"subAccountId": "20474",
"subAccountKeyId": "ber296464ce018ab710a"
}
]
}
}
{
"etat": {
"etat": [
{
"code": "234",
"message": "No account with these credentials",
"subAccountKeyId": "ber296464ce018ab710a"
}
]
}
}
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/subaccount' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"subAccountKeyId": "ber296464ce018ab710a",
"subAccountRestrictionTime": "0",
"subAccountEdit": "setRestriction"
}'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://apirest.isendpro.com/cgi-bin/subaccount';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'subAccountKeyId' => 'ber296464ce018ab710a',
'subAccountRestrictionTime' => '0',
'subAccountEdit' => 'setRestriction'
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // If script use
//$sautligne="<br>"; // If html use
$reponsejson=json_decode($response);
$repetat=$reponsejson->etat->etat;
if (!isset($repetat->code)){
$repetat=$reponsejson->etat->etat[0];
}
// General error
if (!isset($repetat->subAccountKeyId)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
// Infos de retour
}else{
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
echo 'subAccountId: '.$repetat->subAccountKeyId;
echo $sautligne;
echo 'subAccountKeyId: '.$repetat->subAccountId;
echo $sautligne;
}
?>
####################################################################################
#- Send request
####################################################################################
import requests
url = 'https://apirest.isendpro.com/cgi-bin/subaccount'
params = {
'keyid' : 'a296464a296464ce012b8ab710ae012b8ab710a',
'subAccountKeyId' : 'ber296464ce018ab710a',
'subAccountRestrictionTime' : '0',
'subAccountEdit' : 'setRestriction'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Return processing
####################################################################################
reponsejson=response.json()
repetat=reponsejson['etat']
if not repetat.has_key('code'):
try:
repetat=reponsejson['etat']['etat'][0]
except:
repetat=reponsejson['etat']['etat']
# General error
if not repetat.has_key('subAccountKeyId'):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Infos de retour
else:
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
print 'subAccountId: '+repetat['subAccountId']
print 'subAccountKeyId: '+repetat['subAccountKeyId']
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_rest."/cgi-bin/subaccount";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("subAccountKeyId", "ber296464ce018ab710a");
paramsTablo.put("subAccountRestrictionTime","0");
paramsTablo.put("subAccountEdit", "setRestriction");
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
Map reponsejson = new Gson().fromJson(content.toString(), Map.class);
Map repetat = (Map)reponsejson.get("etat");
if (! repetat.containsKey("code")){
try{
repetat=(Map)reponsejson.get("etat");
var repetatArray=((ArrayList)(repetat.get("etat"))).get(0);
repetat=(Map)(repetatArray);
}catch(Exception e) {
repetat=(Map)reponsejson.get("etat");
repetat=(Map)repetat.get("etat");
}
}
// General error
if (! repetat.containsKey("subAccountKeyId")){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
// Infos de retour
}else{
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
System.out.println("subAccountId: "+repetat.get("subAccountId"));
System.out.println("subAccountKeyId: "+repetat.get("subAccountKeyId"));
}
} finally {
con.disconnect();
}
}
}
https://apirest.isendpro.com/cgi-bin/subaccount
Parameter | Type | Mandatory | Details |
keyid | String | Yes |
Unique string identifying your account E.g.: a296464ce012b8ab710a |
subAccountKeyId | String | Yes | Unique character string identifying the sub-account |
subAccountAdresseRetour | String | Yes |
Return address to which delivery report will be sent E.g.: https://mybackurl.php |
subAccountEdit | String | Yes | Use the value 'setAdresseRetour' |
Parameter | Type | Details |
code | Number | Code corresponding to the error table |
message | String | Wording corresponding to the error table |
subAccountId | String | Id for the new sub account |
subAccountKeyId | String | Identification key (KeyId) for the new sub-account |
{
"etat": {
"etat": [
{
"code": "258",
"message": "L url de retour a ete defini pour le sous compte",
"subAccountId": "20474",
"subAccountKeyId": "ber296464ce018ab710a"
}
]
}
}
{
"etat": {
"etat": [
{
"code": "257",
"message": "Vous devez renseigner une url de retour valide",
"subAccountKeyId": "ber296464ce018ab710a"
}
]
}
}
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/subaccount' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"subAccountKeyId": "ber296464ce018ab710a",
"subAccountAdresseRetour": "https://monurlderetour.php",
"subAccountEdit": "setAdresseRetour"
}'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://apirest.isendpro.com/cgi-bin/subaccount';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'subAccountKeyId' => 'ber296464ce018ab710a',
'subAccountAdresseRetour' => 'https://monurlderetour.php',
'subAccountEdit' => 'setAdresseRetour'
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // If script use
//$sautligne="<br>"; // If html use
$reponsejson=json_decode($response);
$repetat=$reponsejson->etat->etat;
if (!isset($repetat->code)){
$repetat=$reponsejson->etat->etat[0];
}
// General error
if (!isset($repetat->subAccountKeyId)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
// Infos de retour
}else{
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
echo 'subAccountId: '.$repetat->subAccountKeyId;
echo $sautligne;
echo 'subAccountKeyId: '.$repetat->subAccountId;
echo $sautligne;
}
?>
####################################################################################
#- Send request
####################################################################################
import requests
url = 'https://apirest.isendpro.com/cgi-bin/subaccount'
params = {
'keyid' : 'a296464ce012b8ab710a',
'subAccountKeyId' : 'ber296464ce018ab710a',
'subAccountAdresseRetour' : 'https://monurlderetour.php',
'subAccountEdit' : 'setAdresseRetour'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Return processing
####################################################################################
reponsejson=response.json()
repetat=reponsejson['etat']
if not repetat.has_key('code'):
try:
repetat=reponsejson['etat']['etat'][0]
except:
repetat=reponsejson['etat']['etat']
# General error
if not repetat.has_key('subAccountKeyId'):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Infos de retour
else:
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
print 'subAccountId: '+repetat['subAccountId']
print 'subAccountKeyId: '+repetat['subAccountKeyId']
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_rest."/cgi-bin/subaccount";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("subAccountKeyId", "ber296464ce018ab710a");
paramsTablo.put("subAccountAdresseRetour", "https://monurlderetour.php");
paramsTablo.put("subAccountEdit", "setAdresseRetour");
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
Map reponsejson = new Gson().fromJson(content.toString(), Map.class);
Map repetat = (Map)reponsejson.get("etat");
if (! repetat.containsKey("code")){
try{
repetat=(Map)reponsejson.get("etat");
var repetatArray=((ArrayList)(repetat.get("etat"))).get(0);
repetat=(Map)(repetatArray);
}catch(Exception e) {
repetat=(Map)reponsejson.get("etat");
repetat=(Map)repetat.get("etat");
}
}
// General error
if (! repetat.containsKey("subAccountKeyId")){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
// Infos de retour
}else{
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
System.out.println("subAccountId: "+repetat.get("subAccountId"));
System.out.println("subAccountKeyId: "+repetat.get("subAccountKeyId"));
}
} finally {
con.disconnect();
}
}
}
https://apirest.isendpro.com/cgi-bin/subaccount
Parameter | Type | Mandatory | Details |
keyid | String | Yes |
Unique string identifying your account E.g.: a296464ce012b8ab710a |
subAccountKeyId | String | Yes | Unique character string identifying the sub-account |
subAccountAdresseSMSretour | String | Yes |
Return address to which responses will be sent E.g.: https://monurlderetour.php |
subAccountEdit | String | Yes | Use the value 'setAdresseSMSretour' |
Parameter | Type | Details |
code | Number | Code corresponding to the error table |
message | String | Wording corresponding to the error table |
subAccountId | String | Id for the new sub account |
subAccountKeyId | String | Identification key (KeyId) for the new sub-account |
{
"etat": {
"etat": [
{
"code": "256",
"message": "L url de retour SMS a ete defini pour le sous compte",
"subAccountId": "20474",
"subAccountKeyId": "ber296464ce018ab710a"
}
]
}
}
{
"etat": {
"etat": [
{
"code": "255",
"message": "Vous devez renseigner une url de retour SMS valide",
"subAccountKeyId": "ber296464ce018ab710a"
}
]
}
}
curl -X POST \
'https://apirest.isendpro.com/cgi-bin/subaccount' \
-H 'cache-control: no-cache' \
-d '{
"keyid": "a296464ce012b8ab710a",
"subAccountKeyId": "ber296464ce018ab710a",
"subAccountAdresseSMSretour": "https://monurlderetour.php",
"subAccountEdit": "setAdresseSMSretour"
}'
<?php
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
$ch = curl_init();
$url = 'https://apirest.isendpro.com/cgi-bin/subaccount';
$params = array(
'keyid' => 'a296464ce012b8ab710a',
'subAccountKeyId' => 'ber296464ce018ab710a',
'subAccountAdresseSMSretour'=> 'https://monurlderetour.php',
'subAccountEdit' => 'setAdresseSMSretour'
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
$sautligne="\n"; // If script use
//$sautligne="<br>"; // If html use
$reponsejson=json_decode($response);
$repetat=$reponsejson->etat->etat;
if (!isset($repetat->code)){
$repetat=$reponsejson->etat->etat[0];
}
// General error
if (!isset($repetat->subAccountKeyId)){
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
// Infos de retour
}else{
echo 'Code: '.$repetat->code;
echo $sautligne;
echo 'Message: '.$repetat->message;
echo $sautligne;
echo 'subAccountId: '.$repetat->subAccountKeyId;
echo $sautligne;
echo 'subAccountKeyId: '.$repetat->subAccountId;
echo $sautligne;
}
?>
####################################################################################
#- Send request
####################################################################################
import requests
url = 'https://apirest.isendpro.com/cgi-bin/subaccount'
params = {
'keyid': 'a296464ce012b8ab710a',
'subAccountKeyId': 'ber296464ce018ab710a',
'subAccountAdresseSMSretour': 'https://monurlderetour.php',
'subAccountEdit': 'setAdresseSMSretour'
}
response = requests.post(url, params)
print(response.text)
####################################################################################
#- Return processing
####################################################################################
reponsejson=response.json()
repetat=reponsejson['etat']
if not repetat.has_key('code'):
try:
repetat=reponsejson['etat']['etat'][0]
except:
repetat=reponsejson['etat']['etat']
# General error
if not repetat.has_key('subAccountKeyId'):
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
# Infos de retour
else:
print 'Code: '+repetat['code']
print 'Message: '+repetat['message']
print 'subAccountId: '+repetat['subAccountId']
print 'subAccountKeyId: '+repetat['subAccountKeyId']
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import com.google.gson.Gson;
public class TestDocs {
private static HttpURLConnection con;
public static void main(String[] args) throws IOException {
////////////////////////////////////////////////////////////////////////////////////
// Send request
////////////////////////////////////////////////////////////////////////////////////
var url = "https://".$url_api_sms_rest."/cgi-bin/subaccount";
Map<String, String> paramsTablo = new HashMap<>();
paramsTablo.put("keyid", "a296464ce012b8ab710a");
paramsTablo.put("subAccountKeyId", "ber296464ce018ab710a");
paramsTablo.put("subAccountAdresseSMSretour", "https://monurlderetour.php");
paramsTablo.put("subAccountEdit", "setAdresseSMSretour");
Gson gson = new Gson();
String urlParameters = gson.toJson(paramsTablo);
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
var myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
try (var wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
}
StringBuilder content;
InputStream ret;
if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
ret = con.getInputStream();
} else {
ret = con.getErrorStream();
}
try (var br = new BufferedReader(new InputStreamReader(ret))) {
String line;
content = new StringBuilder();
while ((line = br.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
System.out.println(content.toString());
////////////////////////////////////////////////////////////////////////////////////
// Return processing
////////////////////////////////////////////////////////////////////////////////////
Map reponsejson = new Gson().fromJson(content.toString(), Map.class);
Map repetat = (Map)reponsejson.get("etat");
if (! repetat.containsKey("code")){
try{
repetat=(Map)reponsejson.get("etat");
var repetatArray=((ArrayList)(repetat.get("etat"))).get(0);
repetat=(Map)(repetatArray);
}catch(Exception e) {
repetat=(Map)reponsejson.get("etat");
repetat=(Map)repetat.get("etat");
}
}
// General error
if (! repetat.containsKey("subAccountKeyId")){
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
// Infos de retour
}else{
System.out.println("Code: "+repetat.get("code"));
System.out.println("Message: "+repetat.get("message"));
System.out.println("subAccountId: "+repetat.get("subAccountId"));
System.out.println("subAccountKeyId: "+repetat.get("subAccountKeyId"));
}
} finally {
con.disconnect();
}
}
}
Error code | Message |
0 | Your message has been sent |
1 | The login is empty |
2 | The password is empty |
3 | Your credentials are incorrect |
4 | You must enter a message |
5 | The message can not exceed XXX characters |
6 | You must enter a valid phone number |
7 | You must enter a valid phone number |
9 | La route que vous avez saisie n'existe pas |
10 | Vous n'avez pas les droits necessaires pour utiliser cette route |
11 | The phone number is in the blacklist |
12 | You are out of credit |
13 | La route Lowcost est down |
14 | The IP adress is not allowed |
15 | Vous devez indiquer un canal d'envoi |
16 | The sender id can not be empty if defined |
17 | The sender id must be between 3 and 11 characters |
18 | The sender id can not contain only numbers |
19 | Si un emetteur est indique, le message ne doit pas depasser 149 caracteres afin de pouvoir ajouter le texte 'STOP XXXXX' |
20 | L'emetteur ne peut pas etre modifie sur le canal LowCost |
21 | The phone number is invalid |
22 | Le numero de telephone est attribue a un Full MVNO |
23 | The maximum number by request is 5000 |
24 | Pas d'envoi commercial entre 20h et 08h, ni les jours feries |
25 | You must set the cost to number in 0899 |
26 | You must set the cost to number in 0892 |
27 | This country is not authorized |
28 | You are out of qualification credit |
29 | An error has occured (overflow) |
30 | Error on the connection domain |
31 | The message can not exceed XXX characters |
32 | The message is on DATA1 SMS (DATA2 characters)whereas the request is on DATA3 SMS |
33 | This sender id is not authorized |
34 | The value of smslong must be an integer |
35 | You are out of HLR credit |
36 | Vous n'etes pas autorise a retirer le STOP SMS |
37 | Phone numbers are not all for the same country |
38 | The message can not exceed XXX characters |
39 | The message can not exceed XXX characters |
40 | The ucs2 is not allowed with french numbers |
41 | You can not process HLR requests |
42 | The send id can not contain special characters |
43 | The sending data is not well formatted (AAAA-MM-JJ HH => MM) |
44 | The GMT does not exist! |
45 | The sender id can not contain 5 following numbers |
100 | Your directory has been created |
101 | You must enter a directory name |
102 | The directory id has no match |
103 | Your data has been added to the directory |
104 | The directory can not be modified because a campaign is scheduled on it |
105 | The data is already in the directory |
106 | The data has been deleted from the directory |
107 | The data is not in the directory |
108 | Cet identifiant ne correspond a aucun repertoire |
201 | You must enter a starting date |
202 | You must enter an ending date |
203 | The starting date is not well formatted (AAAA-MM-JJ HH => MM) |
204 | The ending date is not well formatted (AAAA-MM-JJ HH => MM) |
205 | The query is over 200 000 data! Please, reduce it |
206 | The query return 0 data! |
207 | Sending history! |
210 | The keyword was added |
211 | The keyword was deleted |
212 | List of keywords for this account |
213 | The keyword is not available |
214 | The keyword does not exist for this account |
215 | No keywords found for this account |
216 | The key word must not contain any space or special characters |
217 | The key word must be between 3 and 20 characters |
220 | The sender id was added |
221 | The sender id was deleted |
222 | List of sender ids for this account |
223 | The sender id is not available |
224 | The sender id does not exist for this account |
225 | No sender ids found for this account |
230 | The sub-account was added |
231 | You must enter a login / login to create the sub account |
232 | You must enter a password to create the sub account |
233 | A sub-account already exists with this login |
234 | No account with these credentials |
235 | You must enter the country code associated with the price |
236 | You must fill in a price |
237 | The price was created |
238 | You must fill in the credit amount |
239 | Credit was added to the sub-account |
240 | The command entered does not correspond to any functionality |
241 | The price has been updated |
242 | You must enter the sub account keyID |
243 | A sub account cannot get sub account |
244 | The STOP restriction is desactivated |
245 | The STOP restriction is activated |
246 | The TIME restriction is desactivated |
247 | The TIME restriction is activated |
248 | The restriction datas are incorrects |
250 | The shortlink has been generated |
251 | The price |
252 | Outstandings have been defined for the subaccount |
253 | Outstandings must be positive |
254 | Outstandings |
255 | The SMS response url must be a valid one |
256 | The SMS response url has been updated |
257 | The response url must be a valid one |
258 | The response url has been updated |
259 | The password for the sub-account is incorrect! Minimum of 10 characters, one lowercase, one uppercase, one number and one special character |
260 | The max quota of rapportCampagne request has been reached |
261 | The max quota of shortlink request has been reached |
777 | The service The site is in maintenance |
900 | keyId is valid |
901 | keyId is not valid |
998 | The encoding of the message is incorrect |
999 | An error has occured. Please contact the technical support |
Character | Meaning | Character | Meaning |
LF | Line Feed (Line break) | CR | Carriage Return |
SP | Space | ! | Exclamation mark |
" | Guillemet | # | Hashtag |
% | Pourcentage | & | Esperluette |
‘ | Apostrophe | ( | Opening parenthesis |
) | Closing parenthesis | * | Asterisk |
+ | Plus | , | Comma |
- | Minus or hyphen | . | Point |
/ | Slash | 0 | The number zero |
1 | The number one | 2 | The number two |
3 | The number three | 4 | The number four |
5 | The number five | 6 | The number six |
7 | The number seven | 8 | The number height |
9 | The number nine | : | Dotted line |
; | Semi-colon | < | Lower |
= | Equal | > | Greater |
? | Question mark | @ | Arobace (aussi dénommé Arobase ou A commercial8) |
A | B | ||
C | D | ||
E | F | ||
G | H | ||
I | J | ||
K | L | ||
M | N | ||
O | P | ||
Q | R | ||
S | T | ||
U | V | ||
W | X | ||
Y | Z | ||
[ | Opening bracket | ] | Closing bracket |
_ | underscore | a | |
b | c | ||
d | e | ||
f | g | ||
h | i | ||
j | k | ||
l | m | ||
n | o | ||
p | q | ||
r | s | ||
t | u | ||
v | w | ||
x | y | ||
z | à | ||
è | é | ||
ù | € | Euro |
Character | Replaced by | Character | Replaced by |
À | A | Á | A |
 | A | à | A |
Ä | A | Å | A |
È | E | É | E |
Ë | E | Ì | I |
Í | I | Î | I |
Ï | I | Ò | O |
Ó | O | Ô | O |
Õ | O | Ö | O |
Ù | U | Ú | U |
Û | U | Ü | U |
á | a | â | a |
ã | a | ä | a |
å | a | ç | c |
ê | e | ë | e |
ì | i | í | i |
î | i | ï | i |
ð | o | ñ | n |
ò | o | ó | o |
ô | o | õ | o |
ö | o | ù | u |
ú | u | û | u |
ü | u | ý | y |
ÿ | y |
Character | Encoding | Character | Encoding |
Espace | %20 | $ | %24 |
& | %26 | + | %2B |
, | %2C | / | %2F |
: | %3A | ; | %3B |
? | %3D | @ | %40 |
€ | Ê ou %ca | Line break | Õ ou %d5 |
GMT Zone | Correspondence | GMT Zone | Correspondence |
Pacific/Midway | (GMT-11:00) Midway Island, Samoa | America/Adak | (GMT-10:00) Hawaii-Aleutian |
Etc/GMT+10 | (GMT-10:00) Hawaii | Pacific/Marquesas | (GMT-09:30) Marquesas Islands |
Pacific/Gambier | (GMT-09:00) Gambier Islands | America/Anchorage | (GMT-09:00) Alaska |
America/Ensenada | (GMT-08:00) Tijuana, Baja California | Etc/GMT+8 | (GMT-08:00) Pitcairn Islands |
America/Los_Angeles | (GMT-08:00) Pacific Time (US & Canada) | America/Denver | (GMT-07:00) Mountain Time (US & Canada) |
America/Chihuahua | (GMT-07:00) Chihuahua, La Paz, Mazatlan | America/Dawson_Creek | (GMT-07:00) Arizona |
America/Belize | (GMT-06:00) Saskatchewan, Central America | America/Cancun | (GMT-06:00) Guadalajara, Mexico City, Monterrey |
Chile/EasterIsland | (GMT-06:00) Easter Island | America/Chicago | (GMT-06:00) Central Time (US & Canada) |
America/New_York | (GMT-05:00) Eastern Time (US & Canada) | America/Havana | (GMT-05:00) Cuba |
America/Bogota | (GMT-05:00) Bogota, Lima, Quito, Rio Branco | America/Caracas | (GMT-04:30) Caracas |
America/Santiago | (GMT-04:00) Santiago | America/La_Paz | (GMT-04:00) La Paz |
Atlantic/Stanley | (GMT-04:00) Faukland Islands | America/Campo_Grande | (GMT-04:00) Brazil |
America/Goose_Bay | (GMT-04:00) Atlantic Time (Goose Bay) | America/Glace_Bay | (GMT-04:00) Atlantic Time (Canada) |
America/St_Johns | (GMT-03:30) Newfoundland | America/Araguaina | (GMT-03:00) UTC-3 |
America/Montevideo | (GMT-03:00) Montevideo | America/Miquelon | (GMT-03:00) Miquelon, St. Pierre |
America/Godthab | (GMT-03:00) Greenland | America/Argentina/Buenos_Aires | (GMT-03:00) Buenos Aires |
America/Sao_Paulo | (GMT-03:00) Brasilia | America/Noronha | (GMT-02:00) Mid-Atlantic |
Atlantic/Cape_Verde | (GMT-01:00) Cape Verde Is. | Atlantic/Azores | (GMT-01:00) Azores |
Europe/Belfast | (GMT) Greenwich Mean Time : Belfast | Europe/Dublin | (GMT) Greenwich Mean Time : Dublin |
Europe/Lisbon | (GMT) Greenwich Mean Time : Lisbon | Europe/London | (GMT) Greenwich Mean Time : London |
Africa/Abidjan | (GMT) Monrovia, Reykjavik | Europe/Amsterdam | (GMT+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna |
Europe/Belgrade | (GMT+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague | Europe/Brussels | (GMT+01:00) Brussels, Copenhagen, Madrid, Paris |
Africa/Algiers | (GMT+01:00) West Central Africa | Africa/Windhoek | (GMT+01:00) Windhoek |
Asia/Beirut | (GMT+02:00) Beirut | Africa/Cairo | (GMT+02:00) Cairo |
Asia/Gaza | (GMT+02:00) Gaza | Africa/Blantyre | (GMT+02:00) Harare, Pretoria |
Asia/Jerusalem | (GMT+02:00) Jerusalem | Europe/Minsk | (GMT+02:00) Minsk |
Asia/Damascus | (GMT+02:00) Syria | Europe/Moscow | (GMT+03:00) Moscow, St. Petersburg, Volgograd |
Africa/Addis_Ababa | (GMT+03:00) Nairobi | Asia/Tehran | (GMT+03:30) Tehran |
Asia/Dubai | (GMT+04:00) Abu Dhabi, Muscat | Asia/Yerevan | (GMT+04:00) Yerevan |
Asia/Kabul | (GMT+04:30) Kabul | Asia/Yekaterinburg | (GMT+05:00) Ekaterinburg |
Asia/Tashkent | (GMT+05:00) Tashkent | Asia/Kolkata | (GMT+05:30) Chennai, Kolkata, Mumbai, New Delhi |
Asia/Katmandu | (GMT+05:45) Kathmandu | Asia/Dhaka | (GMT+06:00) Astana, Dhaka |
Asia/Novosibirsk | (GMT+06:00) Novosibirsk | Asia/Rangoon | (GMT+06:30) Yangon (Rangoon) |
Asia/Bangkok | (GMT+07:00) Bangkok, Hanoi, Jakarta | Asia/Krasnoyarsk | (GMT+07:00) Krasnoyarsk |
Asia/Hong_Kong | (GMT+08:00) Beijing, Chongqing, Hong Kong, Urumqi | Asia/Irkutsk | (GMT+08:00) Irkutsk, Ulaan Bataar |
Australia/Perth | (GMT+08:00) Perth | Australia/Eucla | (GMT+08:45) Eucla |
Asia/Tokyo | (GMT+09:00) Osaka, Sapporo, Tokyo | Asia/Seoul | (GMT+09:00) Seoul |
Asia/Yakutsk | (GMT+09:00) Yakutsk | Australia/Adelaide | (GMT+09:30) Adelaide |
Australia/Darwin | (GMT+09:30) Darwin | Australia/Brisbane | (GMT+10:00) Brisbane |
Australia/Hobart | (GMT+10:00) Hobart | Asia/Vladivostok | (GMT+10:00) Vladivostok |
Australia/Lord_Howe | (GMT+10:30) Lord Howe Island | Etc/GMT-11 | (GMT+11:00) Solomon Is., New Caledonia |
Asia/Magadan | (GMT+11:00) Magadan | Pacific/Norfolk | (GMT+11:30) Norfolk Island |
Asia/Anadyr | (GMT+12:00) Anadyr, Kamchatka | Pacific/Auckland | (GMT+12:00) Auckland, Wellington |
Etc/GMT-12 | (GMT+12:00) Fiji, Kamchatka, Marshall Is. | Pacific/Chatham | (GMT+12:45) Chatham Islands |
Pacific/Tongatapu | (GMT+13:00) Nuku'alofa | Pacific/Kiritimati | (GMT+14:00) Kiritimati |
Code | Message | Code | Message |
000 | Service temporairement indisponible | 002 | Service temporairement indisponible |
003 | Service temporairement indisponible | 004 | Service temporairement indisponible |
005 | Service temporairement indisponible | 006 | Service temporairement indisponible |
007 | Service temporairement indisponible | 008 | Service temporairement indisponible |
009 | Code d'erreur illégal | 010 | Expiration de la temporisation du réseau |
100 | Fonctionnalité No supportée | 101 | Abonné inconnu |
102 | Fonctionnalité No offerte | 103 | Appel bloqué |
104 | Opération bloquée | 105 | Surcharge du SMS-C |
106 | Fonctionnalité No supportée | 107 | Abonné absent |
108 | Echec de remise | 109 | Surcharge su SMS-C |
110 | Erreur de protocole | 111 | Mobile No équipé |
112 | SMS-C inconnu | 113 | Surcharge du SMS-C |
114 | Mobile illégal | 115 | Mobile pas abonné |
116 | Erreur dans le mobile | 117 | Couche basse SMS No provisionnée |
118 | Echec du système | 119 | Erreur système du PLMN |
120 | Erreur système du HLR | 121 | Erreur du système du VLR |
122 | Erreur du système du VLR précédent | 123 | Erreur du système du MSC de contrôle |
124 | Erreur du système du VMC | 125 | Erreur du système du EIR |
126 | Erreur système | 127 | Valeur inattendue |
200 | Erreur dans l'adresse du SMS-C | 201 | Période de validité absolue No valide |
202 | Message court trop long | 203 | Impossible de lire le message GSM |
204 | Impossible de convertir en alphabet IA5 | 206 | Format de période de validité invalide |
207 | Message dupliqué | 208 | Indicateur de type de message (MT) invalide |
Code | Message | Description |
1 | ENROUTE | The message is in enroute state |
2 | DELIVERED | Message is delivered to destination |
3 | EXPIRED | Message validity period has expired |
4 | DELETED | Message has been deleted |
5 | UNDELIVERABLE | Message is undeliverable |
6 | ACCEPTED | Message is in accepted state (i.e. has been manually read on behalf of the subscriber by customer service) |
7 | UNKNOWN | Message is in an invalid state |
8 | REJECTED | Message is in a rejected state |
Code | Message | Description |
2 | ACK | Message is delivered to destination |
5 | ERROR | Message is undeliverable |
Code | Message | Description |
2 | DELIVERED | Message is delivered to destination |
5 | UNDELIVERABLE | Message is undeliverable |