رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
پیام ارسال نشد در صورت عدم ارسال پیامک
#1
سلام
من قبلاً برای ارسال پیامک در سامانه ی پیامکی sms.ir از برنامه ی زیر استفاده میکردم:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<?php
$userName="09999999";
$password="1234";
$lineNumber=3000000000000000;
$to="0939000000";
$text="متن پیام";
date_default_timezone_set('Asia/Tehran');
$client= new SoapClient('http://n.sms.ir/ws/SendReceive.asmx?wsdl');
$parameters['userName'] = $userName;
$parameters['password'] = $password;
$parameters['mobileNos'] = array(doubleval($to));
$parameters['messages'] = array($text);
$parameters['lineNumber'] = $lineNumber;
$parameters['sendDateTime'] = date("Y-m-d")."T".date("H:i:s");
print_r($client->SendMessageWithLineNumber($parameters));
?>
بعد گفتم آقا میخوام وقتی پیامک به گوشی ارسال نشد و گوشی طرف مثلاً خاموش بود بگه پیامک ارسال نشد.
بهم گفتن از این اسکریپت استفاده کن:
<?php
$client=new SoapClient('http://n.sms.ir/ws/SendReceive.asmx?wsdl');
$params= array('userName'=>test,'password'=>test,
'batchKey'=>'11111111-1111-1111-1111-111111111111','requestedPageNumber'=>'100','rowsPerPage'=>'100','countOfAll'=>'5','sendDateTime'=>'2014-05-18T11:47:25');
print_r($client->GetSentMessageStatus($params));
echo $client->GetSentMessageStatus($params)->message;
?>
بعد حالا بحث سر اینه که من اینا رو چطوری به این اسکریپت بدم:
$userName="09999999";
$password="1234";
$lineNumber=3000000000000000;
$to="0939000000";
$text="متن پیام";
پشتیبانیش یه جوری نامفهوم جواب میدادن منم مجبور شدم اینجا بپرسم.
پاسخ
تشکر شده توسط:
#2
این پارامترها رو لازم نداره. به این قسمت از WSDL دقت کنید:
      <s:element name="GetSentMessageStatus">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="userName" type="s:string" />
            <s:element minOccurs="0" maxOccurs="1" name="password" type="s:string" />
            <s:element minOccurs="1" maxOccurs="1" name="batchKey" type="s1:guid" />
            <s:element minOccurs="1" maxOccurs="1" name="sendDateTime" type="s:dateTime" />
            <s:element minOccurs="1" maxOccurs="1" name="requestedPageNumber" type="s:int" />
            <s:element minOccurs="1" maxOccurs="1" name="rowsPerPage" type="s:int" />
            <s:element minOccurs="1" maxOccurs="1" name="countOfAll" type="s:int" />
            <s:element minOccurs="0" maxOccurs="1" name="message" type="s:string" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="GetSentMessageStatusResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="GetSentMessageStatusResult" type="tns:ArrayOfSentSmsDetails" />
            <s:element minOccurs="1" maxOccurs="1" name="countOfAll" type="s:int" />
            <s:element minOccurs="0" maxOccurs="1" name="message" type="s:string" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:complexType name="ArrayOfSentSmsDetails">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="unbounded" name="SentSmsDetails" nillable="true" type="tns:SentSmsDetails" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="SentSmsDetails">
        <s:sequence>
          <s:element minOccurs="1" maxOccurs="1" name="ID" type="s:long" />
          <s:element minOccurs="0" maxOccurs="1" name="MobileNo" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="SendDateTime" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="DeliveryStatus" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="SMSMessageBody" type="s:string" />
          <s:element minOccurs="1" maxOccurs="1" name="SendIsErronous" type="s:boolean" />
          <s:element minOccurs="0" maxOccurs="1" name="DeliveryStatusFetchError" type="s:string" />
          <s:element minOccurs="1" maxOccurs="1" name="NeedsReCheck" type="s:boolean" />
          <s:element minOccurs="1" maxOccurs="1" name="DeliveryStateID" nillable="true" type="s:int" />
        </s:sequence>
      </s:complexType>
پاسخ
تشکر شده توسط: راوندی
#3
خب من چطوری باید ازش استفاده کنم؟ الان من این برنامه ی دوم رو وقتی اجرا میکنم اخطار میده. بالاخره باید به سایت وصل بشه و متن پیام رو میخواد و شماره ی طرفی که قراره بهش پیامک ارسال بشه.
من نمیدونم باید چطوری ازش استفاده کنم؟!
پاسخ
تشکر شده توسط:
#4
اشتباه شما هم همینجاست دیگه....

GetSentMessageStatus فقط برای دریافت وضعیت پیامک های از قبل ارسال شده است.
یعنی اول با متدهای ارسال اقدام به ارسال پیامک میکنید
بعد با متدهای دریافت وضعیت پیامک ارسال شده رابررسی میکنید.

پس
بعد ارسال پیام
و با ذخیره تاریخ ارسال و شناسه پیامک
با فراخوانی متد GetSentMessageStatus با دادن پارامتر تاریخ ارسال
و با مقایسه شناسه پیامک با خروجی GetSentMessageStatus بالا
میتونید ار وضعیت تحویل پیامک ها مطلع بشید.
((" اما بهتر بود بدون ارسال هیچ پارامتری اضافه ای و تنها با ارسال شناسه پیامک چه بصورت تکی و چه چندتایی هم میشید وضیعت دریافت وضعیت پیامک ها را بدست آورد. "))



گذشته از همه اینها مشکل اساس شما در درک ارسال و دریافت وضعیت پیامک است
و اون این که با فراخوانی تنها یک متد نمیشه هم پیام ارسال بشه و وضعیت دریافت رو تو خروجی نمایش بده
یعنی فراخوانی تنها یکبار متد ارسال
و فراخوانی متوالی متد دریافت در فاصله های زمانی تا تغییر وضعیت دریافت پیامک

یادگیری مداوم حداقل شرط لازم برای موفقیت در هر زمینه ای است که در آن فعالیت می کنید؛ هر روز چیز جدیدی بیاموزید.
پاسخ
تشکر شده توسط:




کاربران در حال بازدید این موضوع: 1 مهمان