PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WEBDEV 2024 → Script Php
Script Php
Iniciado por Mustapha AZZOUZ, jan., 25 2022 9:25 AM - 3 respostas
Membro registado
31 mensagems
Publicado em janeiro, 25 2022 - 9:25 AM
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
Membro registado
384 mensagems
Popularité : +13 (13 votes)
Publicado em janeiro, 25 2022 - 10:02 AM
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é)
Membro registado
31 mensagems
Publicado em janeiro, 25 2022 - 11:49 AM
ça marche
Merci infiniment
Publicado em setembro, 27 2022 - 10:07 AM
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