PaymentMethodConfiguration.php 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. <?php
  2. // File generated from our OpenAPI spec
  3. namespace Stripe;
  4. /**
  5. * PaymentMethodConfigurations control which payment methods are displayed to your customers when you don't explicitly specify payment method types. You can have multiple configurations with different sets of payment methods for different scenarios.
  6. *
  7. * There are two types of PaymentMethodConfigurations. Which is used depends on the <a href="https://stripe.com/docs/connect/charges">charge type</a>:
  8. *
  9. * <strong>Direct</strong> configurations apply to payments created on your account, including Connect destination charges, Connect separate charges and transfers, and payments not involving Connect.
  10. *
  11. * <strong>Child</strong> configurations apply to payments created on your connected accounts using direct charges, and charges with the on_behalf_of parameter.
  12. *
  13. * Child configurations have a <code>parent</code> that sets default values and controls which settings connected accounts may override. You can specify a parent ID at payment time, and Stripe will automatically resolve the connected account’s associated child configuration. Parent configurations are <a href="https://dashboard.stripe.com/settings/payment_methods/connected_accounts">managed in the dashboard</a> and are not available in this API.
  14. *
  15. * Related guides:
  16. * - <a href="https://stripe.com/docs/connect/payment-method-configurations">Payment Method Configurations API</a>
  17. * - <a href="https://stripe.com/docs/payments/multiple-payment-method-configs">Multiple configurations on dynamic payment methods</a>
  18. * - <a href="https://stripe.com/docs/connect/multiple-payment-method-configurations">Multiple configurations for your Connect accounts</a>
  19. *
  20. * @property string $id Unique identifier for the object.
  21. * @property string $object String representing the object's type. Objects of the same type share the same value.
  22. * @property null|\Stripe\StripeObject $acss_debit
  23. * @property bool $active Whether the configuration can be used for new payments.
  24. * @property null|\Stripe\StripeObject $affirm
  25. * @property null|\Stripe\StripeObject $afterpay_clearpay
  26. * @property null|\Stripe\StripeObject $alipay
  27. * @property null|\Stripe\StripeObject $amazon_pay
  28. * @property null|\Stripe\StripeObject $apple_pay
  29. * @property null|string $application For child configs, the Connect application associated with the configuration.
  30. * @property null|\Stripe\StripeObject $au_becs_debit
  31. * @property null|\Stripe\StripeObject $bacs_debit
  32. * @property null|\Stripe\StripeObject $bancontact
  33. * @property null|\Stripe\StripeObject $blik
  34. * @property null|\Stripe\StripeObject $boleto
  35. * @property null|\Stripe\StripeObject $card
  36. * @property null|\Stripe\StripeObject $cartes_bancaires
  37. * @property null|\Stripe\StripeObject $cashapp
  38. * @property null|\Stripe\StripeObject $customer_balance
  39. * @property null|\Stripe\StripeObject $eps
  40. * @property null|\Stripe\StripeObject $fpx
  41. * @property null|\Stripe\StripeObject $giropay
  42. * @property null|\Stripe\StripeObject $google_pay
  43. * @property null|\Stripe\StripeObject $grabpay
  44. * @property null|\Stripe\StripeObject $ideal
  45. * @property bool $is_default The default configuration is used whenever a payment method configuration is not specified.
  46. * @property null|\Stripe\StripeObject $jcb
  47. * @property null|\Stripe\StripeObject $klarna
  48. * @property null|\Stripe\StripeObject $konbini
  49. * @property null|\Stripe\StripeObject $link
  50. * @property bool $livemode Has the value <code>true</code> if the object exists in live mode or the value <code>false</code> if the object exists in test mode.
  51. * @property null|\Stripe\StripeObject $mobilepay
  52. * @property null|\Stripe\StripeObject $multibanco
  53. * @property string $name The configuration's name.
  54. * @property null|\Stripe\StripeObject $oxxo
  55. * @property null|\Stripe\StripeObject $p24
  56. * @property null|string $parent For child configs, the configuration's parent configuration.
  57. * @property null|\Stripe\StripeObject $paynow
  58. * @property null|\Stripe\StripeObject $paypal
  59. * @property null|\Stripe\StripeObject $promptpay
  60. * @property null|\Stripe\StripeObject $revolut_pay
  61. * @property null|\Stripe\StripeObject $sepa_debit
  62. * @property null|\Stripe\StripeObject $sofort
  63. * @property null|\Stripe\StripeObject $swish
  64. * @property null|\Stripe\StripeObject $us_bank_account
  65. * @property null|\Stripe\StripeObject $wechat_pay
  66. * @property null|\Stripe\StripeObject $zip
  67. */
  68. class PaymentMethodConfiguration extends ApiResource
  69. {
  70. const OBJECT_NAME = 'payment_method_configuration';
  71. use ApiOperations\Update;
  72. /**
  73. * Creates a payment method configuration.
  74. *
  75. * @param null|array $params
  76. * @param null|array|string $options
  77. *
  78. * @throws \Stripe\Exception\ApiErrorException if the request fails
  79. *
  80. * @return \Stripe\PaymentMethodConfiguration the created resource
  81. */
  82. public static function create($params = null, $options = null)
  83. {
  84. self::_validateParams($params);
  85. $url = static::classUrl();
  86. list($response, $opts) = static::_staticRequest('post', $url, $params, $options);
  87. $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts);
  88. $obj->setLastResponse($response);
  89. return $obj;
  90. }
  91. /**
  92. * List payment method configurations.
  93. *
  94. * @param null|array $params
  95. * @param null|array|string $opts
  96. *
  97. * @throws \Stripe\Exception\ApiErrorException if the request fails
  98. *
  99. * @return \Stripe\Collection<\Stripe\PaymentMethodConfiguration> of ApiResources
  100. */
  101. public static function all($params = null, $opts = null)
  102. {
  103. $url = static::classUrl();
  104. return static::_requestPage($url, \Stripe\Collection::class, $params, $opts);
  105. }
  106. /**
  107. * Retrieve payment method configuration.
  108. *
  109. * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key
  110. * @param null|array|string $opts
  111. *
  112. * @throws \Stripe\Exception\ApiErrorException if the request fails
  113. *
  114. * @return \Stripe\PaymentMethodConfiguration
  115. */
  116. public static function retrieve($id, $opts = null)
  117. {
  118. $opts = \Stripe\Util\RequestOptions::parse($opts);
  119. $instance = new static($id, $opts);
  120. $instance->refresh();
  121. return $instance;
  122. }
  123. /**
  124. * Update payment method configuration.
  125. *
  126. * @param string $id the ID of the resource to update
  127. * @param null|array $params
  128. * @param null|array|string $opts
  129. *
  130. * @throws \Stripe\Exception\ApiErrorException if the request fails
  131. *
  132. * @return \Stripe\PaymentMethodConfiguration the updated resource
  133. */
  134. public static function update($id, $params = null, $opts = null)
  135. {
  136. self::_validateParams($params);
  137. $url = static::resourceUrl($id);
  138. list($response, $opts) = static::_staticRequest('post', $url, $params, $opts);
  139. $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts);
  140. $obj->setLastResponse($response);
  141. return $obj;
  142. }
  143. }