1 package Business::OnlinePayment::PPIPayMover::CountryCodes;
\r
4 use vars qw(@ISA @EXPORT %countryHash);
\r
8 @EXPORT = qw(getCountry
\r
9 getNumericCountryCode
\r
13 # Two Character Country Codes */
\r
14 %countryHash = ("DZ" => "ALGERIA:012",
\r
15 "BJ" => "BENIN:204",
\r
16 "BW" => "BOTSWANA:072",
\r
17 "BF" => "BURKINA FASO:854",
\r
18 "BI" => "BURUNDI:108",
\r
19 "CM" => "CAMEROON:120",
\r
20 "CV" => "CAPE VERDE:132",
\r
21 "CF" => "CENTRAL AFRICAN REPUBLIC:140",
\r
23 "KM" => "COMOROS:174",
\r
24 "CG" => "CONGO:178",
\r
25 "CI" => "COTE DIVOIRE:384",
\r
26 "DJ" => "DJIBOUTI:262",
\r
27 "EG" => "EGYPT:818",
\r
28 "GQ" => "EQUATORIAL GUINEA:226",
\r
29 "ER" => "ERITREA:232",
\r
30 "ET" => "ETHIOPIA:231",
\r
31 "GA" => "GABON:266",
\r
32 "GM" => "GAMBIA:270",
\r
33 "GH" => "GHANA:288",
\r
34 "GN" => "GUINEA:324",
\r
35 "GW" => "GUINEA BISSAU:624",
\r
36 "KE" => "KENYA:404",
\r
37 "LS" => "LESOTHO:426",
\r
38 "LR" => "LIBERIA:430",
\r
39 "MG" => "MADAGASCAR:450",
\r
40 "MW" => "MALAWI:454",
\r
42 "MR" => "MAURITANIA:478",
\r
43 "YT" => "MAYOTTE:175",
\r
44 "MA" => "MOROCCO:504",
\r
45 "MZ" => "MOZAMBIQUE:508",
\r
46 "NA" => "NAMIBIA:516",
\r
47 "NE" => "NIGER:562",
\r
48 "NG" => "NIGERIA:566",
\r
49 "RE" => "REUNION:638",
\r
50 "ST" => "SAO TOME AND PRINCIPE:678",
\r
51 "SN" => "SENEGAL:686",
\r
52 "SL" => "SIERRA LEONE:694",
\r
53 "SO" => "SOMALIA:706",
\r
54 "ZA" => "SOUTH AFRICA:710",
\r
55 "SH" => "ST HELENA:654",
\r
56 "SD" => "SUDAN:736",
\r
57 "SZ" => "SWAZILAND:748",
\r
58 "TZ" => "TANZANIA:834",
\r
60 "TN" => "TUNISIA:788",
\r
61 "UG" => "UGANDA:800",
\r
62 "EH" => "WESTERN SAHARA:732",
\r
63 "ZR" => "ZAIRE:180",
\r
64 "ZM" => "ZAMBIA:894",
\r
65 "ZW" => "ZIMBABWE:716",
\r
68 "AQ" => "ANTARCTICA:010",
\r
71 "AF" => "AFGHANISTAN:004",
\r
72 "BD" => "BANGLADESH:050",
\r
73 "BT" => "BHUTAN:064",
\r
74 "BN" => "BRUNEI:096",
\r
75 "KH" => "CAMBODIA:116",
\r
76 "CN" => "CHINA:156",
\r
77 "HK" => "HONG KONG:344",
\r
78 "IN" => "INDIA:356",
\r
79 "ID" => "INDONESIA:360",
\r
80 "JP" => "JAPAN:392",
\r
81 "KZ" => "KAZAKHSTAN:398",
\r
82 "KG" => "KYRGYZSTAN:417",
\r
84 "MO" => "MACAU:446",
\r
85 "MY" => "MALAYSIA:458",
\r
86 "MV" => "MALDIVES:462",
\r
87 "MN" => "MONGOLIA:496",
\r
88 "NP" => "NEPAL:524",
\r
89 "PK" => "PAKISTAN:586",
\r
90 "PH" => "PHILIPPINES:608",
\r
91 "KR" => "REPUBLIC OF KOREA:410",
\r
92 "RU" => "RUSSIA:643",
\r
93 "SC" => "SEYCHELLES:690",
\r
94 "SG" => "SINGAPORE:702",
\r
95 "LK" => "SRI LANKA:144",
\r
96 "TW" => "TAIWAN:158",
\r
97 "TJ" => "TAJIKISTAN:762",
\r
98 "TH" => "THAILAND:764",
\r
99 "TM" => "TURKMENISTAN:795",
\r
100 "UZ" => "UZBEKISTAN:860",
\r
101 "VN" => "VIETNAM:704",
\r
104 "AS" => "AMERICAN SAMOA:016",
\r
105 "AU" => "AUSTRALIA:036",
\r
106 "FM" => "FEDERATED STATES OF MICRONESIA:583",
\r
107 "FJ" => "FIJI:242",
\r
108 "PF" => "FRENCH POLYNESIA:258",
\r
109 "GU" => "GUAM:316",
\r
110 "KI" => "KIRIBATI:296",
\r
111 "MH" => "MARSHALL ISLANDS:584",
\r
112 "NR" => "NAURU:520",
\r
113 "NC" => "NEW CALEDONIA:540",
\r
114 "NZ" => "NEW ZEALAND:554",
\r
115 "MP" => "NORTHERN MARIANA ISLANDS:580",
\r
116 "PW" => "PALAU:585",
\r
117 "PG" => "PAPUA NEW GUINEA:598",
\r
118 "PN" => "PITCAIRN:612",
\r
119 "SB" => "SOLOMON ISLANDS:090",
\r
120 "TO" => "TONGA:776",
\r
121 "TV" => "TUVALU:798",
\r
122 "VU" => "VANUATU:548",
\r
125 "AI" => "ANGUILLA:660",
\r
126 "AG" => "ANTIGUA AND BARBUDA:028",
\r
127 "AW" => "ARUBA:533",
\r
128 "BS" => "BAHAMAS:044",
\r
129 "BB" => "BARBADOS:052",
\r
130 "BM" => "BERMUDA:060",
\r
131 "KY" => "CAYMAN ISLANDS:136",
\r
132 "DM" => "DOMINICA:212",
\r
133 "DO" => "DOMINICAN REPUBLIC:214",
\r
134 "GD" => "GRENADA:308",
\r
135 "GP" => "GUADELOUPE:312",
\r
136 "HT" => "HAITI:332",
\r
137 "JM" => "JAMAICA:388",
\r
138 "MQ" => "MARTINIQUE:474",
\r
139 "AN" => "NETHERLANDS ANTILLES:530",
\r
140 "PR" => "PUERTO RICO:630",
\r
141 "KN" => "ST KITTS AND NEVIS:659",
\r
142 "LC" => "ST LUCIA:662",
\r
143 "VC" => "ST VINCENT AND THE GRENADINES:670",
\r
144 "TT" => "TRINIDAD AND TOBAGO:780",
\r
145 "TC" => "TURKS AND CAICOS ISLANDS:796",
\r
146 "VG" => "VIRGIN ISLANDS BRITISH:092",
\r
147 "VI" => "VIRGIN ISLANDS USA:850",
\r
150 "BZ" => "BELIZE:084",
\r
151 "CR" => "COSTA RICA:188",
\r
152 "SV" => "EL SALVADOR:222",
\r
153 "GT" => "GUATEMALA:320",
\r
154 "HN" => "HONDURAS:340",
\r
155 "NI" => "NICARAGUA:558",
\r
156 "PA" => "PANAMA:591",
\r
159 "AL" => "ALBANIA:008",
\r
160 "AD" => "ANDORRA:020",
\r
161 "AM" => "ARMENIA:051",
\r
162 "AT" => "AUSTRIA:040",
\r
163 "AZ" => "AZERBAIJAN:031",
\r
164 "BY" => "BELARUS:112",
\r
165 "BE" => "BELGIUM:056",
\r
166 "BG" => "BULGARIA:100",
\r
167 "HR" => "CROATIA:191",
\r
168 "CY" => "CYPRUS:196",
\r
169 "CZ" => "CZECH REPUBLIC:203",
\r
170 "DK" => "DENMARK:208",
\r
171 "EE" => "ESTONIA:233",
\r
172 "FO" => "FAROE ISLANDS:234",
\r
173 "FI" => "FINLAND:246",
\r
174 "FR" => "FRANCE:250",
\r
175 "GE" => "GEORGIA:268",
\r
176 "DE" => "GERMANY:276",
\r
177 "GI" => "GIBRALTAR:292",
\r
178 "GR" => "GREECE:300",
\r
179 "GL" => "GREENLAND:304",
\r
180 "HU" => "HUNGARY:348",
\r
181 "IS" => "ICELAND:352",
\r
182 "IE" => "IRELAND:372",
\r
183 "IT" => "ITALY:380",
\r
184 "LV" => "LATVIA:428",
\r
185 "LI" => "LIECHTENSTEIN:438",
\r
186 "LT" => "LITHUANIA:440",
\r
187 "LU" => "LUXEMBOURG:442",
\r
188 "MT" => "MALTA:470",
\r
189 "FX" => "METROPOLITAN FRANCE:249",
\r
190 "MD" => "MOLDOVA:498",
\r
191 "NL" => "NETHERLANDS:528",
\r
192 "NO" => "NORWAY:578",
\r
193 "PL" => "POLAND:616",
\r
194 "PT" => "PORTUGAL:620",
\r
195 "RO" => "ROMANIA:642",
\r
196 "SK" => "SLOVAKIA:703",
\r
197 "SI" => "SLOVENIA:705",
\r
198 "ES" => "SPAIN:724",
\r
199 "SJ" => "SVALBARD AND JAN MAYEN ISLANDS:744",
\r
200 "SE" => "SWEDEN:752",
\r
201 "CH" => "SWITZERLAND:756",
\r
202 "MK" => "REPUBLIC OF MACEDONIA:807",
\r
203 "TR" => "TURKEY:792",
\r
204 "UA" => "UKRAINE:804",
\r
205 "GB" => "UNITED KINGDOM:826",
\r
206 "VA" => "VATICAN CITY:336",
\r
207 "YU" => "YUGOSLAVIA:891",
\r
210 "IL" => "ISRAEL:376",
\r
211 "JO" => "JORDAN:400",
\r
212 "KW" => "KUWAIT:414",
\r
213 "LB" => "LEBANON:422",
\r
214 "OM" => "OMAN:512",
\r
215 "QA" => "QATAR:634",
\r
216 "SA" => "SAUDI ARABIA:682",
\r
217 "SY" => "SYRIA:760",
\r
218 "AE" => "UNITED ARAB EMIRATES:784",
\r
219 "YE" => "YEMEN:887",
\r
222 "CA" => "CANADA:124",
\r
223 "MX" => "MEXICO:484",
\r
224 "US" => "UNITED STATES:840",
\r
227 "AR" => "ARGENTINA:032",
\r
228 "BO" => "BOLIVIA:068",
\r
229 "BR" => "BRAZIL:076",
\r
230 "CL" => "CHILE:152",
\r
231 "CO" => "COLOMBIA:170",
\r
232 "EC" => "EQUADOR:218",
\r
233 "FK" => "FALKLAND ISLANDS:238",
\r
234 "GF" => "FRENCH GUIANA:254",
\r
235 "GY" => "GUYANA:328",
\r
236 "PY" => "PARAGUAY:600",
\r
237 "PE" => "PERU:604",
\r
238 "SR" => "SURINAME:740",
\r
239 "UY" => "URUGUAY:858",
\r
240 "VE" => "VENEZUELA:862",
\r
243 "BH" => "BAHRAIN:048",
\r
244 "BV" => "BOUVET ISLANDS:074",
\r
245 "IO" => "BRITISH INDIAN OCEAN TERRITORY:086",
\r
246 "CX" => "CHRISTMAS ISLANDS:162",
\r
247 "CC" => "COCOS KEELING ISLANDS:166",
\r
248 "CK" => "COOK ISLAND:184",
\r
249 "TP" => "EAST TIMOR:626",
\r
250 "TF" => "FRENCH SOUTHERN TERRITORIES:260",
\r
251 "HM" => "HEARD AND MCDONALD ISLANDS:334",
\r
252 "MU" => "MAURITIUS:480",
\r
253 "MC" => "MONACO:492",
\r
254 "MS" => "MONTSERRAT:500",
\r
255 "MM" => "MYANMAR:104",
\r
256 "NU" => "NIUE:570",
\r
257 "NF" => "NORFOLK ISLAND:574",
\r
258 "WS" => "SAMOA:882",
\r
259 "SM" => "SAN MARINO:674",
\r
260 "PM" => "ST PIERRE AND MIQUELON:666",
\r
261 "TK" => "TOKELAU:772",
\r
262 "UM" => "UNITED STATES MINOR OUTLYING ISLANDS:581",
\r
263 "WF" => "WALLIS AND FUTUNA ISLANDS:876",
\r
265 "AO" => "ANGOLA:024",
\r
266 "BA" => "BOSNIA AND HERZEGOWINA:070",
\r
267 "CU" => "CUBA:192",
\r
268 "IR" => "ISLAMIC REPUBLIC OF IRAN:364",
\r
269 "IQ" => "IRAQ:368",
\r
270 "KP" => "DEMOCRATIC PEOPLES REPUBLIC OF KOREA:408",
\r
271 "LY" => "LIBYAN ARAB JAMAHIRIYA:434",
\r
272 "RW" => "RWANDA:646",
\r
273 "GS" => "SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS:39",
\r
274 "CD" => "DEMOCRATIC REPUBLIC OF THE CONGO:180",
\r
275 "PS" => "OCCUPIED PALESTINIAN TERRITORY:275"
\r
280 my $countryCode = shift; # give country code as an arguement to get country name
\r
281 if(exists $CountryCodes::countryHash{$countryCode}){
\r
284 ($countryName, $countryNumber) = split(/:/, $CountryCodes::countryHash{$countryCode});
\r
285 return $countryName;
\r
287 else { return undef }
\r
290 sub getNumericCountryCode {
\r
291 my $countryCode = shift; # give country code as an arguement to get numeric country code
\r
292 if(exists $CountryCodes::countryHash{$countryCode}) {
\r
295 ($countryName, $countryNumber) = split(/:/, $CountryCodes::countryHash{$countryCode});
\r
296 return $countryNumber;
\r
298 else {return undef}
\r
302 sub isValidCountryCode {
\r
303 my $countryCode = shift;
\r
304 return (exists $CountryCodes::countryHash{$countryCode});
\r
307 sub getCCodeFromCName {
\r
308 my $country = shift; # give country name as an arguement to get country code
\r
309 $country = uc($country);
\r
313 foreach $key (keys(%CountryCodes::countryHash)){
\r
314 ($countryName, $countryNumber) = split(/:/, $CountryCodes::countryHash{$key});
\r
315 if ($country eq $countryName) { return $key}
\r