aboutsummaryrefslogtreecommitdiff
path: root/src/webex
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2018-01-18 02:50:18 +0100
committerFlorian Dold <florian.dold@gmail.com>2018-01-18 02:50:18 +0100
commit2f68e9e50e83c55ca46e9d4d72956d6525d0fa8c (patch)
treebfe94c2e0af1f3777765d37b35eeb76ed4e221be /src/webex
parent82d9c2a7cd2e343866997438d44aa5422190a028 (diff)
downloadwallet-core-2f68e9e50e83c55ca46e9d4d72956d6525d0fa8c.tar.xz
fix handling of resource_url
Diffstat (limited to 'src/webex')
-rw-r--r--src/webex/pages/confirm-contract.tsx4
-rw-r--r--src/webex/wxBackend.ts8
2 files changed, 7 insertions, 5 deletions
diff --git a/src/webex/pages/confirm-contract.tsx b/src/webex/pages/confirm-contract.tsx
index c302239c6..cd58d712a 100644
--- a/src/webex/pages/confirm-contract.tsx
+++ b/src/webex/pages/confirm-contract.tsx
@@ -150,7 +150,7 @@ class ContractPrompt extends React.Component<ContractPromptProps, ContractPrompt
if (this.props.resourceUrl) {
const p = await wxApi.queryPaymentByFulfillmentUrl(this.props.resourceUrl);
console.log("query for resource url", this.props.resourceUrl, "result", p);
- if (p.found) {
+ if (p.found && (p.lastSessionSig === undefined || p.lastSessionSig === this.props.sessionId)) {
const nextUrl = new URI(p.contractTerms.fulfillment_url);
nextUrl.addSearch("order_id", p.contractTerms.order_id);
if (p.lastSessionSig) {
@@ -218,7 +218,9 @@ class ContractPrompt extends React.Component<ContractPromptProps, ContractPrompt
console.error("proposal has no id");
return;
}
+ console.log("confirmPay with", proposalId, "and", this.props.sessionId);
const payResult = await wxApi.confirmPay(proposalId, this.props.sessionId);
+ console.log("payResult", payResult);
document.location.href = payResult.nextUrl;
this.setState({ holdCheck: true });
}
diff --git a/src/webex/wxBackend.ts b/src/webex/wxBackend.ts
index 7bbba1759..a4f534af9 100644
--- a/src/webex/wxBackend.ts
+++ b/src/webex/wxBackend.ts
@@ -422,7 +422,7 @@ async function talerPay(fields: any, url: string, tabId: number): Promise<string
if (fields.resource_url) {
const p = await w.queryPaymentByFulfillmentUrl(fields.resource_url);
console.log("query for resource url", fields.resource_url, "result", p);
- if (p.found) {
+ if (p.found && (fields.session_id === undefined || fields.session_id === p.lastSessionId)) {
return goToPayment(p);
}
}
@@ -508,9 +508,9 @@ function handleHttpPayment(headerList: chrome.webRequest.HttpHeader[], url: stri
// Fast path for existing payment
if (fields.resource_url) {
- const nextUrl = currentWallet.getNextUrlFromResourceUrl(fields.resource_url);
- if (nextUrl) {
- return { redirectUrl: nextUrl };
+ const result = currentWallet.getNextUrlFromResourceUrl(fields.resource_url);
+ if (result && (fields.session_id === undefined || fields.session_id === result.lastSessionId)) {
+ return { redirectUrl: result.nextUrl };
}
}
// Fast path for new contract