summaryrefslogtreecommitdiff
path: root/packages/taler-wallet-core/src/operations/pay.ts
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2020-12-21 13:23:07 +0100
committerFlorian Dold <florian@dold.me>2020-12-21 13:23:07 +0100
commit95568395ce5817028046a96d95bd3399995154d5 (patch)
tree16f8c9cc6170df74cf490e31b9e1dc95c263fedc /packages/taler-wallet-core/src/operations/pay.ts
parent84d5b5e5ef34f7289256c6fd301206cda19be694 (diff)
downloadwallet-core-95568395ce5817028046a96d95bd3399995154d5.tar.gz
wallet-core-95568395ce5817028046a96d95bd3399995154d5.tar.bz2
wallet-core-95568395ce5817028046a96d95bd3399995154d5.zip
backup import WIP
Diffstat (limited to 'packages/taler-wallet-core/src/operations/pay.ts')
-rw-r--r--packages/taler-wallet-core/src/operations/pay.ts47
1 files changed, 23 insertions, 24 deletions
diff --git a/packages/taler-wallet-core/src/operations/pay.ts b/packages/taler-wallet-core/src/operations/pay.ts
index c374cfe4a..ecbe37a64 100644
--- a/packages/taler-wallet-core/src/operations/pay.ts
+++ b/packages/taler-wallet-core/src/operations/pay.ts
@@ -441,8 +441,7 @@ async function recordConfirmPay(
const payCostInfo = await getTotalPaymentCost(ws, coinSelection);
const t: PurchaseRecord = {
abortStatus: AbortStatus.None,
- contractTermsRaw: d.contractTermsRaw,
- contractData: d.contractData,
+ download: d,
lastSessionId: sessionId,
payCoinSelection: coinSelection,
totalPayCost: payCostInfo,
@@ -763,7 +762,7 @@ async function processDownloadProposalImpl(
products: parsedContractTerms.products,
summaryI18n: parsedContractTerms.summary_i18n,
},
- contractTermsRaw: JSON.stringify(proposalResp.contract_terms),
+ contractTermsRaw: proposalResp.contract_terms,
};
if (
fulfillmentUrl &&
@@ -877,7 +876,7 @@ async function storeFirstPaySuccess(
purchase.payRetryInfo = initRetryInfo(false);
purchase.merchantPaySig = paySig;
if (isFirst) {
- const ar = purchase.contractData.autoRefund;
+ const ar = purchase.download.contractData.autoRefund;
if (ar) {
logger.info("auto_refund present");
purchase.refundQueryRequested = true;
@@ -938,8 +937,8 @@ async function submitPay(
if (!purchase.merchantPaySig) {
const payUrl = new URL(
- `orders/${purchase.contractData.orderId}/pay`,
- purchase.contractData.merchantBaseUrl,
+ `orders/${purchase.download.contractData.orderId}/pay`,
+ purchase.download.contractData.merchantBaseUrl,
).href;
const reqBody = {
@@ -986,10 +985,10 @@ async function submitPay(
logger.trace("got success from pay URL", merchantResp);
- const merchantPub = purchase.contractData.merchantPub;
+ const merchantPub = purchase.download.contractData.merchantPub;
const valid: boolean = await ws.cryptoApi.isValidPaymentSignature(
merchantResp.sig,
- purchase.contractData.contractTermsHash,
+ purchase.download.contractData.contractTermsHash,
merchantPub,
);
@@ -1002,12 +1001,12 @@ async function submitPay(
await storeFirstPaySuccess(ws, proposalId, sessionId, merchantResp.sig);
} else {
const payAgainUrl = new URL(
- `orders/${purchase.contractData.orderId}/paid`,
- purchase.contractData.merchantBaseUrl,
+ `orders/${purchase.download.contractData.orderId}/paid`,
+ purchase.download.contractData.merchantBaseUrl,
).href;
const reqBody = {
sig: purchase.merchantPaySig,
- h_contract: purchase.contractData.contractTermsHash,
+ h_contract: purchase.download.contractData.contractTermsHash,
session_id: sessionId ?? "",
};
const resp = await ws.runSequentialized([EXCHANGE_COINS_LOCK], () =>
@@ -1047,7 +1046,7 @@ async function submitPay(
return {
type: ConfirmPayResultType.Done,
- contractTerms: JSON.parse(purchase.contractTermsRaw),
+ contractTerms: purchase.download.contractTermsRaw,
};
}
@@ -1120,7 +1119,7 @@ export async function preparePayForUri(
logger.info("not confirming payment, insufficient coins");
return {
status: PreparePayResultType.InsufficientBalance,
- contractTerms: JSON.parse(d.contractTermsRaw),
+ contractTerms: d.contractTermsRaw,
proposalId: proposal.proposalId,
amountRaw: Amounts.stringify(d.contractData.amount),
};
@@ -1132,7 +1131,7 @@ export async function preparePayForUri(
return {
status: PreparePayResultType.PaymentPossible,
- contractTerms: JSON.parse(d.contractTermsRaw),
+ contractTerms: d.contractTermsRaw,
proposalId: proposal.proposalId,
amountEffective: Amounts.stringify(totalCost),
amountRaw: Amounts.stringify(res.paymentAmount),
@@ -1161,20 +1160,20 @@ export async function preparePayForUri(
}
return {
status: PreparePayResultType.AlreadyConfirmed,
- contractTerms: JSON.parse(purchase.contractTermsRaw),
- contractTermsHash: purchase.contractData.contractTermsHash,
+ contractTerms: purchase.download.contractTermsRaw,
+ contractTermsHash: purchase.download.contractData.contractTermsHash,
paid: true,
- amountRaw: Amounts.stringify(purchase.contractData.amount),
+ amountRaw: Amounts.stringify(purchase.download.contractData.amount),
amountEffective: Amounts.stringify(purchase.totalPayCost),
proposalId,
};
} else if (!purchase.timestampFirstSuccessfulPay) {
return {
status: PreparePayResultType.AlreadyConfirmed,
- contractTerms: JSON.parse(purchase.contractTermsRaw),
- contractTermsHash: purchase.contractData.contractTermsHash,
+ contractTerms: purchase.download.contractTermsRaw,
+ contractTermsHash: purchase.download.contractData.contractTermsHash,
paid: false,
- amountRaw: Amounts.stringify(purchase.contractData.amount),
+ amountRaw: Amounts.stringify(purchase.download.contractData.amount),
amountEffective: Amounts.stringify(purchase.totalPayCost),
proposalId,
};
@@ -1182,12 +1181,12 @@ export async function preparePayForUri(
const paid = !purchase.paymentSubmitPending;
return {
status: PreparePayResultType.AlreadyConfirmed,
- contractTerms: JSON.parse(purchase.contractTermsRaw),
- contractTermsHash: purchase.contractData.contractTermsHash,
+ contractTerms: purchase.download.contractTermsRaw,
+ contractTermsHash: purchase.download.contractData.contractTermsHash,
paid,
- amountRaw: Amounts.stringify(purchase.contractData.amount),
+ amountRaw: Amounts.stringify(purchase.download.contractData.amount),
amountEffective: Amounts.stringify(purchase.totalPayCost),
- ...(paid ? { nextUrl: purchase.contractData.orderId } : {}),
+ ...(paid ? { nextUrl: purchase.download.contractData.orderId } : {}),
proposalId,
};
}