-
2 ضمیمه
درخواست راهنمایی جهت ارسال sms با وب سرويس
سلام دوستان و اساتید گرامی
شرکت پارس گرین برای ارسال پیامک با استفاده از وب سرویس برای همه زبانهای برنامه نویسی بجز اکسس راهکار همراه با مثال ارائه کرده است
با استفاده از DLL این شرکت و وارد کردن ان در ویژوال استودیو براحتی با کد مربوط پیامک ارسال می شود. من سعی کردم کلاس های این فایل را با استفاده از اکسس 2003 به اکسس وارد کنم. در فرم برنامه می توان کلاس های مختلف برنامه را صدا و دستور مورد نظر را اجرا کرد
در هر صورت به جز دستور wsm_GetCredit که اعتبار باقی مانده را نشان می دهم موفق نشدم دستور دیگری را اجرا کنم.
مهمترین گزینه کار با وب سرویس امضا دیجیتال شرکت می باشد که هریک از کاربران عضو آن را در سایت تولید و در نرم افزار استفاده می کنند
با توجه به اینکه به نظر می رسد باید برای بکارگیری این وب سرویس در اکسس هم راهکاری باشد( جدا از اینکه از DLL فقط می توان تحت برنامه های دات نت استفاده کرد) ممنون خواهم شد اساتید محترم کمک نمایند بر این مشکل فائق شویم
توضیح : در فرم ضمیمه کدهایی که خودم نوشته ام جواب نمی دهد- و کدهای دات نت که کاملا صحیح و درست می باشد ( مطابق لینک راهنمای داخل کدها) در کنار هم آورده شده اند
شایان ذکر است به جهت اختصاصی بودن امضا دیجیتال امضا داخل برنامه نادرست بوده و درصورتی که هریک از عزیزان و اساتید برای تست دستورات لازم ببیند امضا را برای آنها ارسال خواهم کرد
با تشکر فراوان
-
نقل قول: درخواست راهنمایی جهت تبدیل کد VB.net به VBA
برای کار با وب سرویس نیازی به کمپوننت نیست،
شما کافی هست از متد http post استفاده کنین.
قبلا مفصل و با کد نمونه در تاپیک زیر بحث شده در موردش:
https://barnamenevis.org/showthread.php?524097-وب-سرويس
همینجور اینجا هم پرسش مشابه داشتیم:
https://barnamenevis.org/showthread.php?524895-ارسال-sms-از-اکسس-با-API-webservis
مطمئنم شما وقت بگذارین تاپیک وب سرویس رو با دقت بخونین جواب گرفتین، ولی اگر موردی بود مطرح کنین.
نگران اسم امضای دیجیتال هم نباشید؛ در واقع همون token هست که بیشتر وب سرویس های پولی یا رایگان ولی با محدودیت دارن و مشابه user/pass هست.
-
نقل قول: درخواست راهنمایی جهت تبدیل کد VB.net به VBA
ضمن تشکر از حسن توجه شما. سعیم رو می کنم
بله در مورد امضا نگرانی ندارم چون به هر تعداد بخوام میتونم بسازم
فقط یک سئوال رفرنس MSSOAP30 هم برای استفاده از این روش لازمه به برنامه اضافه بشه یا نه
اینطور که متوجه شدم برای مثلا ارسال پیام از کدهای آدرس زیر استفاده و به جای STRING درون کد پارامترهای خود را میدهیم
البته برای من که واقعا تو این زمینه کار نکردم کمی مفاهیمش ثقیله
https://login.parsgreen.com/Api/Send...p=SendGroupSMS
SOAP 1.1
The following is a sample SOAP 1.1 request and response. The placeholders shown need to be replaced with actual values.
کد HTML:
POST /Api/SendSMS.asmx HTTP/1.1Host: login.parsgreen.com
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://ParsGreen.com/SendGroupSMS"
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<SendGroupSMS xmlns="http://ParsGreen.com/">
<signature>string</signature>
<from>string</from>
<to>
<string>string</string>
<string>string</string>
</to>
<text>string</text>
<isFlash>boolean</isFlash>
<udh>string</udh>
<success>int</success>
<retStr>
<string>string</string>
<string>string</string>
</retStr>
</SendGroupSMS>
</soap:Body> </soap:Envelope>
البته اگر لینک رو ملاحظه کنید کدهای دیگری نیز وجود داره که باید حداقل برای من رمز گشایی بشه
امضا دیجیتال جهت تست: 443E70C8-1DFD-499B-B80D-98318765BC57
-
نقل قول: درخواست راهنمایی جهت تبدیل کد VB.net به VBA
ارسال sms به نسبت ارسال نسخه تامین اجتماعی که بحثش شده به مراتب ساده تر هست،
هم تعداد پارامترها کمتر هست و هم اینکه برخلاف تامین اجتماعی هم بهتر مستند شده و هم توسط برنامه نویسای بهتری نوشته شده!
شما به هیچ رفرنسی به جز ms xml نیاز ندارین.
پست 11 در همون تاپیک وب سرویس کلید کار هست
https://barnamenevis.org/showthread....=1#post2326057
-
نقل قول: درخواست راهنمایی جهت تبدیل کد VB.net به VBA
سلام اگر درست متوجه شده باشم باید با کد زیر ارسال انجام بشه. ولی انجام نشد'POST /Api/SendSMS.asmx HTTP/1.1
'Host: login.parsgreen.com
'Content-Type: text/xml; charset=utf-8
'Content -length: length
'SOAPAction: "http://ParsGreen.com/SendGroupSmsSimple"
'
'<?xml version="1.0" encoding="utf-8"?>
'<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
' <soap:Body>
' <SendGroupSmsSimple xmlns="http://ParsGreen.com/">
' <signature>string</signature>
' <from>string</from>
' <to>
' <string>string</string>
' <string>string</string>
' </to>
' <text>string</text>
' <isFlash>boolean</isFlash>
' <udh>string</udh>
' </SendGroupSmsSimple>
' </soap:Body>
'</soap:Envelope>
Dim XM As String
XM = "<?xml version=""1.0"" encoding=""utf-8""?>" & _
"<soap:Envelope xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/"">" & _
"<soap:Body>" & _
"<SendGroupSmsSimple xmlns=""http://ParsGreen.com/"">" & _
"<signature>""995428DA-14EB-4512-859D-B4E66948A672""</signature>" & _
"<from>""10002156713700""</from>" & _
"<to>" & _
"<string>""09120000000""</string>" & _
"<string>""09120000000""</string>" & _
"</to>" & _
"<text>""salam""</text>" & _
"<isFlash>" & False & "</isFlash>" & _
"<udh>"" ""</udh>" & _
"</SendGroupSmsSimple>" & _
"</soap:Body>" & _
"</soap:Envelope>"
Const WSURL As String = "https://login.parsgreen.com/Api/SendSMS.asmx"
Dim XML_HTTP As New MSXML2.XMLHTTP60
XML_HTTP.Open "POST", WSURL, False
XML_HTTP.setRequestHeader "HOST", "login.parsgreen.com"
XML_HTTP.setRequestHeader "CONTENT-TYPE", "text/xml; charset=utf-8" '"application/soap+xml; charset=utf-8"
XML_HTTP.setRequestHeader "SOAPACTION", "http://ParsGreen.com/SendGroupSmsSimple"
XML_HTTP.send XM
امضا، شماره فرستنده واقعی هستند. برای تست شماره خودتان را جایگزین بفرمایید
-
نقل قول: درخواست راهنمایی جهت تبدیل کد VB.net به VBA
1- "" هایی که دو طرف پارامترها گذاشتین بردارین - نباید باشه!
2- در آدرس زیر فرمت تمام عملیات api رو براتون آورده:
https://login.parsgreen.com/Api/SendSMS.asmx
3- برای ارسال پیامک تکی فرمت به این شکل هست:
https://login.parsgreen.com/Api/SendSMS.asmx?op=Send
طبق این راهنما، soapaction نیاز ندارین.
-
نقل قول: درخواست راهنمایی جهت تبدیل کد VB.net به VBA
4- طبق راهنمای ارسال زیر، با اطلاعاتی که دادین پیامک ارسال نمیشه و پاسخ not send برمیگرده:
https://login.parsgreen.com/Files/Ht...umentation.pdf
لطفا خودتون تست کنین و خبر بدین، شاید اعتبار تموم شده یا مقادیر نادرست هست.
-
نقل قول: درخواست راهنمایی جهت تبدیل کد VB.net به VBA
5- یک برنامه نمونه براتون آماده میکنم، کدهای طولانی اینجا درست نمایش داده نمیشن.
تست کنین و خبر بدین.
-
نقل قول: درخواست راهنمایی جهت تبدیل کد VB.net به VBA
باتشکر از زحمات شما
البته من با متد HTTP میتونم با کد زیر ارسال کنم( تست بفرمایید)
اما هدفم اینه که یا از کلاسهایی که در فایل ضمیمه گذاشته بودم و یا از روش ارسال SOAP استفاده کنم
البته با توجه به اینکه در هر دو روش HTTP و SOAP آوردن کدها در جاهای مختلفه سخته اگر بشه با اون یک تابع عمومی درست کرد عالی میشه که متاسفانه من تو این موضوع ضعف دارم
Dim Token As String
Dim Url As String
Dim i As Integer
Dim xmlDoc As New MSXML2.DOMDocument60
Dim HttpReq As New MSXML2.ServerXMLHTTP60
Dim Emza, az, Be, Payam As String
Emza = "443E70C8-1DFD-499B-B80D-98318765BC57"
az = "10002156713700"
Be = "0912000,0939000"
Payam = "سلام"
Url = "http://login.parsgreen.com/UrlService/sendsms.ashx?FROM=" & az & "&TO=" & Be & "&TEXT=" & Payam & "&signature=" & Emza & ""
HttpReq.Open "GET", Url, False
HttpReq.setRequestHeader "Content-Type", "text/xml; charset=utf-8"
HttpReq.send
Token = HttpReq.responseText
MsgBox Token
-
نقل قول: درخواست راهنمایی جهت تبدیل کد VB.net به VBA
فقط یک نکته ای رو یاداور بشم
لطفا به شماره ای ارسال کنید که پیامک تبلیغاتی اون مسدود نباشه
-
نقل قول: درخواست راهنمایی جهت تبدیل کد VB.net به VBA
استاد سلام
پیامهای تست شما وارد سامانه شده از آنجاییکه این سامانه پیامهای سفید(پیامهای تایید شده با فرمت خاص شرکت ارسال کننده) را ارسال می کند لطفا از پیامی که به شماره ارسالی فرستادم جهت تست استفاده بفرمایید
-
1 ضمیمه
نقل قول: درخواست راهنمایی جهت تبدیل کد VB.net به VBA
سلام و روز خوش
1- signature رو از پست هاتون حذف کنین یا از پنل کاربری تغییرش بدین (اگر میشه)!
2- روی نمونه پیوست چک کنین و خبر بدین
کد اصلی چک شده ولی من تغییرات جزئی دادم و بعدش تست نشده
3- این کد فقط متد ارسال تکی sendsms رو در برمیگیره، برای بقیه متدها از همین الگو بگیرین.
4- یک راهنما در آدرس زیر هست:
https://www.parsgreen.com/content/fi...umentation.pdf
اون رو باید بخونین و کدهای برگشت (retstr,return value) رو از روی اون تفسیر کنین.
در کد پیوست این مقادیر بصورت status,refrence,mobile, sendresult برمیگردن.
-
نقل قول: درخواست راهنمایی جهت تبدیل کد VB.net به VBA
Option Compare Database
Option Explicit
Public Const WSURL = "https://login.parsgreen.com/Api/SendSMS.asmx"
Public Const Signature = "...."
Public Const XML = _
"<?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><Send xmlns='http://ParsGreen.com/'>" & _
"<signature>@S</signature>" & _
"<toMobile>@M</toMobile>" & _
"<smsBody>@T</smsBody>" & _
"<retStr></retStr></Send></soap12:Body></soap12:Envelope>"
Public Type SendResponse
SendResult As Integer
Mobile As String
Status As String
Refrence As String
http_status As Integer
http_status_text As String
End Type
-
نقل قول: درخواست راهنمایی جهت تبدیل کد VB.net به VBA
Public Function SendSMS(Mobile As String, Text As String) As SendResponse
Dim X As String
X = Replace(XML, "@S", Signature)
X = Replace(X, "@M", Mobile)
X = Replace(X, "@T", Text)
With New XMLHTTP60
.Open "POST", WSURL, False
.setRequestHeader "HOST", "login.parsgreen.com"
.setRequestHeader "CONTENT-TYPE", "application/soap+xml; charset=utf-8"
.Send X
SendSMS.http_status = .Status
SendSMS.http_status_text = .statusText
If .Status = 200 Then
Dim Doc As New DOMDocument60
Doc.SetProperty "SelectionNamespaces", "xmlns:pg='http://ParsGreen.com/'"
Doc.loadXML .responseText
SendSMS.SendResult = Doc.selectSingleNode("//pg:SendResult").Text
Dim retStr As Variant
retStr = Split(Doc.selectSingleNode("//pg:retStr").Text, ";")
SendSMS.Mobile = retStr(0)
SendSMS.Status = retStr(1)
SendSMS.Refrence = retStr(2)
End If
End With
End Function
-
نقل قول: درخواست راهنمایی جهت تبدیل کد VB.net به VBA
:تشویق::تشویق::تشویق::تشویق:: شویق:
سلام استاد. خیلی عالی بود. تونستم پیامک تکی ارسال کنم
البته نتیجه ارسال پیامک هم با استفاده از بخش انتهایی کد شما بسیار عالی بود
نمی دونم چه جوری ازتون تشکر کنم . فقط میتونم دعا کنم همیشه سالم و تندرست باشید و خوب و خوش باشید
در خصوص ارسال گروهی هم باید خودم رو محک بزنم ببینم میتونم از رو دست استاد خروجی مورد انتظار رو بگیرم یا نه. هر چند میدونم شما مثل همیشه یار و یاور همه بچه های تالار هستید و بی منت دانش خود را نشر میدید
-
نقل قول: درخواست راهنمایی جهت تبدیل کد VB.net به VBA
نظر لطف شماست،
خوشحالم جواب گرفتین.
پیشنهاد میکنم از مدیر بخش درخواست تغییر نام تاپیک به یک عنوان مناسبتر رو بدین.
و خواهش میکنم پس از این به نهایتا یک "آقا" در خطاب بسنده کنین.
-
نقل قول: درخواست راهنمایی جهت تبدیل کد VB.net به VBA
بله حتما این کار را خواهم کرد.
فقط یک نکته اگر بخوام روش ارسال گروهی رو کد نویسی کنم ساختار تابع ارسال همینه یا باید در این هم تغییراتی بدم. با الگوبرداری از کدهای شما بخش اول تعاریف و رشته xml رو نوشتم و با تابع ارسال فراخوانی کردم ظاهرا خطاهایی وجود داشت که کار نکرد. راستش یه منبع خوب می خوام که مفهوم این کدهای ارتباط وبی را شسته و رفته درک کنم. منابع در گوگل زیاده ولی به نظرم همه پراکنده است
-
نقل قول: درخواست راهنمایی جهت تبدیل کد VB.net به VBA
اگر زیاد با ارسال گروهی سر و کار ندارین (چه از نظر فاصله زمانی، چه اندازه گروه و ...) شاید ارزش نداشته باشه براش کد بنویسین.
میتونین همین کد رو تو حلقه استفاده کنین، چون در هر صورت در همون کد جدید هم ناچار به استفاده از حلقه هستین.
اما قبل از هر کار دیگه اول باید طراحی دیتابیس رو تموم کنین تا کد رو بر اساس اون بنویسین.
بعنوان مثال یک جدول برای اشخاص که شماره موبایل هم یکی از فیلدهاست ،
یک جدول برای پیام ها ،
و یک جدول هم برای سابقه ارسال شامل فیلدهایی مثل کد پیام، شماره موبایل (یا کد شخص)، تاریخ و زمان ارسال و نتایج (کد رهگیری و کد وضعیت و ...)
حالا در تابع ارسال گروهی میتونین کد پیام و یک رکوردست (یا array یا ....) رو بعنوان پارامتر بفرستین و تابع باید نتایج ارسال رو در جدول سابقه بنویسه.
برای تابع گروهی باید از لینک زیر استفاده کنین:
https://login.parsgreen.com/Api/Send...p=SendGroupSMS
-
نقل قول: درخواست راهنمایی جهت تبدیل کد VB.net به VBA
منظورتون از "کدهای وبی" رو متوجه نشدم که dom structure هست
یا http post و ...
یا خود وب سرویس.
واقعیتش اینه که بهترین و سریعترین راه یادگیری کلاس حضوری هست بنظرم!
-
نقل قول: درخواست راهنمایی جهت تبدیل کد VB.net به VBA
سلام. منظورم همین نحوه پارامتر دهی در کدهای XML , HTTP POST , DOM STRUCTURE هست
من سعی کردم مثل شما ابتدا بیام ثوابت رو تعریف کنم:
Public Const WSURL = "https://login.parsgreen.com/Api/SendSMS.asmx"
Public Const Signature = "0000"
Public Const from = "10006713700"
Public Const isFlash = False
Public Const udh = ""
Public Const success = 0
بعد از اون کد XML و تعاریف رو به شکل زیر انجام دادم
Public Const XML = _
"<?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><SendGroupSMS xmlns='http://ParsGreen.com/'>" & _
"<signature>@S</signature>" & _
"<from>@F</from>" & _
"<to>" & _
"<string>@M</string>" & _
"</to>" & _
"<text>@T</text>" & _
"<isFlash>@IS</isFlash>" & _
"<udh>@U</udh>" & _
"<success>@SC</success>" & _
"<retStr></retStr></SendGroupSMS></soap12:Body></soap12:Envelope>"
Public Type SendGroupSMSResponse
SendGroupSMSResult As Integer
to As String
Status As String
Refrence As String
http_status As Integer
http_status_text As String
End Type
تابع ارسال را هم به شکل زیر نوشتم:
Public Function SendGroupSMS(Text As String) As SendGroupSMSResponse
Dim X As String
X = Replace(XML, "@S", Signature)
X = Replace(X, "@F", from)
X = Replace(X, "@M", to)
X = Replace(X, "@T", Text)
X = Replace(X, "@IS", isFlash)
X = Replace(X, "@U", udh)
X = Replace(X, "@SC", success)
With New XMLHTTP60
.Open "POST", WSURL, False
.setRequestHeader "HOST", "login.parsgreen.com"
.setRequestHeader "CONTENT-TYPE", "application/soap+xml; charset=utf-8"
.Send X
SendGroupSMS.http_status = .Status
SendGroupSMS.http_status_text = .statusText
If .Status = 200 Then
Dim Doc As New DOMDocument60
Doc.SetProperty "SelectionNamespaces", "xmlns:pg='http://ParsGreen.com/'"
Doc.loadXML .responseText
SendGroupSMS.SendGroupSMSResult = Doc.selectSingleNode("//pg:SendGroupSMSResult").Text
Dim retStr As Variant
retStr = Split(Doc.selectSingleNode("//pg:retStr").Text, ";")
SendGroupSMS.Mobile = retStr(0)
SendGroupSMS.Status = retStr(1)
SendGroupSMS.Refrence = retStr(2)
End If
End With
End Function
می خواستم بدونم اینکار رو درست انجام دادم یا خیر؟ البته تو تعریف شماره گیرنده که در کد اصلی به شکل زیر نوشته
<to>
<string>string</string>
<string>string</string>
</to>
در خط ریپلیس کردن نمی دونم چرا ایراد می گیره.البته حتما یه اشکالی وجود داره و to رو قبول نمیکنه
X = Replace(X, "@M", to)
به هرصورت خیلی به نظرم پیچیده اومد.چند روز هم دارم کلنجار میرم و یه مقدار اصول کلی xml رو هم خوندم ولی با کدهای قشنگی که شما زدید کلی راه باید برم تا اونها را درک کنم. این رو میدونم که برای یادگیری باید تلاش کرد تا همه جوانب را یاد گرفت. ولی ازتون درخواست می کنم محبت کنید زحمت این بخش رو هم بکشید مثل قبلی.
در مورد پارامترهای isflash, success,udh مقادیر false,0,null داخل کد چه جوری باید نوشته بشه. یا اصلا لازمه چیزی نوشته بشه یا همون طور خالی بمونه
توی کد .NET مثل زیرنوشته:
int cnt = 0;
string _apikey ="D0C42A2D-6862-49B4-819E-FBD29A762978";
int ret = new PARSGREEN.API.SMS.Send.SendSMS().SendGroupSMS(_api key, "", number, "salam", false, "", ref cnt, ref txt);
ملاحظه می کنید که تلاش زیاد کردم ولی هنوز در جا میزنم.
-
نقل قول: درخواست راهنمایی جهت تبدیل کد VB.net به VBA
1- برای ارسال گروهی باید در request ، در تگ to بازای هر شماره یک تگ string با مقدار شماره بفرستین.
حالا یا باید کل محتوای درون تگ to رو قبلا بسازین و بعنوان پارامتر به تابع پاس کنین
یا
شماره ها رو به شکلی (رکوردست، ارایه، کالکشن، ...) به تابع پاس کنین و درون تابع این مجموعه رو بسازین.
2- همینجور در response ، بازای هر شماره ای که در to آوردین، یک تگ string در تگ retstr برمیگرده،
بنابراین دیگه مثل قبل فقط با متد selectsinglenode بتنهایی نمیشه جواب گرفت.
یک نمونه براتون آماده میکنم تا روش کار رو متوجه بشین.
-
نقل قول: درخواست راهنمایی جهت تبدیل کد VB.net به VBA
سلام جناب mazoolagh
منتظر زحمت شما هستم
-
نقل قول: درخواست راهنمایی جهت تبدیل کد VB.net به VBA
سلام
کد زیر رو تست کنین و خبرش رو بدین.
فرض بر این هست که :
1- ساختار جدول ها رو مثل همین که گفتم ساختین
2- لیست شماره ها بصورت رکوردست به تابع منتقل میشه
فرضا select * from persons where
3- نتیجه برای هر شماره در جدول سابقه نوشته میشه (در خود تابع) ولی چیزی برنمیگرده - این نتیجه مثل همون ارسال تکی هست.
4- تابع فقط مقدار کلی success رو همراه با وضعیت http برمیگردونه
-
نقل قول: درخواست راهنمایی جهت تبدیل کد VB.net به VBA
Private Const WSURL = "https://login.parsgreen.com/Api/SendSMS.asmx"
Private Const Signature = "...."
Private Const Sender = "...."
Private Const XML = _
"<?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><SendGroupSMS xmlns='http://ParsGreen.com/'>" & _
"<signature>@SGN</signature>" & _
"<from>@SDR</from>" & _
"<to>@M</to>" & _
"<text>@T</text>" & _
"<isFlash>false</isFlash>" & _
"<udh></udh>" & _
"<success></success>" & _
"<retStr></retStr></SendGroupSMS ></soap12:Body></soap12:Envelope>"
-
نقل قول: درخواست راهنمایی جهت تبدیل کد VB.net به VBA
Public Type SendGroupSMSResponse
SendGroupSMSResult As Integer
success As Integer
http_status As Integer
http_status_text As String
End Type
-
نقل قول: درخواست راهنمایی جهت تبدیل کد VB.net به VBA
Public Function SendGroupSMS(Mobiles As Recordset, MessageID As Long) As SendGroupSMSResponse
Dim SendTime As Date
Dim X As String
X = Replace(XML, "@SGN", Signature)
X = Replace(X, "@SDR", Sender)
X = Replace(X, "@T", DLookup("Message", "Messages", "MessageID=" & MessageID))
Dim M As String
Do Until Mobiles.EOF
M = M + "<string>" & Mobiles!Mobile & "</string>"
Mobiles.MoveNext
Loop
X = Replace(X, "@M", M)
With New XMLHTTP60
.Open "POST", WSURL, False
.setRequestHeader "HOST", "login.parsgreen.com"
.setRequestHeader "CONTENT-TYPE", "application/soap+xml; charset=utf-8"
.Send X
SendTime = Now
SendGroupSMS.http_status = .Status
SendGroupSMS.http_status_text = .statusText
If .Status = 200 Then
Dim Doc As New DOMDocument60
Doc.SetProperty "SelectionNamespaces", "xmlns:pg='http://ParsGreen.com/'"
Doc.loadXML .responseText
SendGroupSMS.SendGroupSMSResult = Doc.selectSingleNode("//pg:SendGroupSMSResult").Text
SendGroupSMS.success = Doc.selectSingleNode("//pg:success").Text
Dim node As MSXML2.IXMLDOMNode
Dim a As Variant
Dim s As String
Const sql = "INSERT INTO History (Mobile,MessageID,Status,Refrence,SendTime) VALUES ('@MN',@MID,@S,@R,#@T#)"
For Each node In Doc.selectSingleNode("//pg:retStr").childNodes
a = Split(node.Text, ";")
s = Replace(sql, "@MN", a(0))
s = Replace(s, "@MID", MessageID)
s = Replace(s, "@T", SendTime)
s = Replace(s, "@S", a(1))
s = Replace(s, "@R", a(2))
DoCmd.RunSQL s
Next
End If
End With
End Function
-
1 ضمیمه
نقل قول: درخواست راهنمایی جهت تبدیل کد VB.net به VBA
سلام
ممنون از زحمات شما که واقعا رحمت است برای همه اعضای این تالار
از تابع شما مطابق کدهای زیر استفاده کردم اما ارسال انجام نشد. از جدول پیامها پیام شماره یک را به شماره های جدول موبایلها . ضمنا برای نتیجه نیز جدول با تصویر زیر را ساختم Dim db As DAO.Database
Set db = CurrentDb
Dim RS As Recordset
Dim strSql As String
strSql = "SELECT Mobile FROM tblMobiles"
Set RS = db.OpenRecordset(strSql, dbOpenDynaset)
SendGroupSMS RS, 1
-
نقل قول: درخواست راهنمایی جهت تبدیل کد VB.net به VBA
این کد رو فقط کامپایل کردم ولی اجرا نکردم، بنابراین ممکنه ایراد منطقی ویا اجرایی داشته باشه.
اگر 3-4 شماره واقعی برای من ایمیل کنین، کد رو در عمل تست میکنم ببینم اشکال کجاست.
به mazoolagh در yahoo بفرستین.
-
نقل قول: درخواست راهنمایی جهت تبدیل کد VB.net به VBA
-
1 ضمیمه
نقل قول: درخواست راهنمایی جهت تبدیل کد VB.net به VBA
مشکل در ساخت رشته شماره ها و بدلیل بی دقتی من بود!
در ضمن شماره پیگیری رو به string تغییر دادم.
جدول نمونه history دو ارسال گروهی اخیر هم هست که میتونین بررسی کنین.
-
نقل قول: درخواست راهنمایی جهت تبدیل کد VB.net به VBA
Private Const WSURL = "https://login.parsgreen.com/Api/SendSMS.asmx"
Private Const Signature = "----"
Private Const Sender = "...."
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><SendGroupSMS xmlns='http://ParsGreen.com/'>" & _
"<signature>@SGN</signature>" & _
"<from>@SDR</from>" & _
"<to><string>@M</string></to>" & _
"<text>@T</text>" & _
"<isFlash>false</isFlash>" & _
"<udh></udh>" & _
"<retStr></retStr>" & _
"</SendGroupSMS></soap12:Body></soap12:Envelope>"
Public Type SendGroupSMSResponse
SendGroupSMSResult As Integer
success As Integer
http_status As Integer
http_status_text As String
End Type
-
نقل قول: درخواست راهنمایی جهت تبدیل کد VB.net به VBA
Public Function SendGroupSMS(Mobiles As Recordset, MessageID As Long) As SendGroupSMSResponse
Dim SendTime As Date
Dim X As String
X = Replace(XM, "@SGN", Signature)
X = Replace(X, "@SDR", Sender)
X = Replace(X, "@T", DLookup("Message", "Messages", "MessageID=" & MessageID))
Dim M As String
Do Until Mobiles.EOF
M = IIf(M = "", Mobiles!Mobile, M + vbCrLf + Mobiles!Mobile)
Mobiles.MoveNext
Loop
X = Replace(X, "@M", M)
With New XMLHTTP60
.Open "POST", WSURL, False
.setRequestHeader "HOST", "login.parsgreen.com"
.setRequestHeader "CONTENT-TYPE", "application/soap+xml; charset=utf-8"
.Send X
SendTime = Now
SendGroupSMS.http_status = .Status
SendGroupSMS.http_status_text = .statusText
If .Status = 200 Then
Dim Doc As New DOMDocument60
Doc.SetProperty "SelectionNamespaces", "xmlns:pg='http://ParsGreen.com/'"
Doc.loadXML .responseText
SendGroupSMS.SendGroupSMSResult = Doc.selectSingleNode("//pg:SendGroupSMSResult").Text
SendGroupSMS.success = Doc.selectSingleNode("//pg:success").Text
Dim node As MSXML2.IXMLDOMNode
Dim a As Variant
Dim s As String
Const sql = "INSERT INTO History (Mobile,MessageID,Status,Refrence,SendTime) VALUES ('@MN',@MID,@S,'@R',#@T#)"
For Each node In Doc.selectSingleNode("//pg:retStr").childNodes
a = Split(node.Text, ";")
s = Replace(sql, "@MN", a(0))
s = Replace(s, "@MID", MessageID)
s = Replace(s, "@T", SendTime)
s = Replace(s, "@S", a(1))
s = Replace(s, "@R", a(2))
DoCmd.RunSQL s
Next
End If
End With
End Function
-
نقل قول: درخواست راهنمایی جهت تبدیل کد VB.net به VBA
یک نمونه روش استفاده از تابع ارسال گروهی:
Sub test()
Dim rs As Recordset
Set rs = CurrentDb.OpenRecordset("select mobile from persons where personid>0")
Dim response As SendGroupSMSResponse
response = SendGroupSMS(rs, 1)
rs.Close
Set rs = Nothing
End Sub
-
نقل قول: درخواست راهنمایی جهت تبدیل کد VB.net به VBA
در ضمن قرار بود از مدیر بخش درخواست تغییر نام تاپیک به یک عنوان مربوط و مناسب با موضوع رو بدین.
-
نقل قول: درخواست راهنمایی جهت تبدیل کد VB.net به VBA
سلام
ممنون خیلی زحمت کشیدید
گوهر اندیشه نابتان فروزان باد
-
نقل قول: درخواست راهنمایی جهت ارسال sms با وب سرويس
سلام خدمت اساتید و دوستان عزیز به ویژه جناب mazoolagh عزیز
یکی از قابلیتهای استفاده از این وب سرویس ارسال پیام نظیر به نظیر ( پیام اختصاصی برای هر شماره ) به صورت یکجا می باشد
من کدها رو با استفاده از کدهای قبلی که جناب mazoolagh زحمت اون رو کشیدند در متد
SendGroupSMSP2P استفاده کردم ولی نمیدونم چرا پیامها رو به جای ارسال به هریک از شماره به صورت یکجا به همه شماره ها میفرسته
کدهایی که نوشتم اینهاست:
'------------ send GroupSms P2P ---------------------
Private Const GroupSMSP2pXML = "<?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><SendGroupSMSP2P xmlns='http://ParsGreen.com/'>" & _
"<signature>@SGN</signature>" & _
"<from>@SDR</from>" & _
"<to><string>@M</string></to>" & _
"<texts><string>@T</string></texts>" & _
"<isFlash>false</isFlash>" & _
"<udh></udh>" & _
"<status></status>" & _
"<retStr></retStr>" & _
"</SendGroupSMSP2P></soap12:Body></soap12:Envelope>"
Private Type SendGroupSMSP2PResponse
SendGroupSMSP2PResult As Integer
' status As Integer
success As Integer
http_status As Integer
http_status_text As String
End Type
Private Function SendGroupSMSP2P(Mobiles As Recordset) As SendGroupSMSP2PResponse
Dim SendTime As Date
Dim X As String
Dim Msg As String
Dim M As String
X = Replace(GroupSMSP2pXML, "@SGN", Signature)
X = Replace(X, "@SDR", Sender)
Do Until Mobiles.EOF
Msg = IIf(Msg = "", Mobiles!Message, Msg + vbCrLf + Mobiles!Message)
M = IIf(M = "", Mobiles!Mobile, M + vbCrLf + Mobiles!Mobile)
Mobiles.MoveNext
Loop
X = Replace(X, "@T", Msg)
X = Replace(X, "@M", M)
With New XMLHTTP60
.Open "POST", WSURL, False
.setRequestHeader "HOST", "login.parsgreen.com"
.setRequestHeader "CONTENT-TYPE", "application/soap+xml; charset=utf-8"
.Send X
SendTime = CStr(Now)
SendGroupSMSP2P.http_status = .Status
SendGroupSMSP2P.http_status_text = .statusText
If .Status = 200 Then
Dim Doc As New DOMDocument60
Doc.SetProperty "SelectionNamespaces", "xmlns:pg='http://ParsGreen.com/'"
Doc.loadXML .responseText
SendGroupSMSP2P.SendGroupSMSP2PResult = Doc.selectSingleNode("//pg:SendGroupSMSP2PResult").Text
SendGroupSMSP2P.success = Doc.selectSingleNode("//pg:success").Text
Dim node As MSXML2.IXMLDOMNode
Dim a As Variant
Dim s As String
' Const sql = "INSERT INTO History (Mobile,MessageID,Status,Refrence,SendTime) VALUES ('@MN',@MID,@S,'@R','@T')"
Const sql = "INSERT INTO History (Mobile,Status,Refrence,SendTime) VALUES ('@MN',@S,'@R','@T')"
For Each node In Doc.selectSingleNode("//pg:retStr").childNodes
MsgBox node.Text
a = Split(node.Text, "#")
s = Replace(sql, "@MN", a(0))
' s = Replace(s, "@MID", MessageID)
s = Replace(s, "@T", SendTime)
s = Replace(s, "@S", a(1))
s = Replace(s, "@R", a(2))
DoCmd.RunSQL s
Next
End If
End With
End Function
Private Sub Command0_Click()
Dim db As DAO.Database
Set db = CurrentDb
Dim RS As Recordset
Dim strSql As String
strSql = "SELECT Message, Mobile FROM tblMobilesMSG"
Set RS = db.OpenRecordset(strSql, dbOpenDynaset)
SendGroupSMSP2P RS
Me.List2.Requery
End Sub
-
نقل قول: درخواست راهنمایی جهت ارسال sms با وب سرويس
سلام
اگر خود فایل را قرار میدادید شاید اساتید دیگر هم بتوانند به شما کمک کنند .ضمن اینکه دوستان دیگر هم از فایل شما استفاده میکردند
-
نقل قول: درخواست راهنمایی جهت ارسال sms با وب سرويس
سلام فایل و کدها در پستهای قبلی وجود داره
-
نقل قول: درخواست راهنمایی جهت ارسال sms با وب سرويس
همین که پیامک ارسال میشه یعنی کد مشکل اجرایی نداره ،
ولی یک احتمال هست که بجای یک ارایه از تک شماره ها ، یک آرایه از لیست شماره ها رو میسازین - هرچند که ظاهر کد این رو نشون نمیده.
برای اطمینان قبل از ارسال X محتوای اون رو چک کنین.
قبل از اون با ارسال از طریق پنل یا یک برنامه دات نت مطمئن بشین که این رفتار by design نیست و مستندات درست هست.
-
نقل قول: درخواست راهنمایی جهت ارسال sms با وب سرويس
نقل قول:
نوشته شده توسط
atf1379
سلام
اگر خود فایل را قرار میدادید شاید اساتید دیگر هم بتوانند به شما کمک کنند .ضمن اینکه دوستان دیگر هم از فایل شما استفاده میکردند
یک دور پست های این تاپیک رو مطالعه کنین، برنامه کامل و کدها قبلا گذاشته و تاپیک از نگاه فنی عملا تمام شده.
همچنین استارتر تاپیک در پرسش آخر کد رو هم پیوست کرده که کاملا کافی هست و اگر نیازی به فایل باشه قطعا کسی که راهنمایی میده خودش هم درخواست میکنه.