aboutsummaryrefslogtreecommitdiff
path: root/src/webex/pages/confirm-contract.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/webex/pages/confirm-contract.tsx')
-rw-r--r--src/webex/pages/confirm-contract.tsx17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/webex/pages/confirm-contract.tsx b/src/webex/pages/confirm-contract.tsx
index 090737475..c302239c6 100644
--- a/src/webex/pages/confirm-contract.tsx
+++ b/src/webex/pages/confirm-contract.tsx
@@ -105,6 +105,7 @@ interface ContractPromptProps {
proposalId?: number;
contractUrl?: string;
sessionId?: string;
+ resourceUrl?: string;
}
interface ContractPromptState {
@@ -146,6 +147,18 @@ class ContractPrompt extends React.Component<ContractPromptProps, ContractPrompt
}
async update() {
+ 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) {
+ const nextUrl = new URI(p.contractTerms.fulfillment_url);
+ nextUrl.addSearch("order_id", p.contractTerms.order_id);
+ if (p.lastSessionSig) {
+ nextUrl.addSearch("session_sig", p.lastSessionSig);
+ }
+ location.href = nextUrl.href();
+ }
+ }
let proposalId = this.props.proposalId;
if (proposalId === undefined) {
if (this.props.contractUrl === undefined) {
@@ -285,7 +298,9 @@ document.addEventListener("DOMContentLoaded", () => {
const sessionId = query.sessionId;
const contractUrl = query.contractUrl;
+ const resourceUrl = query.resourceUrl;
+
ReactDOM.render(
- <ContractPrompt {...{ proposalId, contractUrl, sessionId }}/>,
+ <ContractPrompt {...{ proposalId, contractUrl, sessionId, resourceUrl }}/>,
document.getElementById("contract")!);
});