Awight has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/200094

Change subject: WIP Kill pre-PCI credit card cruft?
......................................................................

WIP Kill pre-PCI credit card cruft?

Change-Id: I98c8d4054ba88eaee7f6f5c1a074c3a739bb1062
---
M DonationInterface.php
M adyen_gateway/forms/html/adyen.html
M gateway_common/DataValidator.php
M gateway_common/DonationData.php
M gateway_common/donation.api.php
M gateway_common/gateway.adapter.php
M gateway_common/i18n/interface/en.json
M gateway_common/i18n/interface/qqq.json
M gateway_forms/RapidHtml.php
A globalcollect_gateway/forms/html/boletos/boletos.html
M globalcollect_gateway/forms/html/bt/bt.html
M globalcollect_gateway/forms/html/cc/cc-a.html
M globalcollect_gateway/forms/html/cc/cc-vm.html
M globalcollect_gateway/forms/html/cc/cc-vma.html
M globalcollect_gateway/forms/html/cc/cc-vmad.html
M globalcollect_gateway/forms/html/cc/cc-vmaj.html
M globalcollect_gateway/forms/html/cc/cc-vmd.html
M globalcollect_gateway/forms/html/cc/cc-vmj.html
M globalcollect_gateway/forms/html/cc/cc.html
A globalcollect_gateway/forms/html/dd/dd-DE.html
A globalcollect_gateway/forms/html/dd/dd-IT.html
A globalcollect_gateway/forms/html/dd/dd-NL.html
M globalcollect_gateway/forms/html/ew/ew-alipay.html
M globalcollect_gateway/forms/html/ew/ew-webmoney.html
M globalcollect_gateway/forms/html/ew/ew-yandex.html
M globalcollect_gateway/forms/html/obt/obt-bpay.html
M globalcollect_gateway/forms/html/rcc/rcc-vm.html
M globalcollect_gateway/forms/html/rcc/rcc-vma.html
M globalcollect_gateway/forms/html/rcc/rcc-vmad.html
M globalcollect_gateway/forms/html/rcc/rcc-vmaj.html
M globalcollect_gateway/forms/html/rcc/rcc-vmd.html
M globalcollect_gateway/forms/html/rcc/rcc-vmj.html
M globalcollect_gateway/forms/html/rcc/rcc.html
M globalcollect_gateway/forms/html/rtbt/rtbt-enets.html
M globalcollect_gateway/forms/html/rtbt/rtbt-eps.html
M globalcollect_gateway/forms/html/rtbt/rtbt-ideal-noadd.html
M globalcollect_gateway/forms/html/rtbt/rtbt-ideal.html
M globalcollect_gateway/forms/html/rtbt/rtbt-sofo-GB.html
M globalcollect_gateway/forms/html/rtbt/rtbt-sofo.html
M globalcollect_gateway/forms/html/webitects2nd-AU.html
M globalcollect_gateway/forms/html/webitects2nd-US.html
M globalcollect_gateway/forms/html/webitects2nd-amex.html
M globalcollect_gateway/forms/html/webitects2nd.html
M globalcollect_gateway/forms/html/webitects2nd_green-US.html
M globalcollect_gateway/forms/html/webitects_2_3step-CA.html
M globalcollect_gateway/forms/html/webitects_2_3step.html
M globalcollect_gateway/forms/html/webitects_2_3stepB-US.html
M globalcollect_gateway/forms/js/gc.js
M globalcollect_gateway/forms/js/webitects.js
M globalcollect_gateway/globalcollect.adapter.php
M tests/Adapter/GlobalCollect/GlobalCollectTest.php
M tests/DonationDataTest.php
M worldpay_gateway/forms/html/worldpay-dd-test.html
M worldpay_gateway/forms/html/worldpay-test.html
M worldpay_gateway/forms/html/worldpay.html
55 files changed, 606 insertions(+), 205 deletions(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/DonationInterface 
refs/changes/94/200094/1

diff --git a/DonationInterface.php b/DonationInterface.php
index d0d2e64..aba5349 100644
--- a/DonationInterface.php
+++ b/DonationInterface.php
@@ -936,10 +936,6 @@
                'donate_interface-error-msg-zip',
                'donate_interface-error-msg-postal',
                'donate_interface-error-msg-country',
-               'donate_interface-error-msg-card_type',
-               'donate_interface-error-msg-card_num',
-               'donate_interface-error-msg-expiration',
-               'donate_interface-error-msg-cvv',
                'donate_interface-error-msg-fiscal_number',
                'donate_interface-error-msg-captcha',
                'donate_interface-error-msg-captcha-please',
diff --git a/adyen_gateway/forms/html/adyen.html 
b/adyen_gateway/forms/html/adyen.html
index e83d213..f35daf2 100644
--- a/adyen_gateway/forms/html/adyen.html
+++ b/adyen_gateway/forms/html/adyen.html
@@ -3,7 +3,6 @@
        // these must go through RapidHTML and thus are inline
        var amountErrors = 
['#general|escape','#retryMsg|escape','#amount|escape'];
        var billingErrors = 
['#fname|escape','#lname|escape','#city|escape','#country|escape','#street|escape','#state|escape','#zip|escape','#emailAdd|escape'];
-       var paymentErrors = 
['#card_num|escape','#card_type|escape','#cvv|escape'];
        var actionURL = "@action";
        var scriptPath = "@script_path";
 </script>
diff --git a/gateway_common/DataValidator.php b/gateway_common/DataValidator.php
index d70b51c..111b3ae 100644
--- a/gateway_common/DataValidator.php
+++ b/gateway_common/DataValidator.php
@@ -32,9 +32,6 @@
                                break;
                        case 'amount' :
                        case 'currency_code' :
-                       case 'card_num':
-                       case 'card_type':
-                       case 'cvv':
                        case 'fname':
                        case 'lname':
                        case 'city':
@@ -63,9 +60,6 @@
                        'general' => '',
                        'retryMsg' => '',
                        'amount' => '',
-                       'card_num' => '',
-                       'card_type' => '',
-                       'cvv' => '',
                        'fname' => '',
                        'lname' => '',
                        'city' => '',
@@ -132,12 +126,6 @@
                        switch ($token){
                                case 'amount': 
                                        $suffix = 'invalid-amount';
-                                       break;
-                               case 'card_num': //god damn it.
-                                       $suffix = 'card_num'; //more 
defaultness.
-                                       if (!is_null($value)){
-                                               $suffix = 
self::getCardType($value);
-                                       }
                                        break;
                        }
                        
@@ -458,46 +446,6 @@
        }
        
        /**
-        * validate_card_type
-        * Determines if the $value passed in is (possibly) a valid credit card 
type.
-        * @param string $value The piece of data that is supposed to be a 
credit card type.
-        * @param string $card_number The card number associated with this card 
type. Optional.
-        * @return boolean True if $value is a reasonable credit card type, 
otherwise false.  
-        */
-       protected static function validate_card_type( $value, $card_number = '' 
) {
-               //@TODO: Find a better way to stop making assumptions about 
what payment
-               //type we're trying to be, in the data validadtor.
-               if ( $card_number != '' ){
-                       if ( !array_key_exists( $value, self::$card_types ) ){
-                               return false;
-                       }
-                       $calculated_card_type = self::getCardType( $card_number 
);
-                       if ( $calculated_card_type != $value ){
-                               return false;
-                       }
-               }
-               
-               return true;
-       }
-       
-       
-       /**
-        * validate_credit_card
-        * Determines if the $value passed in is (possibly) a valid credit card 
number.
-        * @param string $value The piece of data that is supposed to be a 
credit card number.
-        * @return boolean True if $value is a reasonable credit card number, 
otherwise false.  
-        */
-       protected static function validate_credit_card( $value ) {
-               $calculated_card_type = self::getCardType( $value );
-               if ( !$calculated_card_type ){
-                       return false;
-               }
-               
-               return true;
-       }
-       
-       
-       /**
         * validate_boolean
         * Determines if the $value passed in is a valid boolean. 
         * @param string $value The piece of data that is supposed to be a 
boolean.
@@ -765,6 +713,7 @@
         * Calculates and returns the card type for a given credit card number. 
         * @param numeric $card_num A credit card number.
         * @return string|bool 'amex', 'mc', 'visa', 'discover', or false. 
+        // TODO: Unintentional cc#s are not in PCI scope, so this can finally 
go away.
         */
        public static function getCardType( $card_num ) {
                // validate that credit card number entered is correct and set 
the card type
diff --git a/gateway_common/DonationData.php b/gateway_common/DonationData.php
index c200e26..bc47cc5 100644
--- a/gateway_common/DonationData.php
+++ b/gateway_common/DonationData.php
@@ -82,10 +82,6 @@
                                'state',
                                'zip',
                                'country',
-                               'card_num',
-                               'card_type',
-                               'expiration',
-                               'cvv',
                                'currency',
                                'currency_code',
                                'payment_method',
@@ -362,20 +358,6 @@
                }
                
                
