{
"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
####################################################################################
imp