Skip to content

fix(connector): Add WASM Changes for Finix Google Pay#9845

Merged
likhinbopanna merged 4 commits intomainfrom
fix/finix-google-pay
Oct 15, 2025
Merged

fix(connector): Add WASM Changes for Finix Google Pay#9845
likhinbopanna merged 4 commits intomainfrom
fix/finix-google-pay

Conversation

@Anurag-05-prog
Copy link
Contributor

@Anurag-05-prog Anurag-05-prog commented Oct 14, 2025

Type of Change

  • Bugfix
  • New feature
  • Enhancement
  • Refactoring
  • Dependency updates
  • Documentation
  • CI/CD

Closes this issue

Description

This PR involves adding WASM changes for Google Pay for Finix Connector.

Previously Merchant Identity ID was being retrieved from the metadata in MCA call. This field is now moved to Authentication field MultiAuthKey.

Additional Changes

  • This PR modifies the API contract
  • This PR modifies the database schema
  • This PR modifies application configuration/environment variables

Motivation and Context

How did you test it?

Dashboard Screenshot:

Screenshot 2025-10-15 at 3 02 31 PM Screenshot 2025-10-15 at 3 03 35 PM Screenshot 2025-10-14 at 10 06 42 PM

Postman Test:

Connector Create - Finix:

Request:

curl --location '{{base_url}}/account/:merchant_id/connectors' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'api-key: {{api_key}}' \
--data '{
    "connector_type": "payment_processor",
    "connector_name": "finix",
    "connector_account_details": {
        "auth_type": "AUTH TYPE",
        "key1": "KEY1",
        "api_key":"API KEY",
        "api_secret":"API SECRET",
        "key2": "KEY2"
    },
    "test_mode": true,
    "disabled": false,
    "payment_methods_enabled": [
        {
            "payment_method": "wallet",
            "payment_method_types": [
                {
                    "payment_method_type": "google_pay",
                    "payment_experience": "invoke_sdk_client",
                    "minimum_amount": 0,
                    "maximum_amount": 68607706,
                    "recurring_enabled": true,
                    "installment_payment_enabled": false
                }
            ]
        }
    ],
    "business_country": "US",
    "business_label": "default"
}'

Response:

{
    "connector_type": "payment_processor",
    "connector_name": "finix",
    "connector_label": "finix_US_default",
    "merchant_connector_id": "mca_bXi0H6cYIbo6MZlyDsQJ",
    "profile_id": "pro_boQW0tf9TooWEMQAudj5",
    "connector_account_details": {
        "auth_type": "*****",
        "api_key": "********************",
        "key1": "********************",
        "api_secret": "********************************",
        "key2": "*******************"
    },
    "payment_methods_enabled": [
        {
            "payment_method": "wallet",
            "payment_method_types": [
                {
                    "payment_method_type": "google_pay",
                    "payment_experience": "invoke_sdk_client",
                    "card_networks": null,
                    "accepted_currencies": null,
                    "accepted_countries": null,
                    "minimum_amount": 0,
                    "maximum_amount": 68607706,
                    "recurring_enabled": true,
                    "installment_payment_enabled": false
                }
            ]
        }
    ],
    "connector_webhook_details": null,
    "metadata": null,
    "test_mode": true,
    "disabled": false,
    "frm_configs": null,
    "business_country": "US",
    "business_label": "default",
    "business_sub_label": null,
    "applepay_verified_domains": null,
    "pm_auth_config": null,
    "status": "active",
    "additional_merchant_data": null,
    "connector_wallets_details": null
}

Payments - Create (Google Pay):

Request:

