# `Stripe.Resources.PaymentIntent.PaymentMethodOptions.WechatPay`
[🔗](https://github.com/jeffhuen/tiger_stripe/blob/main/lib/stripe/resources/payment_intent.ex#L1881)

Nested struct within the parent resource.

# `t`

```elixir
@type t() :: %Stripe.Resources.PaymentIntent.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. Nullable.
* `client` - The client type that the end customer will pay from Possible values: `android`, `ios`, `web`. Nullable.
* `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*
