Bug: [REFACTOR] : [Stripe] Add support for recurring payments for GooglePay



### Feature Description

Add support for recurring payments for GooglePay

### Have you spent some time to check if this feature request has been raised before?

- [X] I checked and didn't find similar issue

### Have you read the Contributing Guidelines?

- [X] I have read the [Contributing Guidelines](https://github.com/juspay/hyperswitch/blob/main/docs/CONTRIBUTING.md)

### Are you willing to submit a PR?
yes
diff --git a/crates/router/src/connector/stripe/transformers.rs b/crates/router/src/connector/stripe/transformers.rs
index 45aeb1e9074..211ac559fec 100644
--- a/crates/router/src/connector/stripe/transformers.rs
+++ b/crates/router/src/connector/stripe/transformers.rs
@@ -637,10 +637,11 @@ impl TryFrom<enums::PaymentMethodType> for StripePaymentMethodType {
             enums::PaymentMethodType::Blik => Ok(Self::Blik),
             enums::PaymentMethodType::AliPay => Ok(Self::Alipay),
             enums::PaymentMethodType::Przelewy24 => Ok(Self::Przelewy24),
+            // Stripe expects PMT as Card for Recurring Mandates Payments
+            enums::PaymentMethodType::GooglePay => Ok(Self::Card),
             enums::PaymentMethodType::Boleto
             | enums::PaymentMethodType::CardRedirect
             | enums::PaymentMethodType::CryptoCurrency
-            | enums::PaymentMethodType::GooglePay
             | enums::PaymentMethodType::Multibanco
             | enums::PaymentMethodType::OnlineBankingFpx
             | enums::PaymentMethodType::Paypal

## Type of Change
<!-- Put an `x` in the boxes that apply -->

- [ ] Bugfix
- [ ] New feature
- [x] Enhancement
- [x] Refactoring
- [ ] Dependency updates
- [ ] Documentation
- [ ] CI/CD

## Description
Add Support for Google Pay recurring Payments for Stripe Connector

### Additional Changes

- [ ] This PR modifies the API contract
- [ ] This PR modifies the database schema
- [ ] This PR modifies application configuration/environment variables

<!--
Provide links to the files with corresponding changes.

Following are the paths where you can find config files:
1. `config`
2. `crates/router/src/configs`
3. `loadtest/config`
-->


## Motivation and Context
<!--
Why is this change required? What problem does it solve?
If it fixes an open issue, please link to the issue here.

If you don't have an issue, we'd recommend starting with one first so the PR
can focus on the implementation (unless it is an obvious bug or documentation fix
that will have little conversation).
-->


## How did you test it?
TESTING WITH `PAYMENT_METHOD_ID`
1. Create a CIT Gpay Payment vai Stripe
```
{
    "amount": 6540,
    "currency": "INR",
    "confirm": true,
    "capture_method": "automatic",
    "capture_on": "2022-09-10T10:11:12Z",
    "amount_to_capture": 6540,
    "customer_id": "StripeCustomer",
    "email": "guest@example.com",
    "name": "John Doe",
    "phone": "999999999",
    "phone_country_code": "+1",
    "description": "Its my first payment request",
    "authentication_type": "no_three_ds",
    "return_url": "https://duck.com",
     "payment_method": "wallet",
        "payment_method_type": "google_pay",
        "payment_method_data": {
            "wallet": {
                "google_pay": {
                    "type": "CARD",
                    "description": "Visa •••• 1111",
                    "info": {
                        "card_network": "VISA",
                        "card_details": "1111"
                    },
                    "tokenization_data": {
  "type": "PAYMENT_GATEWAY",
  "token": "{token}"
}
                }
            }
      },
    "billing": {
        "address": {
            "line1": "1467",
            "line2": "Harrison Street",
            "line3": "Harrison Street",
            "city": "San Fransico",
            "state": "California",
            "zip": "94122",
            "country": "US",
            "first_name": "sundari"
        }
    },
    "shipping": {
        "address": {
            "line1": "1467",
            "line2": "Harrison Street",
            "line3": "Harrison Street",
            "city": "San Fransico",
            "state": "California",
            "zip": "94122",
            "country": "US",
            "first_name": "sundari"
        }
    },
    "statement_descriptor_name": "joseph",
    "statement_descriptor_suffix": "JS",
    "metadata": {
        "udf1": "value1",
        "new_customer": "true",
        "login_date": "2019-09-10T10:11:12Z"
    },

"setup_future_usage":"off_session",
"customer_acceptance": {
            "acceptance_type": "offline",
            "accepted_at": "1963-05-03T04:07:52.723Z",
            "online": {
                "ip_address": "in sit",
                "user_agent": "amet irure esse"
            }
        }
}
```
Response
```
{
    "payment_id": "pay_Silkngki34Xj28mT1R1R",
    "merchant_id": "postman_merchant_GHAction_0c456d29-8ea8-46c4-b7d3-505b40939a33",
    "status": "succeeded",
    "amount": 6540,
    "net_amount": 6540,
    "amount_capturable": 0,
    "amount_received": 6540,
    "connector": "stripe",
    "client_secret": "pay_Silkngki34Xj28mT1R1R_secret_8mOW2gVLoDXXapxWgEuL",
    "created": "2024-04-04T10:46:16.907Z",
    "currency": "INR",
    "customer_id": "StripeCustomer",
    "customer": {
        "id": "StripeCustomer",
        "name": "John Doe",
        "email": "guest@example.com",
        "phone": "999999999",
        "phone_country_code": "+1"
    },
    "description": "Its my first payment request",
    "refunds": null,
    "disputes": null,
    "mandate_id": null,
    "mandate_data": null,
    "setup_future_usage": "off_session",
    "off_session": null,
    "capture_on": null,
    "capture_method": "automatic",
    "payment_method": "wallet",
    "payment_method_data": {
        "wallet": {},
        "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": "sundari",
            "last_name": 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": "sundari",
            "last_name": null
        },
        "phone": null,
        "email": null
    },
    "order_details": null,
    "email": "guest@example.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": "StripeCustomer",
        "created_at": 1712227576,
        "expires": 1712231176,
        "secret": "epk_91696cceeba74e73b4fef04e3c8a53f1"
    },
    "manual_retry_allowed": false,
    "connector_transaction_id": "pi_3P1noDD5R7gDAGff0v863vps",
    "frm_message": null,
    "metadata": {
        "udf1": "value1",
        "login_date": "2019-09-10T10:11:12Z",
        "new_customer": "true"
    },
    "connector_metadata": null,
    "feature_metadata": null,
    "reference_id": "pi_3P1noDD5R7gDAGff0v863vps",
    "payment_link": null,
    "profile_id": "pro_4Aycmjy6kMC33pEisLdF",
    "surcharge_details": null,
    "attempt_count": 1,
    "merchant_decision": null,
    "merchant_connector_id": "mca_vNxTuQF8uaucUyRapDoP",
    "incremental_authorization_allowed": null,
    "authorization_count": null,
    "incremental_authorizations": null,
    "external_authentication_details": null,
    "external_3ds_authentication_attempted": false,
    "expires_on": "2024-04-04T11:01:16.907Z",
    "fingerprint": null,
    "browser_info": null,
    "payment_method_id": "pm_j3BWlKSBMuA9EtL3tf57",
    "payment_method_status": null
}
```
2. hit List Payment methods for a Customer
Response:
```
{
    "customer_payment_methods": [
        {
            "payment_token": "token_C4qwVJSMzYaFroUCpVeZ",
            "payment_method_id": "pm_j3BWlKSBMuA9EtL3tf57",
            "customer_id": "StripeCustomer",
            "payment_method": "wallet",
            "payment_method_type": "google_pay",
            "payment_method_issuer": null,
            "payment_method_issuer_code": null,
            "recurring_enabled": false,
            "installment_payment_enabled": false,
            "payment_experience": [
                "redirect_to_url"
            ],
            "card": null,
            "metadata": null,
            "created": "2024-04-04T10:46:18.816Z",
            "bank": null,
            "surcharge_details": null,
            "requires_cvv": true,
            "last_used_at": "2024-04-04T10:46:18.816Z",
            "default_payment_method_set": false
        },
        {
            "payment_token": "token_aDMvZRRb5KS1kxgxduvj",
            "payment_method_id": "pm_wG1aHDa0PGZ5Wa64HL30",
            "customer_id": "StripeCustomer",
            "payment_method": "wallet",
            "payment_method_type": "google_pay",
            "payment_method_issuer": null,
            "payment_method_issuer_code": null,
            "recurring_enabled": false,
            "installment_payment_enabled": false,
            "payment_experience": [
                "redirect_to_url"
            ],
            "card": null,
            "metadata": null,
            "created": "2024-04-04T10:42:12.538Z",
            "bank": null,
            "surcharge_details": null,
            "requires_cvv": true,
            "last_used_at": "2024-04-04T10:42:12.538Z",
            "default_payment_method_set": false
        },
        {
            "payment_token": "token_pahJKG3OsrkDDGEMC7M5",
            "payment_method_id": "pm_Y8E7W5doyuL44l67EDdV",
            "customer_id": "StripeCustomer",
            "payment_method": "card",
            "payment_method_type": null,
            "payment_method_issuer": null,
            "payment_method_issuer_code": null,
            "recurring_enabled": false,
            "installment_payment_enabled": false,
            "payment_experience": [
                "redirect_to_url"
            ],
            "card": {
                "scheme": null,
                "issuer_country": null,
                "last4_digits": "4242",
                "expiry_month": "10",
                "expiry_year": "25",
                "card_token": null,
                "card_holder_name": "joseph Doe",
                "card_fingerprint": null,
                "nick_name": null,
                "card_network": null,
                "card_isin": "424242",
                "card_issuer": null,
                "card_type": null,
                "saved_to_locker": true
            },
            "metadata": null,
            "created": "2024-04-04T10:17:39.092Z",
            "bank": null,
            "surcharge_details": null,
            "requires_cvv": true,
            "last_used_at": "2024-04-04T10:17:39.092Z",
            "default_payment_method_set": false
        },
        {
            "payment_token": "token_BeNSN078uVSljFekB3V2",
            "payment_method_id": "pm_BvBX5hIT5sCQrR3b4PLL",
            "customer_id": "StripeCustomer",
            "payment_method": "wallet",
            "payment_method_type": "google_pay",
            "payment_method_issuer": null,
            "payment_method_issuer_code": null,
            "recurring_enabled": false,
            "installment_payment_enabled": false,
            "payment_experience": [
                "redirect_to_url"
            ],
            "card": null,
            "metadata": null,
            "created": "2024-04-04T10:14:45.411Z",
            "`bank": null,
            "surcharge_details": null,
            "requires_cvv": true,
            "last_used_at": "2024-04-04T10:14:45.411Z",
            "default_payment_method_set": true
        }
    ],
    "is_guest_customer": null
}
```
In Response we will get `payment_method_id` .

3. Using this `payment_method_id` we will create MIT
Request:
```
{
    "amount": 6540,
    "currency": "USD",
    "confirm": true,
    "capture_method": "automatic",
    "capture_on": "2022-09-10T10:11:12Z",
    "amount_to_capture": 6540,
    "customer_id": "StripeCustomer",
    "description": "Its my first payment request",
    "authentication_type": "no_three_ds",
    "return_url": "https://duck.com",
    "statement_descriptor_name": "joseph",
    "statement_descriptor_suffix": "JS",
    "metadata": {
        "udf1": "value1",
        "new_customer": "true",
        "login_date": "2019-09-10T10:11:12Z"
    },

"off_session": true,
        "recurring_details":{
    "type":"payment_method_id",
    "data":"pm_j3BWlKSBMuA9EtL3tf57"
}
}
```

Response:
```
{
    "payment_id": "pay_qYkH7UxBL4FX9vu0PRRD",
    "merchant_id": "postman_merchant_GHAction_0c456d29-8ea8-46c4-b7d3-505b40939a33",
    "status": "succeeded",
    "amount": 6540,
    "net_amount": 6540,
    "amount_capturable": 0,
    "amount_received": 6540,
    "connector": "stripe",
    "client_secret": "pay_qYkH7UxBL4FX9vu0PRRD_secret_E7VCnAywLHOH3lkMrElM",
    "created": "2024-04-04T10:46:43.831Z",
    "currency": "USD",
    "customer_id": "StripeCustomer",
    "customer": {
        "id": "StripeCustomer",
        "name": "John Doe",
        "email": "guest@example.com",
        "phone": "999999999",
        "phone_country_code": "+1"
    },
    "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": null,
    "payment_token": null,
    "shipping": null,
    "billing": null,
    "order_details": null,
    "email": "guest@example.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": "StripeCustomer",
        "created_at": 1712227603,
        "expires": 1712231203,
        "secret": "epk_90826711922c44269fbbb248ec758e87"
    },
    "manual_retry_allowed": false,
    "connector_transaction_id": "pi_3P1noeD5R7gDAGff06hbQBvc",
    "frm_message": null,
    "metadata": {
        "udf1": "value1",
        "login_date": "2019-09-10T10:11:12Z",
        "new_customer": "true"
    },
    "connector_metadata": null,
    "feature_metadata": null,
    "reference_id": "pi_3P1noeD5R7gDAGff06hbQBvc",
    "payment_link": null,
    "profile_id": "pro_4Aycmjy6kMC33pEisLdF",
    "surcharge_details": null,
    "attempt_count": 1,
    "merchant_decision": null,
    "merchant_connector_id": "mca_vNxTuQF8uaucUyRapDoP",
    "incremental_authorization_allowed": null,
    "authorization_count": null,
    "incremental_authorizations": null,
    "external_authentication_details": null,
    "external_3ds_authentication_attempted": false,
    "expires_on": "2024-04-04T11:01:43.831Z",
    "fingerprint": null,
    "browser_info": null,
    "payment_method_id": "pm_j3BWlKSBMuA9EtL3tf57",
    "payment_method_status": "active"
}
```
________________________________________________
TESTING WITH `MANDATE_ID`
1. Create a CIT GPay Payment vai Stripe
```
{
    "amount": 6540,
    "currency": "INR",
    "confirm": true,
    "capture_method": "automatic",
    "capture_on": "2022-09-10T10:11:12Z",
    "amount_to_capture": 6540,
    "customer_id": "StripeCustomer",
    "email": "guest@example.com",
    "name": "John Doe",
    "phone": "999999999",
    "phone_country_code": "+1",
    "description": "Its my first payment request",
    "authentication_type": "no_three_ds",
    "return_url": "https://duck.com",
     "payment_method": "wallet",
        "payment_method_type": "google_pay",
        "payment_method_data": {
            "wallet": {
                "google_pay": {
                    "type": "CARD",
                    "description": "Visa •••• 1111",
                    "info": {
                        "card_network": "VISA",
                        "card_details": "1111"
                    },
                    "tokenization_data": {
  "type": "PAYMENT_GATEWAY",
  "token": "{\n  \"id\": \"tok_1P1oLhD5R7gDAGffwVji8BOz\",\n  \"object\": \"token\",\n  \"card\": {\n    \"id\": \"card_1P1oLhD5R7gDAGffYyDUTBCD\",\n    \"object\": \"card\",\n    \"address_city\": null,\n    \"address_country\": null,\n    \"address_line1\": null,\n    \"address_line1_check\": null,\n    \"address_line2\": null,\n    \"address_state\": null,\n    \"address_zip\": null,\n    \"address_zip_check\": null,\n    \"brand\": \"Visa\",\n    \"country\": \"US\",\n    \"cvc_check\": null,\n    \"dynamic_last4\": \"1111\",\n    \"exp_month\": 12,\n    \"exp_year\": 2026,\n    \"funding\": \"credit\",\n    \"last4\": \"1111\",\n    \"metadata\": {},\n    \"name\": null,\n    \"networks\": {\n      \"preferred\": null\n    },\n    \"tokenization_method\": \"android_pay\",\n    \"wallet\": null\n  },\n  \"client_ip\": \"209.85.198.69\",\n  \"created\": 1712229653,\n  \"livemode\": false,\n  \"type\": \"card\",\n  \"used\": false\n}"
}
                }
            }
      },
    "billing": {
        "address": {
            "line1": "1467",
            "line2": "Harrison Street",
            "line3": "Harrison Street",
            "city": "San Fransico",
            "state": "California",
            "zip": "94122",
            "country": "US",
            "first_name": "sundari"
        }
    },
    "shipping": {
        "address": {
            "line1": "1467",
            "line2": "Harrison Street",
            "line3": "Harrison Street",
            "city": "San Fransico",
            "state": "California",
            "zip": "94122",
            "country": "US",
            "first_name": "sundari"
        }
    },
    "statement_descriptor_name": "joseph",
    "statement_descriptor_suffix": "JS",
    "metadata": {
        "udf1": "value1",
        "new_customer": "true",
        "login_date": "2019-09-10T10:11:12Z"
    },

"setup_future_usage":"off_session",
         "mandate_data": {
        "customer_acceptance": {
            "acceptance_type": "offline",
            "accepted_at": "1963-05-03T04:07:52.723Z",
            "online": {
                "ip_address": "in sit",
                "user_agent": "amet irure esse"
            }
        },
        "mandate_type": {
            "multi_use": {
                "amount": 6540,
                "currency": "USD"
            }
        }
        
    }
}
```
Response:
```
{
    "payment_id": "pay_CcnuFccKKipXJQPzJ74C",
    "merchant_id": "postman_merchant_GHAction_0c456d29-8ea8-46c4-b7d3-505b40939a33",
    "status": "succeeded",
    "amount": 6540,
    "net_amount": 6540,
    "amount_capturable": 0,
    "amount_received": 6540,
    "connector": "stripe",
    "client_secret": "pay_CcnuFccKKipXJQPzJ74C_secret_4cfaK4bXzSMj8OCBOWZ7",
    "created": "2024-04-04T11:22:25.205Z",
    "currency": "INR",
    "customer_id": "StripeCustomer",
    "customer": {
        "id": "StripeCustomer",
        "name": "John Doe",
        "email": "guest@example.com",
        "phone": "999999999",
        "phone_country_code": "+1"
    },
    "description": "Its my first payment request",
    "refunds": null,
    "disputes": null,
    "mandate_id": "man_Hm4KrSW3363qNgnZgd0o",
    "mandate_data": {
        "update_mandate_id": null,
        "customer_acceptance": {
            "acceptance_type": "offline",
            "accepted_at": "1963-05-03T04:07:52.723Z",
            "online": {
                "ip_address": "in sit",
                "user_agent": "amet irure esse"
            }
        },
        "mandate_type": {
            "multi_use": {
                "amount": 6540,
                "currency": "USD",
                "start_date": null,
                "end_date": null,
                "metadata": null
            }
        }
    },
    "setup_future_usage": "off_session",
    "off_session": null,
    "capture_on": null,
    "capture_method": "automatic",
    "payment_method": "wallet",
    "payment_method_data": {
        "wallet": {},
        "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": "sundari",
            "last_name": 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": "sundari",
            "last_name": null
        },
        "phone": null,
        "email": null
    },
    "order_details": null,
    "email": "guest@example.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": "StripeCustomer",
        "created_at": 1712229745,
        "expires": 1712233345,
        "secret": "epk_740115c98bce48a5bbbfcb2b150c7bf6"
    },
    "manual_retry_allowed": false,
    "connector_transaction_id": "pi_3P1oNBD5R7gDAGff0JAzGZOx",
    "frm_message": null,
    "metadata": {
        "udf1": "value1",
        "login_date": "2019-09-10T10:11:12Z",
        "new_customer": "true"
    },
    "connector_metadata": null,
    "feature_metadata": null,
    "reference_id": "pi_3P1oNBD5R7gDAGff0JAzGZOx",
    "payment_link": null,
    "profile_id": "pro_4Aycmjy6kMC33pEisLdF",
    "surcharge_details": null,
    "attempt_count": 1,
    "merchant_decision": null,
    "merchant_connector_id": "mca_vNxTuQF8uaucUyRapDoP",
    "incremental_authorization_allowed": null,
    "authorization_count": null,
    "incremental_authorizations": null,
    "external_authentication_details": null,
    "external_3ds_authentication_attempted": false,
    "expires_on": "2024-04-04T11:37:25.205Z",
    "fingerprint": null,
    "browser_info": null,
    "payment_method_id": "pm_BKkvrO0nVTq0xlUv57mL",
    "payment_method_status": null
}
```
In response we get `mandate_id`

2. Using `mandate_id` create a MIT payment
```
{
    "amount": 6540,
    "currency": "USD",
    "confirm": true,
    "capture_method": "automatic",
    "capture_on": "2022-09-10T10:11:12Z",
    "amount_to_capture": 6540,
    "customer_id": "StripeCustomer",
    "description": "Its my first payment request",
    "authentication_type": "no_three_ds",
    "return_url": "https://duck.com",
    "statement_descriptor_name": "joseph",
    "statement_descriptor_suffix": "JS",
    "metadata": {
        "udf1": "value1",
        "new_customer": "true",
        "login_date": "2019-09-10T10:11:12Z"
    },

"off_session": true,
        "recurring_details":{
    "type":"mandate_id",
    "data":"man_Hm4KrSW3363qNgnZgd0o"
}
}
```
Response:
```
{
    "payment_id": "pay_NQjh6W6gsMlMKuWOgj6p",
    "merchant_id": "postman_merchant_GHAction_0c456d29-8ea8-46c4-b7d3-505b40939a33",
    "status": "succeeded",
    "amount": 6540,
    "net_amount": 6540,
    "amount_capturable": 0,
    "amount_received": 6540,
    "connector": "stripe",
    "client_secret": "pay_NQjh6W6gsMlMKuWOgj6p_secret_auS1fIEZirRtoGcGKYU1",
    "created": "2024-04-04T11:22:57.184Z",
    "currency": "USD",
    "customer_id": "StripeCustomer",
    "customer": {
        "id": "StripeCustomer",
        "name": "John Doe",
        "email": "guest@example.com",
        "phone": "999999999",
        "phone_country_code": "+1"
    },
    "description": "Its my first payment request",
    "refunds": null,
    "disputes": null,
    "mandate_id": "man_Hm4KrSW3363qNgnZgd0o",
    "mandate_data": null,
    "setup_future_usage": null,
    "off_session": null,
    "capture_on": null,
    "capture_method": "automatic",
    "payment_method": "wallet",
    "payment_method_data": null,
    "payment_token": null,
    "shipping": null,
    "billing": null,
    "order_details": null,
    "email": "guest@example.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": "StripeCustomer",
        "created_at": 1712229777,
        "expires": 1712233377,
        "secret": "epk_4e626057208d4d82bc1d3b0abcce4a39"
    },
    "manual_retry_allowed": false,
    "connector_transaction_id": "pi_3P1oNhD5R7gDAGff03J1Ljzq",
    "frm_message": null,
    "metadata": {
        "udf1": "value1",
        "login_date": "2019-09-10T10:11:12Z",
        "new_customer": "true"
    },
    "connector_metadata": null,
    "feature_metadata": null,
    "reference_id": "pi_3P1oNhD5R7gDAGff03J1Ljzq",
    "payment_link": null,
    "profile_id": "pro_4Aycmjy6kMC33pEisLdF",
    "surcharge_details": null,
    "attempt_count": 1,
    "merchant_decision": null,
    "merchant_connector_id": "mca_vNxTuQF8uaucUyRapDoP",
    "incremental_authorization_allowed": null,
    "authorization_count": null,
    "incremental_authorizations": null,
    "external_authentication_details": null,
    "external_3ds_authentication_attempted": false,
    "expires_on": "2024-04-04T11:37:57.184Z",
    "fingerprint": null,
    "browser_info": null,
    "payment_method_id": null,
    "payment_method_status": null
}
```


## Checklist
<!-- Put an `x` in the boxes that apply -->

- [x] I formatted the code `cargo +nightly fmt --all`
- [x] I addressed lints thrown by `cargo clippy`
- [x] I reviewed the submitted code
- [ ] I added unit tests for my changes where possible
- [ ] I added a [CHANGELOG](/CHANGELOG.md) entry if applicable
