summaryrefslogtreecommitdiff
path: root/packages/taler-wallet-core/src/operations/pay.ts
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2020-08-24 19:39:09 +0530
committerFlorian Dold <florian.dold@gmail.com>2020-08-24 19:39:09 +0530
commit0e88ef9bd2ea76e5b44cc0d4459b9a2e553b8d24 (patch)
treebadf53269fb0775b11fc0160ab5b5c0d66903dd1 /packages/taler-wallet-core/src/operations/pay.ts
parent69c495076252a22bda341f58d7976e55078bd78c (diff)
downloadwallet-core-0e88ef9bd2ea76e5b44cc0d4459b9a2e553b8d24.tar.gz
wallet-core-0e88ef9bd2ea76e5b44cc0d4459b9a2e553b8d24.tar.bz2
wallet-core-0e88ef9bd2ea76e5b44cc0d4459b9a2e553b8d24.zip
implement fulfillment_message and make fulfillment_url optional
Diffstat (limited to 'packages/taler-wallet-core/src/operations/pay.ts')
-rw-r--r--packages/taler-wallet-core/src/operations/pay.ts33
1 files changed, 10 insertions, 23 deletions
diff --git a/packages/taler-wallet-core/src/operations/pay.ts b/packages/taler-wallet-core/src/operations/pay.ts
index 0d1d4f993..6b45e3da2 100644
--- a/packages/taler-wallet-core/src/operations/pay.ts
+++ b/packages/taler-wallet-core/src/operations/pay.ts
@@ -513,17 +513,6 @@ async function recordConfirmPay(
return t;
}
-function getNextUrl(contractData: WalletContractData): string {
- const f = contractData.fulfillmentUrl;
- if (f.startsWith("http://") || f.startsWith("https://")) {
- const fu = new URL(contractData.fulfillmentUrl);
- fu.searchParams.set("order_id", contractData.orderId);
- return fu.href;
- } else {
- return f;
- }
-}
-
async function incrementProposalRetry(
ws: InternalWalletState,
proposalId: string,
@@ -642,7 +631,10 @@ async function processDownloadProposalImpl(
const httpResponse = await ws.http.postJson(orderClaimUrl, requestBody, {
timeout: getProposalRequestTimeout(proposal),
});
- const r = await readSuccessResponseJsonOrErrorCode(httpResponse, codecForProposal());
+ const r = await readSuccessResponseJsonOrErrorCode(
+ httpResponse,
+ codecForProposal(),
+ );
if (r.isError) {
switch (r.talerErrorResponse.code) {
case TalerErrorCode.ORDERS_ALREADY_CLAIMED:
@@ -652,7 +644,8 @@ async function processDownloadProposalImpl(
{
orderId: proposal.orderId,
claimUrl: orderClaimUrl,
- });
+ },
+ );
default:
throwUnexpectedRequestError(httpResponse, r.talerErrorResponse);
}
@@ -723,8 +716,9 @@ async function processDownloadProposalImpl(
contractTermsRaw: JSON.stringify(proposalResp.contract_terms),
};
if (
- fulfillmentUrl.startsWith("http://") ||
- fulfillmentUrl.startsWith("https://")
+ fulfillmentUrl &&
+ (fulfillmentUrl.startsWith("http://") ||
+ fulfillmentUrl.startsWith("https://"))
) {
const differentPurchase = await tx.getIndexed(
Stores.purchases.fulfillmentUrlIndex,
@@ -968,15 +962,9 @@ export async function submitPay(
await storePayReplaySuccess(ws, proposalId, sessionId);
}
- const nextUrl = getNextUrl(purchase.contractData);
- ws.cachedNextUrl[purchase.contractData.fulfillmentUrl] = {
- nextUrl,
- lastSessionId: sessionId,
- };
-
return {
type: ConfirmPayResultType.Done,
- nextUrl,
+ contractTerms: JSON.parse(purchase.contractTermsRaw),
};
}
@@ -1089,7 +1077,6 @@ export async function preparePayForUri(
contractTerms: JSON.parse(purchase.contractTermsRaw),
contractTermsHash: purchase.contractData.contractTermsHash,
paid: true,
- nextUrl: r.nextUrl,
amountRaw: Amounts.stringify(purchase.contractData.amount),
amountEffective: Amounts.stringify(purchase.payCostInfo.totalCost),
};