Template:2012FR/Form-section/Processing/Default: Difference between revisions

From Donate
Jump to navigation Jump to search
Content deleted Content added
rename redirectPayment, add way to skip validation (for USD methods where there's no need to select an amount)
remove paypal_ec override for Japan, it's default everywhere now
(17 intermediate revisions by 2 users not shown)
Line 4: Line 4:


function redirectPayment (legacyPaymentMethod) {
function redirectPayment (legacyPaymentMethod) {
return undefined;
// wrapper for new function
}
// using old method parameters
// until buttons can be updated


donationForm.redirectPayment = function(paymentMethod, paymentSubMethod, skipValidation) {
switch (legacyPaymentMethod) {
case 'cc':
donationForm.redirectPayment('cc');
break;


var form = document.paypalcontribution; // we should really change this some day
case 'paypal':
case 'pp':
if ( skipValidation || validateForm(form) ) {
case 'ew-pp':
case 'ew-rpp':
case 'ew-pp-usd':
case 'ew-pp-eur':
donationForm.redirectPayment('paypal');
break;


case 'dd':
if (typeof paymentSubMethod == 'undefined') {
donationForm.redirectPayment('dd');
paymentSubMethod = '';
break;
}
var paymentsURL = 'https://payments.wikimedia.org/index.php/Special:GatewayFormChooser';


case 'rtbt-id':
form.action = paymentsURL;
donationForm.redirectPayment('rtbt', 'rtbt_ideal');
break;


case 'ew-yd':
// set up inputs
form.currency_code.value = '</html>{{{currency|USD}}}<html>';
donationForm.redirectPayment('ew', 'ew_yandex');
break;


case 'rtbt-sf':
if (typeof paymentSubMethod == 'undefined') {
donationForm.redirectPayment('rtbt', 'rtbt_sofortuberweisung');
paymentSubMethod = '';
break;
}


case 'ew-amazon':
// WorldPay override for cc
if( paymentMethod === 'cc-wp' ) {
donationForm.redirectPayment('amazon');
break;
paymentMethod = 'cc';
form.payment_method.value = 'cc';
form.gateway.value = 'worldpay';
form.ffname.value = 'worldpay';
}


case 'obt-bp':
// Adyen override for cc
if( paymentMethod === 'cc-adyen' ) {
donationForm.redirectPayment('obt', 'bpay');
break;
paymentMethod = 'cc';
form.payment_method.value = 'cc';
form.gateway.value = 'adyen';
form.ffname.value = 'adyen';
}


var frequency = $("input[name='frequency']:checked").val();
case 'ew-wm':
if( frequency !== 'monthly' ){
donationForm.redirectPayment('ew', 'ew_webmoney');
break;
frequency = 'onetime';
form.recurring.value = 'false';
} else {
form.recurring.value = 'true';
}


form.payment_method.value = paymentMethod;
case 'cash-bl':
form.payment_submethod.value = paymentSubMethod;
donationForm.redirectPayment('cash', 'boleto');
break;


case 'rtbt-en':
donationForm.addAnalytics();
donationForm.redirectPayment('rtbt', 'rtbt_enets');
break;
}


var full_dotted_payment_method = paymentMethod;
}
if ( form.recurring.value == 'true' ) {
full_dotted_payment_method = 'r' + full_dotted_payment_method;
}
if ( paymentSubMethod ) {
full_dotted_payment_method = form.payment_method.value + '.' + paymentSubMethod;
}


form.utm_source.value += '.' + full_dotted_payment_method;
donationForm.redirectPayment = function(paymentMethod, paymentSubMethod, skipValidation) {


form.method = "GET";
// set up inputs
document.getElementsByName("currency_code")[0].value = '</html>{{{currency|USD}}}<html>';

if (typeof paymentSubMethod == 'undefined') {
paymentSubMethod = '';
}
var form = document.paypalcontribution; // we should really change this some day
var paymentsURL = 'https://payments.wikimedia.org/index.php/Special:GatewayFormChooser';
var params = {
'uselang' : $("input[name='language']").val(),
'language' : $("input[name='language']").val(),
'currency' : $("input[name='currency_code']").val(),
'country' : $("input[name='country']").val(),
'paymentmethod' : paymentMethod
};
if( paymentSubMethod != '' ){
params['submethod'] = paymentSubMethod;
}
// Testing for Adyen
if( paymentMethod === 'adyen-cc' ) {
paymentMethod = 'cc';
params.paymentmethod = 'cc';
params.gateway = 'adyen';
}
var frequency = $("input[name='frequency']:checked").val();
if( frequency !== 'monthly' ){
frequency = 'onetime';
// commented out below as it breaks eNETS for some reason
// params['recurring'] = 'false';
} else {
params['recurring'] = 'true';
// the following causes tons of errors. Don't.
// paymentMethod = 'r' + paymentMethod;
}
form.action = paymentsURL + '?' + $.param(params);
form.payment_method.value = paymentMethod;
if( paymentSubMethod != '' ){
form.payment_method.value = form.payment_method.value + '.' + paymentSubMethod;
}

donationForm.addAnalytics();
if (validateForm(form) || skipValidation) {
form.method = "POST";
form.submit();
form.submit();
}
}
}
};


donationForm.addAnalytics = function() {
donationForm.addAnalytics = function() {
Line 153: Line 108:
}
}


form.utm_source.value += '.' + form.payment_method.value;
form.utm_campaign.value = getQuerystring( 'utm_campaign' );
form.utm_campaign.value = getQuerystring( 'utm_campaign' );
}
};


donationForm.toggleMonthly = function(monthly) {
donationForm.toggleMonthly = function(monthly) {
Line 163: Line 117:
$('#form-wrapper').removeClass('form-monthly');
$('#form-wrapper').removeClass('form-monthly');
}
}
}
};
</script>
</script>
</html>
</html>

Revision as of 18:19, 8 March 2018