match latest refund API of the merchant
This commit is contained in:
parent
d9b73a30c1
commit
7ff93d8ef6
@ -48,6 +48,7 @@ import {
|
|||||||
MerchantCoinRefundFailureStatus,
|
MerchantCoinRefundFailureStatus,
|
||||||
codecForMerchantOrderStatusPaid,
|
codecForMerchantOrderStatusPaid,
|
||||||
AmountString,
|
AmountString,
|
||||||
|
codecForMerchantOrderRefundPickupResponse,
|
||||||
} from "../types/talerTypes";
|
} from "../types/talerTypes";
|
||||||
import { guardOperationException } from "./errors";
|
import { guardOperationException } from "./errors";
|
||||||
import { getTimestampNow, Timestamp } from "../util/time";
|
import { getTimestampNow, Timestamp } from "../util/time";
|
||||||
@ -472,25 +473,22 @@ async function processPurchaseQueryRefundImpl(
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
const requestUrl = new URL(
|
const requestUrl = new URL(
|
||||||
`orders/${purchase.contractData.orderId}`,
|
`orders/${purchase.contractData.orderId}/refund`,
|
||||||
purchase.contractData.merchantBaseUrl,
|
purchase.contractData.merchantBaseUrl,
|
||||||
);
|
);
|
||||||
requestUrl.searchParams.set(
|
|
||||||
"h_contract",
|
|
||||||
purchase.contractData.contractTermsHash,
|
|
||||||
);
|
|
||||||
|
|
||||||
logger.trace(`making refund request to ${requestUrl.href}`);
|
logger.trace(`making refund request to ${requestUrl.href}`);
|
||||||
|
|
||||||
const request = await ws.http.get(requestUrl.href);
|
const request = await ws.http.postJson(requestUrl.href, {
|
||||||
|
h_contract: purchase.contractData.contractTermsHash,
|
||||||
|
});
|
||||||
|
|
||||||
logger.trace("got json", JSON.stringify(await request.json(), undefined, 2));
|
logger.trace("got json", JSON.stringify(await request.json(), undefined, 2));
|
||||||
|
|
||||||
const refundResponse = await readSuccessResponseJsonOrThrow(
|
const refundResponse = await readSuccessResponseJsonOrThrow(
|
||||||
request,
|
request,
|
||||||
codecForMerchantOrderStatusPaid(),
|
codecForMerchantOrderRefundPickupResponse(),
|
||||||
);
|
);
|
||||||
|
|
||||||
await acceptRefunds(
|
await acceptRefunds(
|
||||||
|
@ -849,6 +849,13 @@ interface MerchantOrderStatusPaid {
|
|||||||
* Amount that was refunded in total.
|
* Amount that was refunded in total.
|
||||||
*/
|
*/
|
||||||
refund_amount: AmountString;
|
refund_amount: AmountString;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface MerchantOrderRefundResponse {
|
||||||
|
/**
|
||||||
|
* Amount that was refunded in total.
|
||||||
|
*/
|
||||||
|
refund_amount: AmountString;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Successful refunds for this payment, empty array for none.
|
* Successful refunds for this payment, empty array for none.
|
||||||
@ -1265,12 +1272,19 @@ export const codecForMerchantOrderStatusPaid = (): Codec<
|
|||||||
MerchantOrderStatusPaid
|
MerchantOrderStatusPaid
|
||||||
> =>
|
> =>
|
||||||
buildCodecForObject<MerchantOrderStatusPaid>()
|
buildCodecForObject<MerchantOrderStatusPaid>()
|
||||||
.property("merchant_pub", codecForString())
|
|
||||||
.property("refund_amount", codecForString())
|
.property("refund_amount", codecForString())
|
||||||
.property("refunded", codecForBoolean)
|
.property("refunded", codecForBoolean)
|
||||||
.property("refunds", codecForList(codecForMerchantCoinRefundStatus()))
|
|
||||||
.build("MerchantOrderStatusPaid");
|
.build("MerchantOrderStatusPaid");
|
||||||
|
|
||||||
|
export const codecForMerchantOrderRefundPickupResponse = (): Codec<
|
||||||
|
MerchantOrderRefundResponse
|
||||||
|
> =>
|
||||||
|
buildCodecForObject<MerchantOrderRefundResponse>()
|
||||||
|
.property("merchant_pub", codecForString())
|
||||||
|
.property("refund_amount", codecForString())
|
||||||
|
.property("refunds", codecForList(codecForMerchantCoinRefundStatus()))
|
||||||
|
.build("MerchantOrderRefundPickupResponse");
|
||||||
|
|
||||||
export const codecForMerchantOrderStatusUnpaid = (): Codec<
|
export const codecForMerchantOrderStatusUnpaid = (): Codec<
|
||||||
MerchantOrderStatusUnpaid
|
MerchantOrderStatusUnpaid
|
||||||
> =>
|
> =>
|
||||||
|
Loading…
Reference in New Issue
Block a user