diff --git a/packages/taler-util/src/errors.ts b/packages/taler-util/src/errors.ts
index 06e338a25..4399dbcf2 100644
--- a/packages/taler-util/src/errors.ts
+++ b/packages/taler-util/src/errors.ts
@@ -54,6 +54,7 @@ export interface DetailsMap {
};
[TalerErrorCode.WALLET_ORDER_ALREADY_PAID]: {
orderId: string;
+ fulfillmentUrl: string;
};
[TalerErrorCode.WALLET_CONTRACT_TERMS_MALFORMED]: empty;
[TalerErrorCode.WALLET_CONTRACT_TERMS_SIGNATURE_INVALID]: {
diff --git a/packages/taler-wallet-core/src/operations/pay-merchant.ts b/packages/taler-wallet-core/src/operations/pay-merchant.ts
index d53ee1b43..080191bfd 100644
--- a/packages/taler-wallet-core/src/operations/pay-merchant.ts
+++ b/packages/taler-wallet-core/src/operations/pay-merchant.ts
@@ -1617,6 +1617,7 @@ export async function processPurchasePay(
type: TaskRunResultType.Error,
errorDetail: makeErrorDetail(TalerErrorCode.WALLET_ORDER_ALREADY_PAID, {
orderId: purchase.orderId,
+ fulfillmentUrl: download.contractData.fulfillmentUrl,
}),
};
}
@@ -2219,7 +2220,7 @@ export async function sharePayment(
return {
nonce: p.noncePriv,
- session: p.lastSessionId,
+ session: p.lastSessionId ?? p.downloadSessionId,
token: p.claimToken,
};
});
diff --git a/packages/taler-wallet-webextension/src/cta/InvoicePay/stories.tsx b/packages/taler-wallet-webextension/src/cta/InvoicePay/stories.tsx
index a8f55c512..8993476ea 100644
--- a/packages/taler-wallet-webextension/src/cta/InvoicePay/stories.tsx
+++ b/packages/taler-wallet-webextension/src/cta/InvoicePay/stories.tsx
@@ -43,6 +43,7 @@ export const Ready = tests.createExample(ReadyView, {
fraction: 0,
},
summary: "some subject",
+ uri: "taler://pay/merchant.ar/123",
payStatus: {
status: PreparePayResultType.PaymentPossible,
amountEffective: "ARS:1",
diff --git a/packages/taler-wallet-webextension/src/cta/InvoicePay/views.tsx b/packages/taler-wallet-webextension/src/cta/InvoicePay/views.tsx
index e54e54bd1..986b31d77 100644
--- a/packages/taler-wallet-webextension/src/cta/InvoicePay/views.tsx
+++ b/packages/taler-wallet-webextension/src/cta/InvoicePay/views.tsx
@@ -14,14 +14,12 @@
GNU Taler; see the file COPYING. If not, see
*/
+import { useTranslationContext } from "@gnu-taler/web-util/browser";
import { Fragment, h, VNode } from "preact";
import { Amount } from "../../components/Amount.js";
-import { LogoHeader } from "../../components/LogoHeader.js";
import { Part } from "../../components/Part.js";
import { PaymentButtons } from "../../components/PaymentButtons.js";
-import { SubTitle, WalletAction } from "../../components/styled/index.js";
import { Time } from "../../components/Time.js";
-import { useTranslationContext } from "@gnu-taler/web-util/browser";
import {
getAmountWithFee,
InvoicePaymentDetails,
diff --git a/packages/taler-wallet-webextension/src/cta/Payment/state.ts b/packages/taler-wallet-webextension/src/cta/Payment/state.ts
index 4468438d1..d171ecbac 100644
--- a/packages/taler-wallet-webextension/src/cta/Payment/state.ts
+++ b/packages/taler-wallet-webextension/src/cta/Payment/state.ts
@@ -141,25 +141,11 @@ export function useComponentState({
}
async function doPayment(): Promise {
- // if (payStatus.status !== "payment-possible") {
- // throw TalerError.fromUncheckedDetail({
- // code: TalerErrorCode.GENERIC_CLIENT_INTERNAL_ERROR,
- // when: new Date().toISOString(),
- // hint: `payment is not possible: ${payStatus.status}`,
- // });
- // }
const res = await api.wallet.call(WalletApiOperation.ConfirmPay, {
proposalId: payStatus.proposalId,
});
// handle confirm pay
if (res.type !== ConfirmPayResultType.Done) {
- // throw new BackgroundError("Could not confirm payment", res.lastError)
- // // throw TalerError.fromUncheckedDetail({
- // // code: TalerErrorCode.GENERIC_CLIENT_INTERNAL_ERROR,
- // // when: new Date().toISOString(),
- // // hint: `could not confirm payment`,
- // // payResult: res,
- // // });
onSuccess(res.transactionId);
return;
}