У меня есть такой провайдер, который предоставляет SMS API в моей стране, все отлично работает при отправке смс одному пользователю, проблема возникает, когда мне нужно отправить нескольким пользователям из базы данных, они используют XML для отправки нескольким пользователям Жесткое кодирование чисел внутри xml
, всякий раз, когда я пытаюсь найти значение из моего массива, выдается ошибка неопределенной переменной.
Я пытался использовать print_r()
, implode(",",$var)
, json_encode()
, они, кажется, работают, но когда я повторяю цикл, я получаю ошибку
public function multi(){
define ("URL_API_DOMAIN", "http://www.bongolive.co.tz/api/broadcastSMS.php");
$sendername = "mysendername";
$username = "myusername";
$password = "mypassword";
$apikey = "mykey";
$numbers=array("+255*********","+255********");
$number=print_r($numbers);
// foreach ($numbers as $key => $numb) {
// echo $number = $numb;
// }
// return $number;
$callbackURL = "";
$messageXML = "
<Broadcast>
<Authentication>
<Sendername>".$sendername."</Sendername>
<Username>".$username."</Username>
<Password>".$password."</Password>
<Apikey>".$apikey."</Apikey>
</Authentication>
<Message>
<Content>Test broad cast from eboaard Message, Ukipata hii text nijulishe MAKAVELI</Content>
<Receivers>
foreach($number as $numb){
<Receiver id=''>".$numb."</Receiver>
}
</Receivers>
<Callbackurl>".$callbackURL."</Callbackurl>
</Message>
</Broadcast>";
$data = array('messageXML' => $messageXML);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, URL_API_DOMAIN);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 4);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$response = curl_exec($ch);
echo "response = $response ";
}
}
//their codes example
<?php
define ("URL_API_DOMAIN", "http://www.bongolive.co.tz/api/broadcastSMS.php");
$sendername = "Bongo Live";
$username = "testaccount";
$password = "123456";
$apikey = "c4a12fa8-ed6f-11df-a1f1-00181236674f";
$callbackURL = "http://www.yourdomain.com/sms/dlr.php";
$messageXML = "
<Broadcast>
<Authentication>
<Sendername>".$sendername."</Sendername>
<Username>".$username."</Username>
<Password>".$password."</Password>
<Apikey>".$apikey."</Apikey>
</Authentication>
<Message>
<Content>Test Message</Content>
<Receivers>
<Receiver id='7772237998'>255655123123</Receiver>
</Receivers>
<Callbackurl>".$callbackURL."</Callbackurl>
</Message>
</Broadcast>";
$data = array('messageXML' => $messageXML);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, URL_API_DOMAIN);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 4);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$response = curl_exec($ch);
echo "response = $response ";
?>
Я ожидал отправлять сообщения на мои два номера, но я получаю ErrorException (E_NOTICE)
Undefined variable: numb error
, я использую контроллеры laravel, у меня мало знаний о xmls