كيفية تحويل اسعار العملات بإستخدام Yahoo Exchange Rates Web Service

السلام عليكم ورحمة الله وبركاته
الأخوة الأعضاء الكرام, كيف حالكم جميعاً؟

اليوم بإذن الله سوف نتعلم معاً كيفية الحصول على أسعار العملات بإستخدام خدمة الويب الخاصة بخوادم Yahoo عن طريق Visual Basic.NET.

فالحقيقة ليست Yahoo فقط من تقدم تلك الخدمة. فالعديد من الـ Web Services تُمكنك من الحصول على أسعار العملات مُحدثة يومياً ولكن يُمكنك القول أن أفضلها وأسرعها هي Yahoo Exchange Rates Web Service وذلك بحكم عملي وتجربتي مع أكثر من خدمة فلم أجد خدمة أسرع وأكثر إستقراراً من Yahoo فهي أفضل من Google ذاتها.

شرح بسيط لفكرة الخدمة:

خدمات الويب تُشبه -في غايتها- إلى حد كبير ما تُقدمة لك دوال البرمجة كائنية التواجه -Object Oriented Function- فالأمر ليس أكثر من إرسال مُعاملات -Parameters- والحصول على قيمة او نتيجة -Returned Value- ولكن انت هنا تتعامل داخل تطبيقات سطح المكتب -Desktop Applications- وهناك تتعامل مع تطبيقات الويب -Web Applications- وبنفس الطريقة الخدمة تستقبل منك مُعاملين فقط هما:

1-اسم العملة المُحول منها.

2-اسم العملة المُحول إليها.

مثال اريد ان اعرف كم ين ياباني يُساوي الـدولاار امريكية .

وبالنهاية تُعطيك نتيجة نصية -String- تحتوي على قيمة مزدوجة -Double Data Type- لقيمة التحويل وقيمة تاريخ ووقت -Date Time Data Type- لتوقيت الحصول على السعر للمُزامنة على الشكل التالي:

كود :
'Returns: ""SAREGP=X",1.8355,"11/19/2013","8:53pm""

SAR=Saudi Arabia Reial, EGP=Egyptian Pound, 1.8355=Exchange Rate, 11/19/2013=Date of Rate, 8:83pm=Time of Rate.

ولكن تُمرر المعاملات بصيغة خاصة بالخدمة وتعتمد على الإختصارات العالمية للعملات الورقية تبعاً لكل دولة. فمثلاً الين الياباني حينما أريد أرساله سوف يكون في السياق النصي “JPY” كذلك الدولار الأمريكي سيكون في السياق التالي “USD” … إلخ.

وفي التالي إليك الإختصارات العالمية الخاصة بجميع العملات الورقية حول العالم والتي سوف تقوم إستخدامها داخل خدمة الويب -موضح اسم العملة الكامل بعد علامة تنصيص-:

إقتباس :EGP ‘Egyptian Pound

AED ‘United Arab Emirates Dirham

ANG ‘Netherlands Antillean Guilder

ARS ‘Argentine Peso

AUD ‘Australian Dollar

BDT ‘Bangladeshi Taka

BGN ‘Bulgarian Lev

BHD ‘Bahraini Dinar

BND ‘Brunei Dollar

BOB ‘Bolivian Boliviano

BRL ‘Brazilian Real

BWP ‘Botswanan Pula

CAD ‘Canadian Dollar

CHF ‘Swiss Franc

CLP ‘Chilean Peso

CNY ‘Chinese Yuan

COP ‘Colombian Peso

CRC ‘Costa Rican Colón

CZK ‘Czech Republic Koruna

DKK ‘Danish Krone

DOP ‘Dominican Peso

DZD ‘Algerian Dinar

EEK ‘Estonian Kroon

EUR ‘Euro

FJD ‘Fijian Dollar

GBP ‘British Pound Sterling

HKD ‘Hong Kong Dollar

HNL ‘Honduran Lempira

HRK ‘Croatian Kuna

HUF ‘Hungarian Forint

IDR ‘Indonesian Rupiah

ILS ‘Israeli New Sheqel

INR ‘Indian Rupee

JMD ‘Jamaican Dollar

JOD ‘Jordanian Dinar

JPY ‘Japanese Yen

