PDA

View Full Version : نحوه ارسال پیام گروهی با وب سرویس فرا پیامک



saeed-71
سه شنبه 27 خرداد 1393, 22:33 عصر
سلام.
من میخوام به تمام کاربران پیام گروهی بفرستم.
وب سرویسمم فراپیامک هستش.
کنار هر یوز یه تیک میزنمو شمارشو میریزم تو ارایه و بعد میخوام ارسال گروهی انجام بدم.
ارسال گروهی رو چجوری میشه انجام داد؟

cpuram
سه شنبه 27 خرداد 1393, 22:39 عصر
خوب شما بیشتر مسیر رو رفتین فقط میمونه ارسال آرایه و متن پیامک با تابعی که خود وبسرویس پیامک به شما داده.تابع رو بزار اینجا اگه باهاش مشکل داری.خودشون نمونه کد php باید داشته باشن.

saeed-71
چهارشنبه 28 خرداد 1393, 07:36 صبح
من تا اینجا پیش رفتم که متن که باید ارسال به و شماره ها رو به صورت گروهی در اوردم.
حالا فقط باید به این شماره ها این متن ارسال بشه اونم به ثورت گروهی.فراپیامک خودش کد ارسال گروهی نداره!

saeed-71
چهارشنبه 28 خرداد 1393, 08:25 صبح
الان کد من اینه



<?php
require_once '../../config.php';
echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />';
if(isset($_POST['submit'])){

$check = $_POST['check'];
$msg =Check_Post($_POST['msg']);
echo $check_num = count($check).'<hr>';
for($i=0;$i<$check_num;$i++){
$id = $check[$i];
$sql=$connect->prepare("SELECT * FROM `user` WHERE(`id`=:id)");
$sql->execute(array(
":id"=>$id
));
foreach($sql as $rows){
$mobile = $rows['mobile'];
echo $mobile .'<br>'.$msg;
echo '<hr>';
$mobilearray = $mobile[];
print_r($mobilearray);
}


}/// end for

}// end isset




دوباره باید شماه موبایللایی که از دیتابیس کشیدم بیرون رو باید بریزم تو ارایه؟؟؟

saeed-71
چهارشنبه 28 خرداد 1393, 08:43 صبح
فراپیامک گفت از این ادرس استفاده کنم
http://farapayamak.com/post/numberbulk.asmx
ولی من چیزی نفهمیدم

cpuram
چهارشنبه 28 خرداد 1393, 09:07 صبح
فراپیامک گفت از این ادرس استفاده کنم
http://farapayamak.com/post/numberbulk.asmx
ولی من چیزی نفهمیدم

بگو بهشون سایت من با php هستش لطفا نحوه استفاده برای php رو بگو.
این یک نمونه تابع واسه یکی از سرویس هاست.

function sendsms($username,$password,$too,$text){

$host="goldensms.info";
$path="/API/SendSMS.aspx";
$site=$_SERVER['HTTP_HOST'];
$sitefu=$_SERVER['REQUEST_URI'];
$data_to_send="username=$username&password=$password&to=$too&text=".urlencode($text);

$fp = fsockopen($host,80);
$outp="POST $path HTTP/1.1\n";
$outp.="Host: $host\n";
$outp.="Content-type: application/x-www-form-urlencoded\n";
$outp.="Content-length: ".strlen($data_to_send)."\n";
$outp.="Connection: close\n\n";
$outp.=$data_to_send;
fputs($fp,$outp);
fclose($fp);

}

saeed-71
چهارشنبه 28 خرداد 1393, 09:47 صبح
گفتن این زوبون xml هستش.برا هر زبون میشه ازش استفاده کرد

MMSHFE
چهارشنبه 28 خرداد 1393, 10:58 صبح
بگو بهشون سایت من با php هستش لطفا نحوه استفاده برای php رو بگو.

به ته همون آدرس یک WSDL? اضافه کنید میشه وب سرویس PHP و جاوا و... (اکثر این وب سرویسها همینطوری هستن).

MMSHFE
چهارشنبه 28 خرداد 1393, 10:59 صبح
فراپیامک گفت از این ادرس استفاده کنم
http://farapayamak.com/post/numberbulk.asmx
ولی من چیزی نفهمیدم

نیازی نیست. با این کد باید کار شما راه بیفته:

