From b7991692cf3beff4b8be49a8c4086a047c6ccfac Mon Sep 17 00:00:00 2001 From: Mrudul Vajpayee Date: Thu, 22 Aug 2024 08:42:49 +0530 Subject: [PATCH] add payment method filters --- juspay-payments.json | 2 +- src/modules/api-utils.ts | 4 ++++ .../webhooks/hyperswitch/transaction-initialize-session.ts | 1 + src/modules/webhooks/juspay/transaction-initialize-session.ts | 1 + 4 files changed, 7 insertions(+), 1 deletion(-) diff --git a/juspay-payments.json b/juspay-payments.json index 3338b89..b5f7b76 100644 --- a/juspay-payments.json +++ b/juspay-payments.json @@ -333,7 +333,7 @@ "source_object_id": { "type": "string", "nullable": true }, "amount_info": { "type": "string", "nullable": true }, "offer_details": { "type": "string", "nullable": true }, - "payment_filter": { "type": "string", "nullable": true }, + "payment_filter": { "type": "object", "nullable": true }, "options_get_payment_collection_link": { "type": "string", "nullable": true }, "payment_collection_link_details": { "type": "string", "nullable": true }, "virtual_account_references": { "type": "string", "nullable": true }, diff --git a/src/modules/api-utils.ts b/src/modules/api-utils.ts index 4979653..f58795c 100644 --- a/src/modules/api-utils.ts +++ b/src/modules/api-utils.ts @@ -28,6 +28,10 @@ const PaymentCreateRequestSchema = z.object({ returnUrl: z.string().nullable().optional(), manualRetryAllowed: z.boolean().nullable().optional(), gatewayReferenceId: z.string().nullable().optional(), + allowedPaymentMethods: z.union([ + z.record(z.any()).nullable(), + z.array(z.string()).nullable() + ]).nullable().optional() }); // Type definition for PaymentCreateRequest diff --git a/src/modules/webhooks/hyperswitch/transaction-initialize-session.ts b/src/modules/webhooks/hyperswitch/transaction-initialize-session.ts index cc2313d..c872183 100644 --- a/src/modules/webhooks/hyperswitch/transaction-initialize-session.ts +++ b/src/modules/webhooks/hyperswitch/transaction-initialize-session.ts @@ -123,6 +123,7 @@ export const TransactionInitializeSessionHyperswitchWebhookHandler = async ( description: normalizeValue(requestData?.description), billing: buildAddressDetails(event.sourceObject.billingAddress, userEmail), shipping: buildAddressDetails(event.sourceObject.shippingAddress, requestData?.shippingEmail), + allowed_payment_method_types : normalizeValue(requestData?.allowedPaymentMethods), metadata: { transaction_id: event.transaction.id, saleor_api_url: saleorApiUrl, diff --git a/src/modules/webhooks/juspay/transaction-initialize-session.ts b/src/modules/webhooks/juspay/transaction-initialize-session.ts index bd1fd5c..de2695b 100644 --- a/src/modules/webhooks/juspay/transaction-initialize-session.ts +++ b/src/modules/webhooks/juspay/transaction-initialize-session.ts @@ -145,6 +145,7 @@ export const TransactionInitializeSessionJuspayWebhookHandler = async ( shipping_address_postal_code: normalizeValue(shippingAddress?.address?.zip), "metadata.JUSPAY:gateway_reference_id": requestData?.gatewayReferenceId, "metadata.txns.auto_capture": normalizeValue(captureMethod), + payment_filter: normalizeValue(requestData?.allowedPaymentMethods) }; const createOrderResponse = await createJuspayPayment(createOrderPayload);