# `Stripe.Params.Checkout.SessionCreateParams.PaymentMethodOptions.WechatPay`
[🔗](https://github.com/jeffhuen/tiger_stripe/blob/main/lib/stripe/params/checkout/session_create_params.ex#L2094)

Nested parameters.

# `t`

```elixir
@type t() ::
  %Stripe.Params.Checkout.SessionCreateParams.PaymentMethodOptions.WechatPay{
    app_id: String.t() | nil,
    client: String.t() | nil,
    setup_future_usage: String.t() | nil
  }
```

* `app_id` - The app ID registered with WeChat Pay. Only required when client is ios or android. Max length: 5000.
* `client` - The client type that the end customer will pay from Possible values: `android`, `ios`, `web`.
* `setup_future_usage` - Indicates that you intend to make future payments with this PaymentIntent's payment method.

If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.

If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.

When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication). Possible values: `none`.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