curl --location '{{base_url}}/payments' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'api-key: ••••••' \
--data-raw '{
    "amount": 6500,
    "currency": "USD",
    "confirm": true,
    "capture_method": "automatic",
    "capture_on": "2022-09-10T10:11:12Z",
    "amount_to_capture": 6500,
    "customer_id": "abcdef1234",
    "email": "abcdef123@gmail.com",
    "name": "John Doe",
    "phone": "999999999",
    "phone_country_code": "+65",
    "description": "Its my first payment request",
    "authentication_type": "no_three_ds",
    "return_url": "https://duck.com",
    "billing": {
        "address": {
            "first_name": "John",
            "last_name": "Doe",
            "line1": "1467",
            "line2": "Harrison Street",
            "line3": "Harrison Street",
            "city": "San Fransico",
            "state": "California",
            "zip": "94122",
            "country": "US"
        }
    },
    "payment_method": "wallet",
    "payment_method_type": "google_pay",
    "payment_method_data": {
        "wallet": {
            "google_pay": {
                "description": "DESCRIPTION",
                "tokenization_data": {
                    "type": "PAYMENT_GATEWAY",
                    "token": "TOKEN"
                },
                "type": "CARD",
                "info": {
                    "card_network": "CARD_NETWORK",
                    "card_details": "CARD_DETAILS"
                }
            }
        }
    },
    "browser_info": {
        "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36",
        "accept_header": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
        "language": "nl-NL",
        "color_depth": 24,
        "screen_height": 723,
        "screen_width": 1536,
        "time_zone": 0,
        "java_enabled": true,
        "java_script_enabled": true,
        "ip_address": "127.0.0.1"
    },
    "shipping": {
        "address": {
            "line1": "1467",
            "line2": "Harrison Street",
            "line3": "Harrison Street",
            "city": "San Fransico",
            "state": "California",
            "zip": "94122",
            "country": "US",
            "first_name": "John",
            "last_name": "Doe"
        }
    },
    "statement_descriptor_name": "joseph",
    "statement_descriptor_suffix": "JS",
    "metadata": {
        "udf1": "value1",
        "new_customer": "true",
        "login_date": "2025-07-25T11:46:12Z"
    }
}
'

Response:

{
    "payment_id": "pay_ZqWKwoSKid1HYROr5S5L",
    "merchant_id": "merchant_1760461381",
    "status": "succeeded",
    "amount": 6500,
    "net_amount": 6500,
    "shipping_cost": null,
    "amount_capturable": 0,
    "amount_received": 6500,
    "connector": "finix",
    "client_secret": "pay_ZqWKwoSKid1HYROr5S5L_secret_jT4OetNUvwdsNY8y85qd",
    "created": "2025-10-14T17:03:15.633Z",
    "currency": "USD",
    "customer_id": "abcdef1234",
    "customer": {
        "id": "abcdef1234",
        "name": "John Doe",
        "email": "abcdef123@gmail.com",
        "phone": "999999999",
        "phone_country_code": "+65"
    },
    "description": "Its my first payment request",
    "refunds": null,
    "disputes": null,
    "mandate_id": null,
    "mandate_data": null,
    "setup_future_usage": null,
    "off_session": null,
    "capture_on": null,
    "capture_method": "automatic",
    "payment_method": "wallet",
    "payment_method_data": {
        "wallet": {
            "google_pay": {
                "last4": "1000",
                "card_network": "VISA",
                "type": "CARD"
            }
        },
        "billing": null
    },
    "payment_token": null,
    "shipping": {
        "address": {
            "city": "San Fransico",
            "country": "US",
            "line1": "1467",
            "line2": "Harrison Street",
            "line3": "Harrison Street",
            "zip": "94122",
            "state": "California",
            "first_name": "John",
            "last_name": "Doe",
            "origin_zip": null
        },
        "phone": null,
        "email": null
    },
    "billing": {
        "address": {
            "city": "San Fransico",
            "country": "US",
            "line1": "1467",
            "line2": "Harrison Street",
            "line3": "Harrison Street",
            "zip": "94122",
            "state": "California",
            "first_name": "John",
            "last_name": "Doe",
            "origin_zip": null
        },
        "phone": null,
        "email": null
    },
    "order_details": null,
    "email": "abcdef123@gmail.com",
    "name": "John Doe",
    "phone": "999999999",
    "return_url": "https://duck.com/",
    "authentication_type": "no_three_ds",
    "statement_descriptor_name": "joseph",
    "statement_descriptor_suffix": "JS",
    "next_action": null,
    "cancellation_reason": null,
    "error_code": null,
    "error_message": null,
    "unified_code": null,
    "unified_message": null,
    "payment_experience": null,
    "payment_method_type": "google_pay",
    "connector_label": null,
    "business_country": null,
    "business_label": "default",
    "business_sub_label": null,
    "allowed_payment_method_types": null,
    "ephemeral_key": {
        "customer_id": "abcdef1234",
        "created_at": 1760461395,
        "expires": 1760464995,
        "secret": "epk_7a9aea4bbedf478899dca2789a3860a4"
    },
    "manual_retry_allowed": null,
    "connector_transaction_id": "TRnsvNeJgwvMdqCaNehfHpZn",
    "frm_message": null,
    "metadata": {
        "udf1": "value1",
        "login_date": "2025-07-25T11:46:12Z",
        "new_customer": "true"
    },
    "connector_metadata": null,
    "feature_metadata": {
        "redirect_response": null,
        "search_tags": null,
        "apple_pay_recurring_details": null,
        "gateway_system": "direct"
    },
    "reference_id": null,
    "payment_link": null,
    "profile_id": "pro_boQW0tf9TooWEMQAudj5",
    "surcharge_details": null,
    "attempt_count": 1,
    "merchant_decision": null,
    "merchant_connector_id": "mca_bXi0H6cYIbo6MZlyDsQJ",
    "incremental_authorization_allowed": false,
    "authorization_count": null,
    "incremental_authorizations": null,
    "external_authentication_details": null,
    "external_3ds_authentication_attempted": false,
    "expires_on": "2025-10-14T17:18:15.633Z",
    "fingerprint": null,
    "browser_info": {
        "language": "nl-NL",
        "time_zone": 0,
        "ip_address": "127.0.0.1",
        "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36",
        "color_depth": 24,
        "java_enabled": true,
        "screen_width": 1536,
        "accept_header": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
        "screen_height": 723,
        "java_script_enabled": true
    },
    "payment_channel": null,
    "payment_method_id": null,
    "network_transaction_id": null,
    "payment_method_status": null,
    "updated": "2025-10-14T17:03:18.227Z",
    "split_payments": null,
    "frm_metadata": null,
    "extended_authorization_applied": null,
    "request_extended_authorization": null,
    "capture_before": null,
    "merchant_order_reference_id": null,
    "order_tax_amount": null,
    "connector_mandate_id": null,
    "card_discovery": null,
    "force_3ds_challenge": false,
    "force_3ds_challenge_trigger": false,
    "issuer_error_code": null,
    "issuer_error_message": null,
    "is_iframe_redirection_enabled": null,
    "whole_connector_response": null,
    "enable_partial_authorization": null,
    "enable_overcapture": null,
    "is_overcapture_enabled": null,
    "network_details": null,
    "is_stored_credential": null,
    "mit_category": null
}

