صفحه 2 از 2 اولاول 12
نمایش نتایج 41 تا 79 از 79

نام تاپیک: درخواست راهنمایی جهت ارسال sms با وب سرويس

  1. #41
    کاربر دائمی آواتار mohammadsaleh
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران
    پست
    649

    نقل قول: درخواست راهنمایی جهت ارسال sms با وب سرويس

    ممنون جناب
    mazoolagh

    به نظرم مطابق راهنمای فنی اش باید درست باشه
    Capture.jpg

    با این حال تلاش می کنم ببینم چی میشه

    آدرس وب سرویس: https://login.parsgreen.com/Api/Send...endGroupSMSP2P

  2. #42
    کاربر دائمی آواتار mohammadsaleh
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران
    پست
    649

    نقل قول: درخواست راهنمایی جهت ارسال sms با وب سرويس

    آدرس راهنمای فنی وب سرویس: https://www.parsgreen.com/Content/fi...umentation.pdf

  3. #43
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    پست
    2,133

    نقل قول: درخواست راهنمایی جهت ارسال sms با وب سرويس

    مستندات رو که خوندم - بدون اون که نمیشه به اینجا رسید.

    شما از طریق پنل یا کمپوننت دات نت تست کردین نتیجه چی هست؟

    در هر صورت یک تست روی همون 4 شماره براتون فرستادم، چک کنین و خبر بدین.

  4. #44
    کاربر دائمی آواتار mohammadsaleh
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران
    پست
    649

    نقل قول: درخواست راهنمایی جهت ارسال sms با وب سرويس

    با انتقال عبارت string از xml به loop کار انجام شد. با سپاس مجدد از جناب mazoolagh


    "<to>@M</to>" & _
    "<texts>@T</texts>" & _


    Do Until Mobiles.EOF
    Msg = IIf(Msg = "", "<string>" + Mobiles!Message + "</string>", Msg + "<string>" + Mobiles!Message + "</string>")
    M = IIf(M = "", "<string>" + Mobiles!Mobile + "</string>", M + vbCrLf + "<string>" + Mobiles!Mobile + "</string>")
    Mobiles.MoveNext
    Loop


  5. #45
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    پست
    2,133

    نقل قول: درخواست راهنمایی جهت ارسال sms با وب سرويس

    1- جواب ندادین که تست آخری که براتون رو 4 شماره فرستاده بودم نتیجه اش چی بود؟
    همچنین نتیجه ارسال با کمپوننت دات نت خودشون رو هم میخواستم بدونم - که اون رو هم خبر ندادین!

    2- ظاهرا رفتار این وب سرویس در بعضی متدها متفاوت با مستنداتش هست!
    اگر یادتون باشه در sendgroupsms هم همین قضیه بود ولی برعکس - یعنی مجموعه شماره ها کلا باید یک node بود (برخلاف مستندات)
    و به همین دلیل هم شما ابتدا همین شیوه رو روی این متد هم پیاده کردین (منطقی هم هست)
    اما در این متد هر شماره باید یک نود باشه (و هر پیام)

    به هر حال خوشحالم که به این سرویس مسلط شدین.

  6. #46
    کاربر دائمی آواتار mohammadsaleh
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران
    پست
    649

    نقل قول: درخواست راهنمایی جهت ارسال sms با وب سرويس

    مورد یکی اکی بود
    فقط فرصت نکردم با کامپوننت دانت نت تست کنم
    ضعفهای اکسس باعث میشه راه حل هایی پیدا بشه که واقعا در برنامه ای مثل دات نت بدون کمترین زحمت و کدنویسی میشه انجامش داد
    واقعیت اینه که این متد آخر فوق العاده است و بدون معطلی ده ها پیام اختصاصی به ده ها نفر به سرعت ارسال میشه بدون اینکه مجبور باشی پیامها را در یک حلقه ارسال کنی
    البته در این متد فقط ثبت پاسخ پیامک ها در جدول هیستوری مونده که اونرو هم باید به انجام برسونیم

  7. #47
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    پست
    2,133

    نقل قول: درخواست راهنمایی جهت ارسال sms با وب سرويس

    من فایل xml رو که برای تست ساختم (و ok هم بوده) اینجا پیوست کردم.
    همونجور که میبینین شماره ها (و پیام ها) کلا یک node هستن و فقط با CRLF از هم جدا شدن،
    خلاصه اینکه کد اولیه شما هم باید کار میکرد!
    یکبار دیگه خروجی همون کد رو با دقت بررسی کنین.
    البته این که اینجا آوردم soap 1.1 هست ولی نباید تاثیری داشته باشه.

    <?xml version="1.0" encoding="utf-8"?>
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <soap:Body><SendGroupSMSP2P xmlns="http://ParsGreen.com/">
    <signature>----</signature>
    <from>----</from>
    <to>
    <string>09123933059
    09393933059
    09122973369
    09129009265</string>
    </to>
    <texts>
    <string>p2p msg1 for 09123933059
    p2p msg2 for 09393933059
    p2p msg3 for 09122973369
    p2p msg4 for 09129009265</string>
    </texts>
    <isFlash>false</isFlash>
    <udh />
    </SendGroupSMSP2P>
    </soap:Body>
    </soap:Envelope>

  8. #48
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    پست
    2,133

    نقل قول: درخواست راهنمایی جهت ارسال sms با وب سرويس

    در مورد تفسیر response مشخص کنین کجا مشکل دارین تا راهنمایی کنم.

  9. #49
    کاربر دائمی آواتار mohammadsaleh
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران
    پست
    649

    نقل قول: درخواست راهنمایی جهت ارسال sms با وب سرويس

    در مورد تفسیر نتایج p2p یه تابع ساده ساختم و از اون در تفسیر نتیجه استفاده کردم

    Private Function StatusSMS(Responce As String) As String

    Select Case Responce


    Case Is = 0
    StatusSMS = "موفق"
    Case Is = 1
    StatusSMS = "ناموفق"
    Case Is = 2
    StatusSMS = "خطا"
    Case Is = 3
    StatusSMS = "بلک ليست"
    End Select

    End Function

    DoCmd.SetWarnings False
    For Each node In Doc.selectSingleNode("//pg:retStr").childNodes
    A = Split(node.Text, "#")
    S = Replace(Sql, "@MN", Mid(A(0), 1, 11))
    S = Replace(S, "@T", SendTime)
    S = Replace(S, "@S", StatusSMS(CInt(Mid(A(0), 13, 1))))
    S = Replace(S, "@R", Mid(A(0), 15, 50))
    DoCmd.RunSQL S
    Next



    در ادامه راهنمایی ارزنده شما و نیز قابلیتهای جالب این وب سرویس امروز کار رو ارسال کد پیامکی که یکی از ارکان اصلی تاییدیه کارهای پیامکی در بسیاری از وب سایتها و استارت آپ ها ست رو شروع کردم. کد اولیه رو از وب سرویس مربوطه به شکل زیر نوشتم

    Private Const SendOtpXML = "<?xml version='1.0' encoding='utf-8'?>" & _
    "<soap12:Envelope xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:soap12='http://www.w3.org/2003/05/soap-envelope'>" & _
    "<soap12:Body><SendOtp xmlns='http://ParsGreen.com/'>" & _
    "<signature>@SGN</signature>" & _
    "<mobile>@M</mobile>" & _
    "<Lang>fa</Lang>" & _
    "<otpType>1</otpType>" & _
    "<patternId>3</patternId>" & _
    "</SendOtp></soap12:Body></soap12:Envelope>"



    Private Type SendOtpResponse
    SendOtpResult As Integer
    OtpCode As String
    http_status As Integer
    http_status_text As String
    End Type




    Private Function SendOtp(Mobile As String) As SendOtpResponse


    Dim X As String
    X = Replace(X, "@M", Mobile)
    X = SendOtpXML


    With New XMLHTTP60
    .Open "POST", WSURL, False
    .setRequestHeader "HOST", "login.parsgreen.com"
    .setRequestHeader "CONTENT-TYPE", "application/soap+xml; charset=utf-8"
    .send X
    SendOtp.http_status = .status
    SendOtp.http_status_text = .statusText
    If .status = 200 Then
    Dim Doc As New DOMDocument60
    Doc.SetProperty "SelectionNamespaces", "xmlns:pg='http://ParsGreen.com/'"
    Doc.loadXML .responseText
    SendOtp.SendOtpResult = Doc.selectSingleNode("//pg:SendOtpResult").Text
    ' .......



    End If
    End With
    End Function

    که ظاهرا نیاز به کمی چکش کاری داره و راهنمایی شماره داره. البته ظاهر کد به نظر درست می آد اما ارسال کد انجام نمیشه

  10. #50
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    پست
    2,133

    نقل قول: درخواست راهنمایی جهت ارسال sms با وب سرويس

    سر فرصت کد "رمز یکبار مصرف" رو نگاه میکنم

  11. #51
    کاربر دائمی آواتار mohammadsaleh
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران
    پست
    649

    نقل قول: درخواست راهنمایی جهت ارسال sms با وب سرويس

    زحمت می کشید
    البته یه راه حل هم تولید کد در برنامه و ارسال اون فارغ از این امکان می باشه. و البته به جهت یادگیری روش ارزش کار روی اون هست

  12. #52
    کاربر دائمی آواتار mohammadsaleh
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران
    پست
    649

    نقل قول: درخواست راهنمایی جهت ارسال sms با وب سرويس

    سلام وقت به خیر
    ضمن تشکر از ابراز محبت شما در کمک به تکمیل کدهای بخش پیامک برنامه دو مورد وجود دارد که هنوز حل نشده باقی مانده است:

    1- درخواست راهنمایی جهت تکمیل دستورات مربوط به گرفتن مانده اعتبار سامانه پیامکی. البته با روش شما این بخش را نوشته ام اما دستور دریافت اعتبار را نتوانستم



    Public Const GetCreditXml = "<?xml version=1.0' encoding='utf-8'?>" & _
    "<soap12:Envelope xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:soap12='http://www.w3.org/2003/05/soap-envelope'>" & _
    "<soap12:Body>" & _
    "<GetCredit xmlns='http://ParsGreen.com/'>" & _
    "<signature>@SGN</signature>" & _
    "</GetCredit>" & _
    "</soap12:Body>" & _
    "</soap12:Envelope>"

    Public Type GetCreditResponse
    GetCreditResult As Double
    http_status As Integer
    http_status_text As String
    End Type


    2- مورد دوم مربوط به خواندن پیامهای صندوق دریافتی و ارسالی در سامانه می باشد. آدرس وب سرویس http://sms.parsgreen.ir/Api/MsgService.asmx می باشد.
    البته در برنامه نوشته شده با VB.NET دیتاست بازگردانده شده در دیتاگرید ریخته می شود. اما در اکسس سردر نیاوردم چه باید کرد.

    3- در مورد رمز یکبار مصرف البته از یک روش ابتکاری ارسال سریال تولیدی به تعداد ارقام مشخص استفاده کردم. اما روش برنامه پیشنهادی خود سایت برام لاینحل باقی مونده. البته فعلا نیازی به اون ندارم
    آخرین ویرایش به وسیله mohammadsaleh : جمعه 10 اردیبهشت 1400 در 13:16 عصر

  13. #53
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    پست
    2,133

    نقل قول: درخواست راهنمایی جهت ارسال sms با وب سرويس

    سلام و روز خوش
    عجالتا یک signature و سه-چهار تا شماره موبایل ایمیل کنین.

  14. #54
    کاربر دائمی آواتار mohammadsaleh
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران
    پست
    649

    نقل قول: درخواست راهنمایی جهت ارسال sms با وب سرويس

    سلام خداقوت
    ارسال کردم

  15. #55
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    پست
    2,133

    نقل قول: درخواست راهنمایی جهت ارسال sms با وب سرويس

    1- مانده اعتبار: این بمراتب خیلی ساده تر از موارد قبلی است!
    فقط یک signature ارسال میکنید و response هم فقط یک مقدار برمیگردونه که با توجه به کدهای قبلی خیلی راحت پیاده میشه.
    فکر کنم مشکل شما در کدنویسی نیست، بلکه در کار با داکیومنت های xml است.
    اگر بخواهید بر همین مبنا پیش برین (یعنی استفاده از اکسس به جای برنامه دسکتاپ برای ارسال و دریافت) بدون تسلط به xml و ... کارتون خیلی سخت میشه.
    شما میتونین دیتابیس رو همین اکسس نگه دارین، ولی اگر یک برنامه با vb.net بنویسین پیاده سازی هر متد فقط چند دقیقه زمان میبره بدون این که درگیر ساختار request و response بشین.
    گذشته از این، نگهداری و توسعه کدها هم بسیار ساده تر و سریعتر هست.

    با این وجود، تا زمانی که امکانش باشه، از راهنمایی و نمونه کد دریغ نمیکنم.

  16. #56
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    پست
    2,133

    نقل قول: درخواست راهنمایی جهت ارسال sms با وب سرويس : GetCredit مانده اعتبار

    مثل قبل برای ساخت request و تفسیر response از خود مستندات متد getcredit وب سرویس کمک میگیریم:
    https://login.parsgreen.com/api/Prof...x?op=GetCredit
    REQUEST
    POST /api/ProfileService.asmx HTTP/1.1
    Host: login.parsgreen.com
    Content-Type: application/soap+xml; charset=utf-8
    Content-Length: length

    <?xml version="1.0" encoding="utf-8"?>
    <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
    <soap12:Body>
    <GetCredit xmlns="http://ParsGreen.com/">
    <signature>string</signature>
    </GetCredit>
    </soap12:Body>
    </soap12:Envelope>


    RESPONSE
    HTTP/1.1 200 OK
    Content-Type: application/soap+xml; charset=utf-8
    Content-Length: length


    <?xml version="1.0" encoding="utf-8"?>
    <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
    <soap12:Body>
    <GetCreditResponse xmlns="http://ParsGreen.com/">
    <GetCreditResult>double</GetCreditResult>
    </GetCreditResponse>
    </soap12:Body>
    </soap12:Envelope>


  17. #57
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    پست
    2,133

    نقل قول: درخواست راهنمایی جهت ارسال sms با وب سرويس

    Option Compare Database
    Option Explicit


    Private Const WSURL = "https://login.parsgreen.com/Api/ProfileService.asmx"
    Private Const Signature = "..."
    Private Const XM = "<?xml version='1.0' encoding='utf-8'?>" & _
    "<soap12:Envelope xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' " & _
    "xmlns:xsd='http://www.w3.org/2001/XMLSchema' " & _
    "xmlns:soap12='http://www.w3.org/2003/05/soap-envelope'>" & _
    "<soap12:Body>" & _
    "<GetCredit xmlns='http://ParsGreen.com/'>" & _
    "<signature>@SGN</signature>" & _
    "</GetCredit>" & _
    "</soap12:Body>" & _
    "</soap12:Envelope>"


    Public Type GetCreditResponse
    GetCreditResult As Double
    http_status As Integer
    http_status_text As String
    End Type


    Public Function GetCredit() As GetCreditResponse
    Dim X As String
    X = Replace(XM, "@SGN", Signature)
    With New XMLHTTP60
    .Open "POST", WSURL, False
    .setRequestHeader "HOST", "login.parsgreen.com"
    .setRequestHeader "CONTENT-TYPE", "application/soap+xml; charset=utf-8"
    .Send X
    GetCredit.http_status = .Status
    GetCredit.http_status_text = .statusText
    If .Status = 200 Then
    Dim Doc As New DOMDocument60
    Doc.SetProperty "SelectionNamespaces", "xmlns:pg='http://ParsGreen.com/'"
    Doc.loadXML .responseText
    GetCredit.GetCreditResult = Doc.selectSingleNode("//pg:GetCreditResult").Text
    End If
    End With
    End Function

  18. #58
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    پست
    2,133

    نقل قول: درخواست راهنمایی جهت ارسال sms با وب سرويس

    روش استفاده:
    getcredit.png

  19. #59
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    پست
    2,133

    متد getmessage : خواندن پیامهای ارسالی و دریافتی

    2- خواندن پیامهای صندوق دریافتی و ارسالی:
    ساختار response در این متد شامل schema برای تعریف فیلدهای یک دیتاست هست، بنابراین لازم هست با این مبحث هم آشنا باشین.
    سر فرصت میخونم مستندات رو و راهنمایی میکنم.

  20. #60
    کاربر دائمی آواتار mohammadsaleh
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران
    پست
    649

    نقل قول: درخواست راهنمایی جهت ارسال sms با وب سرويس

    سلام استاد
    بسیار عالی پاسخ میدید. خیلی ممنون.
    دارم سعی می کنم یه مقدار XML مطالعه کنم. در خصوص داشتن برنامه تحت VB,NET راستش یه برنامه کوچولو در همین رابطه درست کردم اما اکسس یه مقدار ما رو تنبل کرده با چیزای حاضر و آماده ای که داره. راستش اشکم برای طراحی یک فرم تو اون برنامه دراومد. البته که قدرتمندتر و سریعتره. حقیقت امر اینه که من دیگه سنم بالا رفته و باید با همین برنامه خودمون ورزش مغز کنم هر چند با اون هم کمی سروکله می زنم ولی به هر جهت خواستم بخش پیامک برنامه هم در داخل خود برنامه اکسس باشه. در صورتیکه پیام های وارده رو بخونیم خوب برنامه رو میتونیم هوشمند و پاسخگو کنیم
    تا چه پیش آید

  21. #61
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    پست
    2,133

    متد getmessage : خواندن پیامهای ارسالی و دریافتی

    پیش از هر کار باید یک جدول (مثلا به اسم Messages) برای نگهداری نتایج بسازیم.
    گرچه الزامی نیست، ولی برای راحتی کدنویسی اسامی فیلدهای این جدول رو دقیقا از روی ساختار پاسخ برمیداریم:
    getmessage_fields.png

  22. #62
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    پست
    2,133

    متد getmessage : خواندن پیامهای ارسالی و دریافتی

    از آدرس زیر ساختار request و response رو پیدا میکنیم:
    https://login.parsgreen.com/api/msgs...?op=GetMessage
    REQUEST
    POST /api/msgservice.asmx HTTP/1.1
    Host: login.parsgreen.com
    Content-Type: application/soap+xml; charset=utf-8
    Content-Length: length


    <?xml version="1.0" encoding="utf-8"?>
    <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
    <soap12:Body>
    <GetMessage xmlns="http://ParsGreen.com/">
    <signature>string</signature>
    <location>int</location>
    <isRead>boolean</isRead>
    </GetMessage>
    </soap12:Body>
    </soap12:Envelope>


    RESPONSE
    HTTP/1.1 200 OK
    Content-Type: application/soap+xml; charset=utf-8
    Content-Length: length


    <?xml version="1.0" encoding="utf-8"?>
    <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
    <soap12:Body>
    <GetMessageResponse xmlns="http://ParsGreen.com/">
    <GetMessageResult>
    <xsd:schema>schema</xsd:schema>xml</GetMessageResult>
    </GetMessageResponse>
    </soap12:Body>
    </soap12:Envelope>

  23. #63
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    پست
    2,133

    نقل قول: درخواست راهنمایی جهت ارسال sms با وب سرويس

    فکر کنم آخرین پست دیروز رو فراموش کردم ارسال کنم!
    دوباره مینویسم و ادامه میدیم.

  24. #64
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    پست
    2,133

    نقل قول: متد getmessage : خواندن پیامهای ارسالی و دریافتی

    برای تفسیر response و استخراج نتایج، یک نمونه از اون رو بررسی میکنیم.
    پاسخ واقعی شامل 100 رکورد بوده که در اینجا فقط 2 رکورد اون رو پیوست میکنم و همین کافی هست.

    <?xml version="1.0" encoding="utf-8"?>
    <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <soap:Body>
    <GetMessageResponse xmlns="http://ParsGreen.com/">
    <GetMessageResult>
    <xs:schema id="Msg"
    xmlns=""
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xs:element name="Msg"
    msdata:IsDataSet="true"
    msdata:UseCurrentLocale="true">
    <xs:complexType>
    <xs:choice minOccurs="0"
    maxOccurs="unbounded">
    <xs:element name="TBLMessages">
    <xs:complexType>
    <xs:sequence>
    <xs:element name="MsgIdEncrypt"
    type="xs:string"
    minOccurs="0"/>
    <xs:element name="Body"
    type="xs:string"
    minOccurs="0"/>
    <xs:element name="Udh"
    type="xs:string"
    minOccurs="0"/>
    <xs:element name="SendDate"
    type="xs:dateTime"
    minOccurs="0"/>
    <xs:element name="Sender"
    type="xs:string"
    minOccurs="0"/>
    <xs:element name="Receiver"
    type="xs:string"
    minOccurs="0"/>
    <xs:element name="Parts"
    type="xs:int"
    minOccurs="0"/>
    <xs:element name="IsFlash"
    type="xs:boolean"
    minOccurs="0"/>
    <xs:element name="IsRead"
    type="xs:boolean"
    minOccurs="0"/>
    <xs:element name="IsUnicode"
    type="xs:boolean"
    minOccurs="0"/>
    <xs:element name="Credit"
    type="xs:double"
    minOccurs="0"/>
    <xs:element name="RecCount"
    type="xs:int"
    minOccurs="0"/>
    <xs:element name="RecFailed"
    type="xs:int"
    minOccurs="0"/>
    <xs:element name="RecSuccess"
    type="xs:int"
    minOccurs="0"/>
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    </xs:choice>
    </xs:complexType>
    </xs:element>
    </xs:schema>
    <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"
    xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
    <Msg xmlns="">
    <TBLMessages diffgr:id="TBLMessages1"
    msdata:rowOrder="0"
    diffgr:hasChanges="inserted">
    <MsgIdEncrypt>zixb67zjp3yhf3pe43u4ethrgr</MsgIdEncrypt>
    <Body>10</Body>
    <Udh/>
    <SendDate>2021-05-01T11:33:32.92+04:30</SendDate>
    <Sender>09363796940</Sender>
    <Receiver>10002156713700</Receiver>
    <Parts>1</Parts>
    <IsFlash>false</IsFlash>
    <IsRead>false</IsRead>
    <IsUnicode>false</IsUnicode>
    <Credit>0</Credit>
    <RecCount>1</RecCount>
    <RecFailed>0</RecFailed>
    <RecSuccess>1</RecSuccess>
    </TBLMessages>
    <TBLMessages diffgr:id="TBLMessages2"
    msdata:rowOrder="1"
    diffgr:hasChanges="inserted">
    <MsgIdEncrypt>5sp1ejkbh4x393pe43u4ethrgr</MsgIdEncrypt>
    <Body>10</Body>
    <Udh/>
    <SendDate>2021-05-01T11:13:55.44+04:30</SendDate>
    <Sender>09393092295</Sender>
    <Receiver>10002156713700</Receiver>
    <Parts>1</Parts>
    <IsFlash>false</IsFlash>
    <IsRead>false</IsRead>
    <IsUnicode>false</IsUnicode>
    <Credit>0</Credit>
    <RecCount>1</RecCount>
    <RecFailed>0</RecFailed>
    <RecSuccess>1</RecSuccess>
    </TBLMessages>
    </Msg>
    </diffgr:diffgram>
    </GetMessageResult>
    </GetMessageResponse>
    </soap:Body>
    </soap:Envelope>

  25. #65
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    پست
    2,133

    نقل قول: درخواست راهنمایی جهت ارسال sms با وب سرويس

    با کمی بررسی میبینیم که هر رکورد در یک node به اسم TBLMessages ذخیره شده،
    و مجموعه اونها هم درون node به اسم Msg قرار داره.
    به بخش schema مربوط به تعریف فیلدها و دیتا کاری نداریم چون از قبل یک جدول آماده کردیم.

    روش کار به این صورت هست که:
    1- گره Msg رو پیدا میکنیم
    2- یک رکوردست از جدول Messages باز میکنیم
    3- در یک حلقه، تک تک TBLMessages ها رو میخونیم
    4- یک رکورد جدید در رکوردست میسازیم
    5- یک حلقه دیگه میسازیم که تمام node های درون TBLMessages v رو میخونه و در فیلدهای متناظر در رکوردست میریزه و در پایان حلقه رکورد رو ذخیره میکنه
    آخرین ویرایش به وسیله mazoolagh : سه شنبه 14 اردیبهشت 1400 در 11:56 صبح

  26. #66
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    پست
    2,133

    نقل قول: متد getmessage : خواندن پیامهای ارسالی و دریافتی

    Dim x As String
    x = Replace(XM, "@SGN", Signature)
    x = Replace(x, "@LOC", Location)
    With New XMLHTTP60
    .Open "POST", "https://login.parsgreen.com/Api/MsgService.asmx", False
    .setRequestHeader "HOST", "login.parsgreen.com"
    .setRequestHeader "CONTENT-TYPE", "application/soap+xml; charset=utf-8"
    .setRequestHeader "SOAPAction", "http://ParsGreen.com/GetMessage"
    .Send x
    GetMessages.http_status = .Status
    GetMessages.http_status_text = .statusText
    If .Status = 200 Then
    Dim doc As New DOMDocument60
    doc.SetProperty "SelectionNamespaces", "xmlns:pg='http://ParsGreen.com/'"
    doc.loadXML .responseText
    Dim TBLMessages As MSXML2.IXMLDOMNode
    Dim Node As MSXML2.IXMLDOMNode
    Dim rs As Recordset
    Set rs = CurrentDb.OpenRecordset("Messages")
    For Each TBLMessages In doc.selectSingleNode("//pg:GetMessageResponse/pg:GetMessageResult//Msg").childNodes
    rs.AddNew
    For Each Node In TBLMessages.childNodes
    rs(Node.baseName) = Node.Text
    Next
    rs.Update
    Next
    rs.Close
    Set rs = Nothing
    End If
    End With

  27. #67
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    پست
    2,133

    متد getmessage : خواندن پیامهای ارسالی و دریافتی

    در واقع تمام موارد رو پیشتر هم داشتیم و عملا نکته جدیدی در این کد نیست!
    تنها چیزی که باید بهش دقت کرد نوشتن کوئری جستجوی node ها هست.
    کد زیر گره Msg رو پیدا میکنه:
    doc.selectSingleNode("//pg:GetMessageResponse/pg:GetMessageResult//Msg")


    و کد زیر مجموعه TBLMessages ها :
    doc.selectSingleNode("//pg:GetMessageResponse/pg:GetMessageResult//Msg").childNodes

  28. #68
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    پست
    2,133

    نقل قول: درخواست راهنمایی جهت ارسال sms با وب سرويس

    برای اینکه بدونیم چرا اکسس بعنوان یک ابزار همیشه راه حل خوبی برای هر مسئله ای نیست، یک نمونه desktop application با visual studio برای مقایسه ساختم و نتیجه گیری رو به خواننده واگذار میکنم.

  29. #69
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    پست
    2,133

    نقل قول: متد getmessage : خواندن پیامهای ارسالی و دریافتی VB.net

    بعد از ایجاد پروژه، پکیج پارس گرین رو به اون اضافه میکنیم:

    vs0.jpg

  30. #70
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    پست
    2,133

    متد getmessage : خواندن پیامهای ارسالی و دریافتی VB.net

    یک باتن، یک datagridview و یک MsgService به فرم اضافه میکنیم:

    vs1.jpg

    vs2.png

  31. #71
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    پست
    2,133

    متد getmessage : خواندن پیامهای ارسالی و دریافتی VB.net

    کد زیر رو به فرم اضافه میکنیم
    Private Const Signature = "..."


    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Me.DataGridView1.DataSource = Me.MsgService1.GetMessage(Signature, 1, Nothing).Tables(0)
    End Sub


    و برنامه رو اجرا میکنیم:
    vs3.jpg

  32. #72
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    پست
    2,133

    متد getmessage : خواندن پیامهای ارسالی و دریافتی VB.net

    تمام این کار در کمتر از 10 دقیقه و بدون هیچ نیازی به دونستن جزئیات وب سرویس و درگیری با کدهای xml و ... انجام شد.

  33. #73
    کاربر دائمی آواتار mohammadsaleh
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران
    پست
    649

    نقل قول: درخواست راهنمایی جهت ارسال sms با وب سرويس

    سلام با سپاس فراوان از زحماتی که می کشید و مطئمنم زمان زیادی رو وقت گذاشتید تا این کدها را آماده کنید ولی خدا را شکر ضمن کمک به اینجانب بی شک بر غنای این سایت افزوده اید. مطالبی که بی شک حتی در stack overflow هم به این قشنگی توضیح داده نشده باشه

    در این روز عزیز از خداوند سلامتی جنابعالی و خانواده محترم را آرزومندم
    البته یک برنامک تحت vb.net ساختم و دقیقا با کد موجود براحتی پیامهای دریافتی در دیتاگریدویو نمایش داده میشه ولی همانطور که عرض کردم خواستم این کار در برنامه اصلی انجام بشه

  34. #74
    کاربر دائمی آواتار mohammadsaleh
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران
    پست
    649

    نقل قول: درخواست راهنمایی جهت ارسال sms با وب سرويس

    سلام استاد
    دوباره وقتتون رو میگرم
    من کدها را به شکل زیر در ماژول قرار دادم


    ' location isread
    '----------------------------------------------
    ' 1 : daryaft null : all message
    ' 2 : ersal true : is read
    ' 3 : hazf false : is not read
    Public Const InboxXML = "<?xml version='1.0' encoding='utf-8'?>" & _
    "<soap12:Envelope xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:soap12='http://www.w3.org/2003/05/soap-envelope'>" & _
    "<soap12:Body>" & _
    "<GetMessage xmlns='http://ParsGreen.com/'>" & _
    "<signature>@SGN</signature>" & _
    "<location>@loc</location>" & _
    "<isRead>@RD</isRead>" & _
    "</GetMessage>" & _
    "</soap12:Body>" & _
    "</soap12:Envelope>"




    Public Type GetMessages
    GetMessageResult As String
    http_status As Integer
    http_status_text As String
    End Type



    Public Function GetMessage(intLocation As Integer, blnRead As Boolean) As GetMessages


    'Call ConnectToServer
    'Call GetSettingFunc


    Dim x As String
    x = Replace(InboxXML, "@SGN", signature)
    x = Replace(x, "@LOC", Location)
    x = Replace(x, "@RD", isRead)
    MsgBox x
    With New XMLHTTP60
    .Open "POST", "https://login.parsgreen.com/Api/MsgService.asmx", False
    .setRequestHeader "HOST", "login.parsgreen.com"
    .setRequestHeader "CONTENT-TYPE", "application/soap+xml; charset=utf-8"
    .setRequestHeader "SOAPAction", "http://ParsGreen.com/GetMessage"
    .send x


    GetMessage.http_status = .status
    GetMessage.http_status_text = .statusText
    If .status = 200 Then
    MsgBox "200"
    Dim doc As New DOMDocument60
    doc.SetProperty "SelectionNamespaces", "xmlns:pg='http://ParsGreen.com/'"
    doc.loadXML .responseText
    Dim TBLMessages As MSXML2.IXMLDOMNode
    Dim Node As MSXML2.IXMLDOMNode
    Dim rs As Recordset
    Set rs = CurrentDb.OpenRecordset("Messages")
    For Each TBLMessages In doc.selectSingleNode("//pg:GetMessageResponse/pg:GetMessageResult//Msg").childNodes
    rs.AddNew
    For Each Node In TBLMessages.childNodes
    rs(Node.baseName) = Node.Text
    Next
    rs.Update
    Next
    rs.Close
    Set rs = Nothing
    Else
    MsgBox "not 200"
    End If

    End With
    End Function

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

  35. #75
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    پست
    2,133

    نقل قول: درخواست راهنمایی جهت ارسال sms با وب سرويس

    سلام و روز خوش
    کد پست 66 خام هست و باید چند مورد در اون گنجانده بشه،
    بعنوان مثال تگ isread یا باید مقدارش True/false باشه یا اصلا نباید در Request باشه.

    یک برنامه نمونه براتون میسازم که این موارد رو دربر بگیره.

  36. #76
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    پست
    2,133

    متد getmessage : خواندن پیامهای ارسالی و دریافتی

    Option Compare Database
    Option Explicit
    Private Const WSURL = "https://login.parsgreen.com/Api/MsgService.asmx"
    Private Const Signature = "..."
    Private Const XM = "<?xml version='1.0' encoding='utf-8'?>" & _
    "<soap12:Envelope xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' " & _
    "xmlns:xsd='http://www.w3.org/2001/XMLSchema' " & _
    "xmlns:soap12='http://www.w3.org/2003/05/soap-envelope'>" & _
    "<soap12:Body>" & _
    "<GetMessage xmlns='http://ParsGreen.com/'>" & _
    "<signature>@SGN</signature>" & _
    "<location>@LOC</location>" & _
    "@RD" & _
    "</GetMessage>" & _
    "</soap12:Body>" & _
    "</soap12:Envelope>"


    Public Enum Box
    Inbox = 1
    Outbox = 2
    Deleted = 4
    End Enum


    Public Enum MessageStatus
    All = 0
    Read = 1
    NotRead = 2
    End Enum


    Public Type GetMessageResponse
    MessagesCount As Long
    http_status As Integer
    http_status_text As String
    End Type


    Public Function GetMessages(Location As Box, IsRead As MessageStatus) As GetMessageResponse
    Dim x As String
    x = Replace(XM, "@SGN", Signature)
    x = Replace(x, "@LOC", Location)
    Select Case IsRead
    Case MessageStatus.All
    x = Replace(x, "@RD", "")
    Case MessageStatus.Read
    x = Replace(x, "@RD", "<isRead>true</isRead>")
    Case MessageStatus.NotRead
    x = Replace(x, "@RD", "<isRead>false</isRead>")
    End Select


    With New XMLHTTP60
    .Open "POST", "https://login.parsgreen.com/Api/MsgService.asmx", False
    .setRequestHeader "HOST", "login.parsgreen.com"
    .setRequestHeader "CONTENT-TYPE", "application/soap+xml; charset=utf-8"
    .setRequestHeader "SOAPAction", "http://ParsGreen.com/GetMessage"
    .Send x
    GetMessages.http_status = .Status
    GetMessages.http_status_text = .statusText
    If .Status = 200 Then
    Dim doc As New DOMDocument60
    doc.SetProperty "SelectionNamespaces", "xmlns:pg='http://ParsGreen.com/'"
    doc.loadXML .responseText
    Dim Msg As MSXML2.IXMLDOMNode
    Set Msg = doc.selectSingleNode("//pg:GetMessageResponse/pg:GetMessageResult//Msg")
    If Msg Is Nothing Then
    GetMessages.MessagesCount = 0
    Else
    GetMessages.MessagesCount = Msg.childNodes.length
    Dim rs As Recordset
    Set rs = CurrentDb.OpenRecordset("Messages")
    Dim TBLMessages As MSXML2.IXMLDOMNode
    Dim Node As MSXML2.IXMLDOMNode
    For Each TBLMessages In Msg.childNodes
    rs.AddNew
    For Each Node In TBLMessages.childNodes
    rs(Node.baseName) = Node.Text
    Next
    rs.Update
    Next
    rs.Close
    Set rs = Nothing
    End If
    End If
    End With


    End Function




    gm1.png

    gm2.png

  37. #77
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    پست
    2,133

    متد getmessage : خواندن پیامهای ارسالی و دریافتی

    برنامه نمونه:
    فایل های ضمیمه فایل های ضمیمه

  38. #78
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    پست
    2,133

    نقل قول: درخواست راهنمایی جهت ارسال sms با وب سرويس

    نقل قول نوشته شده توسط mohammadsaleh مشاهده تاپیک
    البته یک برنامک تحت vb.net ساختم و دقیقا با کد موجود براحتی پیامهای دریافتی در دیتاگریدویو نمایش داده میشه ولی همانطور که عرض کردم خواستم این کار در برنامه اصلی انجام بشه
    در واقع این مقایسه برای دیگر خوانندگان این تاپیک بود تا بهتر بتونن تصمیم بگیرن، شما پیشتر هم اشاره کرده بودین که برنامه دات نت نوشتین و خود سایت پارس گرین هم برای تکنولوژی های گوناگونی نمونه گذاشته.

  39. #79
    کاربر دائمی آواتار mohammadsaleh
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران
    پست
    649

    نقل قول: درخواست راهنمایی جهت ارسال sms با وب سرويس

    سلام. استاد مثل همیشه عالی بود
    خیلی ممنون کمک بسیار بزرگی فرمودید