require_once '../../config.php';
echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />';
if(isset($_POST['submit'])) {
$msg = Check_Post($_POST['msg']);
$check = '(\'' . implode('\',\'', $_POST['check']) . '\')';
$mobiles = array();
$result = $connect->query("SELECT * FROM `user` WHERE(`id` IN {$check})");
foreach($result as $row) {
$mobiles[] = $row['mobile'];
}
try {
ini_set('soap.wsdl_cache_enabled', '0');
$soapClient = new SoapClient('http://farapayamak.com/post/send.asmx?WSDL');
$parameters = array(
'from'=>$number, // your SMS API number
'isflash'=>false,
'password'=>$password, // your SMS API password
'redId'=>array(0),
'status'=>0x0,
'text' => iconv('UTF-8', 'UTF-8//TRANSLIT', $msg),
'to' => $mobiles,
'udh'=>'',
'username'=>$username, // your SMS API username
);
if($soapClient->SendSms($parameters)->SendSmsResult == 1) {
echo 'Sent';
}
else {
echo 'Failed';
}
}
catch(Exception $e) {
return false;
}
}

saeed-71
چهارشنبه 28 خرداد 1393, 11:47 صبح
تشکر.

Warning: Invalid argument supplied for foreach() in D:\newXampp\htdocs\AzmoonOnline\admin\check\sendsm s.php on line 11

Failed
رو میده

saeed-71
چهارشنبه 28 خرداد 1393, 11:54 صبح
دستور select رو تغییر دادم ارور بر طرف شد اما شماره موبایلی سلکت نمیشه!اروری هم نمیده



<?php


require_once '../../config.php';
echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />';
if(isset($_POST['submit'])) {
$msg = Check_Post($_POST['msg']);
$check = '\'' . implode('\',\'', $_POST['check']) . '\'';
$mobiles = array();
$result = $connect->prepare("SELECT * FROM `user` WHERE(`id`=:id)");
$result->execute(array(
":id"=>$check
));
foreach($result as $row) {
$mobiles[] = $row['mobile'];
}

echo '<pre>';
print_r($mobiles);
echo '<pre>';

echo '<pre>';
print_r($check);
echo '<pre>';


try {
ini_set('soap.wsdl_cache_enabled', '0');
$soapClient = new SoapClient('http://farapayamak.com/post/send.asmx?WSDL');
$parameters = array(
'from'=>$number, // your SMS API number
'isflash'=>false,
'password'=>$password, // your SMS API password
'redId'=>array(0),
'status'=>0x0,
'text' => iconv('UTF-8', 'UTF-8//TRANSLIT', $msg),
'to' => $mobiles,
'udh'=>'',
'username'=>$username, // your SMS API username
);
if($soapClient->SendSms($parameters)->SendSmsResult == 1) {
echo 'Sent';
}
else {
echo 'Failed';
}
}
catch(Exception $e) {
return false;
}
}

?>

MMSHFE
چهارشنبه 28 خرداد 1393, 11:54 صبح
یه جفت پرانتز جا مونده بود. کد رو اصلاح کردم. دوباره تست کنید. کلاً وقتی اینجور خطاها میاد یعنی کوئری مشکل داشته. خطای MySQL رو echo کنید تا متوجه بشین مشکل کجاست. این بخشش مهم نیست. خواستم نحوه کار وب سرویس رو بدونید. کاری که شما باید انجام بدین اینه که به هر روشی که خودتون تست کردین و کار میکرد، شماره موبایلها رو بگیرین و توی آرایه mobiles$ بگذارین. بعدش با کدی که دادم به وب سرویس وصل بشین و پیامک رو ارسال کنید.

saeed-71
چهارشنبه 28 خرداد 1393, 12:12 عصر
همه چیز اوکی شده فقط بعد از ارسال خطای Failed میده.
حتی شماره موبایلا رو هم var_sump کردم خونده میشه مشکلی ندارن.
شماره خط و رمز عبورم درسته.
چندینتا شماره موبایلو فک کنم نمیتونه با هم بفرسته

MMSHFE
چهارشنبه 28 خرداد 1393, 12:14 عصر
تعدادشون چقدره؟ میتونید دونه دونه هم بفرستین. برای مثال اینطوری:

foreach($result as $row) {
try {
ini_set('soap.wsdl_cache_enabled', '0');
$soapClient = new SoapClient('http://farapayamak.com/post/send.asmx?WSDL');
$parameters = array(
'from'=>$number, // your SMS API number
'isflash'=>false,
'password'=>$password, // your SMS API password
'redId'=>array(0),
'status'=>0x0,
'text' => iconv('UTF-8', 'UTF-8//TRANSLIT', $msg),
'to' => array($row['mobile']),
'udh'=>'',
'username'=>$username, // your SMS API username
);
if($soapClient->SendSms($parameters)->SendSmsResult == 1) {
echo 'Sent';
}
else {
echo 'Failed';
}
}
catch(Exception $e) {
return false;
}
}

saeed-71
چهارشنبه 28 خرداد 1393, 12:26 عصر
اقا همون کد قبلی اوکی شد.
یوزنیمو اشتباه داده بودم.
تشکر.
فقط تا 2000 هزار تا رو هم میتونه همزمان بفرسته؟