Checklist

  • I formatted the code cargo +nightly fmt --all
  • I addressed lints thrown by cargo clippy
  • I reviewed the submitted code
  • I added unit tests for my changes where possible

@Anurag-05-prog Anurag-05-prog self-assigned this Oct 14, 2025
@Anurag-05-prog Anurag-05-prog requested a review from a team as a code owner October 14, 2025 17:06
@semanticdiff-com
Copy link

semanticdiff-com bot commented Oct 14, 2025

@Anurag-05-prog Anurag-05-prog linked an issue Oct 14, 2025 that may be closed by this pull request
2 tasks
Comment on lines +378 to +382
[finix]
api_key = "api_key"
key1 = "key1"
key2 = "key2"
api_secret = "api_secret" No newline at end of file
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
[finix]
api_key = "api_key"
key1 = "key1"
key2 = "key2"
api_secret = "api_secret"
[finix]
api_key = "Username"
key1 = "Merchant Id"
key2 = "Merchant Identity Id"
api_secret = "Password"

@likhinbopanna likhinbopanna added this pull request to the merge queue Oct 15, 2025
Merged via the queue into main with commit e641ea2 Oct 15, 2025
21 of 25 checks passed
@likhinbopanna likhinbopanna deleted the fix/finix-google-pay branch October 15, 2025 16:19
chaitak-gorai pushed a commit that referenced this pull request Oct 16, 2025
Co-authored-by: Anurag Singh <anurag.singh.001@Anurag-Singh-WPMHJ5619X.local>
drdholu pushed a commit to drdholu/hyperswitch that referenced this pull request Oct 30, 2025
Co-authored-by: Anurag Singh <anurag.singh.001@Anurag-Singh-WPMHJ5619X.local>
aadityaguptaa pushed a commit that referenced this pull request Nov 10, 2025
Co-authored-by: Anurag Singh <anurag.singh.001@Anurag-Singh-WPMHJ5619X.local>
dipanshuhappy added a commit to dipanshuhappy/hyperswitch that referenced this pull request Dec 8, 2025
Co-authored-by: Anurag Singh
<anurag.singh.001@Anurag-Singh-WPMHJ5619X.local>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG] WASM changes not done for Finix Google Pay

4 participants