PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WEBDEV 27 → Script Php
Script Php
Débuté par Mustapha AZZOUZ, 25 jan. 2022 09:25 - 3 réponses
Membre enregistré
20 messages
Posté le 25 janvier 2022 - 09:25
Bonjour tout le monde

besoin d'exécuter un script en php
si quelqu'un peut m'aider
Merci d'avance

lien du code
https://bulksms.ma/api

send_sms("06XXXXXXXXX", "Mon Message", "MySenderID");
 
function send_sms($num, $texte, $emetteur) {
    $url = 'https://bulksms.ma/developer/sms/send';
 
    $fields_string = 'token=test_gshuPaZoeEG6ovbc8M79w0Qy&tel=' . $num . '&message=' . urlencode($texte). '&shortcode=' . $emetteur;
    
    $ch = curl_init();
 
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
 
    $result = curl_exec($ch);
 
    curl_close($ch);
    return $result;
}



Mon code Webdev
MonBuffer est un Buffer
MonBuffer = PHPExecute("/php/mon_script.php", "num=06123456789&texte='mon message'&emetteur=0678945666", VRAI)


Merci
Membre enregistré
252 messages
Popularité : +13 (13 votes)
Posté le 25 janvier 2022 - 10:02
Bonjour,

Au vu du code assez simpliste de la fonction PHP, je pense que vous avez mieux compte de retranscrire la fonction send_sms directement en WLangage plutôt que de passer par un PHPExecute.

Procedure send_sms(sNumero est une chaine, sTexte est une chaine, sEmetteur est une chaine)
req est une HTTPRequête
res est une httpRéponse

req..URL = "https://bulksms.ma/developer/sms/send"
req..Méthode = httpPost
req..ContentType = typeMimeFormulaireSimple

HTTPCréeFormulaire("FORM")
HTTPAjouteParamètre("FORM","token", "test_token")
HTTPAjouteParamètre("FORM","tel", sNumero)
HTTPAjouteParamètre("FORM","message", sTexte)
HTTPAjouteParamètre("FORM","shortcode", sEmetteur)

res = HTTPEnvoieFormulaire("FORM", req)

SI PartieEntière(res..CodeEtat / 100) = 2 ALORS // Filtre tous les retours en 2xx = 200, 201, 206, etc.
RENVOYER res..Contenu
FIN

RENVOYER ""
FIN


(Code non-testé & non-débuggué)
Membre enregistré
20 messages
Posté le 25 janvier 2022 - 11:49
ça marche
Merci infiniment
Posté le 27 septembre 2022 - 10:07
Bonjour,

Je me permet de répondre sur ce post, car la solution donnée a résolue en parti mon souci.

Je dois utiliser un API pour déclencher l'envoi d'un mail par un fournisseur de mailling, le script fournit est en PHP et ce poste m'a permis de le transformer en wlangage. L'envoi fonctionne bien.

Mon souci est que je doit insérer des variable pour personnaliser le mail. dans le script php, ils utilisent un array, mais en wlangage la fonction httpAjouteParamètre n'accepte pas de tableau. j'ai essayé avec une simple chaine mais ça ne passe pas non plus.

Voici le code PHP d'origine:
<?php
//Ci-dessous, la variable "$recipientEmailAddress" contient l'adresse eMail du destinataire du message.
$recipientEmailAddress="adresseEmailDestinataire";
//Ci-dessous, la variable "$customTagsList" contient le tableau des variables de personnalisation simples.
$customTagsList=array(
'URL_UUID'=>"URL_UUID_value"
);
$customFields=http_build_query(
array(
'userAccessToken'=>"XXXXXXXXXX",
'campaignAccessToken'=>"YYYYYYYYYYY",
'recipientEmailAddress'=>"$recipientEmailAddress",
'customTagsList'=>$customTagsList
)
);
//Ci-dessous, la variable "$url" contient l'adresse de l'API transactionnelle.
$url="https://api.etarget-emailing.com/callMe";
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $customFields);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, True);
//La variable facultative "$response" contient la réponse du serveur spécifiant la réussite ou l'échec de l'envoi.
$response = curl_exec($curl);
curl_close($curl);
echo "Réponse API : $response";
?>


et le code que j'ai pu faire en wlangage:
Procedure EnvoiMail($Destinataire est une chaîne, $URL_UUID est une chaîne)
// Identifiant de la campagne de mailing
$userAccessToken est une chaîne = "XXXXXXXXXX"
$campaignAccessToken est une chaîne = "YYYYYYYYYYY"
$customTagsList est une chaîne = $URL_UUID
//$customTagsList est un tableau de chaine = [$URL_UUID]


req est une httpRequête
res est une httpRéponse

req..URL = "https://api.etarget-emailing.com/callMe"
req..Méthode = httpPost
req..ContentType = typeMimeFormulaireSimple

HTTPCréeFormulaire("FORM")
HTTPAjouteParamètre("FORM","userAccessToken",$userAccessToken)
HTTPAjouteParamètre("FORM","campaignAccessToken",$campaignAccessToken)
HTTPAjouteParamètre("FORM","recipientEmailAddress",$Destinataire)
HTTPAjouteParamètre("FORM","customTagsList",$customTagsList)


res = HTTPEnvoieFormulaire("FORM",req)

SI PartieEntière(res..CodeEtat/100) = 2 ALORS// Filtre tous les retours en 2xx = 200, 201, 206, etc.
RENVOYER res..Contenu
FIN



Si quelqu'un a une idée ?
Merci d'avance