76 lines
2.0 KiB
JavaScript
76 lines
2.0 KiB
JavaScript
function appendLog(msg) {
|
|
console.log(msg);
|
|
let logList = document.getElementById('log');
|
|
let logEntry = document.createElement('li');
|
|
let logText = document.createTextNode(msg);
|
|
logEntry.appendChild(logText);
|
|
logList.appendChild(logEntry);
|
|
}
|
|
|
|
function clearLog() {
|
|
let logList = document.getElementById('log');
|
|
while (logList.firstChild) {
|
|
logList.removeChild(logList.firstChild);
|
|
}
|
|
}
|
|
|
|
function toggleLogVisibility() {
|
|
let logList = document.getElementById('log');
|
|
let logToggle = document.getElementById('log-toggle');
|
|
if (logList.hidden) {
|
|
logToggle.innerHTML = 'Hide log';
|
|
logList.hidden = false;
|
|
} else {
|
|
logToggle.innerHTML = 'Show log';
|
|
logList.hidden = true;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Builds PaymentRequest for credit cards, but does not show any UI yet.
|
|
* @return {PaymentRequest} The PaymentRequest object.
|
|
*/
|
|
function initPaymentRequest() {
|
|
const request = new PaymentRequest(
|
|
[{
|
|
supportedMethods: ['basic-card'],
|
|
}],
|
|
{
|
|
total: {
|
|
label: 'Total',
|
|
amount: {
|
|
currency: 'USD',
|
|
value: '1.00',
|
|
},
|
|
},
|
|
});
|
|
request.canMakePayment().then(function(result) {
|
|
appendLog('canMakePayment returned: ' + result);
|
|
}).catch(function(err) {
|
|
appendLog('canMakePayment rejected: ' + err.name + ': ' + err.message);
|
|
});
|
|
request.hasEnrolledInstrument().then(function(result) {
|
|
appendLog('hasEnrolledInstrument returned: ' + result);
|
|
}).catch(function(err) {
|
|
appendLog('hasEnrolledInstrument rejected: ' + err.name + ': ' + err.message);
|
|
});
|
|
return request;
|
|
}
|
|
|
|
let request = initPaymentRequest();
|
|
|
|
/** Invokes PaymentRequest for credit cards. */
|
|
function handleClick() {
|
|
clearLog();
|
|
request.show().then(function(instrumentResponse) {
|
|
appendLog('show returned: ' + JSON.stringify(instrumentResponse));
|
|
request = initPaymentRequest();
|
|
return instrumentResponse.complete('success');
|
|
})
|
|
.catch(function(err) {
|
|
appendLog('show rejected: ' + err.name + ': ' + err.message);
|
|
request = initPaymentRequest();
|
|
});
|
|
|
|
}
|