صفحه 2 از 2 اولاول 12

تاپیک های مشابه

  1. استوديو مژده - نياز به يك برنامه نويس و كدنويس حرفه اي - پروژه اي
    نوشته شده توسط tenaonline در بخش آگهی های استخدام
    پاسخ: 0
    آخرین پست: یک شنبه 22 شهریور 1394, 11:07 صبح
  2. راه اندازي وب سرويس ها بر روي IIS - تنظيمات IIS ​براي اجراي وب سرويس ها
    نوشته شده توسط kienshien در بخش WCF , Web Services , .Net Remoting
    پاسخ: 1
    آخرین پست: پنج شنبه 14 اردیبهشت 1391, 18:39 عصر
  3. سوال: صفحه وب سرويس در هاست run نميشه !؟
    نوشته شده توسط bamzi software در بخش WCF , Web Services , .Net Remoting
    پاسخ: 0
    آخرین پست: یک شنبه 22 خرداد 1390, 11:52 صبح
  4. درخواست همكار برنامه نويس دلفي 7
    نوشته شده توسط parsidev در بخش آگهی های استخدام
    پاسخ: 1
    آخرین پست: سه شنبه 14 دی 1389, 18:23 عصر
  5. درخواست كمك براي دريافت چند لينك در برنامه نويس
    نوشته شده توسط jingiliboyz در بخش ASP.NET Web Forms
    پاسخ: 0
    آخرین پست: چهارشنبه 19 اسفند 1388, 12:54 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •