[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] [taler-web-common] branch master updated: take pay_url from
From: |
gnunet |
Subject: |
[GNUnet-SVN] [taler-web-common] branch master updated: take pay_url from contract, remove extended contract query |
Date: |
Wed, 08 Mar 2017 17:11:46 +0100 |
This is an automated email from the git hooks/post-receive script.
dold pushed a commit to branch master
in repository web-common.
The following commit(s) were added to refs/heads/master by this push:
new 3ebc031 take pay_url from contract, remove extended contract query
3ebc031 is described below
commit 3ebc0314c8c60c384771df5a9004593f3bfd0a14
Author: Florian Dold <address@hidden>
AuthorDate: Fri Mar 3 15:02:59 2017 +0100
take pay_url from contract, remove extended contract query
---
taler-wallet-lib.js | 95 ++++++-----------------------------------------------
taler-wallet-lib.ts | 15 ++++-----
2 files changed, 16 insertions(+), 94 deletions(-)
diff --git a/taler-wallet-lib.js b/taler-wallet-lib.js
index 9fffc3f..c324ef9 100644
--- a/taler-wallet-lib.js
+++ b/taler-wallet-lib.js
@@ -122,18 +122,7 @@ var taler;
callWallet("taler-create-reserve", args);
}
taler.createReserve = createReserve;
- function executePayment(contractHash, payUrl, offeringUrl, onError) {
- if (!installed) {
- logVerbose && console.log("delaying executePayment");
- taler.onPresent(function () {
- executePayment(contractHash, payUrl, offeringUrl);
- });
- return;
- }
- internalExecutePayment(contractHash, payUrl, offeringUrl);
- }
- taler.executePayment = executePayment;
- function handlePaymentResponse(resp, payUrl) {
+ function handlePaymentResponse(resp) {
function subst(url, contractHash) {
url = url.replace("${H_contract}", contractHash);
url = url.replace("${$}", "$");
@@ -164,7 +153,7 @@ var taler;
callWallet("taler-payment-failed", { H_contract: resp.H_contract
}, onResp);
timeoutHandle = setTimeout(onTimeout, 200);
}
- logVerbose && console.log("handling taler-notify-payment");
+ logVerbose && console.log("handling taler-notify-payment: ", resp);
// Payment timeout in ms.
var timeout_ms = 1000;
// Current request.
@@ -172,7 +161,7 @@ var taler;
var timeoutHandle = null;
function sendPay() {
r = new XMLHttpRequest();
- r.open("post", payUrl);
+ r.open("post", resp.contract.pay_url);
r.setRequestHeader("Content-Type",
"application/json;charset=UTF-8");
r.send(JSON.stringify(resp.payment));
r.onload = function () {
@@ -181,8 +170,11 @@ var taler;
}
switch (r.status) {
case 200:
+ logVerbose && console.log("got success from pay_url");
callWallet("taler-payment-succeeded", { H_contract:
resp.H_contract }, function () {
- window.location.href =
subst(resp.contract.fulfillment_url, resp.H_contract);
+ var nextUrl = subst(resp.contract.fulfillment_url,
resp.H_contract);
+ logVerbose && console.log("taler-payment-succeeded
done, going to", nextUrl);
+ window.location.href = nextUrl;
window.location.reload(true);
});
break;
@@ -209,17 +201,6 @@ var taler;
}
sendPay();
}
- function internalExecutePayment(contractHash, payUrl, offeringUrl,
onError) {
- if (!contractHash) {
- raise_error("protocol-violation", { hint: "contract hash not
given" });
- }
- var args = {
- H_contract: contractHash,
- offering_url: offeringUrl
- };
- callWallet("taler-get-payment", args, function (r) { return
handlePaymentResponse(r, payUrl); });
- }
- taler.internalExecutePayment = internalExecutePayment;
function onPresent(f) {
presentHandlers.push(f);
}
@@ -228,66 +209,10 @@ var taler;
absentHandlers.push(f);
}
taler.onAbsent = onAbsent;
- function offerContractFrom(url) {
- if (!installed) {
- logVerbose && console.log("delaying offerContractFrom until GNU
Taler wallet is present");
- taler.onPresent(function () {
- offerContractFrom(url);
- });
- return;
- }
- internalOfferContractFrom(url);
- }
- taler.offerContractFrom = offerContractFrom;
- /**
- * Offer a contract to the wallet after
- * downloading it from the given URL.
- */
- function internalOfferContractFrom(url) {
- function handle_contract(contract_wrapper) {
- var args = {
- contract_wrapper: contract_wrapper,
- replace_navigation: true
- };
- callWallet("taler-confirm-contract", args);
- }
- ;
- var contract_request = new XMLHttpRequest();
- logVerbose && console.log("downloading contract from '" + url + "'");
- contract_request.open("GET", url, true);
- contract_request.onload = function (e) {
- if (contract_request.readyState == 4) {
- if (contract_request.status == 200) {
- logVerbose && console.log("response text:",
contract_request.responseText);
- var contract_wrapper =
JSON.parse(contract_request.responseText);
- if (!contract_wrapper) {
- console.error("response text was invalid json");
- var detail = { hint: "invalid json", status:
contract_request.status, body: contract_request.responseText };
- raise_error("contract-failed", detail);
- return;
- }
- handle_contract(contract_wrapper);
- }
- else {
- var detail = { hint: "contract download failed", status:
contract_request.status, body: contract_request.responseText };
- raise_error("contract-failed", detail);
- return;
- }
- }
- };
- contract_request.onerror = function (e) {
- var detail = { hint: "contract download failed", status:
contract_request.status, body: contract_request.responseText };
- raise_error("contract-failed", detail);
- return;
- };
- contract_request.send();
- }
- taler.internalOfferContractFrom = internalOfferContractFrom;
function internalPay(p) {
- callWallet("taler-pay", p, function (resp) {
- // either we get a response here, or the wallet will redirect the
browser
- handlePaymentResponse(resp, resp.pay_url);
- });
+ // either the callback gets called,
+ // or the wallet will redirect the browser
+ callWallet("taler-pay", p, handlePaymentResponse);
}
taler.internalPay = internalPay;
function pay(p) {
diff --git a/taler-wallet-lib.ts b/taler-wallet-lib.ts
index 8de8b53..80dbdcf 100644
--- a/taler-wallet-lib.ts
+++ b/taler-wallet-lib.ts
@@ -137,7 +137,7 @@ namespace taler {
}
- function handlePaymentResponse(resp: any, payUrl: string) {
+ function handlePaymentResponse(resp: any) {
function subst(url: string, contractHash: string) {
url = url.replace("${H_contract}", contractHash);
url = url.replace("${$}", "$");
@@ -179,9 +179,9 @@ namespace taler {
let timeoutHandle: number|null = null;
function sendPay() {
r = new XMLHttpRequest();
- r.open("post", payUrl);
+ r.open("post", resp.contract.pay_url);
r.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
- r.send(JSON.stringify(resp.payReq));
+ r.send(JSON.stringify(resp.payment));
r.onload = function() {
if (!r) {
return;
@@ -242,15 +242,12 @@ namespace taler {
interface PayDetail {
contract_url?: string;
offer_url?: string;
- contract_query: FulfillmentQuery | OrderIdQuery;
- pay_url: string;
}
export function internalPay(p: PayDetail) {
- callWallet("taler-pay", p, (resp: any) => {
- // either we get a response here, or the wallet will redirect the browser
- handlePaymentResponse(resp, p.pay_url);
- });
+ // either the callback gets called,
+ // or the wallet will redirect the browser
+ callWallet("taler-pay", p, handlePaymentResponse);
}
export function pay(p: PayDetail) {
--
To stop receiving notification emails like this one, please contact
address@hidden
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] [taler-web-common] branch master updated: take pay_url from contract, remove extended contract query,
gnunet <=