36 lines
1.5 KiB
JavaScript
36 lines
1.5 KiB
JavaScript
|
/* Trigger Taler contract generation on the server, and pass the
|
||
|
contract to the extension once we got it. */
|
||
|
function taler_pay(form) {
|
||
|
var contract_request = new XMLHttpRequest();
|
||
|
|
||
|
/* Note that the URL we give here is simply an example
|
||
|
and not dictated by the protocol: each web shop can
|
||
|
have its own way of generating and transmitting the
|
||
|
contract, there just must be a way to get the contract
|
||
|
and to pass it to the wallet when the user selects 'Pay'. */
|
||
|
contract_request.open("GET", "generate-taler-contract", true);
|
||
|
contract_request.onload = function (e) {
|
||
|
if (contract_request.readyState == 4) {
|
||
|
if (contract_request.status == 200) {
|
||
|
/* Send contract to the extension. */
|
||
|
handle_contract(contract_request.responseText);
|
||
|
} else {
|
||
|
/* There was an error obtaining the contract from the merchant,
|
||
|
obviously this should not happen. To keep it simple, we just
|
||
|
alert the user to the error. */
|
||
|
alert("Failure to download contract " +
|
||
|
"(" + contract_request.status + "):\n" +
|
||
|
contract_request.responseText);
|
||
|
}
|
||
|
}
|
||
|
};
|
||
|
contract_request.onerror = function (e) {
|
||
|
/* There was an error obtaining the contract from the merchant,
|
||
|
obviously this should not happen. To keep it simple, we just
|
||
|
alert the user to the error. */
|
||
|
alert("Failure requesting the contract:\n" +
|
||
|
contract_request.statusText);
|
||
|
};
|
||
|
contract_request.send();
|
||
|
}
|