gnunet-svn
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]