KES ‘Kenyan Shilling

KRW ‘South Korean Won

KWD ‘Kuwaiti Dinar

KYD ‘Cayman Islands Dollar

KZT ‘Kazakhstani Tenge

LBP ‘Lebanese Pound

LKR ‘Sri Lankan Rupee

LTL ‘Lithuanian Litas

LVL ‘Latvian Lats

MAD ‘Moroccan Dirham

MDL ‘Moldovan Leu

MKD ‘Macedonian Denar

MUR ‘Mauritian Rupee

MVR ‘Maldivian Rufiyaa

MXN ‘Mexican Peso

MYR ‘Malaysian Ringgit

NAD ‘Namibian Dollar

NGN ‘Nigerian Naira

NIO ‘Nicaraguan Córdoba

NOK ‘Norwegian Krone

NPR ‘Nepalese Rupee

NZD ‘New Zealand Dollar

OMR ‘Omani Rial

PEN ‘Peruvian Nuevo Sol

PGK ‘Papua New Guinean Kina

PHP ‘Philippine Peso

PKR ‘Pakistani Rupee

PLN ‘Polish Zloty

PYG ‘Paraguayan Guarani

QAR ‘Qatari Rial

RON ‘Romanian Leu

RSD ‘Serbian Dinar

RUB ‘Russian Ruble

SAR ‘Saudi Riyal

SCR ‘Seychellois Rupee

SEK ‘Swedish Krona

SGD ‘Singapore Dollar

SKK ‘Slovak Koruna

SLL ‘Sierra Leonean Leone

SVC ‘Salvadoran Colón

THB ‘Thai Baht

TND ‘Tunisian Dinar

TRY ‘Turkish Lira

TTD ‘Trinidad and Tobago Dollar

TWD ‘New Taiwan Dollar

TZS ‘Tanzanian Shilling

UAH ‘Ukrainian Hryvnia

UGX ‘Ugandan Shilling

USD ‘US Dollar

UYU ‘Uruguayan Peso

UZS ‘Uzbekistan Som

VEF ‘Venezuelan Bolívar

VND ‘Vietnamese Dong

XOF ‘CFA Franc BCEAO

YER ‘Yemeni Rial

ZAR ‘South African Rand

ZMK ‘Zambian Kwacha

والأن إلى البرمجة:

الـ Module التالي يحتوي على Function قمت بعملها وأعتمد عليها داخل عملي الخاص وتحتوي على ثلاثة مُعاملات -Parameters- فقط وتعود إليك بـ قيمة مزدوجة -Double Data Type-:

PHP كود :
Imports System.Net 'System.Net.dll
Imports System.Web.Script.Serialization '
System.Web.Extensions.dll
Module mdlCurrencyRate
Public Function Get_Currency_Rate(ByVal currFromName As StringByVal currToName As String) As Double
Dim result 
As Double 0.0
Dim wbServiceLink 
"http://www.finance.yahoo.com/d/quotes.csv?e=.csv&f=sl1d1t1&s={0}{1}=X"
Dim url As String String.Format(wbServiceLinkcurrFromNamecurrToName)
Dim client As New WebClient()
Dim rates As String client.DownloadString(url'Returns: ""SAREGP=X",1.8355,"11/19/2013","8:53pm""
Dim rate_part As String = Split(rates, ",")(1)
If Double.TryParse(rate_part, result) Then
result = CDbl(rate_part)
End If
Return result
End Function
End Module

يتطلب المثال أعلاه المكتبات -يتضمنها المِثال المُرفق بالموضوع- الخاصة بـ System.Net, System.Web.Extensions Name Spaces.

مثال إستخدام الـ Function:

PHP كود :
Dim Saudi_Rial_To_Egypt_Pound As Double Get_Currency_Rate("SAR""EGP"'Result= 1.8355

المثال السابق يأتي بسعر عملة الريال السعودي بالنسبة للجنية المصري.

مُرفق بالموضوع Visual Studio 2010 Project.

إذا كان هُناك أي إستفسار إن شاء الله أنا مُتواجد -قدر المُستطاع-.

أتمنى أن يكون الموضوع مُفيداً إليك. ووفقنا الله وإياكم.

Advertisements

اترك رد

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s