Commit 229159bf authored by colemanw's avatar colemanw

CRM-17429 - Remove Google Checkout payment processor

parent f8cb50f0
......@@ -478,56 +478,35 @@ class CRM_Contribute_Form_Contribution_Confirm extends CRM_Contribute_Form_Contr
$this->_params['is_quick_config'] = 1;
}
$this->assign('priceSetID', $this->_priceSetId);
$paymentProcessorType = CRM_Core_PseudoConstant::paymentProcessorType(FALSE, NULL, 'name');
if ($this->_paymentProcessor &&
$this->_paymentProcessor['payment_processor_type_id'] == CRM_Utils_Array::key('Google_Checkout', $paymentProcessorType)
&& !$this->_params['is_pay_later'] && !($this->_amount == 0)
) {
$this->_checkoutButtonName = $this->getButtonName('next', 'checkout');
$this->add('image',
$this->_checkoutButtonName,
$this->_paymentProcessor['url_button'],
array('class' => 'crm-form-submit')
);
$this->addButtons(array(
array(
'type' => 'back',
'name' => ts('Go Back'),
),
)
);
// The concept of contributeMode is deprecated.
// the is_monetary concept probably should be too as it can be calculated from
// the existence of 'amount' & seems fragile.
if ($this->_contributeMode == 'notify' || !$this->_values['is_monetary'] ||
$this->_amount <= 0.0 || $this->_params['is_pay_later'] ||
($this->_separateMembershipPayment && $this->_amount <= 0.0)
) {
$contribButton = ts('Continue');
$this->assign('button', ts('Continue'));
}
else {
// The concept of contributeMode is deprecated.
// the is_monetary concept probably should be too as it can be calculated from
// the existence of 'amount' & seems fragile.
if ($this->_contributeMode == 'notify' || !$this->_values['is_monetary'] ||
$this->_amount <= 0.0 || $this->_params['is_pay_later'] ||
($this->_separateMembershipPayment && $this->_amount <= 0.0)
) {
$contribButton = ts('Continue');
$this->assign('button', ts('Continue'));
}
else {
$contribButton = ts('Make Contribution');
$this->assign('button', ts('Make Contribution'));
}
$this->addButtons(array(
array(
'type' => 'next',
'name' => $contribButton,
'spacing' => '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;',
'isDefault' => TRUE,
'js' => array('onclick' => "return submitOnce(this,'" . $this->_name . "','" . ts('Processing') . "');"),
),
array(
'type' => 'back',
'name' => ts('Go Back'),
),
)
);
}
$contribButton = ts('Make Contribution');
$this->assign('button', ts('Make Contribution'));
}
$this->addButtons(array(
array(
'type' => 'next',
'name' => $contribButton,
'spacing' => '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;',
'isDefault' => TRUE,
'js' => array('onclick' => "return submitOnce(this,'" . $this->_name . "','" . ts('Processing') . "');"),
),
array(
'type' => 'back',
'name' => ts('Go Back'),
),
)
);
$defaults = array();
$fields = array_fill_keys(array_keys($this->_fields), 1);
......
......@@ -401,10 +401,6 @@ SELECT id
'payment_processor_type_id'
);
$paymentProcessorType = CRM_Core_PseudoConstant::paymentProcessorType(FALSE, $paymentProcessorTypeId, 'name');
if ($paymentProcessorType == 'Google_Checkout') {
$errors['is_recur_interval'] = ts('Google Checkout does not support recurring intervals');
break;
}
}
}
......
This diff is collapsed.
This diff is collapsed.
......@@ -304,44 +304,20 @@ class CRM_Event_Form_Registration_Confirm extends CRM_Event_Form_Registration {
//consider total amount.
$this->assign('isAmountzero', ($this->_totalAmount <= 0) ? TRUE : FALSE);
// @todo this needs to GO! We are getting rid of references to processor types in the code base in favour of
// over-ride-able functions on them.
// The processor effectively has a 'buildForm' hook it can use if it needs to.
// The tricky thing is that we have no way of testing this code out - perhaps it hasn't worked for years!
if ($this->_paymentProcessor['payment_processor_type'] == 'Google_Checkout' && empty($this->_params[0]['is_pay_later']) && !($this->_params[0]['amount'] == 0) &&
!$this->_allowWaitlist && !$this->_requireApproval
) {
$this->_checkoutButtonName = $this->getButtonName('next', 'checkout');
$this->add('image',
$this->_checkoutButtonName,
$this->_paymentProcessor['url_button'],
array('class' => 'crm-form-submit')
);
$this->addButtons(array(
array(
'type' => 'back',
'name' => ts('Go Back'),
),
)
);
}
else {
$contribButton = ts('Continue');
$this->addButtons(array(
array(
'type' => 'back',
'name' => ts('Go Back'),
),
array(
'type' => 'next',
'name' => $contribButton,
'isDefault' => TRUE,
'js' => array('onclick' => "return submitOnce(this,'" . $this->_name . "','" . ts('Processing') . "');"),
),
)
);
}
$contribButton = ts('Continue');
$this->addButtons(array(
array(
'type' => 'back',
'name' => ts('Go Back'),
),
array(
'type' => 'next',
'name' => $contribButton,
'isDefault' => TRUE,
'js' => array('onclick' => "return submitOnce(this,'" . $this->_name . "','" . ts('Processing') . "');"),
),
)
);
$defaults = array();
$fields = array();
......
......@@ -72,40 +72,6 @@ class CiviContributeProcessor {
),
);
static $_googleParamsMapper = array(
//category => array(google_param => civicrm_field);
'contact' => array(
'first-name' => 'first_name',
'last-name' => 'last_name',
'contact-name' => 'display_name',
'email' => 'email',
),
'location' => array(
'address1' => 'street_address',
'address2' => 'supplemental_address_1',
'city' => 'city',
'postal-code' => 'postal_code',
'country-code' => 'country',
),
'transaction' => array(
'total-charge-amount' => 'total_amount',
'google-order-number' => 'trxn_id',
'currency' => 'currency',
'item-name' => 'source',
'item-description' => 'note',
'timestamp' => 'receive_date',
'latest-charge-fee' => 'fee_amount',
'net-amount' => 'net_amount',
'times' => 'installments',
'period' => 'frequency_unit',
'frequency_interval' => 'frequency_interval',
'start_date' => 'start_date',
'modified_date' => 'modified_date',
'trxn_type' => 'trxn_type',
'amount' => 'amount',
),
);
static $_csvParamsMapper = array(
// Note: if csv header is not present in the mapper, header itself
// is considered as a civicrm field.
......@@ -239,82 +205,6 @@ class CiviContributeProcessor {
} while ($result['l_errorcode0'] == '11002');
}
/**
* @param $paymentProcessor
* @param $paymentMode
* @param $start
* @param $end
*/
public static function google($paymentProcessor, $paymentMode, $start, $end) {
require_once "CRM/Contribute/BAO/Contribution/Utils.php";
require_once 'CRM/Core/Payment/Google.php';
$nextPageToken = TRUE;
$searchParams = array(
'start' => $start,
'end' => $end,
'notification-types' => array('charge-amount'),
);
$response = CRM_Core_Payment_Google::invokeAPI($paymentProcessor, $searchParams);
while ($nextPageToken) {
if ($response[0] == 'error') {
CRM_Core_Error::debug_log_message("GOOGLE ERROR: " .
$response[1]['error']['error-message']['VALUE'], TRUE
);
}
$nextPageToken = isset($response[1][$response[0]]['next-page-token']['VALUE']) ? $response[1][$response[0]]['next-page-token']['VALUE'] : FALSE;
if (is_array($response[1][$response[0]]['notifications']['charge-amount-notification'])) {
if (array_key_exists('google-order-number',
$response[1][$response[0]]['notifications']['charge-amount-notification']
)) {
// sometimes 'charge-amount-notification' itself is an absolute
// array and not array of arrays. This is the case when there is only one
// charge-amount-notification. Hack for this special case -
$chrgAmt = $response[1][$response[0]]['notifications']['charge-amount-notification'];
unset($response[1][$response[0]]['notifications']['charge-amount-notification']);
$response[1][$response[0]]['notifications']['charge-amount-notification'][] = $chrgAmt;
}
foreach ($response[1][$response[0]]['notifications']['charge-amount-notification'] as $amtData) {
$searchParams = array(
'order-numbers' => array($amtData['google-order-number']['VALUE']),
'notification-types' => array('risk-information', 'new-order', 'charge-amount'),
);
$response = CRM_Core_Payment_Google::invokeAPI($paymentProcessor,
$searchParams
);
// append amount information as well
$response[] = $amtData;
$params = self::formatAPIParams($response,
self::$_googleParamsMapper,
'google'
);
if ($paymentMode == 'test') {
$params['transaction']['is_test'] = 1;
}
else {
$params['transaction']['is_test'] = 0;
}
if (self::processAPIContribution($params)) {
CRM_Core_Error::debug_log_message("Processed - {$params['email']}, {$amtData['total-charge-amount']['VALUE']}, {$amtData['google-order-number']['VALUE']} ..<p>", TRUE);
}
else {
CRM_Core_Error::debug_log_message("Skipped - {$params['email']}, {$amtData['total-charge-amount']['VALUE']}, {$amtData['google-order-number']['VALUE']} ..<p>", TRUE);
}
}
if ($nextPageToken) {
$searchParams = array('next-page-token' => $nextPageToken);
$response = CRM_Core_Payment_Google::invokeAPI($paymentProcessor, $searchParams);
}
}
}
}
public static function csv() {
$csvFile = '/home/deepak/Desktop/crm-4247.csv';
$delimiter = ";";
......@@ -365,7 +255,6 @@ class CiviContributeProcessor {
switch ($type) {
case 'paypal':
case 'google':
$start = CRM_Utils_Request::retrieve('start', 'String',
CRM_Core_DAO::$_nullObject, FALSE, 31, 'REQUEST'
);
......@@ -410,7 +299,6 @@ class CiviContributeProcessor {
if (!in_array($type, array(
'paypal',
'google',
'csv',
))
) {
......@@ -508,98 +396,6 @@ class CiviContributeProcessor {
return $params;
}
if ($type == 'google') {
// return if response smell invalid
if (!array_key_exists('risk-information-notification', $apiParams[1][$apiParams[0]]['notifications'])) {
return FALSE;
}
$riskInfo = &$apiParams[1][$apiParams[0]]['notifications']['risk-information-notification'];
if (array_key_exists('new-order-notification', $apiParams[1][$apiParams[0]]['notifications'])) {
$newOrder = &$apiParams[1][$apiParams[0]]['notifications']['new-order-notification'];
}
if ($riskInfo['google-order-number']['VALUE'] == $apiParams[2]['google-order-number']['VALUE']) {
foreach ($riskInfo['risk-information']['billing-address'] as $field => $info) {
if (!empty($mapper['location'][$field])) {
$params['address'][1][$mapper['location'][$field]] = $info['VALUE'];
}
elseif (!empty($mapper['contact'][$field])) {
if ($newOrder && !empty($newOrder['buyer-billing-address']['structured-name'])) {
foreach ($newOrder['buyer-billing-address']['structured-name'] as $namePart => $nameValue) {
$params[$mapper['contact'][$namePart]] = $nameValue['VALUE'];
}
}
else {
$params[$mapper['contact'][$field]] = $info['VALUE'];
}
}
elseif (!empty($mapper['transaction'][$field])) {
$transaction[$mapper['transaction'][$field]] = $info['VALUE'];
}
}
// Response is an huge array. Lets pickup only those which we ineterested in
// using a local mapper, rather than traversing the entire array.
$localMapper = array(
'google-order-number' => $riskInfo['google-order-number']['VALUE'],
'total-charge-amount' => $apiParams[2]['total-charge-amount']['VALUE'],
'currency' => $apiParams[2]['total-charge-amount']['currency'],
'item-name' => $newOrder['shopping-cart']['items']['item']['item-name']['VALUE'],
'timestamp' => $apiParams[2]['timestamp']['VALUE'],
);
if (array_key_exists('latest-charge-fee', $apiParams[2])) {
$localMapper['latest-charge-fee'] = $apiParams[2]['latest-charge-fee']['total']['VALUE'];
$localMapper['net-amount'] = $localMapper['total-charge-amount'] - $localMapper['latest-charge-fee'];
}
// This is a subscription (recurring) donation.
if (array_key_exists('subscription', $newOrder['shopping-cart']['items']['item'])) {
$subscription = $newOrder['shopping-cart']['items']['item']['subscription'];
$localMapper['amount'] = $newOrder['order-total']['VALUE'];
$localMapper['times'] = $subscription['payments']['subscription-payment']['times'];
// Convert Google's period to one compatible with the CiviCRM db field.
$freqUnits = array(
'DAILY' => 'day',
'WEEKLY' => 'week',
'MONHTLY' => 'month',
'YEARLY' => 'year',
);
$localMapper['period'] = $freqUnits[$subscription['period']];
// Unlike PayPal, Google has no concept of freq. interval, it is always 1.
$localMapper['frequency_interval'] = '1';
// Google Checkout dates are in ISO-8601 format. We need a format that
// MySQL likes
$unix_timestamp = strtotime($localMapper['timestamp']);
$mysql_date = date('YmdHis', $unix_timestamp);
$localMapper['modified_date'] = $mysql_date;
$localMapper['start_date'] = $mysql_date;
// This is PayPal's nomenclature, but just use it for Google as well since
// we act on the value of trxn_type in processAPIContribution().
$localMapper['trxn_type'] = 'subscrpayment';
}
foreach ($localMapper as $localKey => $localVal) {
if (!empty($mapper['transaction'][$localKey])) {
$transaction[$mapper['transaction'][$localKey]] = $localVal;
}
}
if (empty($params) && empty($transaction)) {
continue;
}
if (!empty($transaction) && $category) {
$params['transaction'] = $transaction;
}
else {
$params += $transaction;
}
CRM_Contribute_BAO_Contribution_Utils::_fillCommonParams($params, $type);
}
return $params;
}
}
/**
......
<?php
/*
+--------------------------------------------------------------------+
| CiviCRM version 4.7 |
+--------------------------------------------------------------------+
| Copyright CiviCRM LLC (c) 2004-2015 |
+--------------------------------------------------------------------+
| This file is a part of CiviCRM. |
| |
| CiviCRM is free software; you can copy, modify, and distribute it |
| under the terms of the GNU Affero General Public License |
| Version 3, 19 November 2007 and the CiviCRM Licensing Exception. |
| |
| CiviCRM is distributed in the hope that it will be useful, but |
| WITHOUT ANY WARRANTY; without even the implied warranty of |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
| See the GNU Affero General Public License for more details. |
| |
| You should have received a copy of the GNU Affero General Public |
| License and the CiviCRM Licensing Exception along |
| with this program; if not, contact CiviCRM LLC |
| at info[AT]civicrm[DOT]org. If you have questions about the |
| GNU Affero General Public License or the licensing of CiviCRM, |
| see the CiviCRM license FAQ at http://civicrm.org/licensing |
+--------------------------------------------------------------------+
*/
/**
* @package CRM
* @copyright CiviCRM LLC (c) 2004-2015
* $Id$
*/
if (defined('PANTHEON_ENVIRONMENT')) {
ini_set('session.save_handler', 'files');
}
session_start();
require_once '../civicrm.config.php';
$config = CRM_Core_Config::singleton();
$log = new CRM_Utils_SystemLogger();
$log->alert('payment_notification processor_name=Google_Checkout', $_REQUEST);
$rawPostData = file_get_contents('php://input');
CRM_Core_Payment_GoogleIPN::main($rawPostData);
......@@ -186,113 +186,6 @@
<p>{ts}The Recurring Payments URL is not currently used.{/ts}</p>
{/htxt}
{htxt id='Google_Checkout-live-user-name'}
<p>{ts}Enter the Merchant ID from your Live account.{/ts}</p>
<p><strong>{ts}How do I Find my Merchant-ID?{/ts}</strong></p>
<p>{ts}After signing in to your account, click on the Settings tab. Then click on the Integration link on the left side of the page. Your 10- or 15-digit Merchant ID and your Merchant Key will both be listed under the Account information header.{/ts}</p>
{/htxt}
{htxt id='Google_Checkout-live-password'}
<p>{ts}Enter the Merchant Key from your Live account.{/ts}</p>
<p><strong>{ts}How do I Find my Merchant Key?{/ts}</strong></p>
<p>{ts}After signing in to your account, click on the Settings tab. Then click on the Integration link on the left side of the page. Your 10- or 15-digit Merchant ID and your Merchant Key will both be listed under the Account information header.{/ts}</p>
{/htxt}
{htxt id='Google_Checkout-test-user-name'}
<p>{ts}Enter the Merchant ID from your Sandbox account.{/ts}</p>
<p><strong>{ts}How do I Find my Merchant-ID?{/ts}</strong></p>
<p>{ts}After signing in to your account, click on the Settings tab. Then click on the Integration link on the left side of the page. Your 10- or 15-digit Merchant ID and your Merchant Key will both be listed under the Account information header.{/ts}</p>
{/htxt}
{htxt id='Google_Checkout-test-password'}
<p>{ts}Enter the Merchant Key from your Sandbox account.{/ts}</p>
<p><strong>{ts}How do I Find my Merchant Key?{/ts}</strong></p>
<p>{ts}After signing in to your account, click on the Settings tab. Then click on the Integration link on the left side of the page. Your 10- or 15-digit Merchant ID and your Merchant Key will both be listed under the Account information header.{/ts}</p>
{/htxt}
{htxt id='Google_Checkout-test-url-site'}
{ts}The URL for Google Checkout's TEST Payment server. Use the default value unless otherwise indicated by Google.{/ts}
{/htxt}
{htxt id='Google_Checkout-live-url-site'}
{ts}The URL for Google Checkout's LIVE Payment server. Use the default value unless otherwise indicated by Google.{/ts}
{/htxt}
{htxt id='Google_Checkout-test-url-button'}
<p>{ts 1=http://sandbox.google.com/checkout/buttons/checkout.gif}The base URL for the <strong>TEST - Image</strong> is: %1{/ts}</p>
<p>{ts}To display an image, you must add several parameters to this URL as name=value pairs.{/ts}</p>
<table>
<tr><th>{ts}Parameters{/ts}</th><th>{ts}Values{/ts}</th><th>{ts}Description{/ts}</th></tr>
<tr>
<td>w</td>
<td>180/168/160 ({ts}large/medium/small{/ts})</td>
<td>{ts}width of the button in pixels{/ts}</td>
</tr>
<tr>
<td>h</td>
<td>46/44/43 ({ts}large/medium/small{/ts})</td>
<td>{ts}height of the button in pixels{/ts}</td>
</tr>
<tr>
<td>style</td>
<td>white/trans..</td>
<td>{ts}background color for the button{/ts}</td>
</tr>
<tr>
<td>variant</td>
<td>text/disabled</td>
<td>{ts}whether the button is clickable or disabled{/ts}</td>
</tr>
<tr>
<td>loc</td>
<td>en_US</td>
<td>{ts}a locale associated with the transaction (optional){/ts}</td>
</tr>
<tr>
<td>merchant_id</td>
<td>{ts 1=1234567890}(e.g %1){/ts}</td>
<td>{ts}Merchant ID{/ts}</td>
</tr>
</table>
<p><strong>{ts}Example of a large Google Checkout button on a white background (For TEST Account):{/ts}</strong></p>
<p>http://sandbox.google.com/checkout/buttons/checkout.gif?merchant_id=1234567890&amp;w=180&amp;h=46&amp;style=white&amp;variant=text&amp;loc=en_US</p>
{/htxt}
{htxt id='Google_Checkout-live-url-button'}
<p>{ts 1=http://checkout.google.com/buttons/checkout.gif}The base URL for the <strong>LIVE - Image</strong> is: %1{/ts}</p>
<p>{ts}To display an image, you must add several parameters to this URL as name=value pairs.{/ts}</p>
<table>
<tr><th>{ts}Parameters{/ts}</th><th>{ts}Values{/ts}</th><th>{ts}Description{/ts}</th></tr>
<tr>
<td>w</td>
<td>180/168/160 ({ts}large/medium/small{/ts})</td>
<td>{ts}width of the button in pixels{/ts}</td>
</tr>
<tr>
<td>h</td>
<td>46/44/43 ({ts}large/medium/small{/ts})</td>
<td>{ts}height of the button in pixels{/ts}</td>
</tr>
<tr>
<td>style</td>
<td>white/trans..</td>
<td>{ts}background color for the button{/ts}</td>
</tr>
<tr>
<td>variant</td>
<td>text/disabled</td>
<td>{ts}whether the button is clickable or disabled{/ts}</td>
</tr>
<tr>
<td>loc</td>
<td>en_US</td>
<td>{ts}a locale associated with the transaction (optional){/ts}</td>
</tr>
<tr>
<td>merchant_id</td>
<td>{ts 1=1234567890}(e.g %1){/ts}</td>
<td>{ts}Merchant ID{/ts}</td>
</tr>
</table>
<p><strong>{ts}Example of a large Google Checkout button on a white background (For LIVE Account):{/ts}</strong></p>
<p>http://checkout.google.com/buttons/checkout.gif?merchant_id=1234567890&amp;w=180&amp;h=46&amp;style=white&amp;variant=text&amp;loc=en_US</p>
{/htxt}
{htxt id='Dummy-live-user-name'}
{ts}Set up a 'Dummy' Processor if you want to test Online Contribution pages or Event Registration pages prior to selecting and configuring a real payment processor. You can enter any values for User Name and Site URL.{/ts}</p>
{/htxt}
......
......@@ -33,11 +33,7 @@
<div class="help">
<p>{ts}Please verify the information below carefully. Click <strong>Go Back</strong> if you need to make changes.{/ts}
{if $contributeMode EQ 'notify' and ! $is_pay_later}
{if $paymentProcessor.payment_processor_type EQ 'Google_Checkout'}
{ts}Click the <strong>Google Checkout</strong> button to checkout to Google, where you will select your payment method and complete the contribution.{/ts}
{else}
{ts 1=$paymentProcessor.name 2=$button}Click the <strong>%2</strong> button to go to %1, where you will select your payment method and complete the contribution.{/ts}
{/if}
{ts 1=$paymentProcessor.name 2=$button}Click the <strong>%2</strong> button to go to %1, where you will select your payment method and complete the contribution.{/ts}
{elseif ! $is_monetary or $amount LE 0.0 or $is_pay_later}
{ts 1=$button}To complete this transaction, click the <strong>%1</strong> button below.{/ts}
{else}
......@@ -279,19 +275,6 @@
</div>
{/if}
{if $paymentProcessor.payment_processor_type EQ 'Google_Checkout' and $is_monetary and ( $amount GT 0 OR $minimum_fee GT 0 ) and ! $is_pay_later}
<fieldset class="crm-group google_checkout-group"><legend>{ts}Checkout with Google{/ts}</legend>
<table class="form-layout-compressed">
<tr>
<td class="description">{ts}Click the Google Checkout button to continue.{/ts}</td>
</tr>
<tr>
<td>{$form._qf_Confirm_next_checkout.html} <span style="font-size:11px; font-family: Arial, Verdana;">{ts}Checkout securely. Pay without sharing your financial information.{/ts}</span></td>
</tr>
</table>
</fieldset>
{/if}
<div id="crm-submit-buttons" class="crm-submit-buttons">
{include file="CRM/common/formButtons.tpl" location="bottom"}
</div>
......
......@@ -193,21 +193,6 @@
</div>
{/if}
{if $paymentProcessor.payment_processor_type EQ 'Google_Checkout' and $paidEvent and !$is_pay_later and ! $isAmountzero and !$isOnWaitlist and !$isRequireApproval}
<fieldset><legend>{ts}Checkout with Google{/ts}</legend>
<div class="crm-section google_checkout-section">
<table class="form-layout-compressed">
<tr>
<td class="description">{ts}Click the Google Checkout button to continue.{/ts}</td>
</tr>
<tr>
<td>{$form._qf_Confirm_next_checkout.html} <span style="font-size:11px; font-family: Arial, Verdana;">{ts}Checkout securely. Pay without sharing your financial information.{/ts}</span></td>
</tr>
</table>
</div>
</fieldset>
{/if}
<div id="crm-submit-buttons" class="crm-submit-buttons">
{include file="CRM/common/formButtons.tpl" location="bottom"}
</div>
......
......@@ -31,7 +31,6 @@
<p>{ts}With this configuration, the membership fee is automatically charged, and users have an option to make an additional contribution (two separate payment transactions will be generated).{/ts}</p>
<p>{ts}The contribution amount covering the membership fee will use the financial type configured with the selected membership type (see the membership types configuration tool to review those settings). Any additional contribution will use the financial type configured for this online contribution page.{/ts}</p>
<p>{ts}If this option is NOT checked and you include a Contribution Amount section, then a single transaction is processed for their contribution amount which must at least cover the selected membership fee.{/ts}</p>
<p><strong>{ts}NOTE: This option is NOT available for PayPal Website Payments Standard and Google Checkout.{/ts}</strong></p>
{/htxt}
{htxt id="id-display-fee-title"}
......
......@@ -858,13 +858,6 @@ class CiviSeleniumTestCase extends PHPUnit_Extensions_SeleniumTestCase {
'test_password' => '7ARxW575w736eF5p',
);
}
elseif ($processorType == 'Google_Checkout') {
// FIXME: we 'll need to make a new separate account for testing
$processorSettings = array(
'user_name' => '559999327053114',