diff options
Diffstat (limited to 'lib/Business/OnlinePayment/PPIPayMover/CountryCodes.pm')
-rw-r--r-- | lib/Business/OnlinePayment/PPIPayMover/CountryCodes.pm | 318 |
1 files changed, 318 insertions, 0 deletions
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;
+}
|