-       }
-       
-       /**
-        * munge the legacy card_type field into payment_submethod
-        */
-       protected function renameCardType()
-       {
-               if ($this->getVal('payment_method') == 'cc')
-               {
-                       if ($this->isSomething('card_type'))
-                       {
-                               $this->setVal('payment_submethod', 
$this->getVal('card_type'));
-                       }
-               }
        }
        
        /**
@@ -689,15 +671,6 @@
 
                $this->setVal( 'email', $email );
                $this->expunge( 'emailAdd' );
-       }
-
-       /**
-        * Normalize card number by removing spaces if we have to.
-        */
-       protected function setCardNum() {
-               if ( $this->isSomething( 'card_num' ) ) {
-                       $this->setVal( 'card_num', str_replace( ' ', '', 
$this->getVal( 'card_num' ) ) );
-               }
        }
 
        /**
diff --git a/gateway_common/donation.api.php b/gateway_common/donation.api.php
index 3ec757a..8f5fa3d 100644
--- a/gateway_common/donation.api.php
+++ b/gateway_common/donation.api.php
@@ -102,10 +102,6 @@
                        'zip' => $this->defineParam( false ),
                        'emailAdd' => $this->defineParam( false ),
                        'country' => $this->defineParam( false ),
-                       'card_num' => $this->defineParam( false  ),
-                       'card_type' => $this->defineParam( false  ),
-                       'expiration' => $this->defineParam( false  ),
-                       'cvv' => $this->defineParam( false  ),
                        'payment_method' => $this->defineParam( false  ),
                        'payment_submethod' => $this->defineParam( false  ),
                        'language' => $this->defineParam( false  ),
@@ -145,10 +141,6 @@
                        'zip' => 'Postal code',
                        'emailAdd' => 'Email address',
                        'country' => 'Country code',
-                       'card_num' => 'Credit card number',
-                       'card_type' => 'Credit card type',
-                       'expiration' => 'Expiration date',
-                       'cvv' => 'CVV security code',
                        'payment_method' => 'Payment method to use',
                        'payment_submethod' => 'Payment submethod to use',
                        'language' => 'Language code',
diff --git a/gateway_common/gateway.adapter.php 
b/gateway_common/gateway.adapter.php
index 5ab6582..0e0724d 100644
--- a/gateway_common/gateway.adapter.php
+++ b/gateway_common/gateway.adapter.php
@@ -2704,14 +2704,6 @@
                                        case 'amount' :
                                                $check_not_empty = array( 
'amount' );
                                                break;
-                                       case 'creditCard' :
-                                               $check_not_empty = array(
-                                                       'card_num',
-                                                       'cvv',
-                                                       'expiration',
-                                                       'card_type'
-                                               );
-                                               break;
                                        case 'email' :
                                                $check_not_empty = array( 
'email' );
                                                break;
diff --git a/gateway_common/i18n/interface/en.json 
b/gateway_common/i18n/interface/en.json
index 97bd7ea..bb8bcb1 100644
--- a/gateway_common/i18n/interface/en.json
+++ b/gateway_common/i18n/interface/en.json
@@ -184,10 +184,6 @@
        "donate_interface-error-msg-zip": "zip code",
        "donate_interface-error-msg-postal": "postal code",
        "donate_interface-error-msg-country": "country",
-       "donate_interface-error-msg-card_type": "credit card type",
-       "donate_interface-error-msg-card_num": "credit card number",
-       "donate_interface-error-msg-expiration": "Please enter the card's 
expiration date",
-       "donate_interface-error-msg-cvv": "Please enter the CVV code, usually 
shown on the back of the card",
        "donate_interface-error-msg-account_name": "Account name",
        "donate_interface-error-msg-account_number": "Account number",
        "donate_interface-error-msg-authorization_id": "Authorization ID",
@@ -407,10 +403,6 @@
        "apihelp-donate-param-zip": "Postal code.",
        "apihelp-donate-param-emailAdd": "Email address.",
        "apihelp-donate-param-country": "Country code.",
-       "apihelp-donate-param-card_num": "Credit card number.",
-       "apihelp-donate-param-card_type": "Credit card type.",
-       "apihelp-donate-param-expiration": "Expiration date.",
-       "apihelp-donate-param-cvv": "CVV security code.",
        "apihelp-donate-param-payment_method": "Payment method to use.",
        "apihelp-donate-param-payment_submethod": "Payment submethod to use.",
        "apihelp-donate-param-language": "Language code.",
diff --git a/gateway_common/i18n/interface/qqq.json 
b/gateway_common/i18n/interface/qqq.json
index 8a8ebf0..fa037d3 100644
--- a/gateway_common/i18n/interface/qqq.json
+++ b/gateway_common/i18n/interface/qqq.json
@@ -187,7 +187,7 @@
        "donate_interface-card-name-discover": "Used as item in the \"Credit 
card type\" select box.\n\nTrademark name of credit card Discover®, '''not''' 
the verb \"to discover\".\n{{Related|Donate 
interface-card}}\n{{Identical|Discover}}",
        "donate_interface-error-msg-general": "A generic error message.",
        "donate_interface-error-msg-nopaypal": "Error message.",
-       "donate_interface-error-msg": "{{doc-important|If grammatical issues in 
your language prevent you from translating this literally, translate the 
following: \"The following field is required: $1\".}}\nParameters:\n* $1 - any 
one of a number of messages which are the names of fields, as follows:\n** 
{{msg-mw|Donate interface-error-msg-amount}}\n** {{msg-mw|Donate 
interface-error-msg-emailAdd}}\n** {{msg-mw|Donate 
interface-error-msg-fname}}\n** {{msg-mw|Donate interface-error-msg-lname}}\n** 
{{msg-mw|Donate interface-error-msg-street}}\n** {{msg-mw|Donate 
interface-error-msg-city}}\n** {{msg-mw|Donate interface-error-msg-state}}\n** 
{{msg-mw|Donate interface-error-msg-zip}}\n** {{msg-mw|Donate 
interface-error-msg-card_num}}\n** {{msg-mw|Donate 
interface-error-msg-expiration}}\n** {{msg-mw|Donate 
interface-error-msg-cvv}}\nAn alternative to \"field\" in the translation could 
be \"information\". If the translation of \"your\" is not the same for all 
possible fields then you could choose to omit \"your\" from this message and 
include it instead in each of the field translations above.",
+       "donate_interface-error-msg": "{{doc-important|If grammatical issues in 
your language prevent you from translating this literally, translate the 
following: \"The following field is required: $1\".}}\nParameters:\n* $1 - any 
one of a number of messages which are the names of fields, as follows:\n** 
{{msg-mw|Donate interface-error-msg-amount}}\n** {{msg-mw|Donate 
interface-error-msg-emailAdd}}\n** {{msg-mw|Donate 
interface-error-msg-fname}}\n** {{msg-mw|Donate interface-error-msg-lname}}\n** 
{{msg-mw|Donate interface-error-msg-street}}\n** {{msg-mw|Donate 
interface-error-msg-city}}\n** {{msg-mw|Donate interface-error-msg-state}}\n** 
{{msg-mw|Donate interface-error-msg-zip}}\nAn alternative to \"field\" in the 
translation could be \"information\". If the translation of \"your\" is not the 
same for all possible fields then you could choose to omit \"your\" from this 
message and include it instead in each of the field translations above.",
        "donate_interface-error-msg-field-correction": "If it is hard to 
translate without having GENDER on <code>$1</code>, translate \"Please correct 
the errors in the field '$1'\".\n\nParameters:\n* $1 - any one of the following 
messages:\n** {{msg-mw|Donate interface-error-msg-amount}}\n** {{msg-mw|Donate 
interface-error-msg-emailAdd}}\n** {{msg-mw|Donate 
interface-error-msg-fname}}\n** {{msg-mw|Donate interface-error-msg-lname}}\n** 
{{msg-mw|Donate interface-error-msg-street}}\n** {{msg-mw|Donate 
interface-error-msg-city}}\n** {{msg-mw|Donate interface-error-msg-state}}\n** 
{{msg-mw|Donate interface-error-msg-zip}}\n** {{msg-mw|Donate 
interface-error-msg-postal}}\n** {{msg-mw|Donate 
interface-error-msg-country}}\n** {{msg-mw|Donate interface-error-msg-card 
type}}\n** {{msg-mw|Donate interface-error-msg-card num}}\n** {{msg-mw|Donate 
interface-error-msg-expiration}}\n** {{msg-mw|Donate 
interface-error-msg-cvv}}\n** {{msg-mw|Donate interface-error-msg-account 
name}}\n** {{msg-mw|Donate interface-error-msg-account number}}\n** 
{{msg-mw|Donate interface-error-msg-authorization id}}\n** {{msg-mw|Donate 
interface-error-msg-bank check digit}}\n** {{msg-mw|Donate 
interface-error-msg-bank code}}\n** {{msg-mw|Donate interface-error-msg-branch 
code}}",
        "donate_interface-error-msg-js": "{{doc-important|If grammatical issues 
in your language prevent you from translating this literally, translate the 
following: \"The following field is required:}}\n\nThis message comes before 
any one of a number of messages which are the names of fields, as follows:\n* 
{{msg-mw|Donate interface-error-msg-amount}}\n* {{msg-mw|Donate 
interface-error-msg-emailAdd}}\n* {{msg-mw|Donate 
interface-error-msg-fname}}\n* {{msg-mw|Donate interface-error-msg-lname}}\n* 
{{msg-mw|Donate interface-error-msg-street}}\n* {{msg-mw|Donate 
interface-error-msg-city}}\n* {{msg-mw|Donate interface-error-msg-state}}\n* 
{{msg-mw|Donate interface-error-msg-zip}}\n* {{msg-mw|Donate 
interface-error-msg-country}}\n* {{msg-mw|Donate interface-error-msg-card 
num}}\n* {{msg-mw|Donate interface-error-msg-expiration}}\n* {{msg-mw|Donate 
interface-error-msg-cvv}}\n* {{msg-mw|Donate interface-state-province}}\n* 
{{msg-mw|Donate interface-error-msg-issuer id}} - used, but undefined\n* 
{{msg-mw|Donate interface-error-msg-payment method}} - used, but undefined\n* 
{{msg-mw|Donate interface-error-msg-payment submethod}} - used, but 
undefined\n* \" first name.\" (hard-coded, untranslatable)\n* \" last name.\" 
(hard-coded, untranslatable)\n\nAn alternative to 'field' in the translation 
could be 'information'.\n\nThis is an error message which appears if one or 
more of the above fields is left empty.",
        "donate_interface-error-msg-validation": "Generic error message for 
form validation failure",
@@ -208,10 +208,6 @@
        "donate_interface-error-msg-zip": "Used in error message regarding the 
zip code field.\n{{Related|Donate interface-err-msg}}",
        "donate_interface-error-msg-postal": "Used in error message regarding 
the postal code field.\n{{Related|Donate 
interface-err-msg}}\n{{Identical|Postal code}}",
        "donate_interface-error-msg-country": "{{Related|Donate 
interface-err-msg}}\n{{Identical|Country}}",
-       "donate_interface-error-msg-card_type": "{{Related|Donate 
interface-err-msg}}",
-       "donate_interface-error-msg-card_num": "Used in error message regarding 
the credit card number field.\n{{Related|Donate interface-err-msg}}",
-       "donate_interface-error-msg-expiration": "Used in error message 
regarding the card expiration date field.\n{{Related|Donate 
interface-err-msg}}",
-       "donate_interface-error-msg-cvv": "Used in error message regarding the 
card security code field.\n{{Related|Donate interface-err-msg}}",
        "donate_interface-error-msg-account_name": "Used in error message 
regarding the account name.\n{{Related|Donate 
interface-err-msg}}\n{{Identical|Account name}}",
        "donate_interface-error-msg-account_number": "Used in error message 
regarding the account number.\n{{Related|Donate 
interface-err-msg}}\n{{Identical|Account number}}",
        "donate_interface-error-msg-authorization_id": "Used in error message 
regarding the authorization ID.\n{{Related|Donate 
interface-err-msg}}\n{{Identical|Authorization ID}}",
@@ -431,10 +427,6 @@
        "apihelp-donate-param-zip": 
"{{doc-apihelp-param|donate|zip}}\n{{Identical|Postal code}}",
        "apihelp-donate-param-emailAdd": 
"{{doc-apihelp-param|donate|emailAdd}}\n{{Identical|E-mail address}}",
        "apihelp-donate-param-country": "{{doc-apihelp-param|donate|country}}",
-       "apihelp-donate-param-card_num": 
"{{doc-apihelp-param|donate|card_num}}",
-       "apihelp-donate-param-card_type": 
"{{doc-apihelp-param|donate|card_type}}",
-       "apihelp-donate-param-expiration": 
"{{doc-apihelp-param|donate|expiration}}",
-       "apihelp-donate-param-cvv": "{{doc-apihelp-param|donate|cvv}}",
        "apihelp-donate-param-payment_method": 
"{{doc-apihelp-param|donate|payment_method}}",
        "apihelp-donate-param-payment_submethod": 
"{{doc-apihelp-param|donate|payment_submethod}}",
        "apihelp-donate-param-language": 
"{{doc-apihelp-param|donate|language}}\n{{Identical|Language code}}",
diff --git a/gateway_forms/RapidHtml.php b/gateway_forms/RapidHtml.php
index fe8f013..57cae10 100644
--- a/gateway_forms/RapidHtml.php
+++ b/gateway_forms/RapidHtml.php
@@ -42,10 +42,6 @@
                '@state', // => $wgRequest->getText( 'state' ),
                '@zip', // => $wgRequest->getText( 'zip' ),
                '@country', // => $wgRequest->getText( 'country' ),
-               '@card_num', // => str_replace( ' ', '', $wgRequest->getText( 
'card_num' ) ),
-               '@card_type', // => $wgRequest->getText( 'card_type' ),
-               '@expiration', // => $wgRequest->getText( 'mos' ) . substr( 
$wgRequest->getText( 'year' ), 2, 2 ),
-               '@cvv', // => $wgRequest->getText( 'cvv' ),
                '@currency_code', //'currency_code' => $wgRequest->getText( 
'currency_code' ),
                '@payment_method', // => $wgRequest->getText( 'payment_method' 
),
                '@order_id', // => $order_id,
@@ -97,9 +93,6 @@
                '#general',
                '#retryMsg',
                '#amount',
-               '#card_num',
-               '#card_type',
-               '#cvv',
                '#fname',
                '#lname',
                '#city',
diff --git a/globalcollect_gateway/forms/html/boletos/boletos.html 
b/globalcollect_gateway/forms/html/boletos/boletos.html
new file mode 100644
index 0000000..bad4817
--- /dev/null
+++ b/globalcollect_gateway/forms/html/boletos/boletos.html
@@ -0,0 +1,131 @@
+<script type="text/javascript">
+       mw.loader.load('gc.form.rapidhtml.webitects.boletos');
+       // these must go through RapidHTML and thus are inline
+       var amountErrors = 
["#general|escape",'#retryMsg|escape','#amount|escape'];
+       var billingErrors = 
['#fname|escape','#lname|escape','#city|escape','#country|escape','#street|escape','#state|escape','#zip|escape','#emailAdd|escape'];
+       var actionURL = "@action";
+       var scriptPath = "@script_path";
+</script>
+<!--[if lt IE 7]>
+<script type="text/javascript">
+       mw.loader.load('gc.form.rapidhtml.webitects.ie6');
+</script>
+<style type="text/css">
+       body{
+               behavior: url("@script_path/skins/vector/csshover.min.htc");
+       }
+</style><![endif]-->
+<!--[if IE 7]>
+<style>
+       .gainlayout {
+               zoom: 1;
+               height: 1%;
+       }
+</style>
+<![endif]-->
+
+<div class="ltr">
+       <table id="layouttable">
+               <tr>
+                       <td>
+                               <div id="appeal">
+                                       <div id="appeal-content">
+                                               <h2 id="appeal-head"> <span 
class="mw-headline">{{LanguageSwitch|2011FR/@appeal/title|@language}}</span></h2>
+                                               <div id="appeal-body" 
class="plainlinks">{{LanguageSwitch|2011FR/@appeal/text|@language}}</div>
+                                       </div>
+                               </div>
+                       </td>
+                       <td>
+                               <div id="donate">
+                                       <div id="donate-content">
+                                               <div id="donate-body" 
style="padding: 0 1em;">
+                                                       <form method="post" 
name="paypalcontribution">
+                                                               <div 
id="step1header"><h3>%donate_interface-amount-legend% <span 
id="selected-amount">@amount @currency_code</span></h3></div>
+                                                               <div 
id="amtErrorMessages" class="small"></div>
+                                                               <div 
id="step2header"><h3>%donate_interface-billing-address% <span class="mute" 
id="change-billing" style="display: none;">(<a 
href="#">%donate_interface-change%</a>)</span></h3></div>
+                                                               <div 
id="step2wrapper">
+                                                                       <div 
id="billing-content" class="gainlayout">
+                                                                               
<div id="billingErrorMessages" class="small"></div>
+                                                                               
<div id="paymentErrorMessages" class="small"></div>
+                                                                               
<div class="name-fields">
+                                                                               
        <span class="name-first"><input class="txt" id="fname" name="fname" 
title="%donate_interface-donor-fname%" value="@fname" 
placeholder="%donate_interface-donor-fname%"/></span>
+                                                                               
        <span class="name-last"><input class="txt" id="lname" name="lname" 
title="%donate_interface-donor-lname%" value="@lname" 
placeholder="%donate_interface-donor-lname%"/></span>
+                                                                               
</div>
+                                                                               
<div class="loc-fields nostate">
+                                                                               
        <span class="loc-street"><input class="txt" id="street" name="street" 
title="%donate_interface-donor-street%" value="@street" 
placeholder="%donate_interface-donor-street%"/></span>
+                                                                               
        <span class="loc-city"><input class="txt" id="city" name="city" 
title="%donate_interface-donor-city%" value="@city" 
placeholder="%donate_interface-donor-city%"/></span>
+                                                                               
        <span class="loc-postal"><input class="txt" id="zip" name="zip" 
title="%donate_interface-donor-postal%" value="@zip" 
placeholder="%donate_interface-donor-postal%"/></span>
+                                                                               
        <span class="loc-country">
+                                                                               
                <select class="txt" id="country" name="country" 
value="@country" placeholder="%donate_interface-country%">
+                                                                               
                        <option 
value="">%donate_interface-select-country%</option>
+                                                                               
                        <option 
value="BR">%donate_interface-country-dropdown-BR%</option>
+                                                                               
                </select>
+                                                                               
        </span>
+                                                                               
</div>
+                                                                               
<p><input class="txt" title="%donate_interface-donor-email%" id="emailAdd" 
name="emailAdd" value="@emailAdd" 
placeholder="%donate_interface-donor-email%"/></p>
+                                                                               
<div id="bt-continue" style="margin-top: 10px;"> <input class="btn" 
id="bt-continueBtn" type="submit" value="%donate_interface-continue%" /></div>
+                                                                       </div>
+                                                               </div>
+
+                                                               
+
+                                                               <input 
type="hidden" name="returnto" value="Thank_You/en" />
+                                                               <input 
type="hidden" value="0" name="PaypalRedirect" id="PaypalRedirect">
+
+                                                               <input 
type="hidden" value="@amount" name="amount" />
+                                                               <!--<input 
type="hidden" value="@country" name="country" id="country" />-->
+                                                               <input 
type="hidden" value="@currency_code" name="currency_code" />
+                                                               <input 
type="hidden" value="@utm_source" name="utm_source"/>
+                                                               <input 
type="hidden" value="@utm_medium" name="utm_medium"/>
+                                                               <input 
type="hidden" value="@utm_campaign" name="utm_campaign"/>
+                                                               <input 
type="hidden" value="@language" name="language"/>
+                                                               <input 
type="hidden" value="@referrer" name="referrer"/>
+                                                               <input 
type="hidden" value="@comment" name="comment"/>
+                                                               <input 
type="hidden" value="@comment-option" name="comment-option"/>
+                                                               <input 
type="hidden" value="1" name="email-opt"/>
+                                                               <input 
type="hidden" value="@token" name="token"/>
+                                                               <input 
type="hidden" value="@order_id"  name="order_id"/>
+                                                               <input 
type="hidden" value="@numAttempt" name="numAttempt"/>
+                                                               <input 
type="hidden" value="@contribution_tracking_id" 
name="contribution_tracking_id"/>
+                                                               <input 
type="hidden" value="@data_hash" name="data_hash"/>
+                                                               <input 
type="hidden" value="@owa_session" name="owa_session"/>
+                                                               <input 
type="hidden" value="@owa_ref" name="owa_ref"/>
+                                                               <!-- new 
required fields -->
+                                                               <input 
type="hidden" value="@gateway" name="gateway"/>
+                                                               <!-- required 
fields for bt and dd -->
+                                                               <input 
type="hidden" value="cash" name="payment_method"/>
+                                                               <input 
type="hidden" value="cash_boleto" name="payment_submethod"/>
+                                                               <!-- required 
fields omitted above -->
+                                                               <input 
type="hidden" value="XX" name="state"/>
+                                                       </form>
+                                                       <div id="where-content">
+                                                               
{{LanguageSwitch|2011FR/core-appeal-whitebox-nodiv|@language}}
+                                                       </div>
+                                               </div>
+                                       </div>
+                                       <p 
id="informationsharing">%donate_interface-informationsharing|url%</p>
+                                       <table>
+                                               <tr>
+                                                       <td>
+                                                               <ul 
id="moreinfolinks">
+                                                                       <li><a 
href="https://wikimediafoundation.org/wiki/Special:LandingCheck?basic=true&landing_page=Monthly_donations&language=@language&uselang=@language&country=@country";>%donate_interface-monthly-donation%</a></li>
+                                                                       <li><a 
href="https://wikimediafoundation.org/wiki/Special:LandingCheck?basic=true&landing_page=Ways_to_Give&language=@language&uselang=@language&country=@country";>%donate_interface-otherways-short%</a></li>
+                                                                       <li><a 
href="https://wikimediafoundation.org/wiki/Special:LandingCheck?basic=true&landing_page=FAQ&language=@language&uselang=@language&country=@country";>%donate_interface-faqs%</a></li>
+                                                                       <li><a 
href="https://wikimediafoundation.org/wiki/Special:LandingCheck?basic=true&landing_page=Tax_Deductibility&language=@language&uselang=@language&country=@country";>%donate_interface-tax-info%</a></li>
+                                                               </ul>
+                                                       </td>
+                                                       <td>@verisign_logo</td>
+                                               </tr>
+                                       </table>
+                               </div>
+                       </td>
+               </tr>
+       </table>
+
+
+
+</div>
+
+<!-- Wikimedia Project logo
+<li id="footer-copyrightico"><a href="//wikimediafoundation.org/"><img 
src="//bits.wikimedia.org/images/wikimedia-button.png" width="88" height="31" 
alt="Wikimedia Foundation"/></a></li> 
+ -->
diff --git a/globalcollect_gateway/forms/html/bt/bt.html 
b/globalcollect_gateway/forms/html/bt/bt.html
index 0c497be..0820cf3 100644
--- a/globalcollect_gateway/forms/html/bt/bt.html
+++ b/globalcollect_gateway/forms/html/bt/bt.html
@@ -3,7 +3,6 @@
        // these must go through RapidHTML and thus are inline
        var amountErrors = 
["#general|escape",'#retryMsg|escape','#amount|escape'];
        var billingErrors = 
['#fname|escape','#lname|escape','#city|escape','#country|escape','#street|escape','#state|escape','#zip|escape','#emailAdd|escape'];
-       var paymentErrors = 
['#card_num|escape','#card_type|escape','#cvv|escape'];
        var actionURL = "@action";
        var scriptPath = "@script_path";
 </script>
diff --git a/globalcollect_gateway/forms/html/cc/cc-a.html 
b/globalcollect_gateway/forms/html/cc/cc-a.html
index 9e831c5..628ec83 100644
--- a/globalcollect_gateway/forms/html/cc/cc-a.html
+++ b/globalcollect_gateway/forms/html/cc/cc-a.html
@@ -3,7 +3,6 @@
        // these must go through RapidHTML and thus are inline
        var amountErrors = 
['#general|escape','#retryMsg|escape','#amount|escape'];
        var billingErrors = 
['#fname|escape','#lname|escape','#city|escape','#country|escape','#street|escape','#state|escape','#zip|escape','#emailAdd|escape'];
-       var paymentErrors = 
['#card_num|escape','#card_type|escape','#cvv|escape'];
        var actionURL = "@action";
        var scriptPath = "@script_path";
 </script>
diff --git a/globalcollect_gateway/forms/html/cc/cc-vm.html 
b/globalcollect_gateway/forms/html/cc/cc-vm.html
index 9f3c9ab..d50140e 100644
--- a/globalcollect_gateway/forms/html/cc/cc-vm.html
+++ b/globalcollect_gateway/forms/html/cc/cc-vm.html
@@ -3,7 +3,6 @@
        // these must go through RapidHTML and thus are inline
        var amountErrors = 
['#general|escape','#retryMsg|escape','#amount|escape'];
        var billingErrors = 
['#fname|escape','#lname|escape','#city|escape','#country|escape','#street|escape','#state|escape','#zip|escape','#emailAdd|escape'];
-       var paymentErrors = 
['#card_num|escape','#card_type|escape','#cvv|escape'];
        var actionURL = "@action";
        var scriptPath = "@script_path";
 </script>
diff --git a/globalcollect_gateway/forms/html/cc/cc-vma.html 
b/globalcollect_gateway/forms/html/cc/cc-vma.html
index cfd7c3f..7c516a7 100644
--- a/globalcollect_gateway/forms/html/cc/cc-vma.html
+++ b/globalcollect_gateway/forms/html/cc/cc-vma.html
@@ -3,7 +3,6 @@
        // these must go through RapidHTML and thus are inline
        var amountErrors = 
['#general|escape','#retryMsg|escape','#amount|escape'];
        var billingErrors = 
['#fname|escape','#lname|escape','#city|escape','#country|escape','#street|escape','#state|escape','#zip|escape','#emailAdd|escape'];
-       var paymentErrors = 
['#card_num|escape','#card_type|escape','#cvv|escape'];
        var actionURL = "@action";
        var scriptPath = "@script_path";
 </script>
diff --git a/globalcollect_gateway/forms/html/cc/cc-vmad.html 
b/globalcollect_gateway/forms/html/cc/cc-vmad.html
index b18c961..b16e269 100644
--- a/globalcollect_gateway/forms/html/cc/cc-vmad.html
+++ b/globalcollect_gateway/forms/html/cc/cc-vmad.html
@@ -3,7 +3,6 @@
        // these must go through RapidHTML and thus are inline
        var amountErrors = 
['#general|escape','#retryMsg|escape','#amount|escape'];
        var billingErrors = 
['#fname|escape','#lname|escape','#city|escape','#country|escape','#street|escape','#state|escape','#zip|escape','#emailAdd|escape'];
-       var paymentErrors = 
['#card_num|escape','#card_type|escape','#cvv|escape'];
        var actionURL = "@action";
        var scriptPath = "@script_path";
 </script>
diff --git a/globalcollect_gateway/forms/html/cc/cc-vmaj.html 
b/globalcollect_gateway/forms/html/cc/cc-vmaj.html
index 959c1f6..86496d1 100644
--- a/globalcollect_gateway/forms/html/cc/cc-vmaj.html
+++ b/globalcollect_gateway/forms/html/cc/cc-vmaj.html
@@ -3,7 +3,6 @@
        // these must go through RapidHTML and thus are inline
        var amountErrors = 
['#general|escape','#retryMsg|escape','#amount|escape'];
        var billingErrors = 
['#fname|escape','#lname|escape','#city|escape','#country|escape','#street|escape','#state|escape','#zip|escape','#emailAdd|escape'];
-       var paymentErrors = 
['#card_num|escape','#card_type|escape','#cvv|escape'];
        var actionURL = "@action";
        var scriptPath = "@script_path";
 </script>
diff --git a/globalcollect_gateway/forms/html/cc/cc-vmd.html 
b/globalcollect_gateway/forms/html/cc/cc-vmd.html
index 4c70c55..df3fada 100644
--- a/globalcollect_gateway/forms/html/cc/cc-vmd.html
+++ b/globalcollect_gateway/forms/html/cc/cc-vmd.html
@@ -3,7 +3,6 @@
        // these must go through RapidHTML and thus are inline
        var amountErrors = 
['#general|escape','#retryMsg|escape','#amount|escape'];
        var billingErrors = 
['#fname|escape','#lname|escape','#city|escape','#country|escape','#street|escape','#state|escape','#zip|escape','#emailAdd|escape'];
-       var paymentErrors = 
['#card_num|escape','#card_type|escape','#cvv|escape'];
        var actionURL = "@action";
        var scriptPath = "@script_path";
 </script>
diff --git a/globalcollect_gateway/forms/html/cc/cc-vmj.html 
b/globalcollect_gateway/forms/html/cc/cc-vmj.html
index 3161fab..c1d3f36 100644
--- a/globalcollect_gateway/forms/html/cc/cc-vmj.html
+++ b/globalcollect_gateway/forms/html/cc/cc-vmj.html
@@ -3,7 +3,6 @@
        // these must go through RapidHTML and thus are inline
        var amountErrors = 
['#general|escape','#retryMsg|escape','#amount|escape'];
        var billingErrors = 
['#fname|escape','#lname|escape','#city|escape','#country|escape','#street|escape','#state|escape','#zip|escape','#emailAdd|escape'];
-       var paymentErrors = 
['#card_num|escape','#card_type|escape','#cvv|escape'];
        var actionURL = "@action";
        var scriptPath = "@script_path";
 </script>
diff --git a/globalcollect_gateway/forms/html/cc/cc.html 
b/globalcollect_gateway/forms/html/cc/cc.html
index cd582a5..19cdbfc 100644
--- a/globalcollect_gateway/forms/html/cc/cc.html
+++ b/globalcollect_gateway/forms/html/cc/cc.html
@@ -3,7 +3,6 @@
        // these must go through RapidHTML and thus are inline
        var amountErrors = 
['#general|escape','#retryMsg|escape','#amount|escape'];
        var billingErrors = 
['#fname|escape','#lname|escape','#city|escape','#country|escape','#street|escape','#state|escape','#zip|escape','#emailAdd|escape'];
-       var paymentErrors = 
['#card_num|escape','#card_type|escape','#cvv|escape'];
        var actionURL = "@action";
        var scriptPath = "@script_path";
 </script>
diff --git a/globalcollect_gateway/forms/html/dd/dd-DE.html 
b/globalcollect_gateway/forms/html/dd/dd-DE.html
new file mode 100644
index 0000000..ef394f2
--- /dev/null
+++ b/globalcollect_gateway/forms/html/dd/dd-DE.html
@@ -0,0 +1,155 @@
+<script type="text/javascript">
+       mw.loader.load('gc.form.rapidhtml.webitects.bt');
+       // these must go through RapidHTML and thus are inline
+       var amountErrors = 
["#general|escape",'#retryMsg|escape','#amount|escape'];
+       var billingErrors = 
['#fname|escape','#lname|escape','#city|escape','#country|escape','#street|escape','#state|escape','#zip|escape','#emailAdd|escape'];
+       var actionURL = "@action";
+       var scriptPath = "@script_path";
+</script>
+<!--[if lt IE 7]>
+<script type="text/javascript">
+       mw.loader.load('gc.form.rapidhtml.webitects.ie6');
+</script>
+<style type="text/css">
+       body{
+               behavior: url("@script_path/skins/vector/csshover.min.htc");
+       }
+</style><![endif]-->
+<!--[if IE 7]>
+<style>
+       .gainlayout {
+               zoom: 1;
+               height: 1%;
+       }
+</style>
+<![endif]-->
+
+<div class="ltr">
+       <table id="layouttable">
+               <tr>
+                       <td>
+                               <div id="appeal">
+                                       <div id="appeal-content">
+                                               <h2 id="appeal-head"> <span 
class="mw-headline">{{LanguageSwitch|2011FR/@appeal/title|@language}}</span></h2>
+                                               <div id="appeal-body" 
class="plainlinks">{{LanguageSwitch|2011FR/@appeal/text|@language}}</div>
+                                       </div>
+                               </div>
+                       </td>
+                       <td>
+                               <div id="donate">
+                                       <div id="donate-content">
+                                               <div id="donate-body" 
style="padding: 0 1em;">
+                                                       <form method="post" 
name="paypalcontribution">
+                                                               <div 
id="step1header"><h3>%donate_interface-amount-legend% <span 
id="selected-amount"></span> <span class="mute" id="change-amount" 
style="display: none;">(<a 
href="#">%donate_interface-change%</a>)</span></h3></div>
+                                                               <div 
id="step1wrapper" style="display: none;">
+                                                                       <div 
id="amtErrorMessages" class="small"></div>
+                                                                       <table 
id="amount-table-white">
+                                                                               
<tr>
+                                                                               
        <td><label><input id="amountRadio0" type="radio" name="amountRadio" 
value="5" /> <span id="amountSpan0">5</span></label></td>
+                                                                               
        <td><label><input id="amountRadio1" type="radio" name="amountRadio" 
value="10" /> <span id="amountSpan1">10</span></label></td>
+                                                                               
        <td><label><input id="amountRadio2" type="radio" name="amountRadio" 
value="20" /> <span id="amountSpan2">20</span></label></td>
+                                                                               
        <td><label><input id="amountRadio3" type="radio" name="amountRadio" 
value="50" /> <span id="amountSpan3">50</span></label></td>
+                                                                               
</tr>
+                                                                               
<tr>
+                                                                               
        <td><label><input id="amountRadio4" type="radio" name="amountRadio" 
value="75" /> <span id="amountSpan4">75</span></label></td>
+                                                                               
        <td><label><input id="amountRadio5" type="radio" name="amountRadio" 
value="100" /> <span id="amountSpan5">100</span></label></td>
+                                                                               
        <td><label><input id="amountRadio6" type="radio" name="amountRadio" 
value="250" /> <span id="amountSpan6">250</span></label></td>
+                                                                               
        <td><input type="radio" name="amountRadio" id="input_amount_other" 
value="other" /> <label><span id="amountSpanOther"></span><input type="text" 
class="txt-sm hint"  name="amountGiven" size="4" id="other-amount" 
title="%donate_interface-other%" placeholder="%donate_interface-other%"  
onfocus="this.form.input_amount_other.checked=true;"/></label></td>
+                                                                               
</tr>
+                                                                       </table>
+                                                               </div>
+                                                               <div 
id="step2header"><h3>%donate_interface-billing-address% <span class="mute" 
id="change-billing" style="display: none;">(<a 
href="#">%donate_interface-change%</a>)</span></h3></div>
+                                                               <div 
id="step2wrapper">
+                                                                       <div 
id="billing-content" class="gainlayout">
+                                                                               
<div id="billingErrorMessages" class="small"></div>
+                                                                               
<div id="paymentErrorMessages" class="small"></div>
+                                                                               
<div class="name-fields">
+                                                                               
        <span class="name-first"><input class="txt" id="fname" name="fname" 
title="%donate_interface-donor-fname%" value="@fname" 
placeholder="%donate_interface-donor-fname%"/></span>
+                                                                               
        <span class="name-last"><input class="txt" id="lname" name="lname" 
title="%donate_interface-donor-lname%" value="@lname" 
placeholder="%donate_interface-donor-lname%"/></span>
+                                                                               
</div>
+                                                                               
<div class="loc-fields nostate">
+                                                                               
        <span class="loc-street"><input class="txt" id="street" name="street" 
title="%donate_interface-donor-street%" value="@street" 
placeholder="%donate_interface-donor-street%"/></span>
+                                                                               
        <span class="loc-postal"><input class="txt" id="zip" name="zip" 
title="%donate_interface-donor-postal%" value="@zip" 
placeholder="%donate_interface-donor-postal%"/></span>
+                                                                               
        <span class="loc-city"><input class="txt" id="city" name="city" 
title="%donate_interface-donor-city%" value="@city" 
placeholder="%donate_interface-donor-city%"/></span>                            
                                                            
+                                                                               
        <span class="loc-country">
+                                                                               
                <select class="txt" id="country" name="country" 
value="@country" placeholder="%donate_interface-country%">
+                                                                               
                        <option 
value="">%donate_interface-select-country%</option>
+                                                                               
                        <option 
value="DE">%donate_interface-country-dropdown-DE%</option>
+                                                                               
                </select>
+                                                                               
        </span>
+                                                                               
</div>
+                                                                               
<p><input class="txt" title="%donate_interface-donor-email%" id="emailAdd" 
name="emailAdd" value="@emailAdd" 
placeholder="%donate_interface-donor-email%"/> </p> 
+
+                                                                               
<div id="ddheader"><h3>%donate_interface-cc-form-header-payment%</h3></div>
+                                                                               
<div class="dd-fields"> 
+                                                                               
        <span class="dd-de-accountname"><input class="txt" 
title="%donate_interface-dd-account_name%" id="account_name" 
name="account_name" value="@account_name" 
placeholder="%donate_interface-dd-account_name%" maxlength="30"/></span>
+                                                                               
        <span class="dd-de-an"><input class="txt" 
title="%donate_interface-dd-account_number%" id="account_number" 
name="account_number" value="@account_number" 
placeholder="%donate_interface-dd-account_number%" maxlength="12"/></span>
+                                                                               
        <span class="dd-de-bc"><input class="txt" 
title="%donate_interface-dd-bank_code%" id="bank_code" name="bank_code" 
value="@bank_code" placeholder="%donate_interface-dd-bank_code%" 
maxlength="12"/></span>
+                                                                               
</div>
+
+                                                                               
<div id="bt-continue" style="margin-top: 10px;"> <input class="btn" 
id="bt-continueBtn" type="button" value="%donate_interface-continue%" /></div>
+                                                                       </div>
+                                                               </div>
+
+                                                               
+
+                                                               <input 
type="hidden" name="returnto" value="Thank_You/@language" />
+                                                               <input 
type="hidden" value="0" name="PaypalRedirect" id="PaypalRedirect">
+
+                                                               <input 
type="hidden" value="@amount" name="amount" />
+                                                               <!--<input 
type="hidden" value="@country" name="country" id="country" /> -->
+                                                               <input 
type="hidden" value="EUR" name="currency_code" />
+                                                               <input 
type="hidden" value="@utm_source" name="utm_source"/>
+                                                               <input 
type="hidden" value="@utm_medium" name="utm_medium"/>
+                                                               <input 
type="hidden" value="@utm_campaign" name="utm_campaign"/>
+                                                               <input 
type="hidden" value="@language" name="language"/>
+                                                               <input 
type="hidden" value="@referrer" name="referrer"/>
+                                                               <input 
type="hidden" value="@comment" name="comment"/>
+                                                               <input 
type="hidden" value="@comment-option" name="comment-option"/>
+                                                               <input 
type="hidden" value="1" name="email-opt"/>
+                                                               <input 
type="hidden" value="@token" name="token"/>
+                                                               <input 
type="hidden" value="@order_id"  name="order_id"/>
+                                                               <input 
type="hidden" value="@numAttempt" name="numAttempt"/>
+                                                               <input 
type="hidden" value="@contribution_tracking_id" 
name="contribution_tracking_id"/>
+                                                               <input 
type="hidden" value="@data_hash" name="data_hash"/>
+                                                               <input 
type="hidden" value="@owa_session" name="owa_session"/>
+                                                               <input 
type="hidden" value="@owa_ref" name="owa_ref"/>
+                                                               <!-- new 
required fields -->
+                                                               <input 
type="hidden" value="@gateway" name="gateway"/>
+                                                               <!-- required 
fields for bt and dd -->
+                                                               <input 
type="hidden" value="dd" name="payment_method"/>
+                                                               <input 
type="hidden" value="dd_de" name="payment_submethod"/>
+                                                               <!-- required 
fields omitted above -->
+                                                               <input 
type="hidden" value="XX" name="state"/>
+                                                       </form>
+                                                       <div id="where-content">
+                                                               
{{LanguageSwitch|2011FR/core-appeal-whitebox-nodiv|@language}}
+                                                       </div>
+                                               </div>
+                                       </div>
+                                       <p 
id="informationsharing">%donate_interface-informationsharing|url%</p>
+                                       <table>
+                                               <tr>
+                                                       <td>
+                                                               <ul 
id="moreinfolinks">
+                                                                       <li><a 
href="https://wikimediafoundation.org/wiki/Special:LandingCheck?basic=true&landing_page=Monthly_donations&language=@language&uselang=@language&country=@country";>%donate_interface-monthly-donation%</a></li>
+                                                                       <li><a 
href="https://wikimediafoundation.org/wiki/Special:LandingCheck?basic=true&landing_page=Ways_to_Give&language=@language&uselang=@language&country=@country";>%donate_interface-otherways-short%</a></li>
+                                                                       <li><a 
href="https://wikimediafoundation.org/wiki/Special:LandingCheck?basic=true&landing_page=FAQ&language=@language&uselang=@language&country=@country";>%donate_interface-faqs%</a></li>
+                                                                       <li><a 
href="https://wikimediafoundation.org/wiki/Special:LandingCheck?basic=true&landing_page=Tax_Deductibility&language=@language&uselang=@language&country=@country";>%donate_interface-tax-info%</a></li>
+                                                               </ul>
+                                                       </td>
+                                                       <td>@verisign_logo</td>
+                                               </tr>
+                                       </table>
+                               </div>
+                       </td>
+               </tr>
+       </table>
+
+
+
+</div>
+
+<!-- Wikimedia Project logo
+<li id="footer-copyrightico"><a href="//wikimediafoundation.org/"><img 
src="//bits.wikimedia.org/images/wikimedia-button.png" width="88" height="31" 
alt="Wikimedia Foundation"/></a></li> 
+ -->
diff --git a/globalcollect_gateway/forms/html/dd/dd-IT.html 
b/globalcollect_gateway/forms/html/dd/dd-IT.html
new file mode 100644
index 0000000..596e6aa
--- /dev/null
+++ b/globalcollect_gateway/forms/html/dd/dd-IT.html
@@ -0,0 +1,158 @@
+<script type="text/javascript">
+       mw.loader.load('gc.form.rapidhtml.webitects.bt');
+       // these must go through RapidHTML and thus are inline
+       var amountErrors = 
["#general|escape",'#retryMsg|escape','#amount|escape'];
+       var billingErrors = 
['#fname|escape','#lname|escape','#city|escape','#country|escape','#street|escape','#state|escape','#zip|escape','#emailAdd|escape'];
+       var actionURL = "@action";
+       var scriptPath = "@script_path";
+</script>
+<!--[if lt IE 7]>
+<script type="text/javascript">
+       mw.loader.load('gc.form.rapidhtml.webitects.ie6');
+</script>
+<style type="text/css">
+       body{
+               behavior: url("@script_path/skins/vector/csshover.min.htc");
+       }
+</style><![endif]-->
+<!--[if IE 7]>
+<style>
+       .gainlayout {
+               zoom: 1;
+               height: 1%;
+       }
+</style>
+<![endif]-->
+
+<div class="ltr">
+       <table id="layouttable">
+               <tr>
+                       <td>
+                               <div id="appeal">
+                                       <div id="appeal-content">
+                                               <h2 id="appeal-head"> <span 
class="mw-headline">{{LanguageSwitch|2011FR/@appeal/title|@language}}</span></h2>
+                                               <div id="appeal-body" 
class="plainlinks">{{LanguageSwitch|2011FR/@appeal/text|@language}}</div>
+                                       </div>
+                               </div>
+                       </td>
+                       <td>
+                               <div id="donate">
+                                       <div id="donate-content">
+                                               <div id="donate-body" 
style="padding: 0 1em;">
+                                                       <form method="post" 
name="paypalcontribution">
+                                                               <div 
id="step1header"><h3>%donate_interface-amount-legend% <span 
id="selected-amount"></span> <span class="mute" id="change-amount" 
style="display: none;">(<a 
href="#">%donate_interface-change%</a>)</span></h3></div>
+                                                               <div 
id="step1wrapper" style="display: none;">
+                                                                       <div 
id="amtErrorMessages" class="small"></div>
+                                                                       <table 
id="amount-table-white">
+                                                                               
<tr>
+                                                                               
        <td><label><input id="amountRadio0" type="radio" name="amountRadio" 
value="5" /> <span id="amountSpan0">5</span></label></td>
+                                                                               
        <td><label><input id="amountRadio1" type="radio" name="amountRadio" 
value="10" /> <span id="amountSpan1">10</span></label></td>
+                                                                               
        <td><label><input id="amountRadio2" type="radio" name="amountRadio" 
value="20" /> <span id="amountSpan2">20</span></label></td>
+                                                                               
        <td><label><input id="amountRadio3" type="radio" name="amountRadio" 
value="50" /> <span id="amountSpan3">50</span></label></td>
+                                                                               
</tr>
+                                                                               
<tr>
+                                                                               
        <td><label><input id="amountRadio4" type="radio" name="amountRadio" 
value="75" /> <span id="amountSpan4">75</span></label></td>
+                                                                               
        <td><label><input id="amountRadio5" type="radio" name="amountRadio" 
value="100" /> <span id="amountSpan5">100</span></label></td>
+                                                                               
        <td><label><input id="amountRadio6" type="radio" name="amountRadio" 
value="250" /> <span id="amountSpan6">250</span></label></td>
+                                                                               
        <td><input type="radio" name="amountRadio" id="input_amount_other" 
value="other" /> <label><span id="amountSpanOther"></span><input type="text" 
class="txt-sm hint"  name="amountGiven" size="4" id="other-amount" 
title="%donate_interface-other%" placeholder="%donate_interface-other%"  
onfocus="this.form.input_amount_other.checked=true;"/></label></td>
+                                                                               
</tr>
+                                                                       </table>
+                                                               </div>
+                                                               <div 
id="step2header"><h3>%donate_interface-billing-address% <span class="mute" 
id="change-billing" style="display: none;">(<a 
href="#">%donate_interface-change%</a>)</span></h3></div>
+                                                               <div 
id="step2wrapper">
+                                                                       <div 
id="billing-content" class="gainlayout">
+                                                                               
<div id="billingErrorMessages" class="small"></div>
+                                                                               
<div id="paymentErrorMessages" class="small"></div>
+                                                                               
<div class="name-fields">
+                                                                               
        <span class="name-first"><input class="txt" id="fname" name="fname" 
title="%donate_interface-donor-fname%" value="@fname" 
placeholder="%donate_interface-donor-fname%"/></span>
+                                                                               
        <span class="name-last"><input class="txt" id="lname" name="lname" 
title="%donate_interface-donor-lname%" value="@lname" 
placeholder="%donate_interface-donor-lname%"/></span>
+                                                                               
</div>
+                                                                               
<div class="loc-fields nostate">
+                                                                               
        <span class="loc-street"><input class="txt" id="street" name="street" 
title="%donate_interface-donor-street%" value="@street" 
placeholder="%donate_interface-donor-street%"/></span>
+                                                                               
        <span class="loc-postal"><input class="txt" id="zip" name="zip" 
title="%donate_interface-donor-postal%" value="@zip" 
placeholder="%donate_interface-donor-postal%"/></span>
+                                                                               
        <span class="loc-city"><input class="txt" id="city" name="city" 
title="%donate_interface-donor-city%" value="@city" 
placeholder="%donate_interface-donor-city%"/></span>                            
                                                            
+                                                                               
        <span class="loc-country">
+                                                                               
                <select class="txt" id="country" name="country" 
value="@country" placeholder="%donate_interface-country%">
+                                                                               
                        <option 
value="">%donate_interface-select-country%</option>
+                                                                               
                        <option 
value="IT">%donate_interface-country-dropdown-IT%</option>
+                                                                               
                </select>
+                                                                               
        </span>
+                                                                               
</div>
+                                                                               
<p><input class="txt" title="%donate_interface-donor-email%" id="emailAdd" 
name="emailAdd" value="@emailAdd" 
placeholder="%donate_interface-donor-email%"/> </p> 
+
+                                                                               
<div id="ddheader"><h3>%donate_interface-cc-form-header-payment%</h3></div>
+                                                                               
<div class="dd-fields"> 
+                                                                               
        <span class="dd-be-anm"><input class="txt" 
title="%donate_interface-dd-account_name%" id="account_name" 
name="account_name" value="@account_name" 
placeholder="%donate_interface-dd-account_name%" maxlength="12"/></span>
+                                                                               
        <span class="dd-be-an"><input class="txt" 
title="%donate_interface-dd-account_number%" id="account_number" 
name="account_number" value="@account_number" 
placeholder="%donate_interface-dd-account_number%" maxlength="12"/></span>
+                                                                               
        <span class="dd-be-bc"><input class="txt" 
title="%donate_interface-dd-bank_code%" id="bank_code" name="bank_code" 
value="@bank_code" placeholder="%donate_interface-dd-bank_code%" 
maxlength="12"/></span>
+                                                                               
        <span class="dd-be-bc"><input class="txt" 
title="%donate_interface-dd-branch_code%" id="branch_code" name="branch_code" 
value="@branch_code" placeholder="%donate_interface-dd-branch_code%" 
maxlength="12"/></span>
+                                                                               
        <span class="dd-be-ba"><input class="txt" 
title="%donate_interface-dd-bank_agenzia%" id="bank_agenzia" 
name="bank_agenzia" value="@bank_agenzia" 
placeholder="%donate_interface-dd-bank_agenzia%" maxlength="12"/></span>
+                                                                               
        <span class="dd-be-bcd"><input class="txt" 
title="%donate_interface-dd-bank_check_digit%" id="bank_check_digit" 
name="bank_check_digit" value="@bank_check_digit" 
placeholder="%donate_interface-dd-bank_check_digit%" maxlength="12"/></span>
+                                                                               
</div>
+
+                                                                               
<div id="bt-continue" style="margin-top: 10px;"> <input class="btn" 
id="bt-continueBtn" type="button" value="%donate_interface-continue%" /></div>
+                                                                       </div>
+                                                               </div>
+
+                                                               
+
+                                                               <input 
type="hidden" name="returnto" value="Thank_You/@language" />
+                                                               <input 
type="hidden" value="0" name="PaypalRedirect" id="PaypalRedirect">
+
+                                                               <input 
type="hidden" value="@amount" name="amount" />
+                                                               <!--<input 
type="hidden" value="@country" name="country" id="country" /> -->
+                                                               <input 
type="hidden" value="EUR" name="currency_code" />
+                                                               <input 
type="hidden" value="@utm_source" name="utm_source"/>
+                                                               <input 
type="hidden" value="@utm_medium" name="utm_medium"/>
+                                                               <input 
type="hidden" value="@utm_campaign" name="utm_campaign"/>
+                                                               <input 
type="hidden" value="@language" name="language"/>
+                                                               <input 
type="hidden" value="@referrer" name="referrer"/>
+                                                               <input 
type="hidden" value="@comment" name="comment"/>
+                                                               <input 
type="hidden" value="@comment-option" name="comment-option"/>
+                                                               <input 
type="hidden" value="1" name="email-opt"/>
+                                                               <input 
type="hidden" value="@token" name="token"/>
+                                                               <input 
type="hidden" value="@order_id"  name="order_id"/>
+                                                               <input 
type="hidden" value="@numAttempt" name="numAttempt"/>
+                                                               <input 
type="hidden" value="@contribution_tracking_id" 
name="contribution_tracking_id"/>
+                                                               <input 
type="hidden" value="@data_hash" name="data_hash"/>
+                                                               <input 
type="hidden" value="@owa_session" name="owa_session"/>
+                                                               <input 
type="hidden" value="@owa_ref" name="owa_ref"/>
+                                                               <!-- new 
required fields -->
+                                                               <input 
type="hidden" value="@gateway" name="gateway"/>
+                                                               <!-- required 
fields for bt and dd -->
+                                                               <input 
type="hidden" value="dd" name="payment_method"/>
+                                                               <input 
type="hidden" value="dd_it" name="payment_submethod"/>
+                                                               <!-- required 
fields omitted above -->
+                                                               <input 
type="hidden" value="XX" name="state"/>
+                                                       </form>
+                                                       <div id="where-content">
+                                                               
{{LanguageSwitch|2011FR/core-appeal-whitebox-nodiv|@language}}
+                                                       </div>
+                                               </div>
+                                       </div>
+                                       <p 
id="informationsharing">%donate_interface-informationsharing|url%</p>
+                                       <table>
+                                               <tr>
+                                                       <td>
+                                                               <ul 
id="moreinfolinks">
+                                                                       <li><a 
href="https://wikimediafoundation.org/wiki/Special:LandingCheck?basic=true&landing_page=Monthly_donations&language=@language&uselang=@language&country=@country";>%donate_interface-monthly-donation%</a></li>
+                                                                       <li><a 
href="https://wikimediafoundation.org/wiki/Special:LandingCheck?basic=true&landing_page=Ways_to_Give&language=@language&uselang=@language&country=@country";>%donate_interface-otherways-short%</a></li>
+                                                                       <li><a 
href="https://wikimediafoundation.org/wiki/Special:LandingCheck?basic=true&landing_page=FAQ&language=@language&uselang=@language&country=@country";>%donate_interface-faqs%</a></li>
+                                                                       <li><a 
href="https://wikimediafoundation.org/wiki/Special:LandingCheck?basic=true&landing_page=Tax_Deductibility&language=@language&uselang=@language&country=@country";>%donate_interface-tax-info%</a></li>
+                                                               </ul>
+                                                       </td>
+                                                       <td>@verisign_logo</td>
+                                               </tr>
+                                       </table>
+                               </div>
+                       </td>
+               </tr>
+       </table>
+
+
+
+</div>
+
+<!-- Wikimedia Project logo
+<li id="footer-copyrightico"><a href="//wikimediafoundation.org/"><img 
src="//bits.wikimedia.org/images/wikimedia-button.png" width="88" height="31" 
alt="Wikimedia Foundation"/></a></li> 
+ -->
diff --git a/globalcollect_gateway/forms/html/dd/dd-NL.html 
b/globalcollect_gateway/forms/html/dd/dd-NL.html
new file mode 100644
index 0000000..ce2d7c4
--- /dev/null
+++ b/globalcollect_gateway/forms/html/dd/dd-NL.html
@@ -0,0 +1,154 @@
+<script type="text/javascript">
+       mw.loader.load('gc.form.rapidhtml.webitects.bt');
+       // these must go through RapidHTML and thus are inline
+       var amountErrors = 
["#general|escape",'#retryMsg|escape','#amount|escape'];
+       var billingErrors = 
['#fname|escape','#lname|escape','#city|escape','#country|escape','#street|escape','#state|escape','#zip|escape','#emailAdd|escape'];
+       var actionURL = "@action";
+       var scriptPath = "@script_path";
+</script>
+<!--[if lt IE 7]>
+<script type="text/javascript">
+       mw.loader.load('gc.form.rapidhtml.webitects.ie6');
+</script>
+<style type="text/css">
+       body{
+               behavior: url("@script_path/skins/vector/csshover.min.htc");
+       }
+</style><![endif]-->
+<!--[if IE 7]>
+<style>
+       .gainlayout {
+               zoom: 1;
+               height: 1%;
+       }
+</style>
+<![endif]-->
+
+<div class="ltr">
+       <table id="layouttable">
+               <tr>
+                       <td>
+                               <div id="appeal">
+                                       <div id="appeal-content">
+                                               <h2 id="appeal-head"> <span 
class="mw-headline">{{LanguageSwitch|2011FR/@appeal/title|@language}}</span></h2>
+                                               <div id="appeal-body" 
class="plainlinks">{{LanguageSwitch|2011FR/@appeal/text|@language}}</div>
+                                       </div>
+                               </div>
+                       </td>
+                       <td>
+                               <div id="donate">
+                                       <div id="donate-content">
+                                               <div id="donate-body" 
style="padding: 0 1em;">
+                                                       <form method="post" 
name="paypalcontribution">
+                                                               <div 
id="step1header"><h3>%donate_interface-amount-legend% <span 
id="selected-amount"></span> <span class="mute" id="change-amount" 
style="display: none;">(<a 
href="#">%donate_interface-change%</a>)</span></h3></div>
+                                                               <div 
id="step1wrapper" style="display: none;">
+                                                                       <div 
id="amtErrorMessages" class="small"></div>
+                                                                       <table 
id="amount-table-white">
+                                                                               
<tr>
+                                                                               
        <td><label><input id="amountRadio0" type="radio" name="amountRadio" 
value="5" /> <span id="amountSpan0">5</span></label></td>
+                                                                               
        <td><label><input id="amountRadio1" type="radio" name="amountRadio" 
value="10" /> <span id="amountSpan1">10</span></label></td>
+                                                                               
        <td><label><input id="amountRadio2" type="radio" name="amountRadio" 
value="20" /> <span id="amountSpan2">20</span></label></td>
+                                                                               
        <td><label><input id="amountRadio3" type="radio" name="amountRadio" 
value="50" /> <span id="amountSpan3">50</span></label></td>
+                                                                               
</tr>
+                                                                               
<tr>
+                                                                               
        <td><label><input id="amountRadio4" type="radio" name="amountRadio" 
value="75" /> <span id="amountSpan4">75</span></label></td>
+                                                                               
        <td><label><input id="amountRadio5" type="radio" name="amountRadio" 
value="100" /> <span id="amountSpan5">100</span></label></td>
+                                                                               
        <td><label><input id="amountRadio6" type="radio" name="amountRadio" 
value="250" /> <span id="amountSpan6">250</span></label></td>
+                                                                               
        <td><input type="radio" name="amountRadio" id="input_amount_other" 
value="other" /> <label><span id="amountSpanOther"></span><input type="text" 
class="txt-sm hint"  name="amountGiven" size="4" id="other-amount" 
title="%donate_interface-other%" placeholder="%donate_interface-other%"  
onfocus="this.form.input_amount_other.checked=true;"/></label></td>
+                                                                               
</tr>
+                                                                       </table>
+                                                               </div>
+                                                               <div 
id="step2header"><h3>%donate_interface-billing-address% <span class="mute" 
id="change-billing" style="display: none;">(<a 
href="#">%donate_interface-change%</a>)</span></h3></div>
+                                                               <div 
id="step2wrapper">
+                                                                       <div 
id="billing-content" class="gainlayout">
+                                                                               
<div id="billingErrorMessages" class="small"></div>
+                                                                               
<div id="paymentErrorMessages" class="small"></div>
+                                                                               
<div class="name-fields">
+                                                                               
        <span class="name-first"><input class="txt" id="fname" name="fname" 
title="%donate_interface-donor-fname%" value="@fname" 
placeholder="%donate_interface-donor-fname%"/></span>
+                                                                               
        <span class="name-last"><input class="txt" id="lname" name="lname" 
title="%donate_interface-donor-lname%" value="@lname" 
placeholder="%donate_interface-donor-lname%"/></span>
+                                                                               
</div>
+                                                                               
<div class="loc-fields nostate">
+                                                                               
        <span class="loc-street"><input class="txt" id="street" name="street" 
title="%donate_interface-donor-street%" value="@street" 
placeholder="%donate_interface-donor-street%"/></span>
+                                                                               
        <span class="loc-postal"><input class="txt" id="zip" name="zip" 
title="%donate_interface-donor-postal%" value="@zip" 
placeholder="%donate_interface-donor-postal%"/></span>
+                                                                               
        <span class="loc-city"><input class="txt" id="city" name="city" 
title="%donate_interface-donor-city%" value="@city" 
placeholder="%donate_interface-donor-city%"/></span>                            
                                                            
+                                                                               
        <span class="loc-country">
+                                                                               
                <select class="txt" id="country" name="country" 
value="@country" placeholder="%donate_interface-country%">
+                                                                               
                        <option 
value="">%donate_interface-select-country%</option>
+                                                                               
                        <option 
value="NL">%donate_interface-country-dropdown-NL%</option>
+                                                                               
                </select>
+                                                                               
        </span>
+                                                                               
</div>
+                                                                               
<p><input class="txt" title="%donate_interface-donor-email%" id="emailAdd" 
name="emailAdd" value="@emailAdd" 
placeholder="%donate_interface-donor-email%"/> </p> 
+
+                                                                               
<div id="ddheader"><h3>%donate_interface-cc-form-header-payment%</h3></div>
+                                                                               
<div class="dd-fields"> 
+                                                                               
        <span class="dd-nl-accountname"><input class="txt" 
title="%donate_interface-dd-account_name%" id="account_name" 
name="account_name" value="@account_name" 
placeholder="%donate_interface-dd-account_name%" maxlength="30"/></span>
+                                                                               
        <span class="dd-nl-an"><input class="txt" 
title="%donate_interface-dd-account_number%" id="account_number" 
name="account_number" value="@account_number" 
placeholder="%donate_interface-dd-account_number%" maxlength="12"/></span>
+                                                                               
</div>
+
+                                                                               
<div id="bt-continue" style="margin-top: 10px;"> <input class="btn" 
id="bt-continueBtn" type="button" value="%donate_interface-continue%" /></div>
+                                                                       </div>
+                                                               </div>
+
+                                                               
+
+                                                               <input 
type="hidden" name="returnto" value="Thank_You/@language" />
+                                                               <input 
type="hidden" value="0" name="PaypalRedirect" id="PaypalRedirect">
+
+                                                               <input 
type="hidden" value="@amount" name="amount" />
+                                                               <!--<input 
type="hidden" value="@country" name="country" id="country" /> -->
+                                                               <input 
type="hidden" value="EUR" name="currency_code" />
+                                                               <input 
type="hidden" value="@utm_source" name="utm_source"/>
+                                                               <input 
type="hidden" value="@utm_medium" name="utm_medium"/>
+                                                               <input 
type="hidden" value="@utm_campaign" name="utm_campaign"/>
+                                                               <input 
type="hidden" value="@language" name="language"/>
+                                                               <input 
type="hidden" value="@referrer" name="referrer"/>
+                                                               <input 
type="hidden" value="@comment" name="comment"/>
+                                                               <input 
type="hidden" value="@comment-option" name="comment-option"/>
+                                                               <input 
type="hidden" value="1" name="email-opt"/>
+                                                               <input 
type="hidden" value="@token" name="token"/>
+                                                               <input 
type="hidden" value="@order_id"  name="order_id"/>
+                                                               <input 
type="hidden" value="@numAttempt" name="numAttempt"/>
+                                                               <input 
type="hidden" value="@contribution_tracking_id" 
name="contribution_tracking_id"/>
+                                                               <input 
type="hidden" value="@data_hash" name="data_hash"/>
+                                                               <input 
type="hidden" value="@owa_session" name="owa_session"/>
+                                                               <input 
type="hidden" value="@owa_ref" name="owa_ref"/>
+                                                               <!-- new 
required fields -->
+                                                               <input 
type="hidden" value="@gateway" name="gateway"/>
+                                                               <!-- required 
fields for bt and dd -->
+                                                               <input 
type="hidden" value="dd" name="payment_method"/>
+                                                               <input 
type="hidden" value="dd_nl" name="payment_submethod"/>
+                                                               <!-- required 
fields omitted above -->
+                                                               <input 
type="hidden" value="XX" name="state"/>
+                                                       </form>
+                                                       <div id="where-content">
+                                                               
{{LanguageSwitch|2011FR/core-appeal-whitebox-nodiv|@language}}
+                                                       </div>
+                                               </div>
+                                       </div>
+                                       <p 
id="informationsharing">%donate_interface-informationsharing|url%</p>
+                                       <table>
+                                               <tr>
+                                                       <td>
+                                                               <ul 
id="moreinfolinks">
+                                                                       <li><a 
href="https://wikimediafoundation.org/wiki/Special:LandingCheck?basic=true&landing_page=Monthly_donations&language=@language&uselang=@language&country=@country";>%donate_interface-monthly-donation%</a></li>
+                                                                       <li><a 
href="https://wikimediafoundation.org/wiki/Special:LandingCheck?basic=true&landing_page=Ways_to_Give&language=@language&uselang=@language&country=@country";>%donate_interface-otherways-short%</a></li>
+                                                                       <li><a 
href="https://wikimediafoundation.org/wiki/Special:LandingCheck?basic=true&landing_page=FAQ&language=@language&uselang=@language&country=@country";>%donate_interface-faqs%</a></li>
+                                                                       <li><a 
href="https://wikimediafoundation.org/wiki/Special:LandingCheck?basic=true&landing_page=Tax_Deductibility&language=@language&uselang=@language&country=@country";>%donate_interface-tax-info%</a></li>
+                                                               </ul>
+                                                       </td>
+                                                       <td>@verisign_logo</td>
+                                               </tr>
+                                       </table>
+                               </div>
+                       </td>
+               </tr>
+       </table>
+
+
+
+</div>
+
+<!-- Wikimedia Project logo
+<li id="footer-copyrightico"><a href="//wikimediafoundation.org/"><img 
src="//bits.wikimedia.org/images/wikimedia-button.png" width="88" height="31" 
alt="Wikimedia Foundation"/></a></li> 
+ -->
diff --git a/globalcollect_gateway/forms/html/ew/ew-alipay.html 
b/globalcollect_gateway/forms/html/ew/ew-alipay.html
index cbc4397..8b34bcc 100644
--- a/globalcollect_gateway/forms/html/ew/ew-alipay.html
+++ b/globalcollect_gateway/forms/html/ew/ew-alipay.html
@@ -3,7 +3,6 @@
        // these must go through RapidHTML and thus are inline
        var amountErrors = 
['#general|escape','#retryMsg|escape','#amount|escape'];
        var billingErrors = 
['#fname|escape','#lname|escape','#city|escape','#country|escape','#street|escape','#state|escape','#zip|escape','#emailAdd|escape'];
-       var paymentErrors = 
['#card_num|escape','#card_type|escape','#cvv|escape'];
        var actionURL = "@action";
        var scriptPath = "@script_path";
 </script>
diff --git a/globalcollect_gateway/forms/html/ew/ew-webmoney.html 
b/globalcollect_gateway/forms/html/ew/ew-webmoney.html
index 928dd90..4c2e3e5 100644
--- a/globalcollect_gateway/forms/html/ew/ew-webmoney.html
+++ b/globalcollect_gateway/forms/html/ew/ew-webmoney.html
@@ -3,7 +3,6 @@
     // these must go through RapidHTML and thus are inline
     var amountErrors = ['#general|escape','#retryMsg|escape','#amount|escape'];
     var billingErrors = 
['#fname|escape','#lname|escape','#city|escape','#country|escape','#street|escape','#state|escape','#zip|escape','#emailAdd|escape'];
-    var paymentErrors = ['#card_num|escape','#card_type|escape','#cvv|escape'];
     var actionURL = "@action";
     var scriptPath = "@script_path";
 </script>
diff --git a/globalcollect_gateway/forms/html/ew/ew-yandex.html 
b/globalcollect_gateway/forms/html/ew/ew-yandex.html
index a83f89f..0a582e9 100644
--- a/globalcollect_gateway/forms/html/ew/ew-yandex.html
+++ b/globalcollect_gateway/forms/html/ew/ew-yandex.html
@@ -3,7 +3,6 @@
        // these must go through RapidHTML and thus are inline
        var amountErrors = 
['#general|escape','#retryMsg|escape','#amount|escape'];
        var billingErrors = 
['#fname|escape','#lname|escape','#city|escape','#country|escape','#street|escape','#state|escape','#zip|escape','#emailAdd|escape'];
-       var paymentErrors = 
['#card_num|escape','#card_type|escape','#cvv|escape'];
        var actionURL = "@action";
        var scriptPath = "@script_path";
 </script>
diff --git a/globalcollect_gateway/forms/html/obt/obt-bpay.html 
b/globalcollect_gateway/forms/html/obt/obt-bpay.html
index 89a14c0..089e69b 100644
--- a/globalcollect_gateway/forms/html/obt/obt-bpay.html
+++ b/globalcollect_gateway/forms/html/obt/obt-bpay.html
@@ -3,7 +3,6 @@
        // these must go through RapidHTML and thus are inline
        var amountErrors = 
["#general|escape",'#retryMsg|escape','#amount|escape'];
        var billingErrors = 
['#fname|escape','#lname|escape','#city|escape','#country|escape','#street|escape','#state|escape','#zip|escape','#emailAdd|escape'];
-       var paymentErrors = 
['#card_num|escape','#card_type|escape','#cvv|escape'];
        var actionURL = "@action";
        var scriptPath = "@script_path";
 </script>
diff --git a/globalcollect_gateway/forms/html/rcc/rcc-vm.html 
b/globalcollect_gateway/forms/html/rcc/rcc-vm.html
index 5c288ff..64765fb 100644
--- a/globalcollect_gateway/forms/html/rcc/rcc-vm.html
+++ b/globalcollect_gateway/forms/html/rcc/rcc-vm.html
@@ -3,7 +3,6 @@
        // these must go through RapidHTML and thus are inline
        var amountErrors = 
['#general|escape','#retryMsg|escape','#amount|escape'];
        var billingErrors = 
['#fname|escape','#lname|escape','#city|escape','#country|escape','#street|escape','#state|escape','#zip|escape','#emailAdd|escape'];
-       var paymentErrors = 
['#card_num|escape','#card_type|escape','#cvv|escape'];
        var actionURL = "@action";
        var scriptPath = "@script_path";
 </script>
diff --git a/globalcollect_gateway/forms/html/rcc/rcc-vma.html 
b/globalcollect_gateway/forms/html/rcc/rcc-vma.html
index 2dbe40a..9365f71 100644
--- a/globalcollect_gateway/forms/html/rcc/rcc-vma.html
+++ b/globalcollect_gateway/forms/html/rcc/rcc-vma.html
@@ -3,7 +3,6 @@
        // these must go through RapidHTML and thus are inline
        var amountErrors = 
['#general|escape','#retryMsg|escape','#amount|escape'];
        var billingErrors = 
['#fname|escape','#lname|escape','#city|escape','#country|escape','#street|escape','#state|escape','#zip|escape','#emailAdd|escape'];
-       var paymentErrors = 
['#card_num|escape','#card_type|escape','#cvv|escape'];
        var actionURL = "@action";
        var scriptPath = "@script_path";
 </script>
diff --git a/globalcollect_gateway/forms/html/rcc/rcc-vmad.html 
b/globalcollect_gateway/forms/html/rcc/rcc-vmad.html
index 700a495..b3571c3 100644
--- a/globalcollect_gateway/forms/html/rcc/rcc-vmad.html
+++ b/globalcollect_gateway/forms/html/rcc/rcc-vmad.html
@@ -3,7 +3,6 @@
        // these must go through RapidHTML and thus are inline
        var amountErrors = 
['#general|escape','#retryMsg|escape','#amount|escape'];
        var billingErrors = 
['#fname|escape','#lname|escape','#city|escape','#country|escape','#street|escape','#state|escape','#zip|escape','#emailAdd|escape'];
-       var paymentErrors = 
['#card_num|escape','#card_type|escape','#cvv|escape'];
        var actionURL = "@action";
        var scriptPath = "@script_path";
 </script>
diff --git a/globalcollect_gateway/forms/html/rcc/rcc-vmaj.html 
b/globalcollect_gateway/forms/html/rcc/rcc-vmaj.html
index d818690..783f2e3 100644
--- a/globalcollect_gateway/forms/html/rcc/rcc-vmaj.html
+++ b/globalcollect_gateway/forms/html/rcc/rcc-vmaj.html
@@ -3,7 +3,6 @@
        // these must go through RapidHTML and thus are inline
        var amountErrors = 
['#general|escape','#retryMsg|escape','#amount|escape'];
        var billingErrors = 
['#fname|escape','#lname|escape','#city|escape','#country|escape','#street|escape','#state|escape','#zip|escape','#emailAdd|escape'];
-       var paymentErrors = 
['#card_num|escape','#card_type|escape','#cvv|escape'];
        var actionURL = "@action";
        var scriptPath = "@script_path";
 </script>
diff --git a/globalcollect_gateway/forms/html/rcc/rcc-vmd.html 
b/globalcollect_gateway/forms/html/rcc/rcc-vmd.html
index e7b1c3a..0b17470 100644
--- a/globalcollect_gateway/forms/html/rcc/rcc-vmd.html
+++ b/globalcollect_gateway/forms/html/rcc/rcc-vmd.html
@@ -3,7 +3,6 @@
        // these must go through RapidHTML and thus are inline
        var amountErrors = 
['#general|escape','#retryMsg|escape','#amount|escape'];
        var billingErrors = 
['#fname|escape','#lname|escape','#city|escape','#country|escape','#street|escape','#state|escape','#zip|escape','#emailAdd|escape'];
-       var paymentErrors = 
['#card_num|escape','#card_type|escape','#cvv|escape'];
        var actionURL = "@action";
        var scriptPath = "@script_path";
 </script>
diff --git a/globalcollect_gateway/forms/html/rcc/rcc-vmj.html 
b/globalcollect_gateway/forms/html/rcc/rcc-vmj.html
index c82882e..9c1eaf2 100644
--- a/globalcollect_gateway/forms/html/rcc/rcc-vmj.html
+++ b/globalcollect_gateway/forms/html/rcc/rcc-vmj.html
@@ -3,7 +3,6 @@
        // these must go through RapidHTML and thus are inline
        var amountErrors = 
['#general|escape','#retryMsg|escape','#amount|escape'];
        var billingErrors = 
['#fname|escape','#lname|escape','#city|escape','#country|escape','#street|escape','#state|escape','#zip|escape','#emailAdd|escape'];
-       var paymentErrors = 
['#card_num|escape','#card_type|escape','#cvv|escape'];
        var actionURL = "@action";
        var scriptPath = "@script_path";
 </script>
diff --git a/globalcollect_gateway/forms/html/rcc/rcc.html 
b/globalcollect_gateway/forms/html/rcc/rcc.html
index 3c376d2..f30301c 100644
--- a/globalcollect_gateway/forms/html/rcc/rcc.html
+++ b/globalcollect_gateway/forms/html/rcc/rcc.html
@@ -3,7 +3,6 @@
        // these must go through RapidHTML and thus are inline
        var amountErrors = 
['#general|escape','#retryMsg|escape','#amount|escape'];
        var billingErrors = 
['#fname|escape','#lname|escape','#city|escape','#country|escape','#street|escape','#state|escape','#zip|escape','#emailAdd|escape'];
-       var paymentErrors = 
['#card_num|escape','#card_type|escape','#cvv|escape'];
        var actionURL = "@action";
        var scriptPath = "@script_path";
 </script>
diff --git a/globalcollect_gateway/forms/html/rtbt/rtbt-enets.html 
b/globalcollect_gateway/forms/html/rtbt/rtbt-enets.html
index 3ba8897..6296713 100644
--- a/globalcollect_gateway/forms/html/rtbt/rtbt-enets.html
+++ b/globalcollect_gateway/forms/html/rtbt/rtbt-enets.html
@@ -3,7 +3,6 @@
        // these must go through RapidHTML and thus are inline
        var amountErrors = 
["#general|escape",'#retryMsg|escape','#amount|escape'];
        var billingErrors = 
['#fname|escape','#lname|escape','#city|escape','#country|escape','#street|escape','#state|escape','#zip|escape','#emailAdd|escape'];
-       var paymentErrors = 
['#card_num|escape','#card_type|escape','#cvv|escape'];
        var actionURL = "@action";
        var scriptPath = "@script_path";
 </script>
diff --git a/globalcollect_gateway/forms/html/rtbt/rtbt-eps.html 
b/globalcollect_gateway/forms/html/rtbt/rtbt-eps.html
index 9737b13..7d30c9f 100644
--- a/globalcollect_gateway/forms/html/rtbt/rtbt-eps.html
+++ b/globalcollect_gateway/forms/html/rtbt/rtbt-eps.html
@@ -3,7 +3,6 @@
        // these must go through RapidHTML and thus are inline
        var amountErrors = 
["#general|escape",'#retryMsg|escape','#amount|escape'];
        var billingErrors = 
['#fname|escape','#lname|escape','#city|escape','#country|escape','#street|escape','#state|escape','#zip|escape','#emailAdd|escape'];
-       var paymentErrors = 
['#card_num|escape','#card_type|escape','#cvv|escape'];
        var actionURL = "@action";
        var scriptPath = "@script_path";
 </script>
diff --git a/globalcollect_gateway/forms/html/rtbt/rtbt-ideal-noadd.html 
b/globalcollect_gateway/forms/html/rtbt/rtbt-ideal-noadd.html
index 0205d0e..a9a5369 100644
--- a/globalcollect_gateway/forms/html/rtbt/rtbt-ideal-noadd.html
+++ b/globalcollect_gateway/forms/html/rtbt/rtbt-ideal-noadd.html
@@ -3,7 +3,6 @@
        // these must go through RapidHTML and thus are inline
        var amountErrors = 
["#general|escape",'#retryMsg|escape','#amount|escape'];
        var billingErrors = 
['#fname|escape','#lname|escape','#city|escape','#country|escape','#street|escape','#state|escape','#zip|escape','#emailAdd|escape'];
-       var paymentErrors = 
['#card_num|escape','#card_type|escape','#cvv|escape'];
        var actionURL = "@action";
        var scriptPath = "@script_path";
 </script>
diff --git a/globalcollect_gateway/forms/html/rtbt/rtbt-ideal.html 
b/globalcollect_gateway/forms/html/rtbt/rtbt-ideal.html
index 70c08cf..c979aec 100644
--- a/globalcollect_gateway/forms/html/rtbt/rtbt-ideal.html
+++ b/globalcollect_gateway/forms/html/rtbt/rtbt-ideal.html
@@ -3,7 +3,6 @@
        // these must go through RapidHTML and thus are inline
        var amountErrors = 
["#general|escape",'#retryMsg|escape','#amount|escape'];
        var billingErrors = 
['#fname|escape','#lname|escape','#city|escape','#country|escape','#street|escape','#state|escape','#zip|escape','#emailAdd|escape'];
-       var paymentErrors = 
['#card_num|escape','#card_type|escape','#cvv|escape'];
        var actionURL = "@action";
        var scriptPath = "@script_path";
 </script>
@@ -150,4 +149,4 @@
 
 <!-- Wikimedia Project logo
 <li id="footer-copyrightico"><a href="//wikimediafoundation.org/"><img 
src="//bits.wikimedia.org/images/wikimedia-button.png" width="88" height="31" 
alt="Wikimedia Foundation"/></a></li> 
- -->
\ No newline at end of file
+ -->
diff --git a/globalcollect_gateway/forms/html/rtbt/rtbt-sofo-GB.html 
b/globalcollect_gateway/forms/html/rtbt/rtbt-sofo-GB.html
index 4cd1f9f..9369c7c 100644
--- a/globalcollect_gateway/forms/html/rtbt/rtbt-sofo-GB.html
+++ b/globalcollect_gateway/forms/html/rtbt/rtbt-sofo-GB.html
@@ -3,7 +3,6 @@
        // these must go through RapidHTML and thus are inline
        var amountErrors = 
["#general|escape",'#retryMsg|escape','#amount|escape'];
        var billingErrors = 
['#fname|escape','#lname|escape','#city|escape','#country|escape','#street|escape','#state|escape','#zip|escape','#emailAdd|escape'];
-       var paymentErrors = 
['#card_num|escape','#card_type|escape','#cvv|escape'];
        var actionURL = "@action";
        var scriptPath = "@script_path";
 </script>
diff --git a/globalcollect_gateway/forms/html/rtbt/rtbt-sofo.html 
b/globalcollect_gateway/forms/html/rtbt/rtbt-sofo.html
index 304e74f..797102a 100644
--- a/globalcollect_gateway/forms/html/rtbt/rtbt-sofo.html
+++ b/globalcollect_gateway/forms/html/rtbt/rtbt-sofo.html
@@ -3,7 +3,6 @@
        // these must go through RapidHTML and thus are inline
        var amountErrors = 
["#general|escape",'#retryMsg|escape','#amount|escape'];
        var billingErrors = 
['#fname|escape','#lname|escape','#city|escape','#country|escape','#street|escape','#state|escape','#zip|escape','#emailAdd|escape'];
-       var paymentErrors = 
['#card_num|escape','#card_type|escape','#cvv|escape'];
        var actionURL = "@action";
        var scriptPath = "@script_path";
 </script>
diff --git a/globalcollect_gateway/forms/html/webitects2nd-AU.html 
b/globalcollect_gateway/forms/html/webitects2nd-AU.html
index ba155ba..fc4c789 100644
--- a/globalcollect_gateway/forms/html/webitects2nd-AU.html
+++ b/globalcollect_gateway/forms/html/webitects2nd-AU.html
@@ -3,7 +3,6 @@
        // these must go through RapidHTML and thus are inline
        var amountErrors = 
['#general|escape','#retryMsg|escape','#amount|escape'];
        var billingErrors = 
['#fname|escape','#lname|escape','#city|escape','#country|escape','#street|escape','#state|escape','#zip|escape','#emailAdd|escape'];
-       var paymentErrors = 
['#card_num|escape','#card_type|escape','#cvv|escape'];
        var actionURL = "@action";
        var scriptPath = "@script_path";
 </script>
diff --git a/globalcollect_gateway/forms/html/webitects2nd-US.html 
b/globalcollect_gateway/forms/html/webitects2nd-US.html
index 75f0b84..d3dc9ce 100644
--- a/globalcollect_gateway/forms/html/webitects2nd-US.html
+++ b/globalcollect_gateway/forms/html/webitects2nd-US.html
@@ -3,7 +3,6 @@
        // these must go through RapidHTML and thus are inline
        var amountErrors = 
['#general|escape','#retryMsg|escape','#amount|escape'];
        var billingErrors = 
['#fname|escape','#lname|escape','#city|escape','#country|escape','#street|escape','#state|escape','#zip|escape','#emailAdd|escape'];
-       var paymentErrors = 
['#card_num|escape','#card_type|escape','#cvv|escape'];
        var actionURL = "@action";
        var scriptPath = "@script_path";
 </script>
diff --git a/globalcollect_gateway/forms/html/webitects2nd-amex.html 
b/globalcollect_gateway/forms/html/webitects2nd-amex.html
index 9f986c2..06d0cf2 100644
--- a/globalcollect_gateway/forms/html/webitects2nd-amex.html
+++ b/globalcollect_gateway/forms/html/webitects2nd-amex.html
@@ -3,7 +3,6 @@
        // these must go through RapidHTML and thus are inline
        var amountErrors = 
['#general|escape','#retryMsg|escape','#amount|escape'];
        var billingErrors = 
['#fname|escape','#lname|escape','#city|escape','#country|escape','#street|escape','#state|escape','#zip|escape','#emailAdd|escape'];
-       var paymentErrors = 
['#card_num|escape','#card_type|escape','#cvv|escape'];
        var actionURL = "@action";
        var scriptPath = "@script_path";
 </script>
diff --git a/globalcollect_gateway/forms/html/webitects2nd.html 
b/globalcollect_gateway/forms/html/webitects2nd.html
index aa0d9be..16ff738 100644
--- a/globalcollect_gateway/forms/html/webitects2nd.html
+++ b/globalcollect_gateway/forms/html/webitects2nd.html
@@ -3,7 +3,6 @@
        // these must go through RapidHTML and thus are inline
        var amountErrors = 
['#general|escape','#retryMsg|escape','#amount|escape'];
        var billingErrors = 
['#fname|escape','#lname|escape','#city|escape','#country|escape','#street|escape','#state|escape','#zip|escape','#emailAdd|escape'];
-       var paymentErrors = 
['#card_num|escape','#card_type|escape','#cvv|escape'];
        var actionURL = "@action";
        var scriptPath = "@script_path";
 </script>
diff --git a/globalcollect_gateway/forms/html/webitects2nd_green-US.html 
b/globalcollect_gateway/forms/html/webitects2nd_green-US.html
index e1feb9f..dde04c8 100644
--- a/globalcollect_gateway/forms/html/webitects2nd_green-US.html
+++ b/globalcollect_gateway/forms/html/webitects2nd_green-US.html
@@ -3,7 +3,6 @@
        // these must go through RapidHTML and thus are inline
        var amountErrors = 
['#general|escape','#retryMsg|escape','#amount|escape'];
        var billingErrors = 
['#fname|escape','#lname|escape','#city|escape','#country|escape','#street|escape','#state|escape','#zip|escape','#emailAdd|escape'];
-       var paymentErrors = 
['#card_num|escape','#card_type|escape','#cvv|escape'];
        var actionURL = "@action";
        var scriptPath = "@script_path";
 </script>
diff --git a/globalcollect_gateway/forms/html/webitects_2_3step-CA.html 
b/globalcollect_gateway/forms/html/webitects_2_3step-CA.html
index 72157a0..020d05c 100644
--- a/globalcollect_gateway/forms/html/webitects_2_3step-CA.html
+++ b/globalcollect_gateway/forms/html/webitects_2_3step-CA.html
@@ -3,7 +3,6 @@
        // these must go through RapidHTML and thus are inline
        var amountErrors = 
['#general|escape','#retryMsg|escape','#amount|escape'];
        var billingErrors = 
['#fname|escape','#lname|escape','#city|escape','#country|escape','#street|escape','#state|escape','#zip|escape','#emailAdd|escape'];
-       var paymentErrors = 
['#card_num|escape','#card_type|escape','#cvv|escape'];
        var actionURL = "@action";
        var scriptPath = "@script_path";
 </script>
diff --git a/globalcollect_gateway/forms/html/webitects_2_3step.html 
b/globalcollect_gateway/forms/html/webitects_2_3step.html
index 36e6f2e..6798cdb 100644
--- a/globalcollect_gateway/forms/html/webitects_2_3step.html
+++ b/globalcollect_gateway/forms/html/webitects_2_3step.html
@@ -3,7 +3,6 @@
        // these must go through RapidHTML and thus are inline
        var amountErrors = 
['#general|escape','#retryMsg|escape','#amount|escape'];
        var billingErrors = 
['#fname|escape','#lname|escape','#city|escape','#country|escape','#street|escape','#state|escape','#zip|escape','#emailAdd|escape'];
-       var paymentErrors = 
['#card_num|escape','#card_type|escape','#cvv|escape'];
        var actionURL = "@action";
        var scriptPath = "@script_path";
 </script>
diff --git a/globalcollect_gateway/forms/html/webitects_2_3stepB-US.html 
b/globalcollect_gateway/forms/html/webitects_2_3stepB-US.html
index 0d3dd35..36ffeda 100644
--- a/globalcollect_gateway/forms/html/webitects_2_3stepB-US.html
+++ b/globalcollect_gateway/forms/html/webitects_2_3stepB-US.html
@@ -3,7 +3,6 @@
        // these must go through RapidHTML and thus are inline
        var amountErrors = 
['#general|escape','#retryMsg|escape','#amount|escape'];
        var billingErrors = 
['#fname|escape','#lname|escape','#city|escape','#country|escape','#street|escape','#state|escape','#zip|escape','#emailAdd|escape'];
-       var paymentErrors = 
['#card_num|escape','#card_type|escape','#cvv|escape'];
        var actionURL = "@action";
        var scriptPath = "@script_path";
 </script>
diff --git a/globalcollect_gateway/forms/js/gc.js 
b/globalcollect_gateway/forms/js/gc.js
index 08d0c1c..7d868d5 100644
--- a/globalcollect_gateway/forms/js/gc.js
+++ b/globalcollect_gateway/forms/js/gc.js
@@ -48,7 +48,7 @@
                country: country,
                payment_method: 'cc',
                language: language,
-               card_type: $( 'input[name="cardtype"]:checked' 
).val().toLowerCase(),
+               payment_submethod: $( 'input[name="cardtype"]:checked' 
).val().toLowerCase(),
                contribution_tracking_id: $( 
'input[name="contribution_tracking_id"]' ).val(),
                utm_source: $( 'input[name="utm_source"]' ).val(),
                utm_campaign: $( 'input[name="utm_campaign"]' ).val(),
diff --git a/globalcollect_gateway/forms/js/webitects.js 
b/globalcollect_gateway/forms/js/webitects.js
index 76079c0..84481f4 100644
--- a/globalcollect_gateway/forms/js/webitects.js
+++ b/globalcollect_gateway/forms/js/webitects.js
@@ -53,7 +53,7 @@
                country: country,
                payment_method: 'cc',
                language: language,
-               card_type: $( 'input[name="cardtype"]:checked' 
).val().toLowerCase(),
+               payment_submethod: $( 'input[name="cardtype"]:checked' 
).val().toLowerCase(),
                contribution_tracking_id: $( 
'input[name="contribution_tracking_id"]' ).val(),
                utm_source: $( 'input[name="utm_source"]' ).val(),
                utm_campaign: $( 'input[name="utm_campaign"]' ).val(),
diff --git a/globalcollect_gateway/globalcollect.adapter.php 
b/globalcollect_gateway/globalcollect.adapter.php
index 65cd188..3679e4c 100644
--- a/globalcollect_gateway/globalcollect.adapter.php
+++ b/globalcollect_gateway/globalcollect.adapter.php
@@ -135,14 +135,8 @@
                        //'CUSTOMERBANKZIP'             => 'customer_bank_zip'  
        AN10
                        'customer_bank_zip'             => array( 'type' => 
'alphanumeric',             'length' => 10, ),
 
-                       //'CREDITCARDNUMBER'    => 'card_num'                   
        N19
-                       'card_num'                              => array( 
'type' => 'numeric',                  'length' => 19, ),
-
                        //'CURRENCYCODE'                => 'currency_code'      
                AN3
                        'currency_code'                 => array( 'type' => 
'alphanumeric',             'length' => 3, ),
-
-                       //'CVV'                                 => 'cvv'        
                                N4
-                       'cvv'                                   => array( 
'type' => 'numeric',                  'length' => 4, ),
 
                        //'DATECOLLECT'                 => 'date_collect'       
                D8      YYYYMMDD
                        'date_collect'                  => array( 'type' => 
'date',                             'length' => 8, ),
@@ -158,9 +152,6 @@
 
                        //'EMAIL'                               => 'email'      
                                AN70
                        'email'                                 => array( 
'type' => 'alphanumeric',             'length' => 70, ),
-
-                       //'EXPIRYDATE'                  => 'expiration'         
                N4      MMYY
-                       'expiration'                    => array( 'type' => 
'numeric',                  'length' => 4, ),
 
                        //'FIRSTNAME'                   => 'fname'              
                        AN15
                        'fname'                                 => array( 
'type' => 'alphanumeric',             'length' => 15, ),
@@ -280,7 +271,6 @@
                        'CUSTOMERBANKSTREET'=> 'customer_bank_street', // dd
                        'CUSTOMERBANKNUMBER'=> 'customer_bank_number', // dd
                        'CUSTOMERBANKZIP'       => 'customer_bank_zip', // dd
-                       'CREDITCARDNUMBER'      => 'card_num',
                        'CURRENCYCODE'          => 'currency_code',
                        'CVV'                           => 'cvv',
                        'DATECOLLECT'           => 'date_collect',
@@ -479,9 +469,6 @@
                                                        'COUNTRYCODE',
                                                        'HOSTEDINDICATOR',
                                                        'RETURNURL',
-//                                                     'CVV',
-//                                                     'EXPIRYDATE',
-//                                                     'CREDITCARDNUMBER',
                                                        
'AUTHENTICATIONINDICATOR',
                                                        'FIRSTNAME',
                                                        'SURNAME',
@@ -1908,7 +1895,6 @@
                //OUR field names.
                $this->staged_vars = array(
                        'amount',
-                       //'card_num',
                        'returnto',
                        'payment_method',
                        'payment_submethod',
@@ -2005,26 +1991,15 @@
        }
 
        /**
-        * Stage: card_num
-        */
-       protected function stage_card_num() {
-               if ( array_key_exists( 'card_num', $this->unstaged_data ) ) {
-                       $this->staged_data['card_num'] = str_replace( ' ', '', 
$this->unstaged_data['card_num'] );
-               }
-       }
-
-       /**
         * Stage: payment_product
         * Stages the payment product ID for GC.
         * Not what I had in mind to begin with, but this *completely* blew up.
         */
        public function stage_payment_product() {
-               //cc used to look in card_type, but that's been an alias for 
payment_submethod for a while. DonationData takes care of it.
                $payment_method = array_key_exists( 'payment_method', 
$this->staged_data ) ? $this->staged_data['payment_method'] : false;
                $payment_submethod = array_key_exists( 'payment_submethod', 
$this->staged_data ) ? $this->staged_data['payment_submethod'] : false;
 
                if ( $payment_method === 'cc' ) {
-                       //basically do what used to be stage_card_type.
                        $types = array (
                                'visa' => '1',
                                'amex' => '2',
diff --git a/tests/Adapter/GlobalCollect/GlobalCollectTest.php 
b/tests/Adapter/GlobalCollect/GlobalCollectTest.php
index 24367c1..bc1886a 100644
--- a/tests/Adapter/GlobalCollect/GlobalCollectTest.php
+++ b/tests/Adapter/GlobalCollect/GlobalCollectTest.php
@@ -264,9 +264,6 @@
                        'IPADDRESS' => 'server_ip',
                        'ISSUERID' => 'issuer_id',
                        'PAYMENTPRODUCTID' => 'payment_product',
-                       'CVV' => 'cvv',
-                       'EXPIRYDATE' => 'expiration',
-                       'CREDITCARDNUMBER' => 'card_num',
                        'FIRSTNAME' => 'fname',
                        'SURNAME' => 'lname',
                        'STREET' => 'street',
@@ -397,7 +394,7 @@
                        new FauxRequest( array(
                                'action'=>'donate',
                                'amount'=>'3.00',
-                               'card_type'=>'amex',
+                               'payment_submethod'=>'amex',
                                'city'=>'Hollywood',
                                'contribution_tracking_id'=>'22901382',
                                'country'=>'US',
diff --git a/tests/DonationDataTest.php b/tests/DonationDataTest.php
index b6e8d94..0307a85 100644
--- a/tests/DonationDataTest.php
+++ b/tests/DonationDataTest.php
@@ -48,10 +48,6 @@
                        'state' => 'US',
                        'zip' => '99999',
                        'country' => 'US',
-                       'card_num' => '42',
-                       'card_type' => 'visa',
-                       'expiration' => '1138',
-                       'cvv' => '665',
                        'currency_code' => 'USD',
                        'payment_method' => 'cc',
                        'payment_submethod' => 'visa',
@@ -121,10 +117,7 @@
                        'state' => 'CA',
                        'zip' => '94104',
                        'country' => 'US',
-                       'card_num' => '378282246310005',
-                       'card_type' => 'amex',
-                       'expiration' => '0415',
-                       'cvv' => '001',
+                       'payment_submethod' => 'amex',
                        'currency_code' => 'USD',
                        'payment_method' => 'cc',
                        'referrer' => 
'http://www.baz.test.com/index.php?action=foo&amp;action=bar',
@@ -176,10 +169,7 @@
                        'state' => 'CA',
                        'zip' => '94104',
                        'country' => 'US',
-                       'card_num' => '378282246310005',
-                       'card_type' => 'amex',
-                       'expiration' => '0415',
-                       'cvv' => '001',
+                       'payment_submethod' => 'amex',
                        'currency_code' => 'USD',
                        'payment_method' => 'cc',
                        'referrer' => 
'http://www.baz.test.com/index.php?action=foo&amp;action=bar',
diff --git a/worldpay_gateway/forms/html/worldpay-dd-test.html 
b/worldpay_gateway/forms/html/worldpay-dd-test.html
index 08a4ee1..97912ce 100644
--- a/worldpay_gateway/forms/html/worldpay-dd-test.html
+++ b/worldpay_gateway/forms/html/worldpay-dd-test.html
@@ -14,7 +14,6 @@
                '#fname|escape', '#lname|escape', '#city|escape', 
'#country|escape', '#street|escape',
                '#state|escape', '#zip|escape', '#emailAdd|escape'
        ];
-       var paymentErrors = ['#card_num|escape', '#card_type|escape', 
'#cvv|escape'];
        var actionURL = "@action";
        var scriptPath = "@script_path";
 </script>
diff --git a/worldpay_gateway/forms/html/worldpay-test.html 
b/worldpay_gateway/forms/html/worldpay-test.html
index dd3ed67..3984fbf 100644
--- a/worldpay_gateway/forms/html/worldpay-test.html
+++ b/worldpay_gateway/forms/html/worldpay-test.html
@@ -14,7 +14,6 @@
                '#fname|escape', '#lname|escape', '#city|escape', 
'#country|escape', '#street|escape',
                '#state|escape', '#zip|escape', '#emailAdd|escape'
        ];
-       var paymentErrors = ['#card_num|escape', '#card_type|escape', 
'#cvv|escape'];
        var actionURL = "@action";
        var scriptPath = "@script_path";
 </script>
diff --git a/worldpay_gateway/forms/html/worldpay.html 
b/worldpay_gateway/forms/html/worldpay.html
index c27d055..7b95a4e 100644
--- a/worldpay_gateway/forms/html/worldpay.html
+++ b/worldpay_gateway/forms/html/worldpay.html
@@ -14,7 +14,6 @@
                '#fname|escape', '#lname|escape', '#city|escape', 
'#country|escape', '#street|escape',
                '#state|escape', '#zip|escape', '#emailAdd|escape'
        ];
-       var paymentErrors = ['#card_num|escape', '#card_type|escape', 
'#cvv|escape'];
        var actionURL = "@action";
        var scriptPath = "@script_path";
 </script>

-- 
To view, visit https://gerrit.wikimedia.org/r/200094
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I98c8d4054ba88eaee7f6f5c1a074c3a739bb1062
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/DonationInterface
Gerrit-Branch: master
Gerrit-Owner: Awight <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to