From d177cda5d1f99f5c163ee62861613bc02290d84f Mon Sep 17 00:00:00 2001 From: ivan Date: Tue, 4 Jul 2006 01:18:33 +0000 Subject: initial import --- .../OnlinePayment/PPIPayMover/CountryCodes.pm | 318 +++++++++++++++++++++ 1 file changed, 318 insertions(+) create mode 100644 lib/Business/OnlinePayment/PPIPayMover/CountryCodes.pm (limited to 'lib/Business/OnlinePayment/PPIPayMover/CountryCodes.pm') diff --git a/lib/Business/OnlinePayment/PPIPayMover/CountryCodes.pm b/lib/Business/OnlinePayment/PPIPayMover/CountryCodes.pm new file mode 100644 index 0000000..049635c --- /dev/null +++ b/lib/Business/OnlinePayment/PPIPayMover/CountryCodes.pm @@ -0,0 +1,318 @@ +package Business::OnlinePayment::PPIPayMover::CountryCodes; + +use strict; +use vars qw(@ISA @EXPORT %countryHash); +use Exporter; + +@ISA = qw(Exporter); +@EXPORT = qw(getCountry + getNumericCountryCode + isValidCountryCode +getCCodeFromCName); + +# Two Character Country Codes */ +%countryHash = ("DZ" => "ALGERIA:012", + "BJ" => "BENIN:204", + "BW" => "BOTSWANA:072", + "BF" => "BURKINA FASO:854", + "BI" => "BURUNDI:108", + "CM" => "CAMEROON:120", + "CV" => "CAPE VERDE:132", + "CF" => "CENTRAL AFRICAN REPUBLIC:140", + "TD" => "CHAD:148", + "KM" => "COMOROS:174", + "CG" => "CONGO:178", + "CI" => "COTE DIVOIRE:384", + "DJ" => "DJIBOUTI:262", + "EG" => "EGYPT:818", + "GQ" => "EQUATORIAL GUINEA:226", + "ER" => "ERITREA:232", + "ET" => "ETHIOPIA:231", + "GA" => "GABON:266", + "GM" => "GAMBIA:270", + "GH" => "GHANA:288", + "GN" => "GUINEA:324", + "GW" => "GUINEA BISSAU:624", + "KE" => "KENYA:404", + "LS" => "LESOTHO:426", + "LR" => "LIBERIA:430", + "MG" => "MADAGASCAR:450", + "MW" => "MALAWI:454", + "ML" => "MALI:466", + "MR" => "MAURITANIA:478", + "YT" => "MAYOTTE:175", + "MA" => "MOROCCO:504", + "MZ" => "MOZAMBIQUE:508", + "NA" => "NAMIBIA:516", + "NE" => "NIGER:562", + "NG" => "NIGERIA:566", + "RE" => "REUNION:638", + "ST" => "SAO TOME AND PRINCIPE:678", + "SN" => "SENEGAL:686", + "SL" => "SIERRA LEONE:694", + "SO" => "SOMALIA:706", + "ZA" => "SOUTH AFRICA:710", + "SH" => "ST HELENA:654", + "SD" => "SUDAN:736", + "SZ" => "SWAZILAND:748", + "TZ" => "TANZANIA:834", + "TG" => "TOGO:768", + "TN" => "TUNISIA:788", + "UG" => "UGANDA:800", + "EH" => "WESTERN SAHARA:732", + "ZR" => "ZAIRE:180", + "ZM" => "ZAMBIA:894", + "ZW" => "ZIMBABWE:716", + +# Antartica + "AQ" => "ANTARCTICA:010", + +# Asia + "AF" => "AFGHANISTAN:004", + "BD" => "BANGLADESH:050", + "BT" => "BHUTAN:064", + "BN" => "BRUNEI:096", + "KH" => "CAMBODIA:116", + "CN" => "CHINA:156", + "HK" => "HONG KONG:344", + "IN" => "INDIA:356", + "ID" => "INDONESIA:360", + "JP" => "JAPAN:392", + "KZ" => "KAZAKHSTAN:398", + "KG" => "KYRGYZSTAN:417", + "LA" => "LAOS:418", + "MO" => "MACAU:446", + "MY" => "MALAYSIA:458", + "MV" => "MALDIVES:462", + "MN" => "MONGOLIA:496", + "NP" => "NEPAL:524", + "PK" => "PAKISTAN:586", + "PH" => "PHILIPPINES:608", + "KR" => "REPUBLIC OF KOREA:410", + "RU" => "RUSSIA:643", + "SC" => "SEYCHELLES:690", + "SG" => "SINGAPORE:702", + "LK" => "SRI LANKA:144", + "TW" => "TAIWAN:158", + "TJ" => "TAJIKISTAN:762", + "TH" => "THAILAND:764", + "TM" => "TURKMENISTAN:795", + "UZ" => "UZBEKISTAN:860", + "VN" => "VIETNAM:704", + +# Australia + "AS" => "AMERICAN SAMOA:016", + "AU" => "AUSTRALIA:036", + "FM" => "FEDERATED STATES OF MICRONESIA:583", + "FJ" => "FIJI:242", + "PF" => "FRENCH POLYNESIA:258", + "GU" => "GUAM:316", + "KI" => "KIRIBATI:296", + "MH" => "MARSHALL ISLANDS:584", + "NR" => "NAURU:520", + "NC" => "NEW CALEDONIA:540", + "NZ" => "NEW ZEALAND:554", + "MP" => "NORTHERN MARIANA ISLANDS:580", + "PW" => "PALAU:585", + "PG" => "PAPUA NEW GUINEA:598", + "PN" => "PITCAIRN:612", + "SB" => "SOLOMON ISLANDS:090", + "TO" => "TONGA:776", + "TV" => "TUVALU:798", + "VU" => "VANUATU:548", + +# Caribbean + "AI" => "ANGUILLA:660", + "AG" => "ANTIGUA AND BARBUDA:028", + "AW" => "ARUBA:533", + "BS" => "BAHAMAS:044", + "BB" => "BARBADOS:052", + "BM" => "BERMUDA:060", + "KY" => "CAYMAN ISLANDS:136", + "DM" => "DOMINICA:212", + "DO" => "DOMINICAN REPUBLIC:214", + "GD" => "GRENADA:308", + "GP" => "GUADELOUPE:312", + "HT" => "HAITI:332", + "JM" => "JAMAICA:388", + "MQ" => "MARTINIQUE:474", + "AN" => "NETHERLANDS ANTILLES:530", + "PR" => "PUERTO RICO:630", + "KN" => "ST KITTS AND NEVIS:659", + "LC" => "ST LUCIA:662", + "VC" => "ST VINCENT AND THE GRENADINES:670", + "TT" => "TRINIDAD AND TOBAGO:780", + "TC" => "TURKS AND CAICOS ISLANDS:796", + "VG" => "VIRGIN ISLANDS BRITISH:092", + "VI" => "VIRGIN ISLANDS USA:850", + +# Central America + "BZ" => "BELIZE:084", + "CR" => "COSTA RICA:188", + "SV" => "EL SALVADOR:222", + "GT" => "GUATEMALA:320", + "HN" => "HONDURAS:340", + "NI" => "NICARAGUA:558", + "PA" => "PANAMA:591", + +# Europe + "AL" => "ALBANIA:008", + "AD" => "ANDORRA:020", + "AM" => "ARMENIA:051", + "AT" => "AUSTRIA:040", + "AZ" => "AZERBAIJAN:031", + "BY" => "BELARUS:112", + "BE" => "BELGIUM:056", + "BG" => "BULGARIA:100", + "HR" => "CROATIA:191", + "CY" => "CYPRUS:196", + "CZ" => "CZECH REPUBLIC:203", + "DK" => "DENMARK:208", + "EE" => "ESTONIA:233", + "FO" => "FAROE ISLANDS:234", + "FI" => "FINLAND:246", + "FR" => "FRANCE:250", + "GE" => "GEORGIA:268", + "DE" => "GERMANY:276", + "GI" => "GIBRALTAR:292", + "GR" => "GREECE:300", + "GL" => "GREENLAND:304", + "HU" => "HUNGARY:348", + "IS" => "ICELAND:352", + "IE" => "IRELAND:372", + "IT" => "ITALY:380", + "LV" => "LATVIA:428", + "LI" => "LIECHTENSTEIN:438", + "LT" => "LITHUANIA:440", + "LU" => "LUXEMBOURG:442", + "MT" => "MALTA:470", + "FX" => "METROPOLITAN FRANCE:249", + "MD" => "MOLDOVA:498", + "NL" => "NETHERLANDS:528", + "NO" => "NORWAY:578", + "PL" => "POLAND:616", + "PT" => "PORTUGAL:620", + "RO" => "ROMANIA:642", + "SK" => "SLOVAKIA:703", + "SI" => "SLOVENIA:705", + "ES" => "SPAIN:724", + "SJ" => "SVALBARD AND JAN MAYEN ISLANDS:744", + "SE" => "SWEDEN:752", + "CH" => "SWITZERLAND:756", + "MK" => "REPUBLIC OF MACEDONIA:807", + "TR" => "TURKEY:792", + "UA" => "UKRAINE:804", + "GB" => "UNITED KINGDOM:826", + "VA" => "VATICAN CITY:336", + "YU" => "YUGOSLAVIA:891", + +# Middle East + "IL" => "ISRAEL:376", + "JO" => "JORDAN:400", + "KW" => "KUWAIT:414", + "LB" => "LEBANON:422", + "OM" => "OMAN:512", + "QA" => "QATAR:634", + "SA" => "SAUDI ARABIA:682", + "SY" => "SYRIA:760", + "AE" => "UNITED ARAB EMIRATES:784", + "YE" => "YEMEN:887", + +# North America + "CA" => "CANADA:124", + "MX" => "MEXICO:484", + "US" => "UNITED STATES:840", + +# South America + "AR" => "ARGENTINA:032", + "BO" => "BOLIVIA:068", + "BR" => "BRAZIL:076", + "CL" => "CHILE:152", + "CO" => "COLOMBIA:170", + "EC" => "EQUADOR:218", + "FK" => "FALKLAND ISLANDS:238", + "GF" => "FRENCH GUIANA:254", + "GY" => "GUYANA:328", + "PY" => "PARAGUAY:600", + "PE" => "PERU:604", + "SR" => "SURINAME:740", + "UY" => "URUGUAY:858", + "VE" => "VENEZUELA:862", + +# Others + "BH" => "BAHRAIN:048", + "BV" => "BOUVET ISLANDS:074", + "IO" => "BRITISH INDIAN OCEAN TERRITORY:086", + "CX" => "CHRISTMAS ISLANDS:162", + "CC" => "COCOS KEELING ISLANDS:166", + "CK" => "COOK ISLAND:184", + "TP" => "EAST TIMOR:626", + "TF" => "FRENCH SOUTHERN TERRITORIES:260", + "HM" => "HEARD AND MCDONALD ISLANDS:334", + "MU" => "MAURITIUS:480", + "MC" => "MONACO:492", + "MS" => "MONTSERRAT:500", + "MM" => "MYANMAR:104", + "NU" => "NIUE:570", + "NF" => "NORFOLK ISLAND:574", + "WS" => "SAMOA:882", + "SM" => "SAN MARINO:674", + "PM" => "ST PIERRE AND MIQUELON:666", + "TK" => "TOKELAU:772", + "UM" => "UNITED STATES MINOR OUTLYING ISLANDS:581", + "WF" => "WALLIS AND FUTUNA ISLANDS:876", + + "AO" => "ANGOLA:024", + "BA" => "BOSNIA AND HERZEGOWINA:070", + "CU" => "CUBA:192", + "IR" => "ISLAMIC REPUBLIC OF IRAN:364", + "IQ" => "IRAQ:368", + "KP" => "DEMOCRATIC PEOPLES REPUBLIC OF KOREA:408", + "LY" => "LIBYAN ARAB JAMAHIRIYA:434", + "RW" => "RWANDA:646", + "GS" => "SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS:39", + "CD" => "DEMOCRATIC REPUBLIC OF THE CONGO:180", + "PS" => "OCCUPIED PALESTINIAN TERRITORY:275" +); + + +sub getCountry { + my $countryCode = shift; # give country code as an arguement to get country name + if(exists $CountryCodes::countryHash{$countryCode}){ + my $countryName; + my $countryNumber; + ($countryName, $countryNumber) = split(/:/, $CountryCodes::countryHash{$countryCode}); + return $countryName; + } + else { return undef } +} + +sub getNumericCountryCode { + my $countryCode = shift; # give country code as an arguement to get numeric country code + if(exists $CountryCodes::countryHash{$countryCode}) { + my $countryName; + my $countryNumber; + ($countryName, $countryNumber) = split(/:/, $CountryCodes::countryHash{$countryCode}); + return $countryNumber; + } + else {return undef} +} + + +sub isValidCountryCode { + my $countryCode = shift; + return (exists $CountryCodes::countryHash{$countryCode}); +} + +sub getCCodeFromCName { + my $country = shift; # give country name as an arguement to get country code + $country = uc($country); + my $key; + my $countryName; + my $countryNumber; + foreach $key (keys(%CountryCodes::countryHash)){ + ($countryName, $countryNumber) = split(/:/, $CountryCodes::countryHash{$key}); + if ($country eq $countryName) { return $key} + } + return undef; +} -- cgit v1.2.1