From c4e12f2abe3a3d5ad19dc30b42cb520bdc4f95af Mon Sep 17 00:00:00 2001 From: Joeri de Bruin Date: Thu, 14 May 2009 03:39:21 +0000 Subject: [PATCH] PayPal driver missed its base class --- lib/WebGUI/Shop/PayDriver/PayPal.pm | 322 ++++++++++++++++++++++++++++ 1 file changed, 322 insertions(+) create mode 100644 lib/WebGUI/Shop/PayDriver/PayPal.pm diff --git a/lib/WebGUI/Shop/PayDriver/PayPal.pm b/lib/WebGUI/Shop/PayDriver/PayPal.pm new file mode 100644 index 000000000..1e0d8cbc4 --- /dev/null +++ b/lib/WebGUI/Shop/PayDriver/PayPal.pm @@ -0,0 +1,322 @@ +package WebGUI::Shop::PayDriver::PayPal; + +=head1 LEGAL + ------------------------------------------------------------------- + PayPal Standard payment driver for WebGUI. + Copyright (C) 2009 Invicta Services, LLC. + ------------------------------------------------------------------- + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + ------------------------------------------------------------------- +=cut + +## this holds some shared functionality, and MUST be overridden for a full payment driver +use strict; +use base qw/WebGUI::Shop::PayDriver/; +use warnings; + +sub getPayPalSandboxUrl { + return ('https://www.sandbox.paypal.com/cgi-bin/webscr'); +} + +sub getPayPalUrl { + return ('https://www.paypal.com/cgi-bin/webscr'); +} + +sub getPaymentCurrencies { + return { + "AUD" => "Australian Dollar", + "CAD" => "Canadian Dollar", + "CHF" => "Swiss Franc", + "CZK" => "Czech Koruna", + "DKK" => "Danish Krone", + "EUR" => "Euro", + "GBP" => "Pound Sterling", + "HKD" => "Hong Kong Dollar", + "HUF" => "Hungarian Forint", + "JPY" => "Japanese Yen", + "NOK" => "Norwegian Krone", + "NZD" => "New Zealand Dollar", + "PLN" => "Polish Zloty", + "SEK" => "Swedish Krona", + "SGD" => "Singapore Dollar", + "USD" => "U.S. Dollar" + }; +} + +sub getCardTypes { + return ( + 'Visa' => 'Visa', + 'MasterCard' => 'MasterCard', + 'Discover' => 'Discover', + 'Amex' => 'Amex' + ); +} + +sub getPaypalCountry { + my $self = shift; + my $longCountry = shift; + + my %paypalCountries; + %paypalCountries = ( + "AFGHANISTAN" => "AF", + "ÅLAND ISLANDS" => "AX", + "ALBANIA" => "AL", + "ALGERIA" => "DZ", + "AMERICAN SAMOA" => "AS", + "ANDORRA" => "AD", + "ANGOLA" => "AO", + "ANGUILLA" => "AI", + "ANTARCTICA" => "AQ", + "ANTIGUA AND BAR­BUDA" => "AG", + "ARGENTINA" => "AR", + "ARMENIA" => "AM", + "ARUBA" => "AW", + "AUSTRALIA" => "AU", + "AUSTRIA" => "AT", + "AZERBAIJAN" => "AZ", + "BAHAMAS" => "BS", + "BAHRAIN" => "BH", + "BANGLADESH" => "BD", + "BARBADOS" => "BB", + "BELARUS" => "BY", + "BELGIUM" => "BE", + "BELIZE" => "BZ", + "BENIN" => "BJ", + "BERMUDA" => "BM", + "BHUTAN" => "BT", + "BOLIVIA" => "BO", + "BOSNIA AND HERZE­GOVINA" => "BA", + "BOTSWANA" => "BW", + "BOUVET ISLAND" => "BV", + "BRAZIL" => "BR", + "BRITISH INDIAN OCEAN TERRITORY" => "IO", + "BRUNEI DARUSSALAM" => "BN", + "BULGARIA" => "BG", + "BURKINA FASO" => "BF", + "BURUNDI" => "BI", + "CAMBODIA" => "KH", + "CAMEROON" => "CM", + "CANADA" => "CA", + "CAPE VERDE" => "CV", + "CAYMAN ISLANDS" => "KY", + "CENTRAL AFRICAN REPUBLIC" => "CF", + "CHAD" => "TD", + "CHILE" => "CL", + "CHINA" => "CN", + "CHRISTMAS ISLAND" => "CX", + "COCOS (KEELING) ISLANDS" => "CC", + "COLOMBIA" => "CO", + "COMOROS" => "KM", + "CONGO" => "CG", + "CONGO, THE DEMO­CRATIC REPUBLIC OF THE" => "CD", + "COOK ISLANDS" => "CK", + "COSTA RICA" => "CR", + "COTE D'IVOIRE" => "CI", + "CROATIA" => "HR", + "CUBA" => "CU", + "CYPRUS" => "CY", + "CZECH REPUBLIC" => "CZ", + "DENMARK" => "DK", + "DJIBOUTI" => "DJ", + "DOMINICA" => "DM", + "DOMINICAN REPUBLIC" => "DO", + "ECUADOR" => "EC", + "EGYPT" => "EG", + "EL SALVADOR" => "SV", + "EQUATORIAL GUINEA" => "GQ", + "ERITREA" => "ER", + "ESTONIA" => "EE", + "ETHIOPIA" => "ET", + "FALKLAND ISLANDS (MALVINAS)" => "FK", + "FAROE ISLANDS" => "FO", + "FIJI" => "FJ", + "FINLAND" => "FI", + "FRANCE" => "FR", + "FRENCH GUIANA" => "GF", + "FRENCH POLYNESIA" => "PF", + "FRENCH SOUTHERN TERRITORIES" => "TF", + "GABON" => "GA", + "GAMBIA" => "GM", + "GEORGIA" => "GE", + "GERMANY" => "DE", + "GHANA" => "GH", + "GIBRALTAR" => "GI", + "GREECE" => "GR", + "GREENLAND" => "GL", + "GRENADA" => "GD", + "GUADELOUPE" => "GP", + "GUAM" => "GU", + "GUATEMALA" => "GT", + "GUERNSEY" => "GG", + "GUINEA" => "GN", + "GUINEA-BISSAU" => "GW", + "GUYANA" => "GY", + "HAITI" => "HT", + "HEARD ISLAND AND MCDONALD ISLANDS" => "HM", + "HOLY SEE (VATICAN CITY STATE)" => "VA", + "HONDURAS" => "HN", + "HONG KONG" => "HK", + "HUNGARY" => "HU", + "ICELAND" => "IS", + "INDIA" => "IN", + "INDONESIA" => "ID", + "IRAN, ISLAMIC REPUB­LIC OF" => "IR", + "IRAQ" => "IQ", + "IRELAND" => "IE", + "ISLE OF MAN" => "IM", + "ISRAEL" => "IL", + "ITALY" => "IT", + "JAMAICA" => "JM", + "JAPAN" => "JP", + "JERSEY" => "JE", + "JORDAN" => "JO", + "KAZAKHSTAN" => "KZ", + "KENYA" => "KE", + "KIRIBATI" => "KI", + "KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF" => "KP", + "KOREA, REPUBLIC OF" => "KR", + "KUWAIT" => "KW", + "KYRGYZSTAN" => "KG", + "LAO PEOPLE'S DEMO­CRATIC REPUBLIC" => "LA", + "LATVIA" => "LV", + "LEBANON" => "LB", + "LESOTHO" => "LS", + "LIBERIA" => "LR", + "LIBYAN ARAB JAMA­HIRIYA" => "LY", + "LIECHTENSTEIN" => "LI", + "LITHUANIA" => "LT", + "LUXEMBOURG" => "LU", + "MACAO" => "MO", + "MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF" => "MK", + "MADAGASCAR" => "MG", + "MALAWI" => "MW", + "MALAYSIA" => "MY", + "MALDIVES" => "MV", + "MALI" => "ML", + "MALTA" => "MT", + "MARSHALL ISLANDS" => "MH", + "MARTINIQUE" => "MQ", + "MAURITANIA" => "MR", + "MAURITIUS" => "MU", + "MAYOTTE" => "YT", + "MEXICO" => "MX", + "MICRONESIA, FEDER­ATED STATES OF" => "FM", + "MOLDOVA, REPUBLIC OF" => "MD", + "MONACO" => "MC", + "MONGOLIA" => "MN", + "MONTSERRAT" => "MS", + "MOROCCO" => "MA", + "MOZAMBIQUE" => "MZ", + "MYANMAR" => "MM", + "NAMIBIA" => "NA", + "NAURU" => "NR", + "NEPAL" => "NP", + "NETHERLANDS" => "NL", + "NETHERLANDS ANTI­LLES" => "AN", + "NEW CALEDONIA" => "NC", + "NEW ZEALAND" => "NZ", + "NICARAGUA" => "NI", + "NIGER" => "NE", + "NIGERIA" => "NG", + "NIUE" => "NU", + "NORFOLK ISLAND" => "NF", + "NORTHERN MARIANA ISLANDS" => "MP", + "NORWAY" => "NO", + "OMAN" => "OM", + "PAKISTAN" => "PK", + "PALAU" => "PW", + "PALESTINIAN TERRI­TORY, OCCUPIED" => "PS", + "PANAMA" => "PA", + "PAPUA NEW GUINEA" => "PG", + "PARAGUAY" => "PY", + "PERU" => "PE", + "PHILIPPINES" => "PH", + "PITCAIRN" => "PN", + "POLAND" => "PL", + "PORTUGAL" => "PT", + "PUERTO RICO" => "PR", + "QATAR" => "QA", + "REUNION" => "RE", + "ROMANIA" => "RO", + "RUSSIAN FEDERATION" => "RU", + "RWANDA" => "RW", + "SAINT HELENA" => "SH", + "SAINT KITTS AND NEVIS" => "KN", + "SAINT LUCIA" => "LC", + "SAINT PIERRE AND MIQUELON" => "PM", + "SAINT VINCENT AND THE GRENADINES" => "VC", + "SAMOA" => "WS", + "SAN MARINO" => "SM", + "SAO TOME AND PRINC­IPE" => "ST", + "SAUDI ARABIA" => "SA", + "SENEGAL" => "SN", + "SERBIA AND MON­TENEGRO" => "CS", + "SEYCHELLES" => "SC", + "SIERRA LEONE" => "SL", + "SINGAPORE" => "SG", + "SLOVAKIA" => "SK", + "SLOVENIA" => "SI", + "SOLOMON ISLANDS" => "SB", + "SOMALIA" => "SO", + "SOUTH AFRICA" => "ZA", + "SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS" => "GS", + "SPAIN" => "ES", + "SRI LANKA" => "LK", + "SUDAN" => "SD", + "SURINAME" => "SR", + "SVALBARD AND JAN MAYEN" => "SJ", + "SWAZILAND" => "SZ", + "SWEDEN" => "SE", + "SWITZERLAND" => "CH", + "SYRIAN ARAB REPUB­LIC" => "SY", + "TAIWAN, PROVINCE OF CHINA" => "TW", + "TAJIKISTAN" => "TJ", + "TANZANIA, UNITED REPUBLIC OF" => "TZ", + "THAILAND" => "TH", + "TIMOR-LESTE" => "TL", + "TOGO" => "TG", + "TOKELAU" => "TK", + "TONGA" => "TO", + "TRINIDAD AND TOBAGO" => "TT", + "TUNISIA" => "TN", + "TURKEY" => "TR", + "TURKMENISTAN" => "TM", + "TURKS AND CAICOS ISLANDS" => "TC", + "TUVALU" => "TV", + "UGANDA" => "UG", + "UKRAINE" => "UA", + "UNITED ARAB EMIR­ATES" => "AE", + "UNITED KINGDOM" => "GB", + "UNITED STATES" => "US", + "UNITED STATES MINOR OUTLYING ISLANDS" => "UM", + "URUGUAY" => "UY", + "UZBEKISTAN" => "UZ", + "VANUATU" => "VU", + "VENEZUELA" => "VE", + "VIET NAM" => "VN", + "VIRGIN ISLANDS, BRIT­ISH" => "VG", + "VIRGIN ISLANDS, U.S." => "VI", + "WALLIS AND FUTUNA" => "WF", + "WESTERN SAHARA" => "EH", + "YEMEN" => "YE", + "ZAMBIA" => "ZM", + "ZIMBABWE" => "ZW" + ); + + my $retcode = $paypalCountries{ uc $longCountry }; + return $retcode; +} + +1;