Я использую следующий код js, чтобы показать кнопку PayPal на странице. Я добавляю два переключателя для выбора суммы платежа, но не могу установить ее. Я сохраняю сумму в переменной с именем importoSelezionato. Но если я заменю 50 на переменную, это не сработает. Как правильно заменить число в закупочной единице на переменную? Спасибо
<script>
function initPayPalButton() {
// Radiobutton IMPORTO $(document.getElementsByName('CustImporto')).on('click',function(){
var getSelectedValue = document.querySelector( 'input[name = "CustImporto"]:checked');
//alert("importo selezionato: euro "+getSelectedValue.value);
var importoSelezionato = getSelectedValue.value;
});
// Radiobutton IMPORTO
paypal.Buttons({
style: {
shape: 'rect',
color: 'gold',
layout: 'horizontal',
label: 'pay',
},
createOrder: function(data, actions) {
return actions.order.create({
purchase_units: [{"description":"Ricarica standard account","amount":{"currency_code":"EUR","value":50}}]
});
},
onApprove: function(data, actions) {
return actions.order.capture().then(function(orderData) {
// Full available details
console.info('Capture result', orderData, JSON.stringify(orderData, null, 2));
// Show a success message within this page, e.g.
const element = document.getElementById('paypal-button-container');
element.innerHTML = '';
element.innerHTML = '<h3>Thank you for your payment!</h3>';
//aggiungere un log in una tabella di database
// Or go to another URL: actions.redirect('thank_you.html');
});
},
onError: function(err) {
console.info(err);
}
}).render('#paypal-button-container');
}
initPayPalButton();
</script>
<div class = "row">
<div class = "col-lg-6 in-gp-tl">
<div class = "input-group">
<span class = "input-group-addon">
<input type = "radio" name = "CustImporto" required = "" value = "25" aria-label = "...">
</span>
<input type = "text" class = "form-control" readonly = "readonly" value = "25" aria-label = "...">
</div><!-- /input-group -->
</div><!-- /.col-lg-6 -->
<div class = "col-lg-6 in-gp-tb">
<div class = "input-group">
<span class = "input-group-addon">
<input type = "radio" name = "CustImporto" required = "" value = "50" aria-label = "...">
</span>
<input type = "text" class = "form-control" readonly = "readonly" value = "50" aria-label = "...">
</div><!-- /input-group -->
</div><!-- /.col-lg-6 -->
</div><!-- /.row -->
Запросите DOM из createOrder
, который запускается при нажатии кнопки PayPal. Нет необходимости в прослушивателе onclick ...
<script>
function initPayPalButton() {
function getAmount() {
var getSelectedValue = document.querySelector( 'input[name = "CustImporto"]:checked');
//alert("importo selezionato: euro "+getSelectedValue.value);
return getSelectedValue.value;
};
paypal.Buttons({
style: {
shape: 'rect',
color: 'gold',
layout: 'horizontal',
label: 'pay',
},
createOrder: function(data, actions) {
return actions.order.create({
"purchase_units": [
{
"amount": {
"currency_code": "EUR",
"value": getAmount()
},
"description": "Ricarica standard account"
}
]
});
},
onApprove: function(data, actions) {
return actions.order.capture().then(function(orderData) {
// Full available details
console.info('Capture result', orderData, JSON.stringify(orderData, null, 2));
// Show a success message within this page, e.g.
const element = document.getElementById('paypal-button-container');
element.innerHTML = '';
element.innerHTML = '<h3>Thank you for your payment!</h3>';
//aggiungere un log in una tabella di database
// Or go to another URL: actions.redirect('thank_you.html');
});
},
onError: function(err) {
console.info(err);
}
}).render('#paypal-button-container');
}
initPayPalButton();
</script>