Browse Source

Update Stripe lib to 10.7.0

Laurent Destailleur 2 năm trước cách đây
mục cha
commit
936512d0bb
100 tập tin đã thay đổi với 2841 bổ sung2161 xóa
  1. 1 1
      COPYRIGHT
  2. 0 3
      htdocs/includes/stripe/stripe-php/.coveralls.github-actions.yml
  3. 0 20
      htdocs/includes/stripe/stripe-php/.editorconfig
  4. 4 0
      htdocs/includes/stripe/stripe-php/.gitignore
  5. 0 45
      htdocs/includes/stripe/stripe-php/.php_cs.dist
  6. 631 0
      htdocs/includes/stripe/stripe-php/CHANGELOG.md
  7. 0 77
      htdocs/includes/stripe/stripe-php/CODE_OF_CONDUCT.md
  8. 0 36
      htdocs/includes/stripe/stripe-php/Makefile
  9. 1 0
      htdocs/includes/stripe/stripe-php/OPENAPI_VERSION
  10. 41 9
      htdocs/includes/stripe/stripe-php/README.md
  11. 1 1
      htdocs/includes/stripe/stripe-php/VERSION
  12. 0 25
      htdocs/includes/stripe/stripe-php/build.php
  13. 4 4
      htdocs/includes/stripe/stripe-php/composer.json
  14. 3 895
      htdocs/includes/stripe/stripe-php/data/ca-certificates.crt
  15. 76 14
      htdocs/includes/stripe/stripe-php/init.php
  16. 50 79
      htdocs/includes/stripe/stripe-php/lib/Account.php
  17. 0 75
      htdocs/includes/stripe/stripe-php/lib/AlipayAccount.php
  18. 32 0
      htdocs/includes/stripe/stripe-php/lib/ApiOperations/Request.php
  19. 37 0
      htdocs/includes/stripe/stripe-php/lib/ApiOperations/Search.php
  20. 30 0
      htdocs/includes/stripe/stripe-php/lib/ApiOperations/SingletonRetrieve.php
  21. 4 0
      htdocs/includes/stripe/stripe-php/lib/ApiOperations/Update.php
  22. 106 15
      htdocs/includes/stripe/stripe-php/lib/ApiRequestor.php
  23. 2 0
      htdocs/includes/stripe/stripe-php/lib/ApiResource.php
  24. 2 2
      htdocs/includes/stripe/stripe-php/lib/ApplicationFee.php
  25. 79 0
      htdocs/includes/stripe/stripe-php/lib/Apps/Secret.php
  26. 4 14
      htdocs/includes/stripe/stripe-php/lib/Balance.php
  27. 1 0
      htdocs/includes/stripe/stripe-php/lib/BankAccount.php
  28. 44 1
      htdocs/includes/stripe/stripe-php/lib/BaseStripeClient.php
  29. 44 0
      htdocs/includes/stripe/stripe-php/lib/BaseStripeClientInterface.php
  30. 33 0
      htdocs/includes/stripe/stripe-php/lib/BillingPortal/Configuration.php
  31. 18 8
      htdocs/includes/stripe/stripe-php/lib/BillingPortal/Session.php
  32. 0 71
      htdocs/includes/stripe/stripe-php/lib/BitcoinReceiver.php
  33. 0 19
      htdocs/includes/stripe/stripe-php/lib/BitcoinTransaction.php
  34. 2 1
      htdocs/includes/stripe/stripe-php/lib/Capability.php
  35. 3 7
      htdocs/includes/stripe/stripe-php/lib/Card.php
  36. 66 0
      htdocs/includes/stripe/stripe-php/lib/CashBalance.php
  37. 26 6
      htdocs/includes/stripe/stripe-php/lib/Charge.php
  38. 74 18
      htdocs/includes/stripe/stripe-php/lib/Checkout/Session.php
  39. 40 6
      htdocs/includes/stripe/stripe-php/lib/Collection.php
  40. 9 5
      htdocs/includes/stripe/stripe-php/lib/Coupon.php
  41. 27 5
      htdocs/includes/stripe/stripe-php/lib/CreditNote.php
  42. 3 1
      htdocs/includes/stripe/stripe-php/lib/CreditNoteLineItem.php
  43. 137 20
      htdocs/includes/stripe/stripe-php/lib/Customer.php
  44. 2 1
      htdocs/includes/stripe/stripe-php/lib/CustomerBalanceTransaction.php
  45. 42 0
      htdocs/includes/stripe/stripe-php/lib/CustomerCashBalanceTransaction.php
  46. 6 7
      htdocs/includes/stripe/stripe-php/lib/Discount.php
  47. 3 3
      htdocs/includes/stripe/stripe-php/lib/Dispute.php
  48. 1 2
      htdocs/includes/stripe/stripe-php/lib/EphemeralKey.php
  49. 0 7
      htdocs/includes/stripe/stripe-php/lib/Error/Api.php
  50. 0 7
      htdocs/includes/stripe/stripe-php/lib/Error/ApiConnection.php
  51. 0 7
      htdocs/includes/stripe/stripe-php/lib/Error/Authentication.php
  52. 0 69
      htdocs/includes/stripe/stripe-php/lib/Error/Base.php
  53. 0 40
      htdocs/includes/stripe/stripe-php/lib/Error/Card.php
  54. 0 7
      htdocs/includes/stripe/stripe-php/lib/Error/Idempotency.php
  55. 0 23
      htdocs/includes/stripe/stripe-php/lib/Error/InvalidRequest.php
  56. 0 10
      htdocs/includes/stripe/stripe-php/lib/Error/OAuth/InvalidClient.php
  57. 0 13
      htdocs/includes/stripe/stripe-php/lib/Error/OAuth/InvalidGrant.php
  58. 0 11
      htdocs/includes/stripe/stripe-php/lib/Error/OAuth/InvalidRequest.php
  59. 0 10
      htdocs/includes/stripe/stripe-php/lib/Error/OAuth/InvalidScope.php
  60. 0 23
      htdocs/includes/stripe/stripe-php/lib/Error/OAuth/OAuthBase.php
  61. 0 11
      htdocs/includes/stripe/stripe-php/lib/Error/OAuth/UnsupportedGrantType.php
  62. 0 11
      htdocs/includes/stripe/stripe-php/lib/Error/OAuth/UnsupportedResponseType.php
  63. 0 7
      htdocs/includes/stripe/stripe-php/lib/Error/Permission.php
  64. 0 7
      htdocs/includes/stripe/stripe-php/lib/Error/RateLimit.php
  65. 0 20
      htdocs/includes/stripe/stripe-php/lib/Error/SignatureVerification.php
  66. 54 10
      htdocs/includes/stripe/stripe-php/lib/ErrorObject.php
  67. 76 23
      htdocs/includes/stripe/stripe-php/lib/Event.php
  68. 8 6
      htdocs/includes/stripe/stripe-php/lib/File.php
  69. 0 6
      htdocs/includes/stripe/stripe-php/lib/FileUpload.php
  70. 104 0
      htdocs/includes/stripe/stripe-php/lib/FinancialConnections/Account.php
  71. 20 0
      htdocs/includes/stripe/stripe-php/lib/FinancialConnections/AccountOwner.php
  72. 18 0
      htdocs/includes/stripe/stripe-php/lib/FinancialConnections/AccountOwnership.php
  73. 27 0
      htdocs/includes/stripe/stripe-php/lib/FinancialConnections/Session.php
  74. 28 0
      htdocs/includes/stripe/stripe-php/lib/FundingInstructions.php
  75. 206 18
      htdocs/includes/stripe/stripe-php/lib/HttpClient/CurlClient.php
  76. 23 0
      htdocs/includes/stripe/stripe-php/lib/HttpClient/StreamingClientInterface.php
  77. 45 0
      htdocs/includes/stripe/stripe-php/lib/Identity/VerificationReport.php
  78. 88 0
      htdocs/includes/stripe/stripe-php/lib/Identity/VerificationSession.php
  79. 103 52
      htdocs/includes/stripe/stripe-php/lib/Invoice.php
  80. 20 6
      htdocs/includes/stripe/stripe-php/lib/InvoiceItem.php
  81. 7 4
      htdocs/includes/stripe/stripe-php/lib/InvoiceLineItem.php
  82. 0 24
      htdocs/includes/stripe/stripe-php/lib/IssuerFraudRecord.php
  83. 6 4
      htdocs/includes/stripe/stripe-php/lib/Issuing/Authorization.php
  84. 6 22
      htdocs/includes/stripe/stripe-php/lib/Issuing/Card.php
  85. 1 1
      htdocs/includes/stripe/stripe-php/lib/Issuing/Cardholder.php
  86. 4 3
      htdocs/includes/stripe/stripe-php/lib/Issuing/Dispute.php
  87. 2 0
      htdocs/includes/stripe/stripe-php/lib/Issuing/Transaction.php
  88. 7 7
      htdocs/includes/stripe/stripe-php/lib/LineItem.php
  89. 2 2
      htdocs/includes/stripe/stripe-php/lib/Mandate.php
  90. 0 81
      htdocs/includes/stripe/stripe-php/lib/Order.php
  91. 0 19
      htdocs/includes/stripe/stripe-php/lib/OrderItem.php
  92. 0 32
      htdocs/includes/stripe/stripe-php/lib/OrderReturn.php
  93. 77 7
      htdocs/includes/stripe/stripe-php/lib/PaymentIntent.php
  94. 92 0
      htdocs/includes/stripe/stripe-php/lib/PaymentLink.php
  95. 37 22
      htdocs/includes/stripe/stripe-php/lib/PaymentMethod.php
  96. 4 2
      htdocs/includes/stripe/stripe-php/lib/Payout.php
  97. 22 9
      htdocs/includes/stripe/stripe-php/lib/Person.php
  98. 4 4
      htdocs/includes/stripe/stripe-php/lib/Plan.php
  99. 30 7
      htdocs/includes/stripe/stripe-php/lib/Price.php
  100. 31 11
      htdocs/includes/stripe/stripe-php/lib/Product.php

+ 1 - 1
COPYRIGHT

@@ -43,7 +43,7 @@ Restler                3.1.1         LGPL-3+                     Yes
 Sabre                  3.2.2         BSD                         Yes             DAV support
 Swift Mailer           5.4.2-DEV     MIT License                 Yes             Comprehensive mailing tools for PHP
 Symfony/var-dumper     ??? 			 MIT License                 Yes             Library to make var dump (used by DebugBar)
-Stripe                 7.67.0        MIT Licence                 Yes             Library for Stripe module
+Stripe                 10.7.0        MIT Licence                 Yes             Library for Stripe module
 TCPDF                  6.3.2         LGPL-3+                     Yes             PDF generation
 TCPDI                  1.0.0         LGPL-3+ / Apache 2.0        Yes             FPDI replacement
 

+ 0 - 3
htdocs/includes/stripe/stripe-php/.coveralls.github-actions.yml

@@ -1,3 +0,0 @@
-service_name: github-actions
-coverage_clover: clover.xml
-json_path: coveralls-upload.json

+ 0 - 20
htdocs/includes/stripe/stripe-php/.editorconfig

@@ -1,20 +0,0 @@
-; https://editorconfig.org/
-
-root = true
-
-[*]
-indent_style = space
-indent_size = 4
-insert_final_newline = true
-trim_trailing_whitespace = true
-end_of_line = lf
-charset = utf-8
-
-[*.{json,yml}]
-indent_size = 2
-
-[*.neon]
-indent_style = tab
-
-[Makefile]
-indent_style = tab

+ 4 - 0
htdocs/includes/stripe/stripe-php/.gitignore

@@ -22,6 +22,7 @@ clover.xml
 # Ignore PHP CS Fixer local config and cache
 .php_cs
 .php_cs.cache
+.php-cs-fixer.cache
 
 # Ignore PHPStan local config
 .phpstan.neon
@@ -29,3 +30,6 @@ clover.xml
 # Ignore phpDocumentor's local config and artifacts
 .phpdoc/*
 phpdoc.xml
+
+# Ignore cached PHPUnit results.
+.phpunit.result.cache

+ 0 - 45
htdocs/includes/stripe/stripe-php/.php_cs.dist

@@ -1,45 +0,0 @@
-<?php
-
-return PhpCsFixer\Config::create()
-    ->setRiskyAllowed(true)
-    ->setRules([
-        // Rulesets
-        '@PSR2' => true,
-        '@PhpCsFixer' => true,
-        '@PhpCsFixer:risky' => true,
-        '@PHP56Migration:risky' => true,
-        '@PHPUnit57Migration:risky' => true,
-
-        // Additional rules
-        'fopen_flags' => true,
-        'linebreak_after_opening_tag' => true,
-        'native_constant_invocation' => true,
-        'native_function_invocation' => true,
-
-        // --- Diffs from @PhpCsFixer / @PhpCsFixer:risky ---
-
-        // This is the same as the default for the @PhpCsFixer ruleset, minus
-        // the following values: ['include', 'include_once', 'require',
-        // 'require_once']. We could enable them and remove this line after
-        // updating codegen for the `init.php` file to be compliant.
-        'blank_line_before_statement' => ['statements' => ['break', 'case', 'continue', 'declare', 'default', 'exit', 'goto', 'return', 'switch', 'throw', 'try']],
-
-        // This is just prettier / easier to read.
-        'concat_space' => ['spacing' => 'one'],
-
-        // This causes strange ordering with codegen'd classes. We might be
-        // able to enable this if we update codegen to output class elements
-        // in the correct order.
-        'ordered_class_elements' => false,
-
-        // Keep this disabled to avoid unnecessary diffs in PHPDoc comments of
-        // codegen'd classes.
-        'phpdoc_align' => false,
-
-        // This is a "risky" rule that causes a bug in our codebase.
-        // Specifically, in `StripeObject.updateAttributes` we construct new
-        // `StripeObject`s for metadata. We can't use `self` there because it
-        // needs to be a raw `StripeObject`.
-        'self_accessor' => false,
-    ])
-;

+ 631 - 0
htdocs/includes/stripe/stripe-php/CHANGELOG.md

@@ -1,5 +1,636 @@
 # Changelog
 
+## 10.7.0 - 2023-02-23
+* [#1444](https://github.com/stripe/stripe-php/pull/1444) API Updates
+  * Add support for new value `igst` on enum `TaxRate.tax_type`
+
+## 10.6.1 - 2023-02-21
+* [#1443](https://github.com/stripe/stripe-php/pull/1443) Remove init.php from the list of ignored files
+
+## 10.6.0 - 2023-02-16
+* [#1441](https://github.com/stripe/stripe-php/pull/1441) API Updates
+  * Add support for `refund_payment` method on resource `Terminal.Reader`
+  * Add support for `custom_fields` on `Checkout.Session` and `PaymentLink`
+* [#1236](https://github.com/stripe/stripe-php/pull/1236) subscription_proration_date not always presented in Invoice
+* [#1431](https://github.com/stripe/stripe-php/pull/1431) Fix: Do not use unbounded version constraint for `actions/checkout`
+* [#1436](https://github.com/stripe/stripe-php/pull/1436) Enhancement: Enable and configure `visibility_required` fixer
+* [#1432](https://github.com/stripe/stripe-php/pull/1432) Enhancement: Update `actions/cache`
+* [#1434](https://github.com/stripe/stripe-php/pull/1434) Fix: Remove parentheses
+* [#1433](https://github.com/stripe/stripe-php/pull/1433) Enhancement: Run tests on PHP 8.2
+* [#1438](https://github.com/stripe/stripe-php/pull/1438) Update .gitattributes
+
+## 10.5.0 - 2023-02-02
+* [#1439](https://github.com/stripe/stripe-php/pull/1439) API Updates
+  * Add support for `resume` method on resource `Subscription`
+  * Add support for `amount_shipping` and `shipping_cost` on `CreditNote` and `Invoice`
+  * Add support for `shipping_details` on `Invoice`
+  * Add support for `invoice_creation` on `PaymentLink`
+  * Add support for `trial_settings` on `Subscription`
+  * Add support for new value `paused` on enum `Subscription.status`
+
+## 10.4.0 - 2023-01-19
+* [#1381](https://github.com/stripe/stripe-php/pull/1381) Add getService methods to StripeClient and AbstractServiceFactory to allow mocking
+* [#1424](https://github.com/stripe/stripe-php/pull/1424) API Updates
+
+  * Added `REFUND_CREATED`, `REFUND_UPDATED` event definitions.
+* [#1426](https://github.com/stripe/stripe-php/pull/1426) Ignore PHP version for formatting
+* [#1425](https://github.com/stripe/stripe-php/pull/1425) Fix Stripe::setAccountId parameter type
+* [#1418](https://github.com/stripe/stripe-php/pull/1418) Switch to mb_convert_encoding to fix utf8_encode deprecation warning
+
+## 10.3.0 - 2022-12-22
+* [#1413](https://github.com/stripe/stripe-php/pull/1413) API Updates
+  Change `CheckoutSession.cancel_url` to be nullable.
+
+## 10.2.0 - 2022-12-15
+* [#1411](https://github.com/stripe/stripe-php/pull/1411) API Updates
+  * Add support for new value `invoice_overpaid` on enum `CustomerBalanceTransaction.type`
+* [#1407](https://github.com/stripe/stripe-php/pull/1407) API Updates
+
+
+## 10.1.0 - 2022-12-06
+* [#1405](https://github.com/stripe/stripe-php/pull/1405) API Updates
+  * Add support for `flow` on `BillingPortal.Session`
+* [#1404](https://github.com/stripe/stripe-php/pull/1404) API Updates
+  * Remove support for resources `Order` and `Sku`
+  * Remove support for `all`, `cancel`, `create`, `list_line_items`, `reopen`, `retrieve`, `submit`, and `update` methods on resource `Order`
+  * Remove support for `all`, `create`, `delete`, `retrieve`, and `update` methods on resource `Sku`
+  * Add support for `custom_text` on `Checkout.Session` and `PaymentLink`
+  * Add support for `invoice_creation` and `invoice` on `Checkout.Session`
+  * Remove support for `product` on `LineItem`
+  * Add support for `latest_charge` on `PaymentIntent`
+  * Remove support for `charges` on `PaymentIntent`
+
+## 10.0.0 - 2022-11-16
+* [#1392](https://github.com/stripe/stripe-php/pull/1392) Next major release changes
+
+Breaking changes that arose during code generation of the library that we postponed for the next major version. For changes to the Stripe products, read more at https://stripe.com/docs/upgrades#2022-11-15.
+
+"⚠️" symbol highlights breaking changes.
+
+### Deprecated
+* [#1382](https://github.com/stripe/stripe-php/pull/1382) Mark `resource.save` as deprecated. Prefer the static update method that doesn't require retrieval of the resource to update it.
+```PHP
+// before
+$resource = Price::retrieve(self::TEST_RESOURCE_ID);
+$resource->metadata['key'] = 'value';
+$resource->save();
+
+// after
+$resource = Price::update('price_123', [
+    'metadata' => ['key' => 'value'],
+]);
+```
+
+### ⚠️ Removed
+- [#1377](https://github.com/stripe/stripe-php/pull/1377) Removed deprecated `Sku` resource and service
+- [#1375](https://github.com/stripe/stripe-php/pull/1375) Removed deprecated `Orders` resource and service
+- [#1375](https://github.com/stripe/stripe-php/pull/1375) Removed deprecated `Product` field from the `LineItem`
+- [#1388](https://github.com/stripe/stripe-php/pull/1388) Removed deprecated `AlipayAccount` resource
+- [#1396](https://github.com/stripe/stripe-php/pull/1396) Removed `charges` field on `PaymentIntent` and replace it with `latest_charge`.
+
+
+## 9.9.0 - 2022-11-08
+* [#1394](https://github.com/stripe/stripe-php/pull/1394) API Updates
+  * Add support for new values `eg_tin`, `ph_tin`, and `tr_tin` on enum `TaxId.type`
+* [#1389](https://github.com/stripe/stripe-php/pull/1389) API Updates
+  * Add support for `on_behalf_of` on `Subscription`
+* [#1379](https://github.com/stripe/stripe-php/pull/1379) Do not run Coveralls in PR-s
+
+## 9.8.0 - 2022-10-20
+* [#1383](https://github.com/stripe/stripe-php/pull/1383) API Updates
+  * Add support for new values `jp_trn` and `ke_pin` on enum `TaxId.type`
+* [#1293](https://github.com/stripe/stripe-php/pull/1293) Install deps in the install step of CI
+* [#1291](https://github.com/stripe/stripe-php/pull/1291) Fix: Configure finder for `friendsofphp/php-cs-fixer`
+
+## 9.7.0 - 2022-10-13
+* [#1376](https://github.com/stripe/stripe-php/pull/1376) API Updates
+  * Add support for `network_data` on `Issuing.Authorization`
+* [#1374](https://github.com/stripe/stripe-php/pull/1374) Add request_log_url on ErrorObject
+* [#1370](https://github.com/stripe/stripe-php/pull/1370) API Updates
+  * Add support for `created` on `Checkout.Session`
+
+## 9.6.0 - 2022-09-15
+* [#1365](https://github.com/stripe/stripe-php/pull/1365) API Updates
+  * Add support for `from_invoice` and `latest_revision` on `Invoice`
+  * Add support for new value `pix` on enum `PaymentLink.payment_method_types[]`
+  * Add support for `pix` on `PaymentMethod`
+  * Add support for new value `pix` on enum `PaymentMethod.type`
+  * Add support for `created` on `Treasury.CreditReversal` and `Treasury.DebitReversal`
+
+## 9.5.0 - 2022-09-06
+* [#1364](https://github.com/stripe/stripe-php/pull/1364) API Updates
+  * Add support for new value `terminal_reader_splashscreen` on enum `File.purpose`
+* [#1363](https://github.com/stripe/stripe-php/pull/1363) chore: Update PHP tests to handle search methods.
+
+## 9.4.0 - 2022-08-26
+* [#1362](https://github.com/stripe/stripe-php/pull/1362) API Updates
+  * Add support for `login_page` on `BillingPortal.Configuration`
+* [#1360](https://github.com/stripe/stripe-php/pull/1360) Add test coverage using Coveralls
+* [#1361](https://github.com/stripe/stripe-php/pull/1361) fix: Fix type hints for error objects.
+  * Update `Invoice.last_finalization_error`, `PaymentIntent.last_payment_error`, `SetupAttempt.setup_error` and `SetupIntent.setup_error` type to be `StripeObject`.
+    * Addresses https://github.com/stripe/stripe-php/issues/1353. The library today does not actually return a `ErrorObject` for these fields, so the type annotation was incorrect.
+* [#1356](https://github.com/stripe/stripe-php/pull/1356) Add beta readme.md section
+
+## 9.3.0 - 2022-08-23
+* [#1355](https://github.com/stripe/stripe-php/pull/1355) API Updates
+  * Change type of `Treasury.OutboundTransfer.destination_payment_method` from `string` to `string | null`
+  * Change the return type of `CustomerService.fundCashBalance` test helper from `CustomerBalanceTransaction` to `CustomerCashBalanceTransaction`.
+    * This would generally be considered a breaking change, but we've worked with all existing users to migrate and are comfortable releasing this as a minor as it is solely a test helper method. This was essentially broken prior to this change.
+
+## 9.2.0 - 2022-08-19
+* [#1352](https://github.com/stripe/stripe-php/pull/1352) API Updates
+  * Add support for new resource `CustomerCashBalanceTransaction`
+  * Add support for `currency` on `PaymentLink`
+  * Add constant for `customer_cash_balance_transaction.created` webhook event.
+* [#1351](https://github.com/stripe/stripe-php/pull/1351) Add a support section to the readme
+* [#1304](https://github.com/stripe/stripe-php/pull/1304) Allow passing PSR-3 loggers to setLogger as they are compatible
+
+## 9.1.0 - 2022-08-11
+* [#1348](https://github.com/stripe/stripe-php/pull/1348) API Updates
+  * Add support for `payment_method_collection` on `Checkout.Session` and `PaymentLink`
+
+* [#1346](https://github.com/stripe/stripe-php/pull/1346) API Updates
+  * Add support for `expires_at` on `Apps.Secret`
+
+## 9.0.0 - 2022-08-02
+
+Breaking changes that arose during code generation of the library that we postponed for the next major version. For changes to the SDK, read more detailed description at https://github.com/stripe/stripe-php/wiki/Migration-guide-for-v9. For changes to the Stripe products, read more at https://stripe.com/docs/upgrades#2022-08-01.
+
+"⚠️" symbol highlights breaking changes.
+
+* [#1344](https://github.com/stripe/stripe-php/pull/1344) API Updates
+* [#1337](https://github.com/stripe/stripe-php/pull/1337) API Updates
+* [#1273](https://github.com/stripe/stripe-php/pull/1273) Add some PHPDoc return types and fixes
+* [#1341](https://github.com/stripe/stripe-php/pull/1341) Next major release changes
+
+### Added
+* Add `alternate_statement_descriptors`, `authorization_code`, and `level3` properties to `Charge` resource.
+* Add `previewLines` method to `CreditNote` resource.
+* Add `transfer_data` property to `Subscription` resource.
+* Add `SOURCE_TYPE_FPX` constant to `Transfer` resource.
+* Add new error code constants to `ErrorObject`.
+* Add support for `shipping_cost` and `shipping_details` on `Checkout.Session`
+
+### ⚠️ Changed
+* Updated certificate bundle ([#1314](https://github.com/stripe/stripe-php/pull/1314))
+* Add `params` parameter to `close` method in `Dispute` resource.
+
+### ⚠️ Removed
+* Remove deprecated `AlipayAccount`, `BitcoinReceiver`, `BitcoinTransaction`, `Recipient`, `RecipientTransfer`, and `ThreeDSecure` resources.
+* Remove `CAPABILITY_CARD_PAYMENTS`, `CAPABILITY_LEGACY_PAYMENTS`, `CAPABILITY_PLATFORM_PAYMENTS`, `CAPABILITY_TRANSFERS`, `CAPABILITY_STATUS_ACTIVE`, `CAPABILITY_STATUS_INACTIVE`, and `CAPABILITY_STATUS_PENDING` constants from `Account` resource. Please use up-to-date values from https://stripe.com/docs/connect/account-capabilities.
+* Remove `AssociatedObjects` array property from `EphemeralKey` resource. The field was undocumented and unsupported.
+* Remove `details` method from `Card` resource. The endpoint was deprecated and no longer exists.
+* Remove `recipient` property from `Card` resource. The property was deprecated.
+* Remove ability to list `Card` resources for a particular `Recipient`.
+* Remove `sources` property from `Card` resource. The property was deprecated.
+* Remove `FAILURE_REASON` constant from `Refund` resource. The value was deprecated.
+* Remove `Recipient` resource. The resource was deprecated.
+* Remove `OrderItem` resource. The resource was deprecated.
+* Remove `all` method from `LineItem`.
+* Remove `cancel` method from `Transfer` and `TransferService`. This method is deprecated.
+* Remove `allTransactions` method from `SourceService` service. Please use `allSourceTransactions` method instead.
+* Remove `persons` method from `Account` resource. Please use `allPersons` method instead.
+* Remove `sourceTransactions` method from `Source` resource. Please use `allSourceTransactions` method instead.
+* Remove `usageRecordSummaries` method from `SubscriptionItem` resource. Please use `allUsageRecordSummaries` method instead.
+* Remove `SOURCE_TYPE_ALIPAY_ACCOUNT` and `SOURCE_TYPE_FINANCING` constants from `Transfer` resource. The values were deprecated and are no longer in use.
+* Remove deprecated error code constants from `ErrorObject`: `CODE_ACCOUNT_ALREADY_EXISTS`, `CODE_ORDER_CREATION_FAILED`, `CODE_ORDER_REQUIRED_SETTINGS`, `CODE_ORDER_STATUS_INVALID`, `CODE_ORDER_UPSTREAM_TIMEOUT`, and `CODE_UPSTREAM_ORDER_CREATION_FAILED`.
+* Remove deprecated event constants from `Webhook`: `ISSUER_FRAUD_RECORD_CREATED`, ` ORDER_PAYMENT_FAILED`, `ORDER_PAYMENT_SUCCEEDED`, `ORDER_UPDATED`, `ORDER_RETURN_CREATED`, `PAYMENT_METHOD_CARD_AUTOMATICALLY_UPDATED`, `PING`, `PROMOTION_CODE_DELETED`, and `TREASURY_RECEIVED_CREDIT_REVERSED`. The events are deprecated and no longer sent by Stripe.
+
+## 8.12.0 - 2022-07-25
+* [#1332](https://github.com/stripe/stripe-php/pull/1332) API Updates
+  * Add support for `default_currency` and `invoice_credit_balance` on `Customer`
+
+
+## 8.11.0 - 2022-07-18
+* [#1324](https://github.com/stripe/stripe-php/pull/1324) API Updates
+  * Add support for new value `blik` on enum `PaymentLink.payment_method_types[]`
+  * Add support for `blik` on `PaymentMethod`
+  * Add support for new value `blik` on enum `PaymentMethod.type`
+  * Add `Invoice.upcomingLines` method.
+  * Add `SourceService.allSourceTransactions` method.
+* [#1322](https://github.com/stripe/stripe-php/pull/1322) API Updates
+  * Change type of `source_type` on `Transfer` from nullable string to string (comment-only change)
+
+## 8.10.0 - 2022-07-07
+* [#1319](https://github.com/stripe/stripe-php/pull/1319) API Updates
+  * Add support for `currency_options` on `Coupon` and `Price`
+  * Add support for `currency` on `Subscription`
+* [#1318](https://github.com/stripe/stripe-php/pull/1318) API Updates
+  * Add support for new values financial_connections.account.created, financial_connections.account.deactivated, financial_connections.account.disconnected, financial_connections.account.reactivated, and financial_connections.account.refreshed_balance on `Event`.
+
+## 8.9.0 - 2022-06-29
+* [#1316](https://github.com/stripe/stripe-php/pull/1316) API Updates
+  * Add support for `deliver_card`, `fail_card`, `return_card`, and `ship_card` test helper methods on resource `Issuing.Card`
+  * Add support for `subtotal_excluding_tax` on `CreditNote` and `Invoice`
+  * Add support for `amount_excluding_tax` and `unit_amount_excluding_tax` on `CreditNoteLineItem` and `InvoiceLineItem`
+  * Add support for `total_excluding_tax` on `Invoice`
+  * Change type of `PaymentLink.payment_method_types[]` from `literal('card')` to `enum`
+  * Add support for `promptpay` on `PaymentMethod`
+  * Add support for new value `promptpay` on enum `PaymentMethod.type`
+  * Add support for `hosted_regulatory_receipt_url` and `reversal_details` on `Treasury.ReceivedCredit` and `Treasury.ReceivedDebit`
+
+## 8.8.0 - 2022-06-23
+* [#1302](https://github.com/stripe/stripe-php/pull/1302) API Updates
+  * Add support for `custom_unit_amount` on `Price`
+* [#1301](https://github.com/stripe/stripe-php/pull/1301) API Updates
+
+  Documentation updates.
+
+## 8.7.0 - 2022-06-17
+* [#1306](https://github.com/stripe/stripe-php/pull/1306) API Updates
+  * Add support for `fund_cash_balance` test helper method on resource `Customer`
+  * Add support for `total_excluding_tax` on `CreditNote`
+  * Add support for `rendering_options` on `Invoice`
+* [#1307](https://github.com/stripe/stripe-php/pull/1307) Support updating pre-release versions
+* [#1305](https://github.com/stripe/stripe-php/pull/1305) Trigger workflows on beta branches
+* [#1302](https://github.com/stripe/stripe-php/pull/1302) API Updates
+  * Add support for `custom_unit_amount` on `Price`
+* [#1301](https://github.com/stripe/stripe-php/pull/1301) API Updates
+
+  Documentation updates.
+
+## 8.6.0 - 2022-06-08
+* [#1300](https://github.com/stripe/stripe-php/pull/1300) API Updates
+  * Add support for `attach_to_self` and `flow_directions` on `SetupAttempt`
+
+## 8.5.0 - 2022-06-01
+* [#1298](https://github.com/stripe/stripe-php/pull/1298) API Updates
+  * Add support for `radar_options` on `Charge` and `PaymentMethod`
+  * Add support for new value `simulated_wisepos_e` on enum `Terminal.Reader.device_type`
+
+## 8.4.0 - 2022-05-26
+* [#1296](https://github.com/stripe/stripe-php/pull/1296) API Updates
+  * Add support for `persons` method on resource `Account`
+  * Add support for `balance_transactions` method on resource `Customer`
+  * Add support for `id_number_secondary_provided` on `Person`
+* [#1295](https://github.com/stripe/stripe-php/pull/1295) API Updates
+
+
+## 8.3.0 - 2022-05-23
+* [#1294](https://github.com/stripe/stripe-php/pull/1294) API Updates
+  * Add support for new resource `Apps.Secret`
+  * Add support for `affirm` and `link` on `PaymentMethod`
+  * Add support for new values `affirm` and `link` on enum `PaymentMethod.type`
+* [#1289](https://github.com/stripe/stripe-php/pull/1289) fix: Update RequestOptions#redactedApiKey to stop exploding null.
+
+## 8.2.0 - 2022-05-19
+* [#1286](https://github.com/stripe/stripe-php/pull/1286) API Updates
+  * Add support for new resources `Treasury.CreditReversal`, `Treasury.DebitReversal`, `Treasury.FinancialAccountFeatures`, `Treasury.FinancialAccount`, `Treasury.FlowDetails`, `Treasury.InboundTransfer`, `Treasury.OutboundPayment`, `Treasury.OutboundTransfer`, `Treasury.ReceivedCredit`, `Treasury.ReceivedDebit`, `Treasury.TransactionEntry`, and `Treasury.Transaction`
+  * Add support for `retrieve_payment_method` method on resource `Customer`
+  * Add support for `all` and `list_owners` methods on resource `FinancialConnections.Account`
+  * Add support for `treasury` on `Issuing.Authorization`, `Issuing.Dispute`, and `Issuing.Transaction`
+  * Add support for `financial_account` on `Issuing.Card`
+  * Add support for `client_secret` on `Order`
+  * Add support for `attach_to_self` and `flow_directions` on `SetupIntent`
+
+## 8.1.0 - 2022-05-11
+* [#1284](https://github.com/stripe/stripe-php/pull/1284) API Updates
+  * Add support for `consent_collection`, `customer_creation`, `payment_intent_data`, `shipping_options`, `submit_type`, and `tax_id_collection` on `PaymentLink`
+  * Add support for `description` on `Subscription`
+
+## 8.0.0 - 2022-05-09
+* [#1283](https://github.com/stripe/stripe-php/pull/1283) Major version release of v8.0.0. The [migration guide](https://github.com/stripe/stripe-php/wiki/Migration-Guide-for-v8) contains more information.
+  (⚠️ = breaking changes):
+  * ⚠️ Replace the legacy `Order` API with the new `Order` API.
+    * Resource modified: `Order`.
+    * New methods: `cancel`, `list_line_items`, `reopen`, and `submit`
+    * Removed methods: `pay` and `return_order`
+    * Removed resources: `OrderItem` and `OrderReturn`
+    * Removed references from other resources: `Charge.order`
+  * ⚠️ Rename `\FinancialConnections\Account.refresh` method to `\FinancialConnections\Account.refresh_account`
+  * Add support for `amount_discount`, `amount_tax`, and `product` on `LineItem`
+
+## 7.128.0 - 2022-05-05
+* [#1282](https://github.com/stripe/stripe-php/pull/1282) API Updates
+  * Add support for `default_price` on `Product`
+  * Add support for `instructions_email` on `Refund`
+
+
+## 7.127.0 - 2022-05-05
+* [#1281](https://github.com/stripe/stripe-php/pull/1281) API Updates
+  * Add support for new resources `FinancialConnections.AccountOwner`, `FinancialConnections.AccountOwnership`, `FinancialConnections.Account`, and `FinancialConnections.Session`
+* [#1278](https://github.com/stripe/stripe-php/pull/1278) Pin setup-php action version.
+* [#1277](https://github.com/stripe/stripe-php/pull/1277) API Updates
+  * Add support for `registered_address` on `Person`
+
+## 7.126.0 - 2022-05-03
+* [#1276](https://github.com/stripe/stripe-php/pull/1276) API Updates
+  * Add support for new resource `CashBalance`
+  * Change type of `BillingPortal.Configuration.application` from `$Application` to `deletable($Application)`
+  * Add support for `cash_balance` on `Customer`
+  * Add support for `application` on `Invoice`, `Quote`, `SubscriptionSchedule`, and `Subscription`
+  * Add support for new value `eu_oss_vat` on enum `TaxId.type`
+* [#1274](https://github.com/stripe/stripe-php/pull/1274) Fix PHPDoc on Discount for nullable properties
+* [#1272](https://github.com/stripe/stripe-php/pull/1272) Allow users to pass a custom IPRESOLVE cURL option.
+
+## 7.125.0 - 2022-04-21
+* [#1270](https://github.com/stripe/stripe-php/pull/1270) API Updates
+  * Add support for `expire` test helper method on resource `Refund`
+
+## 7.124.0 - 2022-04-18
+* [#1265](https://github.com/stripe/stripe-php/pull/1265) API Updates
+  * Add support for new resources `FundingInstructions` and `Terminal.Configuration`
+  * Add support for `create_funding_instructions` method on resource `Customer`
+  * Add support for `amount_details` on `PaymentIntent`
+  * Add support for `customer_balance` on `PaymentMethod`
+  * Add support for new value `customer_balance` on enum `PaymentMethod.type`
+  * Add support for `configuration_overrides` on `Terminal.Location`
+
+
+## 7.123.0 - 2022-04-13
+* [#1263](https://github.com/stripe/stripe-php/pull/1263) API Updates
+  * Add support for `increment_authorization` method on resource `PaymentIntent`
+* [#1262](https://github.com/stripe/stripe-php/pull/1262) Add support for updating the version of the repo
+* [#1230](https://github.com/stripe/stripe-php/pull/1230) Add PHPDoc return types
+* [#1242](https://github.com/stripe/stripe-php/pull/1242) Fix some PHPDoc in tests
+
+## 7.122.0 - 2022-04-08
+* [#1261](https://github.com/stripe/stripe-php/pull/1261) API Updates
+  * Add support for `apply_customer_balance` method on resource `PaymentIntent`
+* [#1259](https://github.com/stripe/stripe-php/pull/1259) API Updates
+
+  * Add `payment_intent.partially_funded`, `terminal.reader.action_failed`, and `terminal.reader.action_succeeded` events.
+
+## 7.121.0 - 2022-03-30
+* [#1258](https://github.com/stripe/stripe-php/pull/1258) API Updates
+  * Add support for `cancel_action`, `process_payment_intent`, `process_setup_intent`, and `set_reader_display` methods on resource `Terminal.Reader`
+  * Add support for `action` on `Terminal.Reader`
+
+## 7.120.0 - 2022-03-29
+* [#1257](https://github.com/stripe/stripe-php/pull/1257) API Updates
+  * Add support for Search API
+    * Add support for `search` method on resources `Charge`, `Customer`, `Invoice`, `PaymentIntent`, `Price`, `Product`, and `Subscription`
+
+## 7.119.0 - 2022-03-25
+* [#1256](https://github.com/stripe/stripe-php/pull/1256) API Updates
+  * Add support for PayNow and US Bank Accounts Debits payments
+      * Add support for `paynow` and `us_bank_account` on `PaymentMethod`
+      * Add support for new values `paynow` and `us_bank_account` on enum `PaymentMethod.type`
+  * Add support for `failure_balance_transaction` on `Charge`
+
+## 7.118.0 - 2022-03-23
+* [#1255](https://github.com/stripe/stripe-php/pull/1255) API Updates
+  * Add support for `cancel` method on resource `Refund`
+  * Add support for new values `bg_uic`, `hu_tin`, and `si_tin` on enum `TaxId.type`
+  * Add  `test_helpers.test_clock.advancing`, `test_helpers.test_clock.created`, `test_helpers.test_clock.deleted`, `test_helpers.test_clock.internal_failure`, and `test_helpers.test_clock.ready` events.
+
+
+## 7.117.0 - 2022-03-18
+* [#1254](https://github.com/stripe/stripe-php/pull/1254) API Updates
+  * Add support for `status` on `Card`
+* [#1251](https://github.com/stripe/stripe-php/pull/1251) Add support for SearchResult objects.
+* [#1249](https://github.com/stripe/stripe-php/pull/1249) Add missing constant for payment_behavior
+
+## 7.116.0 - 2022-03-02
+* [#1248](https://github.com/stripe/stripe-php/pull/1248) API Updates
+  * Add support for `proration_details` on `InvoiceLineItem`
+
+
+## 7.115.0 - 2022-03-01
+* [#1245](https://github.com/stripe/stripe-php/pull/1245) [#1247](https://github.com/stripe/stripe-php/pull/1247) API Updates
+  * Add support for new resource `TestHelpers.TestClock`
+  * Add support for `test_clock` on `Customer`, `Invoice`, `InvoiceItem`, `Quote`, `Subscription`, and `SubscriptionSchedule`
+  * Add support for `next_action` on `Refund`
+  * Add support for `konbini` on `PaymentMethod`
+* [#1244](https://github.com/stripe/stripe-php/pull/1244) API Updates
+  * Add support for new values `bbpos_wisepad3` and `stripe_m2` on enum `Terminal.Reader.device_type`
+
+## 7.114.0 - 2022-02-15
+* [#1243](https://github.com/stripe/stripe-php/pull/1243) Add test
+* [#1240](https://github.com/stripe/stripe-php/pull/1240) API Updates
+  * Add support for `verify_microdeposits` method on resources `PaymentIntent` and `SetupIntent`
+* [#1241](https://github.com/stripe/stripe-php/pull/1241) Add generic parameter to \Stripe\Collection usages
+
+## 7.113.0 - 2022-02-03
+* [#1239](https://github.com/stripe/stripe-php/pull/1239) API Updates
+  * Add `REASON_EXPIRED_UNCAPTURED_CHARGE` enum value on `Refund`.
+
+## 7.112.0 - 2022-01-25
+* [#1235](https://github.com/stripe/stripe-php/pull/1235) API Updates
+  * Add support for `phone_number_collection` on `PaymentLink`
+  * Add support for new value `is_vat` on enum `TaxId.type`
+
+
+## 7.111.0 - 2022-01-20
+* [#1233](https://github.com/stripe/stripe-php/pull/1233) API Updates
+  * Add support for new resource `PaymentLink`
+  * Add support for `payment_link` on `Checkout.Session`
+
+## 7.110.0 - 2022-01-13
+* [#1232](https://github.com/stripe/stripe-php/pull/1232) API Updates
+  * Add support for `paid_out_of_band` on `Invoice`
+
+## 7.109.0 - 2022-01-12
+* [#1231](https://github.com/stripe/stripe-php/pull/1231) API Updates
+  * Add support for `customer_creation` on `Checkout.Session`
+* [#1227](https://github.com/stripe/stripe-php/pull/1227) Update docs URLs
+
+## 7.108.0 - 2021-12-22
+* [#1226](https://github.com/stripe/stripe-php/pull/1226) Upgrade php-cs-fixer to 3.4.0.
+* [#1222](https://github.com/stripe/stripe-php/pull/1222) API Updates
+  * Add support for `processing` on `PaymentIntent`
+* [#1220](https://github.com/stripe/stripe-php/pull/1220) API Updates
+
+## 7.107.0 - 2021-12-09
+* [#1219](https://github.com/stripe/stripe-php/pull/1219) API Updates
+  * Add support for `metadata` on `BillingPortal.Configuration`
+  * Add support for `wallets` on `Issuing.Card`
+
+## 7.106.0 - 2021-12-09
+* [#1218](https://github.com/stripe/stripe-php/pull/1218) API Updates
+  * Add support for new values `ge_vat` and `ua_vat` on enum `TaxId.type`
+* [#1216](https://github.com/stripe/stripe-php/pull/1216) Fix namespaced classes in @return PHPDoc.
+* [#1214](https://github.com/stripe/stripe-php/pull/1214) Announce PHP8 support in CHANGELOG.md
+
+## 7.105.0 - 2021-12-06
+* [#1213](https://github.com/stripe/stripe-php/pull/1213) PHP 8.1 missing ReturnTypeWillChange annotations.
+* As of this version, PHP 8.1 is officially supported.
+
+## 7.104.0 - 2021-12-01
+* [#1211](https://github.com/stripe/stripe-php/pull/1211) PHPStan compatibility with PHP8.x
+* [#1209](https://github.com/stripe/stripe-php/pull/1209) PHPUnit compatibility with PHP 8.x
+
+## 7.103.0 - 2021-11-19
+* [#1206](https://github.com/stripe/stripe-php/pull/1206) API Updates
+  * Add support for new value `jct` on enum `TaxRate.tax_type`
+
+## 7.102.0 - 2021-11-17
+* [#1205](https://github.com/stripe/stripe-php/pull/1205) API Updates
+  * Add support for `automatic_payment_methods` on `PaymentIntent`
+
+## 7.101.0 - 2021-11-16
+* [#1203](https://github.com/stripe/stripe-php/pull/1203) API Updates
+  * Add support for new resource `ShippingRate`
+  * Add support for `shipping_options` and `shipping_rate` on `Checkout.Session`
+  * Add support for `expire` method on resource `Checkout.Session`
+  * Add support for `status` on `Checkout.Session`
+
+## 7.100.0 - 2021-10-11
+* [#1190](https://github.com/stripe/stripe-php/pull/1190) API Updates
+  * Add support for `klarna` on `PaymentMethod`.
+
+## 7.99.0 - 2021-10-11
+* [#1188](https://github.com/stripe/stripe-php/pull/1188) API Updates
+  * Add support for `list_payment_methods` method on resource `Customer`
+
+## 7.98.0 - 2021-10-07
+* [#1187](https://github.com/stripe/stripe-php/pull/1187) API Updates
+  * Add support for `phone_number_collection` on `Checkout.Session`
+  * Add support for new value `customer_id` on enum `Radar.ValueList.item_type`
+  * Add support for new value `bbpos_wisepos_e` on enum `Terminal.Reader.device_type`
+
+## 7.97.0 - 2021-09-16
+* [#1181](https://github.com/stripe/stripe-php/pull/1181) API Updates
+  * Add support for `full_name_aliases` on `Person`
+
+## 7.96.0 - 2021-09-15
+* [#1178](https://github.com/stripe/stripe-php/pull/1178) API Updates
+  * Add support for livemode on Reporting.ReportType
+  * Add support for new value `rst` on enum `TaxRate.tax_type`
+
+## 7.95.0 - 2021-09-01
+* [#1177](https://github.com/stripe/stripe-php/pull/1177) API Updates
+  * Add support for `future_requirements` on `Account`, `Capability`, and `Person`
+  * Add support for `after_expiration`, `consent`, `consent_collection`, `expires_at`, and `recovered_from` on `Checkout.Session`
+
+## 7.94.0 - 2021-08-19
+* [#1173](https://github.com/stripe/stripe-php/pull/1173) API Updates
+  * Add support for new value `fil` on enum `Checkout.Session.locale`
+  * Add support for new value `au_arn` on enum `TaxId.type`
+
+## 7.93.0 - 2021-08-11
+* [#1172](https://github.com/stripe/stripe-php/pull/1172) API Updates
+  * Add support for `locale` on `BillingPortal.Session`
+
+* [#1171](https://github.com/stripe/stripe-php/pull/1171) Fix typo in docblock `CurlClient::executeStreamingRequestWithRetries`
+
+## 7.92.0 - 2021-07-28
+* [#1167](https://github.com/stripe/stripe-php/pull/1167) API Updates
+  * Add support for `account_type` on `BankAccount`
+  * Add support for new value `redacted` on enum `Review.closed_reason`
+
+## 7.91.0 - 2021-07-22
+* [#1164](https://github.com/stripe/stripe-php/pull/1164) API Updates
+  * Add support for new values `hr`, `ko`, and `vi` on enum `Checkout.Session.locale`
+  * Add support for `payment_settings` on `Subscription`
+
+## 7.90.0 - 2021-07-20
+* [#1163](https://github.com/stripe/stripe-php/pull/1163) API Updates
+  * Add support for `wallet` on `Issuing.Transaction`
+* [#1160](https://github.com/stripe/stripe-php/pull/1160) Remove unused API error types from docs.
+
+## 7.89.0 - 2021-07-14
+* [#1158](https://github.com/stripe/stripe-php/pull/1158) API Updates
+  * Add support for `list_computed_upfront_line_items` method on resource `Quote`
+* [#1157](https://github.com/stripe/stripe-php/pull/1157) Improve readme for old PHP versions
+
+## 7.88.0 - 2021-07-09
+* [#1152](https://github.com/stripe/stripe-php/pull/1152) API Updates
+  * Add support for new resource `Quote`
+  * Add support for `quote` on `Invoice`
+  * Add support for new value `quote_accept` on enum `Invoice.billing_reason`
+* [#1155](https://github.com/stripe/stripe-php/pull/1155) Add streaming methods to Service infra
+  * Add support for `setStreamingHttpClient` and `streamingHttpClient` to `ApiRequestor`
+  * Add support for `getStreamingClient` and `requestStream` to `AbstractService`
+  * Add support for `requestStream` to `BaseStripeClient`
+  * `\Stripe\RequestOptions::parse` now clones its input if it is already a `RequestOptions` object, to prevent accidental mutation.
+* [#1151](https://github.com/stripe/stripe-php/pull/1151) Add `mode` constants into Checkout\Session
+
+## 7.87.0 - 2021-06-30
+* [#1149](https://github.com/stripe/stripe-php/pull/1149) API Updates
+  * Add support for `wechat_pay` on `PaymentMethod`
+* [#1143](https://github.com/stripe/stripe-php/pull/1143) Streaming requests
+* [#1138](https://github.com/stripe/stripe-php/pull/1138) Deprecate travis
+
+## 7.86.0 - 2021-06-25
+* [#1145](https://github.com/stripe/stripe-php/pull/1145) API Updates
+  * Add support for `boleto` on `PaymentMethod`.
+  * Add support for `il_vat` as a member of the `TaxID.Type` enum.
+
+## 7.85.0 - 2021-06-18
+* [#1142](https://github.com/stripe/stripe-php/pull/1142) API Updates
+  * Add support for new TaxId types: `ca_pst_mb`, `ca_pst_bc`, `ca_gst_hst`, and `ca_pst_sk`.
+
+## 7.84.0 - 2021-06-16
+* [#1141](https://github.com/stripe/stripe-php/pull/1141) Update PHPDocs
+  * Add support for `url` on `Checkout\Session`
+
+
+## 7.83.0 - 2021-06-07
+* [#1140](https://github.com/stripe/stripe-php/pull/1140) API Updates
+  * Added support for `tax_id_collection` on `Checkout\Session` and `Checkout\Session#create`
+  * Update `Location` to be expandable on `Terminal\Reader`
+
+## 7.82.0 - 2021-06-04
+* [#1136](https://github.com/stripe/stripe-php/pull/1136) Update PHPDocs
+  * Add support for `controller` on `Account`.
+
+## 7.81.0 - 2021-06-04
+* [#1135](https://github.com/stripe/stripe-php/pull/1135) API Updates
+  * Add support for new resource `TaxCode`
+  * Add support for `automatic_tax` `Invoice` and`Checkout.Session`.
+  * Add support for `tax_behavior` on `Price`
+  * Add support for `tax_code` on `Product`
+  * Add support for `tax` on `Customer`
+  * Add support for `tax_type` enum on `TaxRate`
+
+## 7.80.0 - 2021-05-26
+* [#1130](https://github.com/stripe/stripe-php/pull/1130) Update PHPDocs
+
+## 7.79.0 - 2021-05-19
+* [#1126](https://github.com/stripe/stripe-php/pull/1126) API Updates
+  * Added support for new resource `Identity.VerificationReport`
+  * Added support for new resource `Identity.VerificationSession`
+  * `File#list.purpose` and `File.purpose` added new enum members: `identity_document_downloadable` and `selfie`.
+
+## 7.78.0 - 2021-05-05
+* [#1120](https://github.com/stripe/stripe-php/pull/1120) Update PHPDocs
+  * Add support for `Radar.EarlyFraudWarning.payment_intent`
+
+## 7.77.0 - 2021-04-12
+* [#1110](https://github.com/stripe/stripe-php/pull/1110) Update PHPDocs
+  * Add support for `acss_debit` on `PaymentMethod`
+  * Add support for `payment_method_options` on `Checkout\Session`
+* [#1107](https://github.com/stripe/stripe-php/pull/1107) Remove duplicate object phpdoc
+
+## 7.76.0 - 2021-03-22
+* [#1100](https://github.com/stripe/stripe-php/pull/1100) Update PHPDocs
+  * Added support for `amount_shipping` on `Checkout.Session.total_details`
+* [#1088](https://github.com/stripe/stripe-php/pull/1088) Make possibility to extend CurlClient
+
+## 7.75.0 - 2021-02-22
+* [#1094](https://github.com/stripe/stripe-php/pull/1094) Add support for Billing Portal Configuration API
+
+## 7.74.0 - 2021-02-17
+* [#1093](https://github.com/stripe/stripe-php/pull/1093) Update PHPDocs
+  * Add support for on_behalf_of to Invoice
+
+## 7.73.0 - 2021-02-16
+* [#1091](https://github.com/stripe/stripe-php/pull/1091) Update PHPDocs
+  * Add support for `afterpay_clearpay` on `PaymentMethod`.
+
+## 7.72.0 - 2021-02-08
+* [#1089](https://github.com/stripe/stripe-php/pull/1089) Update PHPDocs
+  * Add support for `afterpay_clearpay_payments` on `Account.capabilities`
+  * Add support for `payment_settings` on `Invoice`
+
+## 7.71.0 - 2021-02-05
+* [#1087](https://github.com/stripe/stripe-php/pull/1087) Update PHPDocs
+* [#1086](https://github.com/stripe/stripe-php/pull/1086) Update CA cert bundle URL
+
+## 7.70.0 - 2021-02-03
+* [#1085](https://github.com/stripe/stripe-php/pull/1085) Update PHPDocs
+  * Add support for `nationality` on `Person`
+  * Add member `gb_vat` of `TaxID` enum
+
+
+## 7.69.0 - 2021-01-21
+* [#1079](https://github.com/stripe/stripe-php/pull/1079) Update PHPDocs
+
+## 7.68.0 - 2021-01-14
+* [#1063](https://github.com/stripe/stripe-php/pull/1063) Multiple API changes
+* [#1061](https://github.com/stripe/stripe-php/pull/1061) Bump phpDocumentor to 3.0.0
+
 ## 7.67.0 - 2020-12-09
 * [#1060](https://github.com/stripe/stripe-php/pull/1060) Improve PHPDocs for `Discount`
 * [#1059](https://github.com/stripe/stripe-php/pull/1059) Upgrade PHPStan to 0.12.59

+ 0 - 77
htdocs/includes/stripe/stripe-php/CODE_OF_CONDUCT.md

@@ -1,77 +0,0 @@
-# Contributor Covenant Code of Conduct
-
-## Our Pledge
-
-In the interest of fostering an open and welcoming environment, we as
-contributors and maintainers pledge to make participation in our project and
-our community a harassment-free experience for everyone, regardless of age, body
-size, disability, ethnicity, sex characteristics, gender identity and expression,
-level of experience, education, socio-economic status, nationality, personal
-appearance, race, religion, or sexual identity and orientation.
-
-## Our Standards
-
-Examples of behavior that contributes to creating a positive environment
-include:
-
-* Using welcoming and inclusive language
-* Being respectful of differing viewpoints and experiences
-* Gracefully accepting constructive criticism
-* Focusing on what is best for the community
-* Showing empathy towards other community members
-
-Examples of unacceptable behavior by participants include:
-
-* The use of sexualized language or imagery and unwelcome sexual attention or
-  advances
-* Trolling, insulting/derogatory comments, and personal or political attacks
-* Public or private harassment
-* Publishing others' private information, such as a physical or electronic
-  address, without explicit permission
-* Other conduct which could reasonably be considered inappropriate in a
-  professional setting
-
-## Our Responsibilities
-
-Project maintainers are responsible for clarifying the standards of acceptable
-behavior and are expected to take appropriate and fair corrective action in
-response to any instances of unacceptable behavior.
-
-Project maintainers have the right and responsibility to remove, edit, or
-reject comments, commits, code, wiki edits, issues, and other contributions
-that are not aligned to this Code of Conduct, or to ban temporarily or
-permanently any contributor for other behaviors that they deem inappropriate,
-threatening, offensive, or harmful.
-
-## Scope
-
-This Code of Conduct applies within all project spaces, and it also applies when
-an individual is representing the project or its community in public spaces.
-Examples of representing a project or community include using an official
-project e-mail address, posting via an official social media account, or acting
-as an appointed representative at an online or offline event. Representation of
-a project may be further defined and clarified by project maintainers.
-
-## Enforcement
-
-Instances of abusive, harassing, or otherwise unacceptable behavior may be
-reported by contacting the project team at conduct@stripe.com. All
-complaints will be reviewed and investigated and will result in a response that
-is deemed necessary and appropriate to the circumstances. The project team is
-obligated to maintain confidentiality with regard to the reporter of an incident.
-Further details of specific enforcement policies may be posted separately.
-
-Project maintainers who do not follow or enforce the Code of Conduct in good
-faith may face temporary or permanent repercussions as determined by other
-members of the project's leadership.
-
-## Attribution
-
-This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
-available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
-
-[homepage]: https://www.contributor-covenant.org
-
-For answers to common questions about this code of conduct, see
-https://www.contributor-covenant.org/faq
-

+ 0 - 36
htdocs/includes/stripe/stripe-php/Makefile

@@ -1,36 +0,0 @@
-export PHPDOCUMENTOR_VERSION := v3.0.0-rc
-export PHPSTAN_VERSION := 0.12.59
-
-vendor: composer.json
-	composer install
-
-vendor/bin/phpstan: vendor
-	curl -sfL https://github.com/phpstan/phpstan/releases/download/$(PHPSTAN_VERSION)/phpstan.phar -o vendor/bin/phpstan
-	chmod +x vendor/bin/phpstan
-
-vendor/bin/phpdoc: vendor
-	curl -sfL https://github.com/phpDocumentor/phpDocumentor/releases/download/$(PHPDOCUMENTOR_VERSION)/phpDocumentor.phar -o vendor/bin/phpdoc
-	chmod +x vendor/bin/phpdoc
-
-test: vendor
-	vendor/bin/phpunit
-.PHONY: test
-
-fmt: vendor
-	vendor/bin/php-cs-fixer fix -v --using-cache=no .
-.PHONY: fmt
-
-fmtcheck: vendor
-	vendor/bin/php-cs-fixer fix -v --dry-run --using-cache=no .
-.PHONY: fmtcheck
-
-phpdoc: vendor/bin/phpdoc
-	vendor/bin/phpdoc
-
-phpstan: vendor/bin/phpstan
-	php -d memory_limit=512M vendor/bin/phpstan analyse lib tests
-.PHONY: phpstan
-
-phpstan-baseline: vendor/bin/phpstan
-	php -d memory_limit=512M vendor/bin/phpstan analyse lib tests --generate-baseline
-.PHONY: phpstan-baseline

+ 1 - 0
htdocs/includes/stripe/stripe-php/OPENAPI_VERSION

@@ -0,0 +1 @@
+v232

+ 41 - 9
htdocs/includes/stripe/stripe-php/README.md

@@ -1,6 +1,6 @@
 # Stripe PHP bindings
 
-[![Build Status](https://travis-ci.org/stripe/stripe-php.svg?branch=master)](https://travis-ci.org/stripe/stripe-php)
+[![Build Status](https://github.com/stripe/stripe-php/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/stripe/stripe-php/actions?query=branch%3Amaster)
 [![Latest Stable Version](https://poser.pugx.org/stripe/stripe-php/v/stable.svg)](https://packagist.org/packages/stripe/stripe-php)
 [![Total Downloads](https://poser.pugx.org/stripe/stripe-php/downloads.svg)](https://packagist.org/packages/stripe/stripe-php)
 [![License](https://poser.pugx.org/stripe/stripe-php/license.svg)](https://packagist.org/packages/stripe/stripe-php)
@@ -27,7 +27,7 @@ composer require stripe/stripe-php
 To use the bindings, use Composer's [autoload](https://getcomposer.org/doc/01-basic-usage.md#autoloading):
 
 ```php
-require_once('vendor/autoload.php');
+require_once 'vendor/autoload.php';
 ```
 
 ## Manual Installation
@@ -35,7 +35,7 @@ require_once('vendor/autoload.php');
 If you do not wish to use Composer, you can download the [latest release](https://github.com/stripe/stripe-php/releases). Then, to use the bindings, include the `init.php` file.
 
 ```php
-require_once('/path/to/stripe-php/init.php');
+require_once '/path/to/stripe-php/init.php';
 ```
 
 ## Dependencies
@@ -68,21 +68,26 @@ You can continue to use the legacy integration patterns used prior to version [7
 
 ## Documentation
 
-See the [PHP API docs](https://stripe.com/docs/api/php#intro).
+See the [PHP API docs](https://stripe.com/docs/api/?lang=php#intro).
+
+See [video demonstrations][youtube-playlist] covering how to use the library.
 
 ## Legacy Version Support
 
 ### PHP 5.4 & 5.5
 
-If you are using PHP 5.4 or 5.5, you can download v6.21.1 ([zip](https://github.com/stripe/stripe-php/archive/v6.21.1.zip), [tar.gz](https://github.com/stripe/stripe-php/archive/v6.21.1.tar.gz)) from our [releases page](https://github.com/stripe/stripe-php/releases). This version will continue to work with new versions of the Stripe API for all common uses.
+If you are using PHP 5.4 or 5.5, you should consider upgrading your environment as those versions have been past end of life since September 2015 and July 2016 respectively.
+Otherwise, you can still use Stripe by downloading stripe-php v6.43.1 ([zip](https://github.com/stripe/stripe-php/archive/v6.43.1.zip), [tar.gz](https://github.com/stripe/stripe-php/archive/6.43.1.tar.gz)) from our [releases page](https://github.com/stripe/stripe-php/releases). This version will work but might not support recent features we added since the version was released and upgrading PHP is the best course of action.
 
 ### PHP 5.3
 
-If you are using PHP 5.3, you can download v5.9.2 ([zip](https://github.com/stripe/stripe-php/archive/v5.9.2.zip), [tar.gz](https://github.com/stripe/stripe-php/archive/v5.9.2.tar.gz)) from our [releases page](https://github.com/stripe/stripe-php/releases). This version will continue to work with new versions of the Stripe API for all common uses.
+If you are using PHP 5.3, you should upgrade your environment as this version has been past end of life since August 2014.
+Otherwise, you can download v5.9.2 ([zip](https://github.com/stripe/stripe-php/archive/v5.9.2.zip), [tar.gz](https://github.com/stripe/stripe-php/archive/v5.9.2.tar.gz)) from our [releases page](https://github.com/stripe/stripe-php/releases). This version will continue to work with new versions of the Stripe API for all common uses.
 
 ## Custom Request Timeouts
 
-_NOTE:_ We do not recommend decreasing the timeout for non-read-only calls (e.g. charge creation), since even if you locally timeout, the request on Stripe's side can still complete. If you are decreasing timeouts on these calls, make sure to use [idempotency tokens](https://stripe.com/docs/api/php#idempotent_requests) to avoid executing the same transaction twice as a result of timeout retry logic.
+> **Note**
+> We do not recommend decreasing the timeout for non-read-only calls (e.g. charge creation), since even if you locally timeout, the request on Stripe's side can still complete. If you are decreasing timeouts on these calls, make sure to use [idempotency tokens](https://stripe.com/docs/api/?lang=php#idempotent_requests) to avoid executing the same transaction twice as a result of timeout retry logic.
 
 To modify request timeouts (connect or total, in seconds) you'll need to tell the API client to use a CurlClient other than its default. You'll set the timeouts in that CurlClient.
 
@@ -196,6 +201,32 @@ You can disable this behavior if you prefer:
 \Stripe\Stripe::setEnableTelemetry(false);
 ```
 
+### Beta SDKs
+
+Stripe has features in the beta phase that can be accessed via the beta version of this package.
+We would love for you to try these and share feedback with us before these features reach the stable phase.
+Use the `composer require` command with an exact version specified to install the beta version of the stripe-php pacakge.
+
+
+```bash
+composer require stripe/stripe-php:v9.2.0-beta.1
+```
+
+> **Note**
+> There can be breaking changes between beta versions. Therefore we recommend pinning the package version to a specific beta version in your composer.json file. This way you can install the same version each time without breaking changes unless you are intentionally looking for the latest beta version.
+
+We highly recommend keeping an eye on when the beta feature you are interested in goes from beta to stable so that you can move from using a beta version of the SDK to the stable version.
+
+If your beta feature requires a `Stripe-Version` header to be sent, use the `apiVersion` property of `config` object to set it:
+
+```php
+Stripe::setApiVersion(Stripe::getApiVersion() . '; feature_beta=v3');
+```
+
+## Support
+
+New features and bug fixes are released on the latest major version of the Stripe PHP library. If you are on an older major version, we recommend that you upgrade to the latest in order to use the new features and bug fixes including those for security vulnerabilities. Older major versions of the package will continue to be available for use, but will not be receiving any updates.
+
 ## Development
 
 Get [Composer][composer]. For example, on Mac OS:
@@ -228,7 +259,7 @@ Install dependencies as mentioned above (which will resolve [PHPUnit](http://pac
 Or to run an individual test file:
 
 ```bash
-./vendor/bin/phpunit tests/UtilTest.php
+./vendor/bin/phpunit tests/Stripe/UtilTest.php
 ```
 
 Update bundled CA certificates from the [Mozilla cURL release][curl]:
@@ -260,7 +291,8 @@ See the "SSL / TLS compatibility issues" paragraph above for full context. If yo
 [composer]: https://getcomposer.org/
 [connect]: https://stripe.com/connect
 [curl]: http://curl.haxx.se/docs/caextract.html
-[idempotency-keys]: https://stripe.com/docs/api/php#idempotent_requests
+[idempotency-keys]: https://stripe.com/docs/api/?lang=php#idempotent_requests
 [php-cs-fixer]: https://github.com/FriendsOfPHP/PHP-CS-Fixer
 [psr3]: http://www.php-fig.org/psr/psr-3/
 [stripe-mock]: https://github.com/stripe/stripe-mock
+[youtube-playlist]: https://www.youtube.com/playlist?list=PLy1nL-pvL2M6cUbiHrfMkXxZ9j9SGBxFE

+ 1 - 1
htdocs/includes/stripe/stripe-php/VERSION

@@ -1 +1 @@
-7.67.0
+10.7.0

+ 0 - 25
htdocs/includes/stripe/stripe-php/build.php

@@ -1,25 +0,0 @@
-#!/usr/bin/env php
-<?php
-\chdir(__DIR__);
-
-$autoload = (int) $argv[1];
-$returnStatus = null;
-
-if (!$autoload) {
-	// Modify composer to not autoload Stripe
-	$composer = \json_decode(\file_get_contents('composer.json'), true);
-	unset($composer['autoload'], $composer['autoload-dev']);
-
-	\file_put_contents('composer.json', \json_encode($composer, \JSON_PRETTY_PRINT));
-}
-
-\passthru('composer update', $returnStatus);
-if (0 !== $returnStatus) {
-	exit(1);
-}
-
-$config = $autoload ? 'phpunit.xml' : 'phpunit.no_autoload.xml';
-\passthru("./vendor/bin/phpunit -c {$config}", $returnStatus);
-if (0 !== $returnStatus) {
-	exit(1);
-}

+ 4 - 4
htdocs/includes/stripe/stripe-php/composer.json

@@ -21,11 +21,11 @@
     "ext-mbstring": "*"
   },
   "require-dev": {
-    "phpunit/phpunit": "^5.7",
-    "php-coveralls/php-coveralls": "^2.1",
+    "phpunit/phpunit": "^5.7 || ^9.0",
     "squizlabs/php_codesniffer": "^3.3",
-    "symfony/process": "~3.4",
-    "friendsofphp/php-cs-fixer": "2.17.1"
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.2",
+    "php-coveralls/php-coveralls": "^2.5"
   },
   "autoload": {
     "psr-4": {

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 3 - 895
htdocs/includes/stripe/stripe-php/data/ca-certificates.crt


+ 76 - 14
htdocs/includes/stripe/stripe-php/init.php

@@ -2,6 +2,8 @@
 
 // File generated from our OpenAPI spec
 
+require __DIR__ . '/lib/Util/ApiVersion.php';
+
 // Stripe singleton
 require __DIR__ . '/lib/Stripe.php';
 
@@ -17,6 +19,7 @@ require __DIR__ . '/lib/Util/ObjectTypes.php';
 
 // HttpClient
 require __DIR__ . '/lib/HttpClient/ClientInterface.php';
+require __DIR__ . '/lib/HttpClient/StreamingClientInterface.php';
 require __DIR__ . '/lib/HttpClient/CurlClient.php';
 
 // Exceptions
@@ -53,6 +56,8 @@ require __DIR__ . '/lib/ApiOperations/Delete.php';
 require __DIR__ . '/lib/ApiOperations/NestedResource.php';
 require __DIR__ . '/lib/ApiOperations/Request.php';
 require __DIR__ . '/lib/ApiOperations/Retrieve.php';
+require __DIR__ . '/lib/ApiOperations/Search.php';
+require __DIR__ . '/lib/ApiOperations/SingletonRetrieve.php';
 require __DIR__ . '/lib/ApiOperations/Update.php';
 
 // Plumbing
@@ -66,25 +71,27 @@ require __DIR__ . '/lib/Service/AbstractService.php';
 require __DIR__ . '/lib/Service/AbstractServiceFactory.php';
 
 // StripeClient
+require __DIR__ . '/lib/BaseStripeClientInterface.php';
 require __DIR__ . '/lib/StripeClientInterface.php';
+require __DIR__ . '/lib/StripeStreamingClientInterface.php';
 require __DIR__ . '/lib/BaseStripeClient.php';
 require __DIR__ . '/lib/StripeClient.php';
 
 // Stripe API Resources
 require __DIR__ . '/lib/Account.php';
 require __DIR__ . '/lib/AccountLink.php';
-require __DIR__ . '/lib/AlipayAccount.php';
 require __DIR__ . '/lib/ApplePayDomain.php';
 require __DIR__ . '/lib/ApplicationFee.php';
 require __DIR__ . '/lib/ApplicationFeeRefund.php';
+require __DIR__ . '/lib/Apps/Secret.php';
 require __DIR__ . '/lib/Balance.php';
 require __DIR__ . '/lib/BalanceTransaction.php';
 require __DIR__ . '/lib/BankAccount.php';
+require __DIR__ . '/lib/BillingPortal/Configuration.php';
 require __DIR__ . '/lib/BillingPortal/Session.php';
-require __DIR__ . '/lib/BitcoinReceiver.php';
-require __DIR__ . '/lib/BitcoinTransaction.php';
 require __DIR__ . '/lib/Capability.php';
 require __DIR__ . '/lib/Card.php';
+require __DIR__ . '/lib/CashBalance.php';
 require __DIR__ . '/lib/Charge.php';
 require __DIR__ . '/lib/Checkout/Session.php';
 require __DIR__ . '/lib/Collection.php';
@@ -94,6 +101,7 @@ require __DIR__ . '/lib/CreditNote.php';
 require __DIR__ . '/lib/CreditNoteLineItem.php';
 require __DIR__ . '/lib/Customer.php';
 require __DIR__ . '/lib/CustomerBalanceTransaction.php';
+require __DIR__ . '/lib/CustomerCashBalanceTransaction.php';
 require __DIR__ . '/lib/Discount.php';
 require __DIR__ . '/lib/Dispute.php';
 require __DIR__ . '/lib/EphemeralKey.php';
@@ -102,6 +110,13 @@ require __DIR__ . '/lib/Event.php';
 require __DIR__ . '/lib/ExchangeRate.php';
 require __DIR__ . '/lib/File.php';
 require __DIR__ . '/lib/FileLink.php';
+require __DIR__ . '/lib/FinancialConnections/Account.php';
+require __DIR__ . '/lib/FinancialConnections/AccountOwner.php';
+require __DIR__ . '/lib/FinancialConnections/AccountOwnership.php';
+require __DIR__ . '/lib/FinancialConnections/Session.php';
+require __DIR__ . '/lib/FundingInstructions.php';
+require __DIR__ . '/lib/Identity/VerificationReport.php';
+require __DIR__ . '/lib/Identity/VerificationSession.php';
 require __DIR__ . '/lib/Invoice.php';
 require __DIR__ . '/lib/InvoiceItem.php';
 require __DIR__ . '/lib/InvoiceLineItem.php';
@@ -114,10 +129,8 @@ require __DIR__ . '/lib/Issuing/Transaction.php';
 require __DIR__ . '/lib/LineItem.php';
 require __DIR__ . '/lib/LoginLink.php';
 require __DIR__ . '/lib/Mandate.php';
-require __DIR__ . '/lib/Order.php';
-require __DIR__ . '/lib/OrderItem.php';
-require __DIR__ . '/lib/OrderReturn.php';
 require __DIR__ . '/lib/PaymentIntent.php';
+require __DIR__ . '/lib/PaymentLink.php';
 require __DIR__ . '/lib/PaymentMethod.php';
 require __DIR__ . '/lib/Payout.php';
 require __DIR__ . '/lib/Person.php';
@@ -125,34 +138,47 @@ require __DIR__ . '/lib/Plan.php';
 require __DIR__ . '/lib/Price.php';
 require __DIR__ . '/lib/Product.php';
 require __DIR__ . '/lib/PromotionCode.php';
+require __DIR__ . '/lib/Quote.php';
 require __DIR__ . '/lib/Radar/EarlyFraudWarning.php';
 require __DIR__ . '/lib/Radar/ValueList.php';
 require __DIR__ . '/lib/Radar/ValueListItem.php';
-require __DIR__ . '/lib/Recipient.php';
-require __DIR__ . '/lib/RecipientTransfer.php';
 require __DIR__ . '/lib/Refund.php';
 require __DIR__ . '/lib/Reporting/ReportRun.php';
 require __DIR__ . '/lib/Reporting/ReportType.php';
 require __DIR__ . '/lib/Review.php';
+require __DIR__ . '/lib/SearchResult.php';
 require __DIR__ . '/lib/SetupAttempt.php';
 require __DIR__ . '/lib/SetupIntent.php';
+require __DIR__ . '/lib/ShippingRate.php';
 require __DIR__ . '/lib/Sigma/ScheduledQueryRun.php';
-require __DIR__ . '/lib/SKU.php';
 require __DIR__ . '/lib/Source.php';
 require __DIR__ . '/lib/SourceTransaction.php';
 require __DIR__ . '/lib/Subscription.php';
 require __DIR__ . '/lib/SubscriptionItem.php';
 require __DIR__ . '/lib/SubscriptionSchedule.php';
+require __DIR__ . '/lib/TaxCode.php';
 require __DIR__ . '/lib/TaxId.php';
 require __DIR__ . '/lib/TaxRate.php';
+require __DIR__ . '/lib/Terminal/Configuration.php';
 require __DIR__ . '/lib/Terminal/ConnectionToken.php';
 require __DIR__ . '/lib/Terminal/Location.php';
 require __DIR__ . '/lib/Terminal/Reader.php';
-require __DIR__ . '/lib/ThreeDSecure.php';
+require __DIR__ . '/lib/TestHelpers/TestClock.php';
 require __DIR__ . '/lib/Token.php';
 require __DIR__ . '/lib/Topup.php';
 require __DIR__ . '/lib/Transfer.php';
 require __DIR__ . '/lib/TransferReversal.php';
+require __DIR__ . '/lib/Treasury/CreditReversal.php';
+require __DIR__ . '/lib/Treasury/DebitReversal.php';
+require __DIR__ . '/lib/Treasury/FinancialAccount.php';
+require __DIR__ . '/lib/Treasury/FinancialAccountFeatures.php';
+require __DIR__ . '/lib/Treasury/InboundTransfer.php';
+require __DIR__ . '/lib/Treasury/OutboundPayment.php';
+require __DIR__ . '/lib/Treasury/OutboundTransfer.php';
+require __DIR__ . '/lib/Treasury/ReceivedCredit.php';
+require __DIR__ . '/lib/Treasury/ReceivedDebit.php';
+require __DIR__ . '/lib/Treasury/Transaction.php';
+require __DIR__ . '/lib/Treasury/TransactionEntry.php';
 require __DIR__ . '/lib/UsageRecord.php';
 require __DIR__ . '/lib/UsageRecordSummary.php';
 require __DIR__ . '/lib/WebhookEndpoint.php';
@@ -162,8 +188,10 @@ require __DIR__ . '/lib/Service/AccountService.php';
 require __DIR__ . '/lib/Service/AccountLinkService.php';
 require __DIR__ . '/lib/Service/ApplePayDomainService.php';
 require __DIR__ . '/lib/Service/ApplicationFeeService.php';
+require __DIR__ . '/lib/Service/Apps/SecretService.php';
 require __DIR__ . '/lib/Service/BalanceService.php';
 require __DIR__ . '/lib/Service/BalanceTransactionService.php';
+require __DIR__ . '/lib/Service/BillingPortal/ConfigurationService.php';
 require __DIR__ . '/lib/Service/BillingPortal/SessionService.php';
 require __DIR__ . '/lib/Service/ChargeService.php';
 require __DIR__ . '/lib/Service/Checkout/SessionService.php';
@@ -177,6 +205,10 @@ require __DIR__ . '/lib/Service/EventService.php';
 require __DIR__ . '/lib/Service/ExchangeRateService.php';
 require __DIR__ . '/lib/Service/FileService.php';
 require __DIR__ . '/lib/Service/FileLinkService.php';
+require __DIR__ . '/lib/Service/FinancialConnections/AccountService.php';
+require __DIR__ . '/lib/Service/FinancialConnections/SessionService.php';
+require __DIR__ . '/lib/Service/Identity/VerificationReportService.php';
+require __DIR__ . '/lib/Service/Identity/VerificationSessionService.php';
 require __DIR__ . '/lib/Service/InvoiceService.php';
 require __DIR__ . '/lib/Service/InvoiceItemService.php';
 require __DIR__ . '/lib/Service/Issuing/AuthorizationService.php';
@@ -185,15 +217,15 @@ require __DIR__ . '/lib/Service/Issuing/CardholderService.php';
 require __DIR__ . '/lib/Service/Issuing/DisputeService.php';
 require __DIR__ . '/lib/Service/Issuing/TransactionService.php';
 require __DIR__ . '/lib/Service/MandateService.php';
-require __DIR__ . '/lib/Service/OrderService.php';
-require __DIR__ . '/lib/Service/OrderReturnService.php';
 require __DIR__ . '/lib/Service/PaymentIntentService.php';
+require __DIR__ . '/lib/Service/PaymentLinkService.php';
 require __DIR__ . '/lib/Service/PaymentMethodService.php';
 require __DIR__ . '/lib/Service/PayoutService.php';
 require __DIR__ . '/lib/Service/PlanService.php';
 require __DIR__ . '/lib/Service/PriceService.php';
 require __DIR__ . '/lib/Service/ProductService.php';
 require __DIR__ . '/lib/Service/PromotionCodeService.php';
+require __DIR__ . '/lib/Service/QuoteService.php';
 require __DIR__ . '/lib/Service/Radar/EarlyFraudWarningService.php';
 require __DIR__ . '/lib/Service/Radar/ValueListService.php';
 require __DIR__ . '/lib/Service/Radar/ValueListItemService.php';
@@ -203,30 +235,60 @@ require __DIR__ . '/lib/Service/Reporting/ReportTypeService.php';
 require __DIR__ . '/lib/Service/ReviewService.php';
 require __DIR__ . '/lib/Service/SetupAttemptService.php';
 require __DIR__ . '/lib/Service/SetupIntentService.php';
+require __DIR__ . '/lib/Service/ShippingRateService.php';
 require __DIR__ . '/lib/Service/Sigma/ScheduledQueryRunService.php';
-require __DIR__ . '/lib/Service/SkuService.php';
 require __DIR__ . '/lib/Service/SourceService.php';
 require __DIR__ . '/lib/Service/SubscriptionService.php';
 require __DIR__ . '/lib/Service/SubscriptionItemService.php';
 require __DIR__ . '/lib/Service/SubscriptionScheduleService.php';
+require __DIR__ . '/lib/Service/TaxCodeService.php';
 require __DIR__ . '/lib/Service/TaxRateService.php';
+require __DIR__ . '/lib/Service/Terminal/ConfigurationService.php';
 require __DIR__ . '/lib/Service/Terminal/ConnectionTokenService.php';
 require __DIR__ . '/lib/Service/Terminal/LocationService.php';
 require __DIR__ . '/lib/Service/Terminal/ReaderService.php';
+require __DIR__ . '/lib/Service/TestHelpers/CustomerService.php';
+require __DIR__ . '/lib/Service/TestHelpers/Issuing/CardService.php';
+require __DIR__ . '/lib/Service/TestHelpers/RefundService.php';
+require __DIR__ . '/lib/Service/TestHelpers/Terminal/ReaderService.php';
+require __DIR__ . '/lib/Service/TestHelpers/TestClockService.php';
+require __DIR__ . '/lib/Service/TestHelpers/Treasury/InboundTransferService.php';
+require __DIR__ . '/lib/Service/TestHelpers/Treasury/OutboundPaymentService.php';
+require __DIR__ . '/lib/Service/TestHelpers/Treasury/OutboundTransferService.php';
+require __DIR__ . '/lib/Service/TestHelpers/Treasury/ReceivedCreditService.php';
+require __DIR__ . '/lib/Service/TestHelpers/Treasury/ReceivedDebitService.php';
 require __DIR__ . '/lib/Service/TokenService.php';
 require __DIR__ . '/lib/Service/TopupService.php';
 require __DIR__ . '/lib/Service/TransferService.php';
+require __DIR__ . '/lib/Service/Treasury/CreditReversalService.php';
+require __DIR__ . '/lib/Service/Treasury/DebitReversalService.php';
+require __DIR__ . '/lib/Service/Treasury/FinancialAccountService.php';
+require __DIR__ . '/lib/Service/Treasury/InboundTransferService.php';
+require __DIR__ . '/lib/Service/Treasury/OutboundPaymentService.php';
+require __DIR__ . '/lib/Service/Treasury/OutboundTransferService.php';
+require __DIR__ . '/lib/Service/Treasury/ReceivedCreditService.php';
+require __DIR__ . '/lib/Service/Treasury/ReceivedDebitService.php';
+require __DIR__ . '/lib/Service/Treasury/TransactionService.php';
+require __DIR__ . '/lib/Service/Treasury/TransactionEntryService.php';
 require __DIR__ . '/lib/Service/WebhookEndpointService.php';
 
 // Service factories
-require __DIR__ . '/lib/Service/CoreServiceFactory.php';
+require __DIR__ . '/lib/Service/Apps/AppsServiceFactory.php';
 require __DIR__ . '/lib/Service/BillingPortal/BillingPortalServiceFactory.php';
 require __DIR__ . '/lib/Service/Checkout/CheckoutServiceFactory.php';
+require __DIR__ . '/lib/Service/CoreServiceFactory.php';
+require __DIR__ . '/lib/Service/FinancialConnections/FinancialConnectionsServiceFactory.php';
+require __DIR__ . '/lib/Service/Identity/IdentityServiceFactory.php';
 require __DIR__ . '/lib/Service/Issuing/IssuingServiceFactory.php';
 require __DIR__ . '/lib/Service/Radar/RadarServiceFactory.php';
 require __DIR__ . '/lib/Service/Reporting/ReportingServiceFactory.php';
 require __DIR__ . '/lib/Service/Sigma/SigmaServiceFactory.php';
 require __DIR__ . '/lib/Service/Terminal/TerminalServiceFactory.php';
+require __DIR__ . '/lib/Service/TestHelpers/Issuing/IssuingServiceFactory.php';
+require __DIR__ . '/lib/Service/TestHelpers/Terminal/TerminalServiceFactory.php';
+require __DIR__ . '/lib/Service/TestHelpers/TestHelpersServiceFactory.php';
+require __DIR__ . '/lib/Service/TestHelpers/Treasury/TreasuryServiceFactory.php';
+require __DIR__ . '/lib/Service/Treasury/TreasuryServiceFactory.php';
 
 // OAuth
 require __DIR__ . '/lib/OAuth.php';

+ 50 - 79
htdocs/includes/stripe/stripe-php/lib/Account.php

@@ -6,33 +6,40 @@ namespace Stripe;
 
 /**
  * This is an object representing a Stripe account. You can retrieve it to see
- * properties on the account like its current e-mail address or if the account is
- * enabled yet to make live charges.
+ * properties on the account like its current requirements or if the account is
+ * enabled to make live charges or receive payouts.
  *
- * Some properties, marked below, are available only to platforms that want to <a
- * href="https://stripe.com/docs/connect/accounts">create and manage Express or
- * Custom accounts</a>.
+ * For Custom accounts, the properties below are always returned. For other
+ * accounts, some properties are returned until that account has started to go
+ * through Connect Onboarding. Once you create an <a
+ * href="https://stripe.com/docs/api/account_links">Account Link</a> for a Standard
+ * or Express account, some parameters are no longer returned. These are marked as
+ * <strong>Custom Only</strong> or <strong>Custom and Express</strong> below. Learn
+ * about the differences <a href="https://stripe.com/docs/connect/accounts">between
+ * accounts</a>.
  *
  * @property string $id Unique identifier for the object.
  * @property string $object String representing the object's type. Objects of the same type share the same value.
  * @property null|\Stripe\StripeObject $business_profile Business information about the account.
  * @property null|string $business_type The business type.
- * @property \Stripe\StripeObject $capabilities
- * @property bool $charges_enabled Whether the account can create live charges.
- * @property \Stripe\StripeObject $company
- * @property string $country The account's country.
- * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
- * @property string $default_currency Three-letter ISO currency code representing the default currency for the account. This must be a currency that <a href="https://stripe.com/docs/payouts">Stripe supports in the account's country</a>.
- * @property bool $details_submitted Whether account details have been submitted. Standard accounts cannot receive payouts before this is true.
- * @property null|string $email The primary user's email address.
- * @property \Stripe\Collection $external_accounts External accounts (bank accounts and debit cards) currently attached to this account
- * @property \Stripe\Person $individual <p>This is an object representing a person associated with a Stripe account.</p><p>Related guide: <a href="https://stripe.com/docs/connect/identity-verification-api#person-information">Handling Identity Verification with the API</a>.</p>
- * @property \Stripe\StripeObject $metadata Set of <a href="https://stripe.com/docs/api/metadata">key-value pairs</a> that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
- * @property bool $payouts_enabled Whether Stripe can send payouts to this account.
- * @property \Stripe\StripeObject $requirements
+ * @property null|\Stripe\StripeObject $capabilities
+ * @property null|bool $charges_enabled Whether the account can create live charges.
+ * @property null|\Stripe\StripeObject $company
+ * @property null|\Stripe\StripeObject $controller
+ * @property null|string $country The account's country.
+ * @property null|int $created Time at which the account was connected. Measured in seconds since the Unix epoch.
+ * @property null|string $default_currency Three-letter ISO currency code representing the default currency for the account. This must be a currency that <a href="https://stripe.com/docs/payouts">Stripe supports in the account's country</a>.
+ * @property null|bool $details_submitted Whether account details have been submitted. Standard accounts cannot receive payouts before this is true.
+ * @property null|string $email An email address associated with the account. You can treat this as metadata: it is not used for authentication or messaging account holders.
+ * @property null|\Stripe\Collection<\Stripe\BankAccount|\Stripe\Card> $external_accounts External accounts (bank accounts and debit cards) currently attached to this account
+ * @property null|\Stripe\StripeObject $future_requirements
+ * @property null|\Stripe\Person $individual <p>This is an object representing a person associated with a Stripe account.</p><p>A platform cannot access a Standard or Express account's persons after the account starts onboarding, such as after generating an account link for the account. See the <a href="https://stripe.com/docs/connect/standard-accounts">Standard onboarding</a> or <a href="https://stripe.com/docs/connect/express-accounts">Express onboarding documentation</a> for information about platform pre-filling and account onboarding steps.</p><p>Related guide: <a href="https://stripe.com/docs/connect/identity-verification-api#person-information">Handling Identity Verification with the API</a>.</p>
+ * @property null|\Stripe\StripeObject $metadata Set of <a href="https://stripe.com/docs/api/metadata">key-value pairs</a> that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
+ * @property null|bool $payouts_enabled Whether Stripe can send payouts to this account.
+ * @property null|\Stripe\StripeObject $requirements
  * @property null|\Stripe\StripeObject $settings Options for customizing how the account functions within Stripe.
- * @property \Stripe\StripeObject $tos_acceptance
- * @property string $type The Stripe account type. Can be <code>standard</code>, <code>express</code>, or <code>custom</code>.
+ * @property null|\Stripe\StripeObject $tos_acceptance
+ * @property null|string $type The Stripe account type. Can be <code>standard</code>, <code>express</code>, or <code>custom</code>.
  */
 class Account extends ApiResource
 {
@@ -49,15 +56,6 @@ class Account extends ApiResource
     const BUSINESS_TYPE_INDIVIDUAL = 'individual';
     const BUSINESS_TYPE_NON_PROFIT = 'non_profit';
 
-    const CAPABILITY_CARD_PAYMENTS = 'card_payments';
-    const CAPABILITY_LEGACY_PAYMENTS = 'legacy_payments';
-    const CAPABILITY_PLATFORM_PAYMENTS = 'platform_payments';
-    const CAPABILITY_TRANSFERS = 'transfers';
-
-    const CAPABILITY_STATUS_ACTIVE = 'active';
-    const CAPABILITY_STATUS_INACTIVE = 'inactive';
-    const CAPABILITY_STATUS_PENDING = 'pending';
-
     const TYPE_CUSTOM = 'custom';
     const TYPE_EXPRESS = 'express';
     const TYPE_STANDARD = 'standard';
@@ -88,6 +86,25 @@ class Account extends ApiResource
         return parent::instanceUrl();
     }
 
+    /**
+     * @param null|array|string $id the ID of the account to retrieve, or an
+     *     options array containing an `id` key
+     * @param null|array|string $opts
+     *
+     * @throws \Stripe\Exception\ApiErrorException if the request fails
+     *
+     * @return \Stripe\Account
+     */
+    public static function retrieve($id = null, $opts = null)
+    {
+        if (!$opts && \is_string($id) && 'sk_' === \substr($id, 0, 3)) {
+            $opts = $id;
+            $id = null;
+        }
+
+        return self::_retrieve($id, $opts);
+    }
+
     public function serializeParameters($force = false)
     {
         $update = parent::serializeParameters($force);
@@ -139,25 +156,6 @@ class Account extends ApiResource
         return $updateArr;
     }
 
-    /**
-     * @param null|array|string $id the ID of the account to retrieve, or an
-     *     options array containing an `id` key
-     * @param null|array|string $opts
-     *
-     * @throws \Stripe\Exception\ApiErrorException if the request fails
-     *
-     * @return \Stripe\Account
-     */
-    public static function retrieve($id = null, $opts = null)
-    {
-        if (!$opts && \is_string($id) && 'sk_' === \substr($id, 0, 3)) {
-            $opts = $id;
-            $id = null;
-        }
-
-        return self::_retrieve($id, $opts);
-    }
-
     /**
      * @param null|array $clientId
      * @param null|array|string $opts
@@ -182,25 +180,7 @@ class Account extends ApiResource
      *
      * @throws \Stripe\Exception\ApiErrorException if the request fails
      *
-     * @return \Stripe\Collection the list of persons
-     */
-    public function persons($params = null, $opts = null)
-    {
-        $url = $this->instanceUrl() . '/persons';
-        list($response, $opts) = $this->_request('get', $url, $params, $opts);
-        $obj = Util\Util::convertToStripeObject($response, $opts);
-        $obj->setLastResponse($response);
-
-        return $obj;
-    }
-
-    /**
-     * @param null|array $params
-     * @param null|array|string $opts
-     *
-     * @throws \Stripe\Exception\ApiErrorException if the request fails
-     *
-     * @return Account the rejected account
+     * @return \Stripe\Account the rejected account
      */
     public function reject($params = null, $opts = null)
     {
@@ -211,12 +191,6 @@ class Account extends ApiResource
         return $this;
     }
 
-    /*
-     * Capabilities methods
-     * We can not add the capabilities() method today as the Account object already has a
-     * capabilities property which is a hash and not the sub-list of capabilities.
-     */
-
     const PATH_CAPABILITIES = '/capabilities';
 
     /**
@@ -226,7 +200,7 @@ class Account extends ApiResource
      *
      * @throws \Stripe\Exception\ApiErrorException if the request fails
      *
-     * @return \Stripe\Collection the list of capabilities
+     * @return \Stripe\Collection<\Stripe\Capability> the list of capabilities
      */
     public static function allCapabilities($id, $params = null, $opts = null)
     {
@@ -262,7 +236,6 @@ class Account extends ApiResource
     {
         return self::_updateNestedResource($id, static::PATH_CAPABILITIES, $capabilityId, $params, $opts);
     }
-
     const PATH_EXTERNAL_ACCOUNTS = '/external_accounts';
 
     /**
@@ -272,7 +245,7 @@ class Account extends ApiResource
      *
      * @throws \Stripe\Exception\ApiErrorException if the request fails
      *
-     * @return \Stripe\Collection the list of external accounts (BankAccount or Card)
+     * @return \Stripe\Collection<\Stripe\BankAccount|\Stripe\Card> the list of external accounts (BankAccount or Card)
      */
     public static function allExternalAccounts($id, $params = null, $opts = null)
     {
@@ -337,7 +310,6 @@ class Account extends ApiResource
     {
         return self::_updateNestedResource($id, static::PATH_EXTERNAL_ACCOUNTS, $externalAccountId, $params, $opts);
     }
-
     const PATH_LOGIN_LINKS = '/login_links';
 
     /**
@@ -353,7 +325,6 @@ class Account extends ApiResource
     {
         return self::_createNestedResource($id, static::PATH_LOGIN_LINKS, $params, $opts);
     }
-
     const PATH_PERSONS = '/persons';
 
     /**
@@ -363,7 +334,7 @@ class Account extends ApiResource
      *
      * @throws \Stripe\Exception\ApiErrorException if the request fails
      *
-     * @return \Stripe\Collection the list of persons
+     * @return \Stripe\Collection<\Stripe\Person> the list of persons
      */
     public static function allPersons($id, $params = null, $opts = null)
     {

+ 0 - 75
htdocs/includes/stripe/stripe-php/lib/AlipayAccount.php

@@ -1,75 +0,0 @@
-<?php
-
-namespace Stripe;
-
-/**
- * Class AlipayAccount.
- *
- * @deprecated Alipay accounts are deprecated. Please use the sources API instead.
- * @see https://stripe.com/docs/sources/alipay
- */
-class AlipayAccount extends ApiResource
-{
-    const OBJECT_NAME = 'alipay_account';
-
-    use ApiOperations\Delete;
-    use ApiOperations\Update;
-
-    /**
-     * @return string The instance URL for this resource. It needs to be special
-     *    cased because it doesn't fit into the standard resource pattern.
-     */
-    public function instanceUrl()
-    {
-        if ($this['customer']) {
-            $base = Customer::classUrl();
-            $parent = $this['customer'];
-            $path = 'sources';
-        } else {
-            $msg = 'Alipay accounts cannot be accessed without a customer ID.';
-
-            throw new Exception\UnexpectedValueException($msg);
-        }
-        $parentExtn = \urlencode(Util\Util::utf8($parent));
-        $extn = \urlencode(Util\Util::utf8($this['id']));
-
-        return "{$base}/{$parentExtn}/{$path}/{$extn}";
-    }
-
-    /**
-     * @param array|string $_id
-     * @param null|array|string $_opts
-     *
-     * @throws \Stripe\Exception\BadMethodCallException
-     *
-     * @deprecated Alipay accounts are deprecated. Please use the sources API instead.
-     * @see https://stripe.com/docs/sources/alipay
-     */
-    public static function retrieve($_id, $_opts = null)
-    {
-        $msg = 'Alipay accounts cannot be retrieved without a customer ID. ' .
-               'Retrieve an Alipay account using `Customer::retrieveSource(' .
-               "'customer_id', 'alipay_account_id')`.";
-
-        throw new Exception\BadMethodCallException($msg);
-    }
-
-    /**
-     * @param string $_id
-     * @param null|array $_params
-     * @param null|array|string $_options
-     *
-     * @throws \Stripe\Exception\BadMethodCallException
-     *
-     * @deprecated Alipay accounts are deprecated. Please use the sources API instead.
-     * @see https://stripe.com/docs/sources/alipay
-     */
-    public static function update($_id, $_params = null, $_options = null)
-    {
-        $msg = 'Alipay accounts cannot be updated without a customer ID. ' .
-               'Update an Alipay account using `Customer::updateSource(' .
-               "'customer_id', 'alipay_account_id', \$updateParams)`.";
-
-        throw new Exception\BadMethodCallException($msg);
-    }
-}

+ 32 - 0
htdocs/includes/stripe/stripe-php/lib/ApiOperations/Request.php

@@ -45,6 +45,21 @@ trait Request
         return [$resp->json, $options];
     }
 
+    /**
+     * @param string $method HTTP method ('get', 'post', etc.)
+     * @param string $url URL for the request
+     * @param callable $readBodyChunk function that will receive chunks of data from a successful request body
+     * @param array $params list of parameters for the request
+     * @param null|array|string $options
+     *
+     * @throws \Stripe\Exception\ApiErrorException if the request fails
+     */
+    protected function _requestStream($method, $url, $readBodyChunk, $params = [], $options = null)
+    {
+        $opts = $this->_opts->merge($options);
+        static::_staticStreamingRequest($method, $url, $readBodyChunk, $params, $opts);
+    }
+
     /**
      * @param string $method HTTP method ('get', 'post', etc.)
      * @param string $url URL for the request
@@ -65,4 +80,21 @@ trait Request
 
         return [$response, $opts];
     }
+
+    /**
+     * @param string $method HTTP method ('get', 'post', etc.)
+     * @param string $url URL for the request
+     * @param callable $readBodyChunk function that will receive chunks of data from a successful request body
+     * @param array $params list of parameters for the request
+     * @param null|array|string $options
+     *
+     * @throws \Stripe\Exception\ApiErrorException if the request fails
+     */
+    protected static function _staticStreamingRequest($method, $url, $readBodyChunk, $params, $options)
+    {
+        $opts = \Stripe\Util\RequestOptions::parse($options);
+        $baseUrl = isset($opts->apiBase) ? $opts->apiBase : static::baseUrl();
+        $requestor = new \Stripe\ApiRequestor($opts->apiKey, $baseUrl);
+        $requestor->requestStream($method, $url, $readBodyChunk, $params, $opts->headers);
+    }
 }

+ 37 - 0
htdocs/includes/stripe/stripe-php/lib/ApiOperations/Search.php

@@ -0,0 +1,37 @@
+<?php
+
+namespace Stripe\ApiOperations;
+
+/**
+ * Trait for searchable resources.
+ *
+ * This trait should only be applied to classes that derive from StripeObject.
+ */
+trait Search
+{
+    /**
+     * @param string $searchUrl
+     * @param null|array $params
+     * @param null|array|string $opts
+     *
+     * @throws \Stripe\Exception\ApiErrorException if the request fails
+     *
+     * @return \Stripe\SearchResult of ApiResources
+     */
+    protected static function _searchResource($searchUrl, $params = null, $opts = null)
+    {
+        self::_validateParams($params);
+
+        list($response, $opts) = static::_staticRequest('get', $searchUrl, $params, $opts);
+        $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts);
+        if (!($obj instanceof \Stripe\SearchResult)) {
+            throw new \Stripe\Exception\UnexpectedValueException(
+                'Expected type ' . \Stripe\SearchResult::class . ', got "' . \get_class($obj) . '" instead.'
+            );
+        }
+        $obj->setLastResponse($response);
+        $obj->setFilters($params);
+
+        return $obj;
+    }
+}

+ 30 - 0
htdocs/includes/stripe/stripe-php/lib/ApiOperations/SingletonRetrieve.php

@@ -0,0 +1,30 @@
+<?php
+
+namespace Stripe\ApiOperations;
+
+/**
+ * Trait for retrievable singleton resources. Adds a `retrieve()` static method to the
+ * class.
+ *
+ * This trait should only be applied to classes that derive from SingletonApiResource.
+ */
+trait SingletonRetrieve
+{
+    /**
+     * @param array|string $id the ID of the API resource to retrieve,
+     *     or an options array containing an `id` key
+     * @param null|array|string $opts
+     *
+     * @throws \Stripe\Exception\ApiErrorException if the request fails
+     *
+     * @return static
+     */
+    public static function retrieve($opts = null)
+    {
+        $opts = \Stripe\Util\RequestOptions::parse($opts);
+        $instance = new static(null, $opts);
+        $instance->refresh();
+
+        return $instance;
+    }
+}

+ 4 - 0
htdocs/includes/stripe/stripe-php/lib/ApiOperations/Update.php

@@ -37,6 +37,10 @@ trait Update
      * @throws \Stripe\Exception\ApiErrorException if the request fails
      *
      * @return static the saved resource
+     *
+     * @deprecated The `save` method is deprecated and will be removed in a
+     *     future major version of the library. Use the static method `update`
+     *     on the resource instead.
      */
     public function save($opts = null)
     {

+ 106 - 15
htdocs/includes/stripe/stripe-php/lib/ApiRequestor.php

@@ -21,6 +21,10 @@ class ApiRequestor
      * @var HttpClient\ClientInterface
      */
     private static $_httpClient;
+    /**
+     * @var HttpClient\StreamingClientInterface
+     */
+    private static $_streamingHttpClient;
 
     /**
      * @var RequestTelemetry
@@ -123,6 +127,26 @@ class ApiRequestor
         return [$resp, $myApiKey];
     }
 
+    /**
+     * @param string     $method
+     * @param string     $url
+     * @param callable $readBodyChunkCallable
+     * @param null|array $params
+     * @param null|array $headers
+     *
+     * @throws Exception\ApiErrorException
+     */
+    public function requestStream($method, $url, $readBodyChunkCallable, $params = null, $headers = null)
+    {
+        $params = $params ?: [];
+        $headers = $headers ?: [];
+        list($rbody, $rcode, $rheaders, $myApiKey) =
+        $this->_requestRawStreaming($method, $url, $params, $headers, $readBodyChunkCallable);
+        if ($rcode >= 300) {
+            $this->_interpretResponse($rbody, $rcode, $rheaders);
+        }
+    }
+
     /**
      * @param string $rbody a JSON string
      * @param int $rcode
@@ -271,9 +295,8 @@ class ApiRequestor
     /**
      * @static
      *
-     * @param string $disabledFunctionsOutput - String value of the 'disable_function' setting, as output by \ini_get('disable_functions')
+     * @param string $disableFunctionsOutput - String value of the 'disable_function' setting, as output by \ini_get('disable_functions')
      * @param string $functionName - Name of the function we are interesting in seeing whether or not it is disabled
-     * @param mixed $disableFunctionsOutput
      *
      * @return bool
      */
@@ -328,18 +351,7 @@ class ApiRequestor
         ];
     }
 
-    /**
-     * @param string $method
-     * @param string $url
-     * @param array $params
-     * @param array $headers
-     *
-     * @throws Exception\AuthenticationException
-     * @throws Exception\ApiConnectionException
-     *
-     * @return array
-     */
-    private function _requestRaw($method, $url, $params, $headers)
+    private function _prepareRequest($method, $url, $params, $headers)
     {
         $myApiKey = $this->_apiKey;
         if (!$myApiKey) {
@@ -416,6 +428,24 @@ class ApiRequestor
             $rawHeaders[] = $header . ': ' . $value;
         }
 
+        return [$absUrl, $rawHeaders, $params, $hasFile, $myApiKey];
+    }
+
+    /**
+     * @param string $method
+     * @param string $url
+     * @param array $params
+     * @param array $headers
+     *
+     * @throws Exception\AuthenticationException
+     * @throws Exception\ApiConnectionException
+     *
+     * @return array
+     */
+    private function _requestRaw($method, $url, $params, $headers)
+    {
+        list($absUrl, $rawHeaders, $params, $hasFile, $myApiKey) = $this->_prepareRequest($method, $url, $params, $headers);
+
         $requestStartMs = Util\Util::currentTimeMillis();
 
         list($rbody, $rcode, $rheaders) = $this->httpClient()->request(
@@ -428,7 +458,46 @@ class ApiRequestor
 
         if (isset($rheaders['request-id'])
         && \is_string($rheaders['request-id'])
-        && \strlen($rheaders['request-id']) > 0) {
+        && '' !== $rheaders['request-id']) {
+            self::$requestTelemetry = new RequestTelemetry(
+                $rheaders['request-id'],
+                Util\Util::currentTimeMillis() - $requestStartMs
+            );
+        }
+
+        return [$rbody, $rcode, $rheaders, $myApiKey];
+    }
+
+    /**
+     * @param string $method
+     * @param string $url
+     * @param array $params
+     * @param array $headers
+     * @param callable $readBodyChunkCallable
+     *
+     * @throws Exception\AuthenticationException
+     * @throws Exception\ApiConnectionException
+     *
+     * @return array
+     */
+    private function _requestRawStreaming($method, $url, $params, $headers, $readBodyChunkCallable)
+    {
+        list($absUrl, $rawHeaders, $params, $hasFile, $myApiKey) = $this->_prepareRequest($method, $url, $params, $headers);
+
+        $requestStartMs = Util\Util::currentTimeMillis();
+
+        list($rbody, $rcode, $rheaders) = $this->streamingHttpClient()->requestStream(
+            $method,
+            $absUrl,
+            $rawHeaders,
+            $params,
+            $hasFile,
+            $readBodyChunkCallable
+        );
+
+        if (isset($rheaders['request-id'])
+        && \is_string($rheaders['request-id'])
+        && '' !== $rheaders['request-id']) {
             self::$requestTelemetry = new RequestTelemetry(
                 $rheaders['request-id'],
                 Util\Util::currentTimeMillis() - $requestStartMs
@@ -502,6 +571,16 @@ class ApiRequestor
         self::$_httpClient = $client;
     }
 
+    /**
+     * @static
+     *
+     * @param HttpClient\StreamingClientInterface $client
+     */
+    public static function setStreamingHttpClient($client)
+    {
+        self::$_streamingHttpClient = $client;
+    }
+
     /**
      * @static
      *
@@ -523,4 +602,16 @@ class ApiRequestor
 
         return self::$_httpClient;
     }
+
+    /**
+     * @return HttpClient\StreamingClientInterface
+     */
+    private function streamingHttpClient()
+    {
+        if (!self::$_streamingHttpClient) {
+            self::$_streamingHttpClient = HttpClient\CurlClient::instance();
+        }
+
+        return self::$_streamingHttpClient;
+    }
 }

+ 2 - 0
htdocs/includes/stripe/stripe-php/lib/ApiResource.php

@@ -82,6 +82,8 @@ abstract class ApiResource extends StripeObject
     {
         // Replace dots with slashes for namespaced resources, e.g. if the object's name is
         // "foo.bar", then its URL will be "/v1/foo/bars".
+
+        /** @phpstan-ignore-next-line */
         $base = \str_replace('.', '/', static::OBJECT_NAME);
 
         return "/v1/{$base}s";

+ 2 - 2
htdocs/includes/stripe/stripe-php/lib/ApplicationFee.php

@@ -18,7 +18,7 @@ namespace Stripe;
  * @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.
  * @property null|string|\Stripe\Charge $originating_transaction ID of the corresponding charge on the platform account, if this fee was the result of a charge using the <code>destination</code> parameter.
  * @property bool $refunded Whether the fee has been fully refunded. If the fee is only partially refunded, this attribute will still be false.
- * @property \Stripe\Collection $refunds A list of refunds that have been applied to the fee.
+ * @property \Stripe\Collection<\Stripe\StripeObject> $refunds A list of refunds that have been applied to the fee.
  */
 class ApplicationFee extends ApiResource
 {
@@ -37,7 +37,7 @@ class ApplicationFee extends ApiResource
      *
      * @throws \Stripe\Exception\ApiErrorException if the request fails
      *
-     * @return \Stripe\Collection the list of fee refunds
+     * @return \Stripe\Collection<\Stripe\ApplicationFeeRefund> the list of fee refunds
      */
     public static function allRefunds($id, $params = null, $opts = null)
     {

+ 79 - 0
htdocs/includes/stripe/stripe-php/lib/Apps/Secret.php

@@ -0,0 +1,79 @@
+<?php
+
+// File generated from our OpenAPI spec
+
+namespace Stripe\Apps;
+
+/**
+ * Secret Store is an API that allows Stripe Apps developers to securely persist
+ * secrets for use by UI Extensions and app backends.
+ *
+ * The primary resource in Secret Store is a <code>secret</code>. Other apps can't
+ * view secrets created by an app. Additionally, secrets are scoped to provide
+ * further permission control.
+ *
+ * All Dashboard users and the app backend share <code>account</code> scoped
+ * secrets. Use the <code>account</code> scope for secrets that don't change
+ * per-user, like a third-party API key.
+ *
+ * A <code>user</code> scoped secret is accessible by the app backend and one
+ * specific Dashboard user. Use the <code>user</code> scope for per-user secrets
+ * like per-user OAuth tokens, where different users might have different
+ * permissions.
+ *
+ * Related guide: <a
+ * href="https://stripe.com/docs/stripe-apps/store-auth-data-custom-objects">Store
+ * data between page reloads</a>.
+ *
+ * @property string $id Unique identifier for the object.
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
+ * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
+ * @property null|int $expires_at The Unix timestamp for the expiry time of the secret, after which the secret deletes.
+ * @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.
+ * @property string $name A name for the secret that's unique within the scope.
+ * @property null|string $payload The plaintext secret value to be stored.
+ * @property \Stripe\StripeObject $scope
+ */
+class Secret extends \Stripe\ApiResource
+{
+    const OBJECT_NAME = 'apps.secret';
+
+    use \Stripe\ApiOperations\All;
+    use \Stripe\ApiOperations\Create;
+
+    /**
+     * @param null|array $params
+     * @param null|array|string $opts
+     *
+     * @throws \Stripe\Exception\ApiErrorException if the request fails
+     *
+     * @return \Stripe\Apps\Secret the deleted secret
+     */
+    public static function deleteWhere($params = null, $opts = null)
+    {
+        $url = static::classUrl() . '/delete';
+        list($response, $opts) = static::_staticRequest('post', $url, $params, $opts);
+        $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts);
+        $obj->setLastResponse($response);
+
+        return $obj;
+    }
+
+    /**
+     * @param null|array $params
+     * @param null|array|string $opts
+     *
+     * @throws \Stripe\Exception\ApiErrorException if the request fails
+     *
+     * @return \Stripe\Apps\Secret the finded secret
+     */
+    public static function find($params = null, $opts = null)
+    {
+        $url = static::classUrl() . '/find';
+        list($response, $opts) = static::_staticRequest('get', $url, $params, $opts);
+        $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts);
+        $obj->setLastResponse($response);
+
+        return $obj;
+    }
+}

+ 4 - 14
htdocs/includes/stripe/stripe-php/lib/Balance.php

@@ -21,9 +21,9 @@ namespace Stripe;
  *
  * @property string $object String representing the object's type. Objects of the same type share the same value.
  * @property \Stripe\StripeObject[] $available Funds that are available to be transferred or paid out, whether automatically by Stripe or explicitly via the <a href="https://stripe.com/docs/api#transfers">Transfers API</a> or <a href="https://stripe.com/docs/api#payouts">Payouts API</a>. The available balance for each currency and payment type can be found in the <code>source_types</code> property.
- * @property \Stripe\StripeObject[] $connect_reserved Funds held due to negative balances on connected Custom accounts. The connect reserve balance for each currency and payment type can be found in the <code>source_types</code> property.
- * @property \Stripe\StripeObject[] $instant_available Funds that can be paid out using Instant Payouts.
- * @property \Stripe\StripeObject $issuing
+ * @property null|\Stripe\StripeObject[] $connect_reserved Funds held due to negative balances on connected Custom accounts. The connect reserve balance for each currency and payment type can be found in the <code>source_types</code> property.
+ * @property null|\Stripe\StripeObject[] $instant_available Funds that can be paid out using Instant Payouts.
+ * @property null|\Stripe\StripeObject $issuing
  * @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.
  * @property \Stripe\StripeObject[] $pending Funds that are not yet available in the balance, due to the 7-day rolling pay cycle. The pending balance for each currency, and for each payment type, can be found in the <code>source_types</code> property.
  */
@@ -31,15 +31,5 @@ class Balance extends SingletonApiResource
 {
     const OBJECT_NAME = 'balance';
 
-    /**
-     * @param null|array|string $opts
-     *
-     * @throws \Stripe\Exception\ApiErrorException if the request fails
-     *
-     * @return \Stripe\Balance
-     */
-    public static function retrieve($opts = null)
-    {
-        return self::_singletonRetrieve($opts);
-    }
+    use ApiOperations\SingletonRetrieve;
 }

+ 1 - 0
htdocs/includes/stripe/stripe-php/lib/BankAccount.php

@@ -23,6 +23,7 @@ namespace Stripe;
  * @property null|string|\Stripe\Account $account The ID of the account that the bank account is associated with.
  * @property null|string $account_holder_name The name of the person or business that owns the bank account.
  * @property null|string $account_holder_type The type of entity that holds the account. This can be either <code>individual</code> or <code>company</code>.
+ * @property null|string $account_type The bank account type. This can only be <code>checking</code> or <code>savings</code> in most countries. In Japan, this can only be <code>futsu</code> or <code>toza</code>.
  * @property null|string[] $available_payout_methods A set of available payout methods for this bank account. Only values from this set should be passed as the <code>method</code> when creating a payout.
  * @property null|string $bank_name Name of the bank associated with the routing number (e.g., <code>WELLS FARGO</code>).
  * @property string $country Two-letter ISO code representing the country the bank account is located in.

+ 44 - 1
htdocs/includes/stripe/stripe-php/lib/BaseStripeClient.php

@@ -2,7 +2,7 @@
 
 namespace Stripe;
 
-class BaseStripeClient implements StripeClientInterface
+class BaseStripeClient implements StripeClientInterface, StripeStreamingClientInterface
 {
     /** @var string default base URL for Stripe's API */
     const DEFAULT_API_BASE = 'https://api.stripe.com';
@@ -139,6 +139,25 @@ class BaseStripeClient implements StripeClientInterface
         return $obj;
     }
 
+    /**
+     * Sends a request to Stripe's API, passing chunks of the streamed response
+     * into a user-provided $readBodyChunkCallable callback.
+     *
+     * @param string $method the HTTP method
+     * @param string $path the path of the request
+     * @param callable $readBodyChunkCallable a function that will be called
+     * @param array $params the parameters of the request
+     * @param array|\Stripe\Util\RequestOptions $opts the special modifiers of the request
+     * with chunks of bytes from the body if the request is successful
+     */
+    public function requestStream($method, $path, $readBodyChunkCallable, $params, $opts)
+    {
+        $opts = $this->defaultOpts->merge($opts, true);
+        $baseUrl = $opts->apiBase ?: $this->getApiBase();
+        $requestor = new \Stripe\ApiRequestor($this->apiKeyForRequest($opts), $baseUrl);
+        list($response, $opts->apiKey) = $requestor->requestStream($method, $path, $readBodyChunkCallable, $params, $opts->headers);
+    }
+
     /**
      * Sends a request to Stripe's API.
      *
@@ -163,6 +182,30 @@ class BaseStripeClient implements StripeClientInterface
         return $obj;
     }
 
+    /**
+     * Sends a request to Stripe's API.
+     *
+     * @param string $method the HTTP method
+     * @param string $path the path of the request
+     * @param array $params the parameters of the request
+     * @param array|\Stripe\Util\RequestOptions $opts the special modifiers of the request
+     *
+     * @return \Stripe\SearchResult of ApiResources
+     */
+    public function requestSearchResult($method, $path, $params, $opts)
+    {
+        $obj = $this->request($method, $path, $params, $opts);
+        if (!($obj instanceof \Stripe\SearchResult)) {
+            $received_class = \get_class($obj);
+            $msg = "Expected to receive `Stripe\\SearchResult` object from Stripe API. Instead received `{$received_class}`.";
+
+            throw new \Stripe\Exception\UnexpectedValueException($msg);
+        }
+        $obj->setFilters($params);
+
+        return $obj;
+    }
+
     /**
      * @param \Stripe\Util\RequestOptions $opts
      *

+ 44 - 0
htdocs/includes/stripe/stripe-php/lib/BaseStripeClientInterface.php

@@ -0,0 +1,44 @@
+<?php
+
+namespace Stripe;
+
+/**
+ * Interface for a Stripe client.
+ */
+interface BaseStripeClientInterface
+{
+    /**
+     * Gets the API key used by the client to send requests.
+     *
+     * @return null|string the API key used by the client to send requests
+     */
+    public function getApiKey();
+
+    /**
+     * Gets the client ID used by the client in OAuth requests.
+     *
+     * @return null|string the client ID used by the client in OAuth requests
+     */
+    public function getClientId();
+
+    /**
+     * Gets the base URL for Stripe's API.
+     *
+     * @return string the base URL for Stripe's API
+     */
+    public function getApiBase();
+
+    /**
+     * Gets the base URL for Stripe's OAuth API.
+     *
+     * @return string the base URL for Stripe's OAuth API
+     */
+    public function getConnectBase();
+
+    /**
+     * Gets the base URL for Stripe's Files API.
+     *
+     * @return string the base URL for Stripe's Files API
+     */
+    public function getFilesBase();
+}

+ 33 - 0
htdocs/includes/stripe/stripe-php/lib/BillingPortal/Configuration.php

@@ -0,0 +1,33 @@
+<?php
+
+// File generated from our OpenAPI spec
+
+namespace Stripe\BillingPortal;
+
+/**
+ * A portal configuration describes the functionality and behavior of a portal
+ * session.
+ *
+ * @property string $id Unique identifier for the object.
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
+ * @property bool $active Whether the configuration is active and can be used to create portal sessions.
+ * @property null|string|\Stripe\StripeObject $application ID of the Connect Application that created the configuration.
+ * @property \Stripe\StripeObject $business_profile
+ * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
+ * @property null|string $default_return_url The default URL to redirect customers to when they click on the portal's link to return to your website. This can be <a href="https://stripe.com/docs/api/customer_portal/sessions/create#create_portal_session-return_url">overriden</a> when creating the session.
+ * @property \Stripe\StripeObject $features
+ * @property bool $is_default Whether the configuration is the default. If <code>true</code>, this configuration can be managed in the Dashboard and portal sessions will use this configuration unless it is overriden when creating the session.
+ * @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.
+ * @property \Stripe\StripeObject $login_page
+ * @property null|\Stripe\StripeObject $metadata Set of <a href="https://stripe.com/docs/api/metadata">key-value pairs</a> that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
+ * @property int $updated Time at which the object was last updated. Measured in seconds since the Unix epoch.
+ */
+class Configuration extends \Stripe\ApiResource
+{
+    const OBJECT_NAME = 'billing_portal.configuration';
+
+    use \Stripe\ApiOperations\All;
+    use \Stripe\ApiOperations\Create;
+    use \Stripe\ApiOperations\Retrieve;
+    use \Stripe\ApiOperations\Update;
+}

+ 18 - 8
htdocs/includes/stripe/stripe-php/lib/BillingPortal/Session.php

@@ -5,24 +5,34 @@
 namespace Stripe\BillingPortal;
 
 /**
- * A session describes the instantiation of the customer portal for a particular
- * customer. By visiting the session's URL, the customer can manage their
- * subscriptions and billing details. For security reasons, sessions are
+ * The Billing customer portal is a Stripe-hosted UI for subscription and billing
+ * management.
+ *
+ * A portal configuration describes the functionality and features that you want to
+ * provide to your customers through the portal.
+ *
+ * A portal session describes the instantiation of the customer portal for a
+ * particular customer. By visiting the session's URL, the customer can manage
+ * their subscriptions and billing details. For security reasons, sessions are
  * short-lived and will expire if the customer does not visit the URL. Create
  * sessions on-demand when customers intend to manage their subscriptions and
  * billing details.
  *
- * Integration guide: <a
- * href="https://stripe.com/docs/billing/subscriptions/integrating-customer-portal">Billing
- * customer portal</a>.
+ * Learn more in the <a
+ * href="https://stripe.com/docs/billing/subscriptions/integrating-customer-portal">integration
+ * guide</a>.
  *
  * @property string $id Unique identifier for the object.
  * @property string $object String representing the object's type. Objects of the same type share the same value.
+ * @property string|\Stripe\BillingPortal\Configuration $configuration The configuration used by this session, describing the features available.
  * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
  * @property string $customer The ID of the customer for this session.
+ * @property null|\Stripe\StripeObject $flow Information about a specific flow for the customer to go through. See the <a href="https://stripe.com/docs/customer-management/portal-deep-links">docs</a> to learn more about using customer portal deep links and flows.
  * @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.
- * @property string $return_url The URL to which Stripe should send customers when they click on the link to return to your website.
- * @property string $url The short-lived URL of the session giving customers access to the customer portal.
+ * @property null|string $locale The IETF language tag of the locale Customer Portal is displayed in. If blank or auto, the customer’s <code>preferred_locales</code> or browser’s locale is used.
+ * @property null|string $on_behalf_of The account for which the session was created on behalf of. When specified, only subscriptions and invoices with this <code>on_behalf_of</code> account appear in the portal. For more information, see the <a href="https://stripe.com/docs/connect/charges-transfers#on-behalf-of">docs</a>. Use the <a href="https://stripe.com/docs/api/accounts/object#account_object-settings-branding">Accounts API</a> to modify the <code>on_behalf_of</code> account's branding settings, which the portal displays.
+ * @property null|string $return_url The URL to redirect customers to when they click on the portal's link to return to your website.
+ * @property string $url The short-lived URL of the session that gives customers access to the customer portal.
  */
 class Session extends \Stripe\ApiResource
 {

+ 0 - 71
htdocs/includes/stripe/stripe-php/lib/BitcoinReceiver.php

@@ -1,71 +0,0 @@
-<?php
-
-// File generated from our OpenAPI spec
-
-namespace Stripe;
-
-/**
- * @deprecated Bitcoin receivers are deprecated. Please use the sources API instead.
- * @see https://stripe.com/docs/sources/bitcoin
- *
- * @property string $id Unique identifier for the object.
- * @property string $object String representing the object's type. Objects of the same type share the same value.
- * @property bool $active True when this bitcoin receiver has received a non-zero amount of bitcoin.
- * @property int $amount The amount of <code>currency</code> that you are collecting as payment.
- * @property int $amount_received The amount of <code>currency</code> to which <code>bitcoin_amount_received</code> has been converted.
- * @property int $bitcoin_amount The amount of bitcoin that the customer should send to fill the receiver. The <code>bitcoin_amount</code> is denominated in Satoshi: there are 10^8 Satoshi in one bitcoin.
- * @property int $bitcoin_amount_received The amount of bitcoin that has been sent by the customer to this receiver.
- * @property string $bitcoin_uri This URI can be displayed to the customer as a clickable link (to activate their bitcoin client) or as a QR code (for mobile wallets).
- * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
- * @property string $currency Three-letter <a href="https://stripe.com/docs/currencies">ISO code for the currency</a> to which the bitcoin will be converted.
- * @property null|string $customer The customer ID of the bitcoin receiver.
- * @property null|string $description An arbitrary string attached to the object. Often useful for displaying to users.
- * @property null|string $email The customer's email address, set by the API call that creates the receiver.
- * @property bool $filled This flag is initially false and updates to true when the customer sends the <code>bitcoin_amount</code> to this receiver.
- * @property string $inbound_address A bitcoin address that is specific to this receiver. The customer can send bitcoin to this address to fill the receiver.
- * @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.
- * @property null|\Stripe\StripeObject $metadata Set of <a href="https://stripe.com/docs/api/metadata">key-value pairs</a> that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
- * @property null|string $payment The ID of the payment created from the receiver, if any. Hidden when viewing the receiver with a publishable key.
- * @property null|string $refund_address The refund address of this bitcoin receiver.
- * @property \Stripe\Collection $transactions A list with one entry for each time that the customer sent bitcoin to the receiver. Hidden when viewing the receiver with a publishable key.
- * @property bool $uncaptured_funds This receiver contains uncaptured funds that can be used for a payment or refunded.
- * @property null|bool $used_for_payment Indicate if this source is used for payment.
- */
-class BitcoinReceiver extends ApiResource
-{
-    const OBJECT_NAME = 'bitcoin_receiver';
-
-    use ApiOperations\All;
-    use ApiOperations\Retrieve;
-
-    /**
-     * @return string The class URL for this resource. It needs to be special
-     *    cased because it doesn't fit into the standard resource pattern.
-     */
-    public static function classUrl()
-    {
-        return '/v1/bitcoin/receivers';
-    }
-
-    /**
-     * @return string The instance URL for this resource. It needs to be special
-     *    cased because it doesn't fit into the standard resource pattern.
-     */
-    public function instanceUrl()
-    {
-        if ($this['customer']) {
-            $base = Customer::classUrl();
-            $parent = $this['customer'];
-            $path = 'sources';
-            $parentExtn = \urlencode(Util\Util::utf8($parent));
-            $extn = \urlencode(Util\Util::utf8($this['id']));
-
-            return "{$base}/{$parentExtn}/{$path}/{$extn}";
-        }
-
-        $base = BitcoinReceiver::classUrl();
-        $extn = \urlencode(Util\Util::utf8($this['id']));
-
-        return "{$base}/{$extn}";
-    }
-}

+ 0 - 19
htdocs/includes/stripe/stripe-php/lib/BitcoinTransaction.php

@@ -1,19 +0,0 @@
-<?php
-
-// File generated from our OpenAPI spec
-
-namespace Stripe;
-
-/**
- * @property string $id Unique identifier for the object.
- * @property string $object String representing the object's type. Objects of the same type share the same value.
- * @property int $amount The amount of <code>currency</code> that the transaction was converted to in real-time.
- * @property int $bitcoin_amount The amount of bitcoin contained in the transaction.
- * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
- * @property string $currency Three-letter <a href="https://stripe.com/docs/currencies">ISO code for the currency</a> to which this transaction was converted.
- * @property string $receiver The receiver to which this transaction was sent.
- */
-class BitcoinTransaction extends ApiResource
-{
-    const OBJECT_NAME = 'bitcoin_transaction';
-}

+ 2 - 1
htdocs/includes/stripe/stripe-php/lib/Capability.php

@@ -14,9 +14,10 @@ namespace Stripe;
  * @property string $id The identifier for the capability.
  * @property string $object String representing the object's type. Objects of the same type share the same value.
  * @property string|\Stripe\Account $account The account for which the capability enables functionality.
+ * @property null|\Stripe\StripeObject $future_requirements
  * @property bool $requested Whether the capability has been requested.
  * @property null|int $requested_at Time at which the capability was requested. Measured in seconds since the Unix epoch.
- * @property \Stripe\StripeObject $requirements
+ * @property null|\Stripe\StripeObject $requirements
  * @property string $status The status of the capability. Can be <code>active</code>, <code>inactive</code>, <code>pending</code>, or <code>unrequested</code>.
  */
 class Capability extends ApiResource

+ 3 - 7
htdocs/includes/stripe/stripe-php/lib/Card.php

@@ -33,12 +33,12 @@ namespace Stripe;
  * @property null|string $dynamic_last4 (For tokenized numbers only.) The last four digits of the device account number.
  * @property int $exp_month Two-digit number representing the card's expiration month.
  * @property int $exp_year Four-digit number representing the card's expiration year.
- * @property null|string $fingerprint Uniquely identifies this particular card number. You can use this attribute to check whether two customers who’ve signed up with you are using the same card number, for example. For payment methods that tokenize card information (Apple Pay, Google Pay), the tokenized number might be provided instead of the underlying card number.
+ * @property null|string $fingerprint <p>Uniquely identifies this particular card number. You can use this attribute to check whether two customers who’ve signed up with you are using the same card number, for example. For payment methods that tokenize card information (Apple Pay, Google Pay), the tokenized number might be provided instead of the underlying card number.</p><p><em>Starting May 1, 2021, card fingerprint in India for Connect will change to allow two fingerprints for the same card --- one for India and one for the rest of the world.</em></p>
  * @property string $funding Card funding type. Can be <code>credit</code>, <code>debit</code>, <code>prepaid</code>, or <code>unknown</code>.
  * @property string $last4 The last four digits of the card.
  * @property null|\Stripe\StripeObject $metadata Set of <a href="https://stripe.com/docs/api/metadata">key-value pairs</a> that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  * @property null|string $name Cardholder name.
- * @property null|string|\Stripe\Recipient $recipient The recipient that this card belongs to. This attribute will not be in the card object if the card belongs to a customer or account instead.
+ * @property null|string $status For external accounts, possible values are <code>new</code> and <code>errored</code>. If a transfer fails, the status is set to <code>errored</code> and transfers are stopped until account details are updated.
  * @property null|string $tokenization_method If the card number is tokenized, this is the method that was used. Can be <code>android_pay</code> (includes Google Pay), <code>apple_pay</code>, <code>masterpass</code>, <code>visa_checkout</code>, or null.
  */
 class Card extends ApiResource
@@ -91,12 +91,8 @@ class Card extends ApiResource
             $base = Account::classUrl();
             $parent = $this['account'];
             $path = 'external_accounts';
-        } elseif ($this['recipient']) {
-            $base = Recipient::classUrl();
-            $parent = $this['recipient'];
-            $path = 'cards';
         } else {
-            $msg = 'Cards cannot be accessed without a customer ID, account ID or recipient ID.';
+            $msg = 'Cards cannot be accessed without a customer ID, or account ID.';
 
             throw new Exception\UnexpectedValueException($msg);
         }

+ 66 - 0
htdocs/includes/stripe/stripe-php/lib/CashBalance.php

@@ -0,0 +1,66 @@
+<?php
+
+// File generated from our OpenAPI spec
+
+namespace Stripe;
+
+/**
+ * A customer's <code>Cash balance</code> represents real funds. Customers can add
+ * funds to their cash balance by sending a bank transfer. These funds can be used
+ * for payment and can eventually be paid out to your bank account.
+ *
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
+ * @property null|\Stripe\StripeObject $available A hash of all cash balances available to this customer. You cannot delete a customer with any cash balances, even if the balance is 0. Amounts are represented in the <a href="https://stripe.com/docs/currencies#zero-decimal">smallest currency unit</a>.
+ * @property string $customer The ID of the customer whose cash balance this object represents.
+ * @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.
+ * @property \Stripe\StripeObject $settings
+ */
+class CashBalance extends ApiResource
+{
+    const OBJECT_NAME = 'cash_balance';
+
+    /**
+     * @return string the API URL for this balance transaction
+     */
+    public function instanceUrl()
+    {
+        $customer = $this['customer'];
+        $customer = Util\Util::utf8($customer);
+
+        $base = Customer::classUrl();
+        $customerExtn = \urlencode($customer);
+
+        return "{$base}/{$customerExtn}/cash_balance";
+    }
+
+    /**
+     * @param array|string $_id
+     * @param null|array|string $_opts
+     *
+     * @throws \Stripe\Exception\BadMethodCallException
+     */
+    public static function retrieve($_id, $_opts = null)
+    {
+        $msg = 'Customer Cash Balance cannot be retrieved without a ' .
+               'customer ID. Retrieve a Customer Cash Balance using ' .
+               "`Customer::retrieveCashBalance('customer_id')`.";
+
+        throw new Exception\BadMethodCallException($msg);
+    }
+
+    /**
+     * @param string $_id
+     * @param null|array $_params
+     * @param null|array|string $_options
+     *
+     * @throws \Stripe\Exception\BadMethodCallException
+     */
+    public static function update($_id, $_params = null, $_options = null)
+    {
+        $msg = 'Customer Cash Balance cannot be updated without a ' .
+        'customer ID. Retrieve a Customer Cash Balance using ' .
+        "`Customer::updateCashBalance('customer_id')`.";
+
+        throw new Exception\BadMethodCallException($msg);
+    }
+}

+ 26 - 6
htdocs/includes/stripe/stripe-php/lib/Charge.php

@@ -15,12 +15,14 @@ namespace Stripe;
  *
  * @property string $id Unique identifier for the object.
  * @property string $object String representing the object's type. Objects of the same type share the same value.
+ * @property null|\Stripe\StripeObject $alternate_statement_descriptors
  * @property int $amount Amount intended to be collected by this payment. A positive integer representing how much to charge in the <a href="https://stripe.com/docs/currencies#zero-decimal">smallest currency unit</a> (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency). The minimum amount is $0.50 US or <a href="https://stripe.com/docs/currencies#minimum-and-maximum-charge-amounts">equivalent in charge currency</a>. The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99).
  * @property int $amount_captured Amount in %s captured (can be less than the amount attribute on the charge if a partial capture was made).
  * @property int $amount_refunded Amount in %s refunded (can be less than the amount attribute on the charge if a partial refund was issued).
  * @property null|string|\Stripe\StripeObject $application ID of the Connect application that created the charge.
  * @property null|string|\Stripe\ApplicationFee $application_fee The application fee (if any) for the charge. <a href="https://stripe.com/docs/connect/direct-charges#collecting-fees">See the Connect documentation</a> for details.
  * @property null|int $application_fee_amount The amount of the application fee (if any) requested for the charge. <a href="https://stripe.com/docs/connect/direct-charges#collecting-fees">See the Connect documentation</a> for details.
+ * @property null|string $authorization_code Authorization code on the charge.
  * @property null|string|\Stripe\BalanceTransaction $balance_transaction ID of the balance transaction that describes the impact of this charge on your account balance (not including refunds or disputes).
  * @property \Stripe\StripeObject $billing_details
  * @property null|string $calculated_statement_descriptor The full statement descriptor that is passed to card networks, and that is displayed on your customers' credit card and bank statements. Allows you to see what the statement descriptor looks like after the static and dynamic portions are combined.
@@ -32,32 +34,34 @@ namespace Stripe;
  * @property null|string|\Stripe\Account $destination ID of an existing, connected Stripe account to transfer funds to if <code>transfer_data</code> was specified in the charge request.
  * @property null|string|\Stripe\Dispute $dispute Details about the dispute if the charge has been disputed.
  * @property bool $disputed Whether the charge has been disputed.
- * @property null|string $failure_code Error code explaining reason for charge failure if available (see <a href="https://stripe.com/docs/api#errors">the errors section</a> for a list of codes).
+ * @property null|string|\Stripe\BalanceTransaction $failure_balance_transaction ID of the balance transaction that describes the reversal of the balance on your account due to payment failure.
+ * @property null|string $failure_code Error code explaining reason for charge failure if available (see <a href="https://stripe.com/docs/error-codes">the errors section</a> for a list of codes).
  * @property null|string $failure_message Message to user further explaining reason for charge failure if available.
  * @property null|\Stripe\StripeObject $fraud_details Information on fraud assessments for the charge.
  * @property null|string|\Stripe\Invoice $invoice ID of the invoice this charge is for if one exists.
+ * @property null|\Stripe\StripeObject $level3
  * @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.
  * @property \Stripe\StripeObject $metadata Set of <a href="https://stripe.com/docs/api/metadata">key-value pairs</a> that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  * @property null|string|\Stripe\Account $on_behalf_of The account (if any) the charge was made on behalf of without triggering an automatic transfer. See the <a href="https://stripe.com/docs/connect/charges-transfers">Connect documentation</a> for details.
- * @property null|string|\Stripe\Order $order ID of the order this charge is for if one exists.
  * @property null|\Stripe\StripeObject $outcome Details about whether the payment was accepted, and why. See <a href="https://stripe.com/docs/declines">understanding declines</a> for details.
  * @property bool $paid <code>true</code> if the charge succeeded, or was successfully authorized for later capture.
  * @property null|string|\Stripe\PaymentIntent $payment_intent ID of the PaymentIntent associated with this charge, if one exists.
  * @property null|string $payment_method ID of the payment method used in this charge.
  * @property null|\Stripe\StripeObject $payment_method_details Details about the payment method at the time of the transaction.
+ * @property null|\Stripe\StripeObject $radar_options Options to configure Radar. See <a href="https://stripe.com/docs/radar/radar-session">Radar Session</a> for more information.
  * @property null|string $receipt_email This is the email address that the receipt for this charge was sent to.
  * @property null|string $receipt_number This is the transaction number that appears on email receipts sent for this charge. This attribute will be <code>null</code> until a receipt has been sent.
  * @property null|string $receipt_url This is the URL to view the receipt for this charge. The receipt is kept up-to-date to the latest state of the charge, including any refunds. If the charge is for an Invoice, the receipt will be stylized as an Invoice receipt.
  * @property bool $refunded Whether the charge has been fully refunded. If the charge is only partially refunded, this attribute will still be false.
- * @property \Stripe\Collection $refunds A list of refunds that have been applied to the charge.
+ * @property null|\Stripe\Collection<\Stripe\Refund> $refunds A list of refunds that have been applied to the charge.
  * @property null|string|\Stripe\Review $review ID of the review associated with this charge if one exists.
  * @property null|\Stripe\StripeObject $shipping Shipping information for the charge.
- * @property null|\Stripe\Account|\Stripe\AlipayAccount|\Stripe\BankAccount|\Stripe\BitcoinReceiver|\Stripe\Card|\Stripe\Source $source This is a legacy field that will be removed in the future. It contains the Source, Card, or BankAccount object used for the charge. For details about the payment method used for this charge, refer to <code>payment_method</code> or <code>payment_method_details</code> instead.
+ * @property null|\Stripe\Account|\Stripe\BankAccount|\Stripe\Card|\Stripe\Source $source This is a legacy field that will be removed in the future. It contains the Source, Card, or BankAccount object used for the charge. For details about the payment method used for this charge, refer to <code>payment_method</code> or <code>payment_method_details</code> instead.
  * @property null|string|\Stripe\Transfer $source_transfer The transfer ID which created this charge. Only present if the charge came from another Stripe account. <a href="https://stripe.com/docs/connect/destination-charges">See the Connect documentation</a> for details.
  * @property null|string $statement_descriptor For card charges, use <code>statement_descriptor_suffix</code> instead. Otherwise, you can use this value as the complete description of a charge on your customers’ statements. Must contain at least one letter, maximum 22 characters.
  * @property null|string $statement_descriptor_suffix Provides information about the charge that customers see on their statements. Concatenated with the prefix (shortened descriptor) or statement descriptor that’s set on the account to form the complete statement descriptor. Maximum 22 characters for the concatenated descriptor.
  * @property string $status The status of the payment is either <code>succeeded</code>, <code>pending</code>, or <code>failed</code>.
- * @property string|\Stripe\Transfer $transfer ID of the transfer to the <code>destination</code> account (only applicable if the charge was created using the <code>destination</code> parameter).
+ * @property null|string|\Stripe\Transfer $transfer ID of the transfer to the <code>destination</code> account (only applicable if the charge was created using the <code>destination</code> parameter).
  * @property null|\Stripe\StripeObject $transfer_data An optional dictionary including the account to automatically transfer to as part of a destination charge. <a href="https://stripe.com/docs/connect/destination-charges">See the Connect documentation</a> for details.
  * @property null|string $transfer_group A string that identifies this transaction as part of a group. See the <a href="https://stripe.com/docs/connect/charges-transfers#transfer-options">Connect documentation</a> for details.
  */
@@ -68,6 +72,7 @@ class Charge extends ApiResource
     use ApiOperations\All;
     use ApiOperations\Create;
     use ApiOperations\Retrieve;
+    use ApiOperations\Search;
     use ApiOperations\Update;
 
     const STATUS_FAILED = 'failed';
@@ -133,7 +138,7 @@ class Charge extends ApiResource
      *
      * @throws \Stripe\Exception\ApiErrorException if the request fails
      *
-     * @return Charge the captured charge
+     * @return \Stripe\Charge the captured charge
      */
     public function capture($params = null, $opts = null)
     {
@@ -143,4 +148,19 @@ class Charge extends ApiResource
 
         return $this;
     }
+
+    /**
+     * @param null|array $params
+     * @param null|array|string $opts
+     *
+     * @throws \Stripe\Exception\ApiErrorException if the request fails
+     *
+     * @return \Stripe\SearchResult<Charge> the charge search results
+     */
+    public static function search($params = null, $opts = null)
+    {
+        $url = '/v1/charges/search';
+
+        return self::_searchResource($url, $params, $opts);
+    }
 }

+ 74 - 18
htdocs/includes/stripe/stripe-php/lib/Checkout/Session.php

@@ -7,8 +7,9 @@ namespace Stripe\Checkout;
 /**
  * A Checkout Session represents your customer's session as they pay for one-time
  * purchases or subscriptions through <a
- * href="https://stripe.com/docs/payments/checkout">Checkout</a>. We recommend
- * creating a new Session each time your customer attempts to pay.
+ * href="https://stripe.com/docs/payments/checkout">Checkout</a> or <a
+ * href="https://stripe.com/docs/payments/payment-links">Payment Links</a>. We
+ * recommend creating a new Session each time your customer attempts to pay.
  *
  * Once payment is successful, the Checkout Session will contain a reference to the
  * <a href="https://stripe.com/docs/api/customers">Customer</a>, and either the
@@ -16,38 +17,60 @@ namespace Stripe\Checkout;
  * href="https://stripe.com/docs/api/payment_intents">PaymentIntent</a> or an
  * active <a href="https://stripe.com/docs/api/subscriptions">Subscription</a>.
  *
- * You can create a Checkout Session on your server and pass its ID to the client
- * to begin Checkout.
+ * You can create a Checkout Session on your server and redirect to its URL to
+ * begin Checkout.
  *
- * Related guide: <a href="https://stripe.com/docs/payments/checkout/api">Checkout
- * Server Quickstart</a>.
+ * Related guide: <a href="https://stripe.com/docs/checkout/quickstart">Checkout
+ * Quickstart</a>.
  *
- * @property string $id Unique identifier for the object. Used to pass to <code>redirectToCheckout</code> in Stripe.js.
+ * @property string $id Unique identifier for the object.
  * @property string $object String representing the object's type. Objects of the same type share the same value.
+ * @property null|\Stripe\StripeObject $after_expiration When set, provides configuration for actions to take if this Checkout Session expires.
  * @property null|bool $allow_promotion_codes Enables user redeemable promotion codes.
  * @property null|int $amount_subtotal Total of all items before discounts or taxes are applied.
  * @property null|int $amount_total Total of all items after discounts and taxes are applied.
+ * @property \Stripe\StripeObject $automatic_tax
  * @property null|string $billing_address_collection Describes whether Checkout should collect the customer's billing address.
- * @property string $cancel_url The URL the customer will be directed to if they decide to cancel payment and return to your website.
- * @property null|string $client_reference_id A unique string to reference the Checkout Session. This can be a customer ID, a cart ID, or similar, and can be used to reconcile the session with your internal systems.
+ * @property null|string $cancel_url If set, Checkout displays a back button and customers will be directed to this URL if they decide to cancel payment and return to your website.
+ * @property null|string $client_reference_id A unique string to reference the Checkout Session. This can be a customer ID, a cart ID, or similar, and can be used to reconcile the Session with your internal systems.
+ * @property null|\Stripe\StripeObject $consent Results of <code>consent_collection</code> for this session.
+ * @property null|\Stripe\StripeObject $consent_collection When set, provides configuration for the Checkout Session to gather active consent from customers.
+ * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
  * @property null|string $currency Three-letter <a href="https://www.iso.org/iso-4217-currency-codes.html">ISO currency code</a>, in lowercase. Must be a <a href="https://stripe.com/docs/currencies">supported currency</a>.
- * @property null|string|\Stripe\Customer $customer The ID of the customer for this session. For Checkout Sessions in <code>payment</code> or <code>subscription</code> mode, Checkout will create a new customer object based on information provided during the session unless an existing customer was provided when the session was created.
- * @property null|string $customer_email If provided, this value will be used when the Customer object is created. If not provided, customers will be asked to enter their email address. Use this parameter to prefill customer data if you already have an email on file. To access information about the customer once a session is complete, use the <code>customer</code> attribute.
- * @property \Stripe\Collection $line_items The line items purchased by the customer.
+ * @property \Stripe\StripeObject[] $custom_fields Collect additional information from your customer using custom fields. Up to 2 fields are supported.
+ * @property \Stripe\StripeObject $custom_text
+ * @property null|string|\Stripe\Customer $customer The ID of the customer for this Session. For Checkout Sessions in <code>payment</code> or <code>subscription</code> mode, Checkout will create a new customer object based on information provided during the payment flow unless an existing customer was provided when the Session was created.
+ * @property null|string $customer_creation Configure whether a Checkout Session creates a Customer when the Checkout Session completes.
+ * @property null|\Stripe\StripeObject $customer_details The customer details including the customer's tax exempt status and the customer's tax IDs. Only the customer's email is present on Sessions in <code>setup</code> mode.
+ * @property null|string $customer_email If provided, this value will be used when the Customer object is created. If not provided, customers will be asked to enter their email address. Use this parameter to prefill customer data if you already have an email on file. To access information about the customer once the payment flow is complete, use the <code>customer</code> attribute.
+ * @property int $expires_at The timestamp at which the Checkout Session will expire.
+ * @property null|string|\Stripe\Invoice $invoice ID of the invoice created by the Checkout Session, if it exists.
+ * @property null|\Stripe\StripeObject $invoice_creation Details on the state of invoice creation for the Checkout Session.
+ * @property null|\Stripe\Collection<\Stripe\LineItem> $line_items The line items purchased by the customer.
  * @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.
  * @property null|string $locale The IETF language tag of the locale Checkout is displayed in. If blank or <code>auto</code>, the browser's locale is used.
  * @property null|\Stripe\StripeObject $metadata Set of <a href="https://stripe.com/docs/api/metadata">key-value pairs</a> that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  * @property string $mode The mode of the Checkout Session.
  * @property null|string|\Stripe\PaymentIntent $payment_intent The ID of the PaymentIntent for Checkout Sessions in <code>payment</code> mode.
+ * @property null|string|\Stripe\PaymentLink $payment_link The ID of the Payment Link that created this Session.
+ * @property null|string $payment_method_collection Configure whether a Checkout Session should collect a payment method.
+ * @property null|\Stripe\StripeObject $payment_method_options Payment-method-specific configuration for the PaymentIntent or SetupIntent of this CheckoutSession.
  * @property string[] $payment_method_types A list of the types of payment methods (e.g. card) this Checkout Session is allowed to accept.
  * @property string $payment_status The payment status of the Checkout Session, one of <code>paid</code>, <code>unpaid</code>, or <code>no_payment_required</code>. You can use this value to decide when to fulfill your customer's order.
+ * @property null|\Stripe\StripeObject $phone_number_collection
+ * @property null|string $recovered_from The ID of the original expired Checkout Session that triggered the recovery flow.
  * @property null|string|\Stripe\SetupIntent $setup_intent The ID of the SetupIntent for Checkout Sessions in <code>setup</code> mode.
- * @property null|\Stripe\StripeObject $shipping Shipping information for this Checkout Session.
  * @property null|\Stripe\StripeObject $shipping_address_collection When set, provides configuration for Checkout to collect a shipping address from a customer.
+ * @property null|\Stripe\StripeObject $shipping_cost The details of the customer cost of shipping, including the customer chosen ShippingRate.
+ * @property null|\Stripe\StripeObject $shipping_details Shipping information for this Checkout Session.
+ * @property \Stripe\StripeObject[] $shipping_options The shipping rate options applied to this Session.
+ * @property null|string $status The status of the Checkout Session, one of <code>open</code>, <code>complete</code>, or <code>expired</code>.
  * @property null|string $submit_type Describes the type of transaction being performed by Checkout in order to customize relevant text on the page, such as the submit button. <code>submit_type</code> can only be specified on Checkout Sessions in <code>payment</code> mode, but not Checkout Sessions in <code>subscription</code> or <code>setup</code> mode.
  * @property null|string|\Stripe\Subscription $subscription The ID of the subscription for Checkout Sessions in <code>subscription</code> mode.
  * @property string $success_url The URL the customer will be directed to after the payment or subscription creation is successful.
+ * @property null|\Stripe\StripeObject $tax_id_collection
  * @property null|\Stripe\StripeObject $total_details Tax and discount details for the computed total amount.
+ * @property null|string $url The URL to the Checkout Session. Redirect customers to this URL to take them to Checkout. If you’re using <a href="https://stripe.com/docs/payments/checkout/custom-domains">Custom Domains</a>, the URL will use your subdomain. Otherwise, it’ll use <code>checkout.stripe.com.</code> This value is only present when the session is active.
  */
 class Session extends \Stripe\ApiResource
 {
@@ -55,34 +78,67 @@ class Session extends \Stripe\ApiResource
 
     use \Stripe\ApiOperations\All;
     use \Stripe\ApiOperations\Create;
-    use \Stripe\ApiOperations\NestedResource;
     use \Stripe\ApiOperations\Retrieve;
 
     const BILLING_ADDRESS_COLLECTION_AUTO = 'auto';
     const BILLING_ADDRESS_COLLECTION_REQUIRED = 'required';
 
+    const CUSTOMER_CREATION_ALWAYS = 'always';
+    const CUSTOMER_CREATION_IF_REQUIRED = 'if_required';
+
+    const MODE_PAYMENT = 'payment';
+    const MODE_SETUP = 'setup';
+    const MODE_SUBSCRIPTION = 'subscription';
+
+    const PAYMENT_METHOD_COLLECTION_ALWAYS = 'always';
+    const PAYMENT_METHOD_COLLECTION_IF_REQUIRED = 'if_required';
+
     const PAYMENT_STATUS_NO_PAYMENT_REQUIRED = 'no_payment_required';
     const PAYMENT_STATUS_PAID = 'paid';
     const PAYMENT_STATUS_UNPAID = 'unpaid';
 
+    const STATUS_COMPLETE = 'complete';
+    const STATUS_EXPIRED = 'expired';
+    const STATUS_OPEN = 'open';
+
     const SUBMIT_TYPE_AUTO = 'auto';
     const SUBMIT_TYPE_BOOK = 'book';
     const SUBMIT_TYPE_DONATE = 'donate';
     const SUBMIT_TYPE_PAY = 'pay';
 
-    const PATH_LINE_ITEMS = '/line_items';
+    /**
+     * @param null|array $params
+     * @param null|array|string $opts
+     *
+     * @throws \Stripe\Exception\ApiErrorException if the request fails
+     *
+     * @return \Stripe\Checkout\Session the expired session
+     */
+    public function expire($params = null, $opts = null)
+    {
+        $url = $this->instanceUrl() . '/expire';
+        list($response, $opts) = $this->_request('post', $url, $params, $opts);
+        $this->refreshFrom($response, $opts);
+
+        return $this;
+    }
 
     /**
-     * @param string $id the ID of the session on which to retrieve the items
+     * @param string $id
      * @param null|array $params
      * @param null|array|string $opts
      *
      * @throws \Stripe\Exception\ApiErrorException if the request fails
      *
-     * @return \Stripe\Collection the list of items
+     * @return \Stripe\Collection<\Stripe\LineItem> list of LineItems
      */
     public static function allLineItems($id, $params = null, $opts = null)
     {
-        return self::_allNestedResources($id, static::PATH_LINE_ITEMS, $params, $opts);
+        $url = static::resourceUrl($id) . '/line_items';
+        list($response, $opts) = static::_staticRequest('get', $url, $params, $opts);
+        $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts);
+        $obj->setLastResponse($response);
+
+        return $obj;
     }
 }

+ 40 - 6
htdocs/includes/stripe/stripe-php/lib/Collection.php

@@ -5,10 +5,13 @@ namespace Stripe;
 /**
  * Class Collection.
  *
+ * @template TStripeObject of StripeObject
+ * @template-implements \IteratorAggregate<TStripeObject>
+ *
  * @property string $object
  * @property string $url
  * @property bool $has_more
- * @property \Stripe\StripeObject[] $data
+ * @property TStripeObject[] $data
  */
 class Collection extends StripeObject implements \Countable, \IteratorAggregate
 {
@@ -47,6 +50,10 @@ class Collection extends StripeObject implements \Countable, \IteratorAggregate
         $this->filters = $filters;
     }
 
+    /**
+     * @return mixed
+     */
+    #[\ReturnTypeWillChange]
     public function offsetGet($k)
     {
         if (\is_string($k)) {
@@ -60,6 +67,14 @@ class Collection extends StripeObject implements \Countable, \IteratorAggregate
         throw new Exception\InvalidArgumentException($msg);
     }
 
+    /**
+     * @param null|array $params
+     * @param null|array|string $opts
+     *
+     * @throws Exception\ApiErrorException
+     *
+     * @return Collection<TStripeObject>
+     */
     public function all($params = null, $opts = null)
     {
         self::_validateParams($params);
@@ -77,6 +92,14 @@ class Collection extends StripeObject implements \Countable, \IteratorAggregate
         return $obj;
     }
 
+    /**
+     * @param null|array $params
+     * @param null|array|string $opts
+     *
+     * @throws Exception\ApiErrorException
+     *
+     * @return TStripeObject
+     */
     public function create($params = null, $opts = null)
     {
         self::_validateParams($params);
@@ -87,6 +110,15 @@ class Collection extends StripeObject implements \Countable, \IteratorAggregate
         return Util\Util::convertToStripeObject($response, $opts);
     }
 
+    /**
+     * @param string $id
+     * @param null|array $params
+     * @param null|array|string $opts
+     *
+     * @throws Exception\ApiErrorException
+     *
+     * @return TStripeObject
+     */
     public function retrieve($id, $params = null, $opts = null)
     {
         self::_validateParams($params);
@@ -107,6 +139,7 @@ class Collection extends StripeObject implements \Countable, \IteratorAggregate
     /**
      * @return int the number of objects in the current page
      */
+    #[\ReturnTypeWillChange]
     public function count()
     {
         return \count($this->data);
@@ -116,6 +149,7 @@ class Collection extends StripeObject implements \Countable, \IteratorAggregate
      * @return \ArrayIterator an iterator that can be used to iterate
      *    across objects in the current page
      */
+    #[\ReturnTypeWillChange]
     public function getIterator()
     {
         return new \ArrayIterator($this->data);
@@ -131,7 +165,7 @@ class Collection extends StripeObject implements \Countable, \IteratorAggregate
     }
 
     /**
-     * @return \Generator|StripeObject[] A generator that can be used to
+     * @return \Generator|TStripeObject[] A generator that can be used to
      *    iterate across all objects across all pages. As page boundaries are
      *    encountered, the next page will be fetched automatically for
      *    continued iteration.
@@ -194,7 +228,7 @@ class Collection extends StripeObject implements \Countable, \IteratorAggregate
      * @param null|array $params
      * @param null|array|string $opts
      *
-     * @return Collection
+     * @return Collection<TStripeObject>
      */
     public function nextPage($params = null, $opts = null)
     {
@@ -222,7 +256,7 @@ class Collection extends StripeObject implements \Countable, \IteratorAggregate
      * @param null|array $params
      * @param null|array|string $opts
      *
-     * @return Collection
+     * @return Collection<TStripeObject>
      */
     public function previousPage($params = null, $opts = null)
     {
@@ -244,7 +278,7 @@ class Collection extends StripeObject implements \Countable, \IteratorAggregate
     /**
      * Gets the first item from the current page. Returns `null` if the current page is empty.
      *
-     * @return null|\Stripe\StripeObject
+     * @return null|TStripeObject
      */
     public function first()
     {
@@ -254,7 +288,7 @@ class Collection extends StripeObject implements \Countable, \IteratorAggregate
     /**
      * Gets the last item from the current page. Returns `null` if the current page is empty.
      *
-     * @return null|\Stripe\StripeObject
+     * @return null|TStripeObject
      */
     public function last()
     {

+ 9 - 5
htdocs/includes/stripe/stripe-php/lib/Coupon.php

@@ -7,17 +7,21 @@ namespace Stripe;
 /**
  * A coupon contains information about a percent-off or amount-off discount you
  * might want to apply to a customer. Coupons may be applied to <a
- * href="https://stripe.com/docs/api#invoices">invoices</a> or <a
- * href="https://stripe.com/docs/api#create_order-coupon">orders</a>. Coupons do
- * not work with conventional one-off <a
- * href="https://stripe.com/docs/api#create_charge">charges</a>.
+ * href="https://stripe.com/docs/api#subscriptions">subscriptions</a>, <a
+ * href="https://stripe.com/docs/api#invoices">invoices</a>, <a
+ * href="https://stripe.com/docs/api/checkout/sessions">checkout sessions</a>, <a
+ * href="https://stripe.com/docs/api#quotes">quotes</a>, and more. Coupons do not
+ * work with conventional one-off <a
+ * href="https://stripe.com/docs/api#create_charge">charges</a> or <a
+ * href="https://stripe.com/docs/api/payment_intents">payment intents</a>.
  *
  * @property string $id Unique identifier for the object.
  * @property string $object String representing the object's type. Objects of the same type share the same value.
  * @property null|int $amount_off Amount (in the <code>currency</code> specified) that will be taken off the subtotal of any invoices for this customer.
- * @property \Stripe\StripeObject $applies_to
+ * @property null|\Stripe\StripeObject $applies_to
  * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
  * @property null|string $currency If <code>amount_off</code> has been set, the three-letter <a href="https://stripe.com/docs/currencies">ISO code for the currency</a> of the amount to take off.
+ * @property null|\Stripe\StripeObject $currency_options Coupons defined in each available currency option. Each key must be a three-letter <a href="https://www.iso.org/iso-4217-currency-codes.html">ISO currency code</a> and a <a href="https://stripe.com/docs/currencies">supported currency</a>.
  * @property string $duration One of <code>forever</code>, <code>once</code>, and <code>repeating</code>. Describes how long a customer who applies this coupon will get the discount.
  * @property null|int $duration_in_months If <code>duration</code> is <code>repeating</code>, the number of months the coupon applies. Null if coupon <code>duration</code> is <code>forever</code> or <code>once</code>.
  * @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.

+ 27 - 5
htdocs/includes/stripe/stripe-php/lib/CreditNote.php

@@ -14,6 +14,7 @@ namespace Stripe;
  * @property string $id Unique identifier for the object.
  * @property string $object String representing the object's type. Objects of the same type share the same value.
  * @property int $amount The integer amount in %s representing the total amount of the credit note, including tax.
+ * @property int $amount_shipping This is the sum of all the shipping amounts.
  * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
  * @property string $currency Three-letter <a href="https://www.iso.org/iso-4217-currency-codes.html">ISO currency code</a>, in lowercase. Must be a <a href="https://stripe.com/docs/currencies">supported currency</a>.
  * @property string|\Stripe\Customer $customer ID of the customer.
@@ -21,7 +22,7 @@ namespace Stripe;
  * @property int $discount_amount The integer amount in %s representing the total amount of discount that was credited.
  * @property \Stripe\StripeObject[] $discount_amounts The aggregate amounts calculated per discount for all line items.
  * @property string|\Stripe\Invoice $invoice ID of the invoice.
- * @property \Stripe\Collection $lines Line items that make up the credit note
+ * @property \Stripe\Collection<\Stripe\CreditNoteLineItem> $lines Line items that make up the credit note
  * @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.
  * @property null|string $memo Customer-facing text that appears on the credit note PDF.
  * @property null|\Stripe\StripeObject $metadata Set of <a href="https://stripe.com/docs/api/metadata">key-value pairs</a> that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
@@ -30,10 +31,13 @@ namespace Stripe;
  * @property string $pdf The link to download the PDF of the credit note.
  * @property null|string $reason Reason for issuing this credit note, one of <code>duplicate</code>, <code>fraudulent</code>, <code>order_change</code>, or <code>product_unsatisfactory</code>
  * @property null|string|\Stripe\Refund $refund Refund related to this credit note.
+ * @property null|\Stripe\StripeObject $shipping_cost The details of the cost of shipping, including the ShippingRate applied to the invoice.
  * @property string $status Status of this credit note, one of <code>issued</code> or <code>void</code>. Learn more about <a href="https://stripe.com/docs/billing/invoices/credit-notes#voiding">voiding credit notes</a>.
- * @property int $subtotal The integer amount in %s representing the amount of the credit note, excluding tax and invoice level discounts.
+ * @property int $subtotal The integer amount in %s representing the amount of the credit note, excluding exclusive tax and invoice level discounts.
+ * @property null|int $subtotal_excluding_tax The integer amount in %s representing the amount of the credit note, excluding all tax and invoice level discounts.
  * @property \Stripe\StripeObject[] $tax_amounts The aggregate amounts calculated per tax rate for all line items.
  * @property int $total The integer amount in %s representing the total amount of the credit note, including tax and all discount.
+ * @property null|int $total_excluding_tax The integer amount in %s representing the total amount of the credit note, excluding tax, but including discounts.
  * @property string $type Type of this credit note, one of <code>pre_payment</code> or <code>post_payment</code>. A <code>pre_payment</code> credit note means it was issued when the invoice was open. A <code>post_payment</code> credit note means it was issued when the invoice was paid.
  * @property null|int $voided_at The time that the credit note was voided.
  */
@@ -70,7 +74,7 @@ class CreditNote extends ApiResource
     {
         $url = static::classUrl() . '/preview';
         list($response, $opts) = static::_staticRequest('get', $url, $params, $opts);
-        $obj = Util\Util::convertToStripeObject($response->json, $opts);
+        $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts);
         $obj->setLastResponse($response);
 
         return $obj;
@@ -82,7 +86,25 @@ class CreditNote extends ApiResource
      *
      * @throws \Stripe\Exception\ApiErrorException if the request fails
      *
-     * @return CreditNote the voided credit note
+     * @return \Stripe\Collection<\Stripe\CreditNoteLineItem> list of CreditNoteLineItems
+     */
+    public static function previewLines($params = null, $opts = null)
+    {
+        $url = static::classUrl() . '/preview/lines';
+        list($response, $opts) = static::_staticRequest('get', $url, $params, $opts);
+        $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts);
+        $obj->setLastResponse($response);
+
+        return $obj;
+    }
+
+    /**
+     * @param null|array $params
+     * @param null|array|string $opts
+     *
+     * @throws \Stripe\Exception\ApiErrorException if the request fails
+     *
+     * @return \Stripe\CreditNote the voided credit note
      */
     public function voidCreditNote($params = null, $opts = null)
     {
@@ -102,7 +124,7 @@ class CreditNote extends ApiResource
      *
      * @throws \Stripe\Exception\ApiErrorException if the request fails
      *
-     * @return \Stripe\Collection the list of credit note line items
+     * @return \Stripe\Collection<\Stripe\CreditNoteLineItem> the list of credit note line items
      */
     public static function allLines($id, $params = null, $opts = null)
     {

+ 3 - 1
htdocs/includes/stripe/stripe-php/lib/CreditNoteLineItem.php

@@ -8,10 +8,11 @@ namespace Stripe;
  * @property string $id Unique identifier for the object.
  * @property string $object String representing the object's type. Objects of the same type share the same value.
  * @property int $amount The integer amount in %s representing the gross amount being credited for this line item, excluding (exclusive) tax and discounts.
+ * @property null|int $amount_excluding_tax The integer amount in %s representing the amount being credited for this line item, excluding all tax and discounts.
  * @property null|string $description Description of the item being credited.
  * @property int $discount_amount The integer amount in %s representing the discount being credited for this line item.
  * @property \Stripe\StripeObject[] $discount_amounts The amount of discount calculated per discount for this line item
- * @property string $invoice_line_item ID of the invoice line item being credited
+ * @property null|string $invoice_line_item ID of the invoice line item being credited
  * @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.
  * @property null|int $quantity The number of units of product being credited.
  * @property \Stripe\StripeObject[] $tax_amounts The amount of tax calculated per tax rate for this line item
@@ -19,6 +20,7 @@ namespace Stripe;
  * @property string $type The type of the credit note line item, one of <code>invoice_line_item</code> or <code>custom_line_item</code>. When the type is <code>invoice_line_item</code> there is an additional <code>invoice_line_item</code> property on the resource the value of which is the id of the credited line item on the invoice.
  * @property null|int $unit_amount The cost of each unit of product being credited.
  * @property null|string $unit_amount_decimal Same as <code>unit_amount</code>, but contains a decimal value with at most 12 decimal places.
+ * @property null|string $unit_amount_excluding_tax The amount in %s representing the unit amount being credited for this line item, excluding all tax and discounts.
  */
 class CreditNoteLineItem extends ApiResource
 {

+ 137 - 20
htdocs/includes/stripe/stripe-php/lib/Customer.php

@@ -5,10 +5,8 @@
 namespace Stripe;
 
 /**
- * <code>Customer</code> objects allow you to perform recurring charges, and to
- * track multiple charges, that are associated with the same customer. The API
- * allows you to create, delete, and update your customers. You can retrieve
- * individual customers as well as a list of all your customers.
+ * This object represents a customer of your business. It lets you create recurring
+ * charges and track payments that belong to the same customer.
  *
  * Related guide: <a
  * href="https://stripe.com/docs/payments/save-during-payment">Save a card during
@@ -17,27 +15,31 @@ namespace Stripe;
  * @property string $id Unique identifier for the object.
  * @property string $object String representing the object's type. Objects of the same type share the same value.
  * @property null|\Stripe\StripeObject $address The customer's address.
- * @property int $balance Current balance, if any, being stored on the customer. If negative, the customer has credit to apply to their next invoice. If positive, the customer has an amount owed that will be added to their next invoice. The balance does not refer to any unpaid invoices; it solely takes into account amounts that have yet to be successfully applied to any invoice. This balance is only taken into account as invoices are finalized.
+ * @property null|int $balance Current balance, if any, being stored on the customer. If negative, the customer has credit to apply to their next invoice. If positive, the customer has an amount owed that will be added to their next invoice. The balance does not refer to any unpaid invoices; it solely takes into account amounts that have yet to be successfully applied to any invoice. This balance is only taken into account as invoices are finalized.
+ * @property null|\Stripe\CashBalance $cash_balance The current funds being held by Stripe on behalf of the customer. These funds can be applied towards payment intents with source &quot;cash_balance&quot;. The settings[reconciliation_mode] field describes whether these funds are applied to such payment intents manually or automatically.
  * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
  * @property null|string $currency Three-letter <a href="https://stripe.com/docs/currencies">ISO code for the currency</a> the customer can be charged in for recurring billing purposes.
- * @property null|string|\Stripe\Account|\Stripe\AlipayAccount|\Stripe\BankAccount|\Stripe\BitcoinReceiver|\Stripe\Card|\Stripe\Source $default_source <p>ID of the default payment source for the customer.</p><p>If you are using payment methods created via the PaymentMethods API, see the <a href="https://stripe.com/docs/api/customers/object#customer_object-invoice_settings-default_payment_method">invoice_settings.default_payment_method</a> field instead.</p>
+ * @property null|string|\Stripe\Account|\Stripe\BankAccount|\Stripe\Card|\Stripe\Source $default_source <p>ID of the default payment source for the customer.</p><p>If you are using payment methods created via the PaymentMethods API, see the <a href="https://stripe.com/docs/api/customers/object#customer_object-invoice_settings-default_payment_method">invoice_settings.default_payment_method</a> field instead.</p>
  * @property null|bool $delinquent <p>When the customer's latest invoice is billed by charging automatically, <code>delinquent</code> is <code>true</code> if the invoice's latest charge failed. When the customer's latest invoice is billed by sending an invoice, <code>delinquent</code> is <code>true</code> if the invoice isn't paid by its due date.</p><p>If an invoice is marked uncollectible by <a href="https://stripe.com/docs/billing/automatic-collection">dunning</a>, <code>delinquent</code> doesn't get reset to <code>false</code>.</p>
  * @property null|string $description An arbitrary string attached to the object. Often useful for displaying to users.
  * @property null|\Stripe\Discount $discount Describes the current discount active on the customer, if there is one.
  * @property null|string $email The customer's email address.
+ * @property null|\Stripe\StripeObject $invoice_credit_balance The current multi-currency balances, if any, being stored on the customer. If positive in a currency, the customer has a credit to apply to their next invoice denominated in that currency. If negative, the customer has an amount owed that will be added to their next invoice denominated in that currency. These balances do not refer to any unpaid invoices. They solely track amounts that have yet to be successfully applied to any invoice. A balance in a particular currency is only applied to any invoice as an invoice in that currency is finalized.
  * @property null|string $invoice_prefix The prefix for the customer used to generate unique invoice numbers.
- * @property \Stripe\StripeObject $invoice_settings
+ * @property null|\Stripe\StripeObject $invoice_settings
  * @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.
- * @property \Stripe\StripeObject $metadata Set of <a href="https://stripe.com/docs/api/metadata">key-value pairs</a> that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
+ * @property null|\Stripe\StripeObject $metadata Set of <a href="https://stripe.com/docs/api/metadata">key-value pairs</a> that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  * @property null|string $name The customer's full name or business name.
- * @property int $next_invoice_sequence The suffix of the customer's next invoice number, e.g., 0001.
+ * @property null|int $next_invoice_sequence The suffix of the customer's next invoice number, e.g., 0001.
  * @property null|string $phone The customer's phone number.
  * @property null|string[] $preferred_locales The customer's preferred locales (languages), ordered by preference.
  * @property null|\Stripe\StripeObject $shipping Mailing and shipping address for the customer. Appears on invoices emailed to this customer.
- * @property \Stripe\Collection $sources The customer's payment sources, if any.
- * @property \Stripe\Collection $subscriptions The customer's current subscriptions, if any.
+ * @property null|\Stripe\Collection<\Stripe\Account|\Stripe\BankAccount|\Stripe\Card|\Stripe\Source> $sources The customer's payment sources, if any.
+ * @property null|\Stripe\Collection<\Stripe\Subscription> $subscriptions The customer's current subscriptions, if any.
+ * @property null|\Stripe\StripeObject $tax
  * @property null|string $tax_exempt Describes the customer's tax exemption status. One of <code>none</code>, <code>exempt</code>, or <code>reverse</code>. When set to <code>reverse</code>, invoice and receipt PDFs include the text <strong>&quot;Reverse charge&quot;</strong>.
- * @property \Stripe\Collection $tax_ids The customer's tax IDs.
+ * @property null|\Stripe\Collection<\Stripe\TaxId> $tax_ids The customer's tax IDs.
+ * @property null|string|\Stripe\TestHelpers\TestClock $test_clock ID of the test clock this customer belongs to.
  */
 class Customer extends ApiResource
 {
@@ -48,6 +50,7 @@ class Customer extends ApiResource
     use ApiOperations\Delete;
     use ApiOperations\NestedResource;
     use ApiOperations\Retrieve;
+    use ApiOperations\Search;
     use ApiOperations\Update;
 
     const TAX_EXEMPT_EXEMPT = 'exempt';
@@ -77,8 +80,94 @@ class Customer extends ApiResource
         $url = $this->instanceUrl() . '/discount';
         list($response, $opts) = $this->_request('delete', $url, $params, $opts);
         $this->refreshFrom(['discount' => null], $opts, true);
+
+        return $this;
+    }
+
+    /**
+     * @param string $id
+     * @param null|array $params
+     * @param null|array|string $opts
+     *
+     * @throws \Stripe\Exception\ApiErrorException if the request fails
+     *
+     * @return \Stripe\Collection<\Stripe\PaymentMethod> list of PaymentMethods
+     */
+    public static function allPaymentMethods($id, $params = null, $opts = null)
+    {
+        $url = static::resourceUrl($id) . '/payment_methods';
+        list($response, $opts) = static::_staticRequest('get', $url, $params, $opts);
+        $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts);
+        $obj->setLastResponse($response);
+
+        return $obj;
+    }
+
+    /**
+     * @param string $payment_method
+     * @param null|array $params
+     * @param null|array|string $opts
+     *
+     * @throws \Stripe\Exception\ApiErrorException if the request fails
+     *
+     * @return \Stripe\Customer the retrieved customer
+     */
+    public function retrievePaymentMethod($payment_method, $params = null, $opts = null)
+    {
+        $url = $this->instanceUrl() . '/payment_methods/' . $payment_method;
+        list($response, $opts) = $this->_request('get', $url, $params, $opts);
+        $obj = \Stripe\Util\Util::convertToStripeObject($response, $opts);
+        $obj->setLastResponse($response);
+
+        return $obj;
+    }
+
+    /**
+     * @param null|array $params
+     * @param null|array|string $opts
+     *
+     * @throws \Stripe\Exception\ApiErrorException if the request fails
+     *
+     * @return \Stripe\SearchResult<Customer> the customer search results
+     */
+    public static function search($params = null, $opts = null)
+    {
+        $url = '/v1/customers/search';
+
+        return self::_searchResource($url, $params, $opts);
+    }
+
+    const PATH_CASH_BALANCE = '/cash_balance';
+
+    /**
+     * @param string $id the ID of the customer to which the cash balance belongs
+     * @param null|array $params
+     * @param null|array|string $opts
+     * @param mixed $cashBalanceId
+     *
+     * @throws \Stripe\Exception\ApiErrorException if the request fails
+     *
+     * @return \Stripe\CashBalance
+     */
+    public static function retrieveCashBalance($id, $cashBalanceId, $params = null, $opts = null)
+    {
+        return self::_retrieveNestedResource($id, static::PATH_CASH_BALANCE, $params, $opts);
     }
 
+    /**
+     * @param string $id the ID of the customer to which the cash balance belongs
+     * @param null|array $params
+     * @param null|array|string $opts
+     * @param mixed $cashBalanceId
+     *
+     * @throws \Stripe\Exception\ApiErrorException if the request fails
+     *
+     * @return \Stripe\CashBalance
+     */
+    public static function updateCashBalance($id, $cashBalanceId, $params = null, $opts = null)
+    {
+        return self::_updateNestedResource($id, static::PATH_CASH_BALANCE, $params, $opts);
+    }
     const PATH_BALANCE_TRANSACTIONS = '/balance_transactions';
 
     /**
@@ -88,7 +177,7 @@ class Customer extends ApiResource
      *
      * @throws \Stripe\Exception\ApiErrorException if the request fails
      *
-     * @return \Stripe\Collection the list of customer balance transactions
+     * @return \Stripe\Collection<\Stripe\CustomerBalanceTransaction> the list of customer balance transactions
      */
     public static function allBalanceTransactions($id, $params = null, $opts = null)
     {
@@ -138,7 +227,36 @@ class Customer extends ApiResource
     {
         return self::_updateNestedResource($id, static::PATH_BALANCE_TRANSACTIONS, $balanceTransactionId, $params, $opts);
     }
+    const PATH_CASH_BALANCE_TRANSACTIONS = '/cash_balance_transactions';
 
+    /**
+     * @param string $id the ID of the customer on which to retrieve the customer cash balance transactions
+     * @param null|array $params
+     * @param null|array|string $opts
+     *
+     * @throws \Stripe\Exception\ApiErrorException if the request fails
+     *
+     * @return \Stripe\Collection<\Stripe\CustomerCashBalanceTransaction> the list of customer cash balance transactions
+     */
+    public static function allCashBalanceTransactions($id, $params = null, $opts = null)
+    {
+        return self::_allNestedResources($id, static::PATH_CASH_BALANCE_TRANSACTIONS, $params, $opts);
+    }
+
+    /**
+     * @param string $id the ID of the customer to which the customer cash balance transaction belongs
+     * @param string $cashBalanceTransactionId the ID of the customer cash balance transaction to retrieve
+     * @param null|array $params
+     * @param null|array|string $opts
+     *
+     * @throws \Stripe\Exception\ApiErrorException if the request fails
+     *
+     * @return \Stripe\CustomerCashBalanceTransaction
+     */
+    public static function retrieveCashBalanceTransaction($id, $cashBalanceTransactionId, $params = null, $opts = null)
+    {
+        return self::_retrieveNestedResource($id, static::PATH_CASH_BALANCE_TRANSACTIONS, $cashBalanceTransactionId, $params, $opts);
+    }
     const PATH_SOURCES = '/sources';
 
     /**
@@ -148,7 +266,7 @@ class Customer extends ApiResource
      *
      * @throws \Stripe\Exception\ApiErrorException if the request fails
      *
-     * @return \Stripe\Collection the list of payment sources (AlipayAccount, BankAccount, BitcoinReceiver, Card or Source)
+     * @return \Stripe\Collection<\Stripe\BankAccount|\Stripe\Card|\Stripe\Source> the list of payment sources (BankAccount, Card or Source)
      */
     public static function allSources($id, $params = null, $opts = null)
     {
@@ -162,7 +280,7 @@ class Customer extends ApiResource
      *
      * @throws \Stripe\Exception\ApiErrorException if the request fails
      *
-     * @return \Stripe\AlipayAccount|\Stripe\BankAccount|\Stripe\BitcoinReceiver|\Stripe\Card|\Stripe\Source
+     * @return \Stripe\BankAccount|\Stripe\Card|\Stripe\Source
      */
     public static function createSource($id, $params = null, $opts = null)
     {
@@ -177,7 +295,7 @@ class Customer extends ApiResource
      *
      * @throws \Stripe\Exception\ApiErrorException if the request fails
      *
-     * @return \Stripe\AlipayAccount|\Stripe\BankAccount|\Stripe\BitcoinReceiver|\Stripe\Card|\Stripe\Source
+     * @return \Stripe\BankAccount|\Stripe\Card|\Stripe\Source
      */
     public static function deleteSource($id, $sourceId, $params = null, $opts = null)
     {
@@ -192,7 +310,7 @@ class Customer extends ApiResource
      *
      * @throws \Stripe\Exception\ApiErrorException if the request fails
      *
-     * @return \Stripe\AlipayAccount|\Stripe\BankAccount|\Stripe\BitcoinReceiver|\Stripe\Card|\Stripe\Source
+     * @return \Stripe\BankAccount|\Stripe\Card|\Stripe\Source
      */
     public static function retrieveSource($id, $sourceId, $params = null, $opts = null)
     {
@@ -207,13 +325,12 @@ class Customer extends ApiResource
      *
      * @throws \Stripe\Exception\ApiErrorException if the request fails
      *
-     * @return \Stripe\AlipayAccount|\Stripe\BankAccount|\Stripe\BitcoinReceiver|\Stripe\Card|\Stripe\Source
+     * @return \Stripe\BankAccount|\Stripe\Card|\Stripe\Source
      */
     public static function updateSource($id, $sourceId, $params = null, $opts = null)
     {
         return self::_updateNestedResource($id, static::PATH_SOURCES, $sourceId, $params, $opts);
     }
-
     const PATH_TAX_IDS = '/tax_ids';
 
     /**
@@ -223,7 +340,7 @@ class Customer extends ApiResource
      *
      * @throws \Stripe\Exception\ApiErrorException if the request fails
      *
-     * @return \Stripe\Collection the list of tax ids
+     * @return \Stripe\Collection<\Stripe\TaxId> the list of tax ids
      */
     public static function allTaxIds($id, $params = null, $opts = null)
     {

+ 2 - 1
htdocs/includes/stripe/stripe-php/lib/CustomerBalanceTransaction.php

@@ -29,7 +29,7 @@ namespace Stripe;
  * @property null|string|\Stripe\Invoice $invoice The ID of the invoice (if any) related to the transaction.
  * @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.
  * @property null|\Stripe\StripeObject $metadata Set of <a href="https://stripe.com/docs/api/metadata">key-value pairs</a> that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
- * @property string $type Transaction type: <code>adjustment</code>, <code>applied_to_invoice</code>, <code>credit_note</code>, <code>initial</code>, <code>invoice_too_large</code>, <code>invoice_too_small</code>, <code>unspent_receiver_credit</code>, or <code>unapplied_from_invoice</code>. See the <a href="https://stripe.com/docs/billing/customer/balance#types">Customer Balance page</a> to learn more about transaction types.
+ * @property string $type Transaction type: <code>adjustment</code>, <code>applied_to_invoice</code>, <code>credit_note</code>, <code>initial</code>, <code>invoice_overpaid</code>, <code>invoice_too_large</code>, <code>invoice_too_small</code>, <code>unspent_receiver_credit</code>, or <code>unapplied_from_invoice</code>. See the <a href="https://stripe.com/docs/billing/customer/balance#types">Customer Balance page</a> to learn more about transaction types.
  */
 class CustomerBalanceTransaction extends ApiResource
 {
@@ -39,6 +39,7 @@ class CustomerBalanceTransaction extends ApiResource
     const TYPE_APPLIED_TO_INVOICE = 'applied_to_invoice';
     const TYPE_CREDIT_NOTE = 'credit_note';
     const TYPE_INITIAL = 'initial';
+    const TYPE_INVOICE_OVERPAID = 'invoice_overpaid';
     const TYPE_INVOICE_TOO_LARGE = 'invoice_too_large';
     const TYPE_INVOICE_TOO_SMALL = 'invoice_too_small';
     const TYPE_UNSPENT_RECEIVER_CREDIT = 'unspent_receiver_credit';

+ 42 - 0
htdocs/includes/stripe/stripe-php/lib/CustomerCashBalanceTransaction.php

@@ -0,0 +1,42 @@
+<?php
+
+// File generated from our OpenAPI spec
+
+namespace Stripe;
+
+/**
+ * Customers with certain payments enabled have a cash balance, representing funds
+ * that were paid by the customer to a merchant, but have not yet been allocated to
+ * a payment. Cash Balance Transactions represent when funds are moved into or out
+ * of this balance. This includes funding by the customer, allocation to payments,
+ * and refunds to the customer.
+ *
+ * @property string $id Unique identifier for the object.
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
+ * @property null|\Stripe\StripeObject $applied_to_payment
+ * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
+ * @property string $currency Three-letter <a href="https://www.iso.org/iso-4217-currency-codes.html">ISO currency code</a>, in lowercase. Must be a <a href="https://stripe.com/docs/currencies">supported currency</a>.
+ * @property string|\Stripe\Customer $customer The customer whose available cash balance changed as a result of this transaction.
+ * @property int $ending_balance The total available cash balance for the specified currency after this transaction was applied. Represented in the <a href="https://stripe.com/docs/currencies#zero-decimal">smallest currency unit</a>.
+ * @property null|\Stripe\StripeObject $funded
+ * @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.
+ * @property int $net_amount The amount by which the cash balance changed, represented in the <a href="https://stripe.com/docs/currencies#zero-decimal">smallest currency unit</a>. A positive value represents funds being added to the cash balance, a negative value represents funds being removed from the cash balance.
+ * @property null|\Stripe\StripeObject $refunded_from_payment
+ * @property string $type The type of the cash balance transaction. One of <code>applied_to_payment</code>, <code>unapplied_from_payment</code>, <code>refunded_from_payment</code>, <code>funded</code>, <code>return_initiated</code>, or <code>return_canceled</code>. New types may be added in future. See <a href="https://stripe.com/docs/payments/customer-balance#types">Customer Balance</a> to learn more about these types.
+ * @property null|\Stripe\StripeObject $unapplied_from_payment
+ */
+class CustomerCashBalanceTransaction extends ApiResource
+{
+    const OBJECT_NAME = 'customer_cash_balance_transaction';
+
+    use ApiOperations\All;
+    use ApiOperations\Retrieve;
+
+    const TYPE_APPLIED_TO_PAYMENT = 'applied_to_payment';
+    const TYPE_FUNDED = 'funded';
+    const TYPE_FUNDING_REVERSED = 'funding_reversed';
+    const TYPE_REFUNDED_FROM_PAYMENT = 'refunded_from_payment';
+    const TYPE_RETURN_CANCELED = 'return_canceled';
+    const TYPE_RETURN_INITIATED = 'return_initiated';
+    const TYPE_UNAPPLIED_FROM_PAYMENT = 'unapplied_from_payment';
+}

+ 6 - 7
htdocs/includes/stripe/stripe-php/lib/Discount.php

@@ -5,18 +5,17 @@ namespace Stripe;
 /**
  * Class Discount.
  *
- * @property string $object
- * @property string $checkout_session The Checkout session that this coupon is applied to, if it is applied to a particular session in payment mode. Will not be present for subscription mode.
+ * @property null|string $checkout_session The Checkout session that this coupon is applied to, if it is applied to a particular session in payment mode. Will not be present for subscription mode.
  * @property \Stripe\Coupon $coupon Hash describing the coupon applied to create this discount.
  * @property string|\Stripe\Customer $customer The ID of the customer associated with this discount.
- * @property int $end If the coupon has a duration of repeating, the date that this discount will end. If the coupon has a duration of once or forever, this attribute will be null.
+ * @property null|int $end If the coupon has a duration of repeating, the date that this discount will end. If the coupon has a duration of once or forever, this attribute will be null.
  * @property string $id The ID of the discount object.
- * @property string $invoice The invoice that the discount’s coupon was applied to, if it was applied directly to a particular invoice.
- * @property string $invoice_item The invoice item id (or invoice line item id for invoice line items of type=‘subscription’) that the discount’s coupon was applied to, if it was applied directly to a particular invoice item or invoice line item.
+ * @property null|string $invoice The invoice that the discount’s coupon was applied to, if it was applied directly to a particular invoice.
+ * @property null|string $invoice_item The invoice item id (or invoice line item id for invoice line items of type=‘subscription’) that the discount’s coupon was applied to, if it was applied directly to a particular invoice item or invoice line item.
  * @property string $object String representing the object’s type. Objects of the same type share the same value.
- * @property string $promotion_code The promotion code applied to create this discount.
+ * @property null|string $promotion_code The promotion code applied to create this discount.
  * @property int $start Date that the coupon was applied.
- * @property string $subscription The subscription that this coupon is applied to, if it is applied to a particular subscription.
+ * @property null|string $subscription The subscription that this coupon is applied to, if it is applied to a particular subscription.
  */
 class Discount extends StripeObject
 {

+ 3 - 3
htdocs/includes/stripe/stripe-php/lib/Dispute.php

@@ -64,17 +64,17 @@ class Dispute extends ApiResource
     const STATUS_WON = 'won';
 
     /**
+     * @param null|array $params
      * @param null|array|string $opts
      *
      * @throws \Stripe\Exception\ApiErrorException if the request fails
      *
      * @return \Stripe\Dispute the closed dispute
      */
-    // TODO: add $params to standardize signature
-    public function close($opts = null)
+    public function close($params = null, $opts = null)
     {
         $url = $this->instanceUrl() . '/close';
-        list($response, $opts) = $this->_request('post', $url, null, $opts);
+        list($response, $opts) = $this->_request('post', $url, $params, $opts);
         $this->refreshFrom($response, $opts);
 
         return $this;

+ 1 - 2
htdocs/includes/stripe/stripe-php/lib/EphemeralKey.php

@@ -10,8 +10,7 @@ namespace Stripe;
  * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
  * @property int $expires Time at which the key will expire. Measured in seconds since the Unix epoch.
  * @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.
- * @property string $secret The key's secret. You can use this value to make authorized requests to the Stripe API.
- * @property array $associated_objects
+ * @property null|string $secret The key's secret. You can use this value to make authorized requests to the Stripe API.
  */
 class EphemeralKey extends ApiResource
 {

+ 0 - 7
htdocs/includes/stripe/stripe-php/lib/Error/Api.php

@@ -1,7 +0,0 @@
-<?php
-
-namespace Stripe\Error;
-
-class Api extends Base
-{
-}

+ 0 - 7
htdocs/includes/stripe/stripe-php/lib/Error/ApiConnection.php

@@ -1,7 +0,0 @@
-<?php
-
-namespace Stripe\Error;
-
-class ApiConnection extends Base
-{
-}

+ 0 - 7
htdocs/includes/stripe/stripe-php/lib/Error/Authentication.php

@@ -1,7 +0,0 @@
-<?php
-
-namespace Stripe\Error;
-
-class Authentication extends Base
-{
-}

+ 0 - 69
htdocs/includes/stripe/stripe-php/lib/Error/Base.php

@@ -1,69 +0,0 @@
-<?php
-
-namespace Stripe\Error;
-
-use Exception;
-
-abstract class Base extends Exception
-{
-    public function __construct(
-        $message,
-        $httpStatus = null,
-        $httpBody = null,
-        $jsonBody = null,
-        $httpHeaders = null
-    ) {
-        parent::__construct($message);
-        $this->httpStatus = $httpStatus;
-        $this->httpBody = $httpBody;
-        $this->jsonBody = $jsonBody;
-        $this->httpHeaders = $httpHeaders;
-        $this->requestId = null;
-
-        // TODO: make this a proper constructor argument in the next major
-        //       release.
-        $this->stripeCode = isset($jsonBody["error"]["code"]) ? $jsonBody["error"]["code"] : null;
-
-        if ($httpHeaders && isset($httpHeaders['Request-Id'])) {
-            $this->requestId = $httpHeaders['Request-Id'];
-        }
-    }
-
-    public function getStripeCode()
-    {
-        return $this->stripeCode;
-    }
-
-    public function getHttpStatus()
-    {
-        return $this->httpStatus;
-    }
-
-    public function getHttpBody()
-    {
-        return $this->httpBody;
-    }
-
-    public function getJsonBody()
-    {
-        return $this->jsonBody;
-    }
-
-    public function getHttpHeaders()
-    {
-        return $this->httpHeaders;
-    }
-
-    public function getRequestId()
-    {
-        return $this->requestId;
-    }
-
-    public function __toString()
-    {
-        $id = $this->requestId ? " from API request '{$this->requestId}'": "";
-        $message = explode("\n", parent::__toString());
-        $message[0] .= $id;
-        return implode("\n", $message);
-    }
-}

+ 0 - 40
htdocs/includes/stripe/stripe-php/lib/Error/Card.php

@@ -1,40 +0,0 @@
-<?php
-
-namespace Stripe\Error;
-
-class Card extends Base
-{
-    public function __construct(
-        $message,
-        $stripeParam,
-        $stripeCode,
-        $httpStatus,
-        $httpBody,
-        $jsonBody,
-        $httpHeaders = null
-    ) {
-        parent::__construct($message, $httpStatus, $httpBody, $jsonBody, $httpHeaders);
-        $this->stripeParam = $stripeParam;
-
-        // TODO: once Error\Base accepts the error code as an argument, pass it
-        //       in the call to parent::__construct() and stop setting it here.
-        $this->stripeCode = $stripeCode;
-
-        // This one is not like the others because it was added later and we're
-        // trying to do our best not to change the public interface of this class'
-        // constructor.
-        // TODO: make this a proper constructor argument in the next major
-        //       release.
-        $this->declineCode = isset($jsonBody["error"]["decline_code"]) ? $jsonBody["error"]["decline_code"] : null;
-    }
-
-    public function getDeclineCode()
-    {
-        return $this->declineCode;
-    }
-
-    public function getStripeParam()
-    {
-        return $this->stripeParam;
-    }
-}

+ 0 - 7
htdocs/includes/stripe/stripe-php/lib/Error/Idempotency.php

@@ -1,7 +0,0 @@
-<?php
-
-namespace Stripe\Error;
-
-class Idempotency extends Base
-{
-}

+ 0 - 23
htdocs/includes/stripe/stripe-php/lib/Error/InvalidRequest.php

@@ -1,23 +0,0 @@
-<?php
-
-namespace Stripe\Error;
-
-class InvalidRequest extends Base
-{
-    public function __construct(
-        $message,
-        $stripeParam,
-        $httpStatus = null,
-        $httpBody = null,
-        $jsonBody = null,
-        $httpHeaders = null
-    ) {
-        parent::__construct($message, $httpStatus, $httpBody, $jsonBody, $httpHeaders);
-        $this->stripeParam = $stripeParam;
-    }
-
-    public function getStripeParam()
-    {
-        return $this->stripeParam;
-    }
-}

+ 0 - 10
htdocs/includes/stripe/stripe-php/lib/Error/OAuth/InvalidClient.php

@@ -1,10 +0,0 @@
-<?php
-
-namespace Stripe\Error\OAuth;
-
-/**
- * InvalidClient is raised when authentication fails.
- */
-class InvalidClient extends OAuthBase
-{
-}

+ 0 - 13
htdocs/includes/stripe/stripe-php/lib/Error/OAuth/InvalidGrant.php

@@ -1,13 +0,0 @@
-<?php
-
-namespace Stripe\Error\OAuth;
-
-/**
- * InvalidGrant is raised when a specified code doesn't exist, is
- * expired, has been used, or doesn't belong to you; a refresh token doesn't
- * exist, or doesn't belong to you; or if an API key's mode (live or test)
- * doesn't match the mode of a code or refresh token.
- */
-class InvalidGrant extends OAuthBase
-{
-}

+ 0 - 11
htdocs/includes/stripe/stripe-php/lib/Error/OAuth/InvalidRequest.php

@@ -1,11 +0,0 @@
-<?php
-
-namespace Stripe\Error\OAuth;
-
-/**
- * InvalidRequest is raised when a code, refresh token, or grant type
- * parameter is not provided, but was required.
- */
-class InvalidRequest extends OAuthBase
-{
-}

+ 0 - 10
htdocs/includes/stripe/stripe-php/lib/Error/OAuth/InvalidScope.php

@@ -1,10 +0,0 @@
-<?php
-
-namespace Stripe\Error\OAuth;
-
-/**
- * InvalidScope is raised when an invalid scope parameter is provided.
- */
-class InvalidScope extends OAuthBase
-{
-}

+ 0 - 23
htdocs/includes/stripe/stripe-php/lib/Error/OAuth/OAuthBase.php

@@ -1,23 +0,0 @@
-<?php
-
-namespace Stripe\Error\OAuth;
-
-class OAuthBase extends \Stripe\Error\Base
-{
-    public function __construct(
-        $code,
-        $description,
-        $httpStatus = null,
-        $httpBody = null,
-        $jsonBody = null,
-        $httpHeaders = null
-    ) {
-        parent::__construct($description, $httpStatus, $httpBody, $jsonBody, $httpHeaders);
-        $this->errorCode = $code;
-    }
-
-    public function getErrorCode()
-    {
-        return $this->errorCode;
-    }
-}

+ 0 - 11
htdocs/includes/stripe/stripe-php/lib/Error/OAuth/UnsupportedGrantType.php

@@ -1,11 +0,0 @@
-<?php
-
-namespace Stripe\Error\OAuth;
-
-/**
- * UnsupportedGrantType is raised when an unuspported grant type
- * parameter is specified.
- */
-class UnsupportedGrantType extends OAuthBase
-{
-}

+ 0 - 11
htdocs/includes/stripe/stripe-php/lib/Error/OAuth/UnsupportedResponseType.php

@@ -1,11 +0,0 @@
-<?php
-
-namespace Stripe\Error\OAuth;
-
-/**
- * UnsupportedResponseType is raised when an unsupported response type
- * parameter is specified.
- */
-class UnsupportedResponseType extends OAuthBase
-{
-}

+ 0 - 7
htdocs/includes/stripe/stripe-php/lib/Error/Permission.php

@@ -1,7 +0,0 @@
-<?php
-
-namespace Stripe\Error;
-
-class Permission extends Base
-{
-}

+ 0 - 7
htdocs/includes/stripe/stripe-php/lib/Error/RateLimit.php

@@ -1,7 +0,0 @@
-<?php
-
-namespace Stripe\Error;
-
-class RateLimit extends InvalidRequest
-{
-}

+ 0 - 20
htdocs/includes/stripe/stripe-php/lib/Error/SignatureVerification.php

@@ -1,20 +0,0 @@
-<?php
-
-namespace Stripe\Error;
-
-class SignatureVerification extends Base
-{
-    public function __construct(
-        $message,
-        $sigHeader,
-        $httpBody = null
-    ) {
-        parent::__construct($message, null, $httpBody, null, null);
-        $this->sigHeader = $sigHeader;
-    }
-
-    public function getSigHeader()
-    {
-        return $this->sigHeader;
-    }
-}

+ 54 - 10
htdocs/includes/stripe/stripe-php/lib/ErrorObject.php

@@ -26,14 +26,14 @@ namespace Stripe;
  * @property string $payment_method_type If the error is specific to the type
  *    of payment method, the payment method type that had a problem. This
  *    field is only populated for invoice-related errors.
+ * @property string $request_log_url A URL to the request log entry in your
+ *    dashboard.
  * @property SetupIntent $setup_intent The SetupIntent object for errors
  *    returned on a request involving a SetupIntent.
  * @property StripeObject $source The source object for errors returned on a
  *    request involving a source.
- * @property string $type The type of error returned. One of
- *    `api_connection_error`, `api_error`, `authentication_error`,
- *    `card_error`, `idempotency_error`, `invalid_request_error`, or
- *    `rate_limit_error`.
+ * @property string $type The type of error returned. One of `api_error`,
+ *   `card_error`, `idempotency_error`, or `invalid_request_error`.
  */
 class ErrorObject extends StripeObject
 {
@@ -42,28 +42,42 @@ class ErrorObject extends StripeObject
      *
      * @see https://stripe.com/docs/error-codes
      */
-    const CODE_ACCOUNT_ALREADY_EXISTS = 'account_already_exists';
     const CODE_ACCOUNT_COUNTRY_INVALID_ADDRESS = 'account_country_invalid_address';
+    const CODE_ACCOUNT_ERROR_COUNTRY_CHANGE_REQUIRES_ADDITIONAL_STEPS = 'account_error_country_change_requires_additional_steps';
+    const CODE_ACCOUNT_INFORMATION_MISMATCH = 'account_information_mismatch';
     const CODE_ACCOUNT_INVALID = 'account_invalid';
     const CODE_ACCOUNT_NUMBER_INVALID = 'account_number_invalid';
+    const CODE_ACSS_DEBIT_SESSION_INCOMPLETE = 'acss_debit_session_incomplete';
     const CODE_ALIPAY_UPGRADE_REQUIRED = 'alipay_upgrade_required';
     const CODE_AMOUNT_TOO_LARGE = 'amount_too_large';
     const CODE_AMOUNT_TOO_SMALL = 'amount_too_small';
     const CODE_API_KEY_EXPIRED = 'api_key_expired';
+    const CODE_AUTHENTICATION_REQUIRED = 'authentication_required';
     const CODE_BALANCE_INSUFFICIENT = 'balance_insufficient';
+    const CODE_BANK_ACCOUNT_BAD_ROUTING_NUMBERS = 'bank_account_bad_routing_numbers';
+    const CODE_BANK_ACCOUNT_DECLINED = 'bank_account_declined';
     const CODE_BANK_ACCOUNT_EXISTS = 'bank_account_exists';
     const CODE_BANK_ACCOUNT_UNUSABLE = 'bank_account_unusable';
     const CODE_BANK_ACCOUNT_UNVERIFIED = 'bank_account_unverified';
+    const CODE_BANK_ACCOUNT_VERIFICATION_FAILED = 'bank_account_verification_failed';
+    const CODE_BILLING_INVALID_MANDATE = 'billing_invalid_mandate';
     const CODE_BITCOIN_UPGRADE_REQUIRED = 'bitcoin_upgrade_required';
+    const CODE_CARD_DECLINE_RATE_LIMIT_EXCEEDED = 'card_decline_rate_limit_exceeded';
     const CODE_CARD_DECLINED = 'card_declined';
+    const CODE_CARDHOLDER_PHONE_NUMBER_REQUIRED = 'cardholder_phone_number_required';
     const CODE_CHARGE_ALREADY_CAPTURED = 'charge_already_captured';
     const CODE_CHARGE_ALREADY_REFUNDED = 'charge_already_refunded';
     const CODE_CHARGE_DISPUTED = 'charge_disputed';
     const CODE_CHARGE_EXCEEDS_SOURCE_LIMIT = 'charge_exceeds_source_limit';
     const CODE_CHARGE_EXPIRED_FOR_CAPTURE = 'charge_expired_for_capture';
+    const CODE_CHARGE_INVALID_PARAMETER = 'charge_invalid_parameter';
+    const CODE_CLEARING_CODE_UNSUPPORTED = 'clearing_code_unsupported';
+    const CODE_COUNTRY_CODE_INVALID = 'country_code_invalid';
     const CODE_COUNTRY_UNSUPPORTED = 'country_unsupported';
     const CODE_COUPON_EXPIRED = 'coupon_expired';
+    const CODE_CUSTOMER_MAX_PAYMENT_METHODS = 'customer_max_payment_methods';
     const CODE_CUSTOMER_MAX_SUBSCRIPTIONS = 'customer_max_subscriptions';
+    const CODE_DEBIT_NOT_AUTHORIZED = 'debit_not_authorized';
     const CODE_EMAIL_INVALID = 'email_invalid';
     const CODE_EXPIRED_CARD = 'expired_card';
     const CODE_IDEMPOTENCY_KEY_IN_USE = 'idempotency_key_in_use';
@@ -71,8 +85,13 @@ class ErrorObject extends StripeObject
     const CODE_INCORRECT_CVC = 'incorrect_cvc';
     const CODE_INCORRECT_NUMBER = 'incorrect_number';
     const CODE_INCORRECT_ZIP = 'incorrect_zip';
+    const CODE_INSTANT_PAYOUTS_LIMIT_EXCEEDED = 'instant_payouts_limit_exceeded';
     const CODE_INSTANT_PAYOUTS_UNSUPPORTED = 'instant_payouts_unsupported';
+    const CODE_INSUFFICIENT_FUNDS = 'insufficient_funds';
+    const CODE_INTENT_INVALID_STATE = 'intent_invalid_state';
+    const CODE_INTENT_VERIFICATION_METHOD_MISSING = 'intent_verification_method_missing';
     const CODE_INVALID_CARD_TYPE = 'invalid_card_type';
+    const CODE_INVALID_CHARACTERS = 'invalid_characters';
     const CODE_INVALID_CHARGE_AMOUNT = 'invalid_charge_amount';
     const CODE_INVALID_CVC = 'invalid_cvc';
     const CODE_INVALID_EXPIRY_MONTH = 'invalid_expiry_month';
@@ -80,18 +99,17 @@ class ErrorObject extends StripeObject
     const CODE_INVALID_NUMBER = 'invalid_number';
     const CODE_INVALID_SOURCE_USAGE = 'invalid_source_usage';
     const CODE_INVOICE_NO_CUSTOMER_LINE_ITEMS = 'invoice_no_customer_line_items';
+    const CODE_INVOICE_NO_PAYMENT_METHOD_TYPES = 'invoice_no_payment_method_types';
     const CODE_INVOICE_NO_SUBSCRIPTION_LINE_ITEMS = 'invoice_no_subscription_line_items';
     const CODE_INVOICE_NOT_EDITABLE = 'invoice_not_editable';
+    const CODE_INVOICE_ON_BEHALF_OF_NOT_EDITABLE = 'invoice_on_behalf_of_not_editable';
     const CODE_INVOICE_PAYMENT_INTENT_REQUIRES_ACTION = 'invoice_payment_intent_requires_action';
     const CODE_INVOICE_UPCOMING_NONE = 'invoice_upcoming_none';
     const CODE_LIVEMODE_MISMATCH = 'livemode_mismatch';
     const CODE_LOCK_TIMEOUT = 'lock_timeout';
     const CODE_MISSING = 'missing';
+    const CODE_NO_ACCOUNT = 'no_account';
     const CODE_NOT_ALLOWED_ON_STANDARD_ACCOUNT = 'not_allowed_on_standard_account';
-    const CODE_ORDER_CREATION_FAILED = 'order_creation_failed';
-    const CODE_ORDER_REQUIRED_SETTINGS = 'order_required_settings';
-    const CODE_ORDER_STATUS_INVALID = 'order_status_invalid';
-    const CODE_ORDER_UPSTREAM_TIMEOUT = 'order_upstream_timeout';
     const CODE_OUT_OF_INVENTORY = 'out_of_inventory';
     const CODE_PARAMETER_INVALID_EMPTY = 'parameter_invalid_empty';
     const CODE_PARAMETER_INVALID_INTEGER = 'parameter_invalid_integer';
@@ -100,38 +118,64 @@ class ErrorObject extends StripeObject
     const CODE_PARAMETER_MISSING = 'parameter_missing';
     const CODE_PARAMETER_UNKNOWN = 'parameter_unknown';
     const CODE_PARAMETERS_EXCLUSIVE = 'parameters_exclusive';
+    const CODE_PAYMENT_INTENT_ACTION_REQUIRED = 'payment_intent_action_required';
     const CODE_PAYMENT_INTENT_AUTHENTICATION_FAILURE = 'payment_intent_authentication_failure';
     const CODE_PAYMENT_INTENT_INCOMPATIBLE_PAYMENT_METHOD = 'payment_intent_incompatible_payment_method';
     const CODE_PAYMENT_INTENT_INVALID_PARAMETER = 'payment_intent_invalid_parameter';
+    const CODE_PAYMENT_INTENT_KONBINI_REJECTED_CONFIRMATION_NUMBER = 'payment_intent_konbini_rejected_confirmation_number';
+    const CODE_PAYMENT_INTENT_MANDATE_INVALID = 'payment_intent_mandate_invalid';
+    const CODE_PAYMENT_INTENT_PAYMENT_ATTEMPT_EXPIRED = 'payment_intent_payment_attempt_expired';
     const CODE_PAYMENT_INTENT_PAYMENT_ATTEMPT_FAILED = 'payment_intent_payment_attempt_failed';
     const CODE_PAYMENT_INTENT_UNEXPECTED_STATE = 'payment_intent_unexpected_state';
+    const CODE_PAYMENT_METHOD_BANK_ACCOUNT_ALREADY_VERIFIED = 'payment_method_bank_account_already_verified';
+    const CODE_PAYMENT_METHOD_BANK_ACCOUNT_BLOCKED = 'payment_method_bank_account_blocked';
+    const CODE_PAYMENT_METHOD_BILLING_DETAILS_ADDRESS_MISSING = 'payment_method_billing_details_address_missing';
+    const CODE_PAYMENT_METHOD_CURRENCY_MISMATCH = 'payment_method_currency_mismatch';
+    const CODE_PAYMENT_METHOD_INVALID_PARAMETER = 'payment_method_invalid_parameter';
+    const CODE_PAYMENT_METHOD_INVALID_PARAMETER_TESTMODE = 'payment_method_invalid_parameter_testmode';
+    const CODE_PAYMENT_METHOD_MICRODEPOSIT_FAILED = 'payment_method_microdeposit_failed';
+    const CODE_PAYMENT_METHOD_MICRODEPOSIT_VERIFICATION_AMOUNTS_INVALID = 'payment_method_microdeposit_verification_amounts_invalid';
+    const CODE_PAYMENT_METHOD_MICRODEPOSIT_VERIFICATION_AMOUNTS_MISMATCH = 'payment_method_microdeposit_verification_amounts_mismatch';
+    const CODE_PAYMENT_METHOD_MICRODEPOSIT_VERIFICATION_ATTEMPTS_EXCEEDED = 'payment_method_microdeposit_verification_attempts_exceeded';
+    const CODE_PAYMENT_METHOD_MICRODEPOSIT_VERIFICATION_DESCRIPTOR_CODE_MISMATCH = 'payment_method_microdeposit_verification_descriptor_code_mismatch';
+    const CODE_PAYMENT_METHOD_MICRODEPOSIT_VERIFICATION_TIMEOUT = 'payment_method_microdeposit_verification_timeout';
+    const CODE_PAYMENT_METHOD_PROVIDER_DECLINE = 'payment_method_provider_decline';
+    const CODE_PAYMENT_METHOD_PROVIDER_TIMEOUT = 'payment_method_provider_timeout';
     const CODE_PAYMENT_METHOD_UNACTIVATED = 'payment_method_unactivated';
     const CODE_PAYMENT_METHOD_UNEXPECTED_STATE = 'payment_method_unexpected_state';
+    const CODE_PAYMENT_METHOD_UNSUPPORTED_TYPE = 'payment_method_unsupported_type';
     const CODE_PAYOUTS_NOT_ALLOWED = 'payouts_not_allowed';
+    const CODE_PLATFORM_ACCOUNT_REQUIRED = 'platform_account_required';
     const CODE_PLATFORM_API_KEY_EXPIRED = 'platform_api_key_expired';
     const CODE_POSTAL_CODE_INVALID = 'postal_code_invalid';
     const CODE_PROCESSING_ERROR = 'processing_error';
     const CODE_PRODUCT_INACTIVE = 'product_inactive';
     const CODE_RATE_LIMIT = 'rate_limit';
+    const CODE_REFER_TO_CUSTOMER = 'refer_to_customer';
+    const CODE_REFUND_DISPUTED_PAYMENT = 'refund_disputed_payment';
     const CODE_RESOURCE_ALREADY_EXISTS = 'resource_already_exists';
     const CODE_RESOURCE_MISSING = 'resource_missing';
+    const CODE_RETURN_INTENT_ALREADY_PROCESSED = 'return_intent_already_processed';
     const CODE_ROUTING_NUMBER_INVALID = 'routing_number_invalid';
     const CODE_SECRET_KEY_REQUIRED = 'secret_key_required';
     const CODE_SEPA_UNSUPPORTED_ACCOUNT = 'sepa_unsupported_account';
     const CODE_SETUP_ATTEMPT_FAILED = 'setup_attempt_failed';
     const CODE_SETUP_INTENT_AUTHENTICATION_FAILURE = 'setup_intent_authentication_failure';
+    const CODE_SETUP_INTENT_INVALID_PARAMETER = 'setup_intent_invalid_parameter';
+    const CODE_SETUP_INTENT_SETUP_ATTEMPT_EXPIRED = 'setup_intent_setup_attempt_expired';
     const CODE_SETUP_INTENT_UNEXPECTED_STATE = 'setup_intent_unexpected_state';
     const CODE_SHIPPING_CALCULATION_FAILED = 'shipping_calculation_failed';
     const CODE_SKU_INACTIVE = 'sku_inactive';
     const CODE_STATE_UNSUPPORTED = 'state_unsupported';
     const CODE_TAX_ID_INVALID = 'tax_id_invalid';
     const CODE_TAXES_CALCULATION_FAILED = 'taxes_calculation_failed';
+    const CODE_TERMINAL_LOCATION_COUNTRY_UNSUPPORTED = 'terminal_location_country_unsupported';
     const CODE_TESTMODE_CHARGES_ONLY = 'testmode_charges_only';
     const CODE_TLS_VERSION_UNSUPPORTED = 'tls_version_unsupported';
     const CODE_TOKEN_ALREADY_USED = 'token_already_used';
     const CODE_TOKEN_IN_USE = 'token_in_use';
+    const CODE_TRANSFER_SOURCE_BALANCE_PARAMETERS_MISMATCH = 'transfer_source_balance_parameters_mismatch';
     const CODE_TRANSFERS_NOT_ALLOWED = 'transfers_not_allowed';
-    const CODE_UPSTREAM_ORDER_CREATION_FAILED = 'upstream_order_creation_failed';
     const CODE_URL_INVALID = 'url_invalid';
 
     /**

+ 76 - 23
htdocs/includes/stripe/stripe-php/lib/Event.php

@@ -39,9 +39,12 @@ namespace Stripe;
  * href="https://stripe.com/docs/api#retrieve_event">Retrieve Event API</a> is
  * guaranteed only for 30 days.
  *
+ * This class includes constants for the possible string representations of
+ * event types. See https://stripe.com/docs/api#event_types for more details.
+ *
  * @property string $id Unique identifier for the object.
  * @property string $object String representing the object's type. Objects of the same type share the same value.
- * @property string $account The connected account that originated the event.
+ * @property null|string $account The connected account that originated the event.
  * @property null|string $api_version The Stripe API version used to render <code>data</code>. <em>Note: This property is populated only for events on or after October 31, 2014</em>.
  * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
  * @property \Stripe\StripeObject $data
@@ -57,38 +60,38 @@ class Event extends ApiResource
     use ApiOperations\All;
     use ApiOperations\Retrieve;
 
-    /**
-     * Possible string representations of event types.
-     *
-     * @see https://stripe.com/docs/api#event_types
-     */
-    const ACCOUNT_UPDATED = 'account.updated';
     const ACCOUNT_APPLICATION_AUTHORIZED = 'account.application.authorized';
     const ACCOUNT_APPLICATION_DEAUTHORIZED = 'account.application.deauthorized';
     const ACCOUNT_EXTERNAL_ACCOUNT_CREATED = 'account.external_account.created';
     const ACCOUNT_EXTERNAL_ACCOUNT_DELETED = 'account.external_account.deleted';
     const ACCOUNT_EXTERNAL_ACCOUNT_UPDATED = 'account.external_account.updated';
+    const ACCOUNT_UPDATED = 'account.updated';
     const APPLICATION_FEE_CREATED = 'application_fee.created';
-    const APPLICATION_FEE_REFUNDED = 'application_fee.refunded';
     const APPLICATION_FEE_REFUND_UPDATED = 'application_fee.refund.updated';
+    const APPLICATION_FEE_REFUNDED = 'application_fee.refunded';
     const BALANCE_AVAILABLE = 'balance.available';
+    const BILLING_PORTAL_CONFIGURATION_CREATED = 'billing_portal.configuration.created';
+    const BILLING_PORTAL_CONFIGURATION_UPDATED = 'billing_portal.configuration.updated';
+    const BILLING_PORTAL_SESSION_CREATED = 'billing_portal.session.created';
     const CAPABILITY_UPDATED = 'capability.updated';
+    const CASH_BALANCE_FUNDS_AVAILABLE = 'cash_balance.funds_available';
     const CHARGE_CAPTURED = 'charge.captured';
-    const CHARGE_EXPIRED = 'charge.expired';
-    const CHARGE_FAILED = 'charge.failed';
-    const CHARGE_PENDING = 'charge.pending';
-    const CHARGE_REFUNDED = 'charge.refunded';
-    const CHARGE_SUCCEEDED = 'charge.succeeded';
-    const CHARGE_UPDATED = 'charge.updated';
     const CHARGE_DISPUTE_CLOSED = 'charge.dispute.closed';
     const CHARGE_DISPUTE_CREATED = 'charge.dispute.created';
     const CHARGE_DISPUTE_FUNDS_REINSTATED = 'charge.dispute.funds_reinstated';
     const CHARGE_DISPUTE_FUNDS_WITHDRAWN = 'charge.dispute.funds_withdrawn';
     const CHARGE_DISPUTE_UPDATED = 'charge.dispute.updated';
+    const CHARGE_EXPIRED = 'charge.expired';
+    const CHARGE_FAILED = 'charge.failed';
+    const CHARGE_PENDING = 'charge.pending';
     const CHARGE_REFUND_UPDATED = 'charge.refund.updated';
+    const CHARGE_REFUNDED = 'charge.refunded';
+    const CHARGE_SUCCEEDED = 'charge.succeeded';
+    const CHARGE_UPDATED = 'charge.updated';
     const CHECKOUT_SESSION_ASYNC_PAYMENT_FAILED = 'checkout.session.async_payment_failed';
     const CHECKOUT_SESSION_ASYNC_PAYMENT_SUCCEEDED = 'checkout.session.async_payment_succeeded';
     const CHECKOUT_SESSION_COMPLETED = 'checkout.session.completed';
+    const CHECKOUT_SESSION_EXPIRED = 'checkout.session.expired';
     const COUPON_CREATED = 'coupon.created';
     const COUPON_DELETED = 'coupon.deleted';
     const COUPON_UPDATED = 'coupon.updated';
@@ -97,7 +100,6 @@ class Event extends ApiResource
     const CREDIT_NOTE_VOIDED = 'credit_note.voided';
     const CUSTOMER_CREATED = 'customer.created';
     const CUSTOMER_DELETED = 'customer.deleted';
-    const CUSTOMER_UPDATED = 'customer.updated';
     const CUSTOMER_DISCOUNT_CREATED = 'customer.discount.created';
     const CUSTOMER_DISCOUNT_DELETED = 'customer.discount.deleted';
     const CUSTOMER_DISCOUNT_UPDATED = 'customer.discount.updated';
@@ -107,14 +109,29 @@ class Event extends ApiResource
     const CUSTOMER_SOURCE_UPDATED = 'customer.source.updated';
     const CUSTOMER_SUBSCRIPTION_CREATED = 'customer.subscription.created';
     const CUSTOMER_SUBSCRIPTION_DELETED = 'customer.subscription.deleted';
+    const CUSTOMER_SUBSCRIPTION_PAUSED = 'customer.subscription.paused';
     const CUSTOMER_SUBSCRIPTION_PENDING_UPDATE_APPLIED = 'customer.subscription.pending_update_applied';
     const CUSTOMER_SUBSCRIPTION_PENDING_UPDATE_EXPIRED = 'customer.subscription.pending_update_expired';
+    const CUSTOMER_SUBSCRIPTION_RESUMED = 'customer.subscription.resumed';
     const CUSTOMER_SUBSCRIPTION_TRIAL_WILL_END = 'customer.subscription.trial_will_end';
     const CUSTOMER_SUBSCRIPTION_UPDATED = 'customer.subscription.updated';
     const CUSTOMER_TAX_ID_CREATED = 'customer.tax_id.created';
     const CUSTOMER_TAX_ID_DELETED = 'customer.tax_id.deleted';
     const CUSTOMER_TAX_ID_UPDATED = 'customer.tax_id.updated';
+    const CUSTOMER_UPDATED = 'customer.updated';
+    const CUSTOMER_CASH_BALANCE_TRANSACTION_CREATED = 'customer_cash_balance_transaction.created';
     const FILE_CREATED = 'file.created';
+    const FINANCIAL_CONNECTIONS_ACCOUNT_CREATED = 'financial_connections.account.created';
+    const FINANCIAL_CONNECTIONS_ACCOUNT_DEACTIVATED = 'financial_connections.account.deactivated';
+    const FINANCIAL_CONNECTIONS_ACCOUNT_DISCONNECTED = 'financial_connections.account.disconnected';
+    const FINANCIAL_CONNECTIONS_ACCOUNT_REACTIVATED = 'financial_connections.account.reactivated';
+    const FINANCIAL_CONNECTIONS_ACCOUNT_REFRESHED_BALANCE = 'financial_connections.account.refreshed_balance';
+    const IDENTITY_VERIFICATION_SESSION_CANCELED = 'identity.verification_session.canceled';
+    const IDENTITY_VERIFICATION_SESSION_CREATED = 'identity.verification_session.created';
+    const IDENTITY_VERIFICATION_SESSION_PROCESSING = 'identity.verification_session.processing';
+    const IDENTITY_VERIFICATION_SESSION_REDACTED = 'identity.verification_session.redacted';
+    const IDENTITY_VERIFICATION_SESSION_REQUIRES_INPUT = 'identity.verification_session.requires_input';
+    const IDENTITY_VERIFICATION_SESSION_VERIFIED = 'identity.verification_session.verified';
     const INVOICE_CREATED = 'invoice.created';
     const INVOICE_DELETED = 'invoice.deleted';
     const INVOICE_FINALIZATION_FAILED = 'invoice.finalization_failed';
@@ -131,7 +148,6 @@ class Event extends ApiResource
     const INVOICEITEM_CREATED = 'invoiceitem.created';
     const INVOICEITEM_DELETED = 'invoiceitem.deleted';
     const INVOICEITEM_UPDATED = 'invoiceitem.updated';
-    const ISSUER_FRAUD_RECORD_CREATED = 'issuer_fraud_record.created';
     const ISSUING_AUTHORIZATION_CREATED = 'issuing_authorization.created';
     const ISSUING_AUTHORIZATION_REQUEST = 'issuing_authorization.request';
     const ISSUING_AUTHORIZATION_UPDATED = 'issuing_authorization.updated';
@@ -148,20 +164,18 @@ class Event extends ApiResource
     const ISSUING_TRANSACTION_UPDATED = 'issuing_transaction.updated';
     const MANDATE_UPDATED = 'mandate.updated';
     const ORDER_CREATED = 'order.created';
-    const ORDER_PAYMENT_FAILED = 'order.payment_failed';
-    const ORDER_PAYMENT_SUCCEEDED = 'order.payment_succeeded';
-    const ORDER_UPDATED = 'order.updated';
-    const ORDER_RETURN_CREATED = 'order_return.created';
     const PAYMENT_INTENT_AMOUNT_CAPTURABLE_UPDATED = 'payment_intent.amount_capturable_updated';
     const PAYMENT_INTENT_CANCELED = 'payment_intent.canceled';
     const PAYMENT_INTENT_CREATED = 'payment_intent.created';
+    const PAYMENT_INTENT_PARTIALLY_FUNDED = 'payment_intent.partially_funded';
     const PAYMENT_INTENT_PAYMENT_FAILED = 'payment_intent.payment_failed';
     const PAYMENT_INTENT_PROCESSING = 'payment_intent.processing';
     const PAYMENT_INTENT_REQUIRES_ACTION = 'payment_intent.requires_action';
     const PAYMENT_INTENT_SUCCEEDED = 'payment_intent.succeeded';
+    const PAYMENT_LINK_CREATED = 'payment_link.created';
+    const PAYMENT_LINK_UPDATED = 'payment_link.updated';
     const PAYMENT_METHOD_ATTACHED = 'payment_method.attached';
     const PAYMENT_METHOD_AUTOMATICALLY_UPDATED = 'payment_method.automatically_updated';
-    const PAYMENT_METHOD_CARD_AUTOMATICALLY_UPDATED = 'payment_method.card_automatically_updated';
     const PAYMENT_METHOD_DETACHED = 'payment_method.detached';
     const PAYMENT_METHOD_UPDATED = 'payment_method.updated';
     const PAYOUT_CANCELED = 'payout.canceled';
@@ -172,7 +186,6 @@ class Event extends ApiResource
     const PERSON_CREATED = 'person.created';
     const PERSON_DELETED = 'person.deleted';
     const PERSON_UPDATED = 'person.updated';
-    const PING = 'ping';
     const PLAN_CREATED = 'plan.created';
     const PLAN_DELETED = 'plan.deleted';
     const PLAN_UPDATED = 'plan.updated';
@@ -183,13 +196,18 @@ class Event extends ApiResource
     const PRODUCT_DELETED = 'product.deleted';
     const PRODUCT_UPDATED = 'product.updated';
     const PROMOTION_CODE_CREATED = 'promotion_code.created';
-    const PROMOTION_CODE_DELETED = 'promotion_code.deleted';
     const PROMOTION_CODE_UPDATED = 'promotion_code.updated';
+    const QUOTE_ACCEPTED = 'quote.accepted';
+    const QUOTE_CANCELED = 'quote.canceled';
+    const QUOTE_CREATED = 'quote.created';
+    const QUOTE_FINALIZED = 'quote.finalized';
     const RADAR_EARLY_FRAUD_WARNING_CREATED = 'radar.early_fraud_warning.created';
     const RADAR_EARLY_FRAUD_WARNING_UPDATED = 'radar.early_fraud_warning.updated';
     const RECIPIENT_CREATED = 'recipient.created';
     const RECIPIENT_DELETED = 'recipient.deleted';
     const RECIPIENT_UPDATED = 'recipient.updated';
+    const REFUND_CREATED = 'refund.created';
+    const REFUND_UPDATED = 'refund.updated';
     const REPORTING_REPORT_RUN_FAILED = 'reporting.report_run.failed';
     const REPORTING_REPORT_RUN_SUCCEEDED = 'reporting.report_run.succeeded';
     const REPORTING_REPORT_TYPE_UPDATED = 'reporting.report_type.updated';
@@ -220,6 +238,13 @@ class Event extends ApiResource
     const SUBSCRIPTION_SCHEDULE_UPDATED = 'subscription_schedule.updated';
     const TAX_RATE_CREATED = 'tax_rate.created';
     const TAX_RATE_UPDATED = 'tax_rate.updated';
+    const TERMINAL_READER_ACTION_FAILED = 'terminal.reader.action_failed';
+    const TERMINAL_READER_ACTION_SUCCEEDED = 'terminal.reader.action_succeeded';
+    const TEST_HELPERS_TEST_CLOCK_ADVANCING = 'test_helpers.test_clock.advancing';
+    const TEST_HELPERS_TEST_CLOCK_CREATED = 'test_helpers.test_clock.created';
+    const TEST_HELPERS_TEST_CLOCK_DELETED = 'test_helpers.test_clock.deleted';
+    const TEST_HELPERS_TEST_CLOCK_INTERNAL_FAILURE = 'test_helpers.test_clock.internal_failure';
+    const TEST_HELPERS_TEST_CLOCK_READY = 'test_helpers.test_clock.ready';
     const TOPUP_CANCELED = 'topup.canceled';
     const TOPUP_CREATED = 'topup.created';
     const TOPUP_FAILED = 'topup.failed';
@@ -228,4 +253,32 @@ class Event extends ApiResource
     const TRANSFER_CREATED = 'transfer.created';
     const TRANSFER_REVERSED = 'transfer.reversed';
     const TRANSFER_UPDATED = 'transfer.updated';
+    const TREASURY_CREDIT_REVERSAL_CREATED = 'treasury.credit_reversal.created';
+    const TREASURY_CREDIT_REVERSAL_POSTED = 'treasury.credit_reversal.posted';
+    const TREASURY_DEBIT_REVERSAL_COMPLETED = 'treasury.debit_reversal.completed';
+    const TREASURY_DEBIT_REVERSAL_CREATED = 'treasury.debit_reversal.created';
+    const TREASURY_DEBIT_REVERSAL_INITIAL_CREDIT_GRANTED = 'treasury.debit_reversal.initial_credit_granted';
+    const TREASURY_FINANCIAL_ACCOUNT_CLOSED = 'treasury.financial_account.closed';
+    const TREASURY_FINANCIAL_ACCOUNT_CREATED = 'treasury.financial_account.created';
+    const TREASURY_FINANCIAL_ACCOUNT_FEATURES_STATUS_UPDATED = 'treasury.financial_account.features_status_updated';
+    const TREASURY_INBOUND_TRANSFER_CANCELED = 'treasury.inbound_transfer.canceled';
+    const TREASURY_INBOUND_TRANSFER_CREATED = 'treasury.inbound_transfer.created';
+    const TREASURY_INBOUND_TRANSFER_FAILED = 'treasury.inbound_transfer.failed';
+    const TREASURY_INBOUND_TRANSFER_SUCCEEDED = 'treasury.inbound_transfer.succeeded';
+    const TREASURY_OUTBOUND_PAYMENT_CANCELED = 'treasury.outbound_payment.canceled';
+    const TREASURY_OUTBOUND_PAYMENT_CREATED = 'treasury.outbound_payment.created';
+    const TREASURY_OUTBOUND_PAYMENT_EXPECTED_ARRIVAL_DATE_UPDATED = 'treasury.outbound_payment.expected_arrival_date_updated';
+    const TREASURY_OUTBOUND_PAYMENT_FAILED = 'treasury.outbound_payment.failed';
+    const TREASURY_OUTBOUND_PAYMENT_POSTED = 'treasury.outbound_payment.posted';
+    const TREASURY_OUTBOUND_PAYMENT_RETURNED = 'treasury.outbound_payment.returned';
+    const TREASURY_OUTBOUND_TRANSFER_CANCELED = 'treasury.outbound_transfer.canceled';
+    const TREASURY_OUTBOUND_TRANSFER_CREATED = 'treasury.outbound_transfer.created';
+    const TREASURY_OUTBOUND_TRANSFER_EXPECTED_ARRIVAL_DATE_UPDATED = 'treasury.outbound_transfer.expected_arrival_date_updated';
+    const TREASURY_OUTBOUND_TRANSFER_FAILED = 'treasury.outbound_transfer.failed';
+    const TREASURY_OUTBOUND_TRANSFER_POSTED = 'treasury.outbound_transfer.posted';
+    const TREASURY_OUTBOUND_TRANSFER_RETURNED = 'treasury.outbound_transfer.returned';
+    const TREASURY_RECEIVED_CREDIT_CREATED = 'treasury.received_credit.created';
+    const TREASURY_RECEIVED_CREDIT_FAILED = 'treasury.received_credit.failed';
+    const TREASURY_RECEIVED_CREDIT_SUCCEEDED = 'treasury.received_credit.succeeded';
+    const TREASURY_RECEIVED_DEBIT_CREATED = 'treasury.received_debit.created';
 }

+ 8 - 6
htdocs/includes/stripe/stripe-php/lib/File.php

@@ -20,7 +20,7 @@ namespace Stripe;
  * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
  * @property null|int $expires_at The time at which the file expires and is no longer available in epoch seconds.
  * @property null|string $filename A filename for the file, suitable for saving to a filesystem.
- * @property null|\Stripe\Collection $links A list of <a href="https://stripe.com/docs/api#file_links">file links</a> that point at this file.
+ * @property null|\Stripe\Collection<\Stripe\FileLink> $links A list of <a href="https://stripe.com/docs/api#file_links">file links</a> that point at this file.
  * @property string $purpose The <a href="https://stripe.com/docs/file-upload#uploading-a-file">purpose</a> of the uploaded file.
  * @property int $size The size in bytes of the file object.
  * @property null|string $title A user friendly title for the document.
@@ -34,14 +34,21 @@ class File extends ApiResource
     use ApiOperations\All;
     use ApiOperations\Retrieve;
 
+    const PURPOSE_ACCOUNT_REQUIREMENT = 'account_requirement';
     const PURPOSE_ADDITIONAL_VERIFICATION = 'additional_verification';
     const PURPOSE_BUSINESS_ICON = 'business_icon';
     const PURPOSE_BUSINESS_LOGO = 'business_logo';
     const PURPOSE_CUSTOMER_SIGNATURE = 'customer_signature';
     const PURPOSE_DISPUTE_EVIDENCE = 'dispute_evidence';
+    const PURPOSE_DOCUMENT_PROVIDER_IDENTITY_DOCUMENT = 'document_provider_identity_document';
+    const PURPOSE_FINANCE_REPORT_RUN = 'finance_report_run';
     const PURPOSE_IDENTITY_DOCUMENT = 'identity_document';
+    const PURPOSE_IDENTITY_DOCUMENT_DOWNLOADABLE = 'identity_document_downloadable';
     const PURPOSE_PCI_DOCUMENT = 'pci_document';
+    const PURPOSE_SELFIE = 'selfie';
+    const PURPOSE_SIGMA_SCHEDULED_QUERY = 'sigma_scheduled_query';
     const PURPOSE_TAX_DOCUMENT_USER_UPLOAD = 'tax_document_user_upload';
+    const PURPOSE_TERMINAL_READER_SPLASHSCREEN = 'terminal_reader_splashscreen';
 
     // This resource can have two different object names. In latter API
     // versions, only `file` is used, but since stripe-php may be used with
@@ -53,11 +60,6 @@ class File extends ApiResource
         create as protected _create;
     }
 
-    public static function classUrl()
-    {
-        return '/v1/files';
-    }
-
     /**
      * @param null|array $params
      * @param null|array|string $opts

+ 0 - 6
htdocs/includes/stripe/stripe-php/lib/FileUpload.php

@@ -1,6 +0,0 @@
-<?php
-
-namespace Stripe;
-
-// For backwards compatibility, the `File` class is aliased to `FileUpload`.
-class_alias('Stripe\\File', 'Stripe\\FileUpload');

+ 104 - 0
htdocs/includes/stripe/stripe-php/lib/FinancialConnections/Account.php

@@ -0,0 +1,104 @@
+<?php
+
+// File generated from our OpenAPI spec
+
+namespace Stripe\FinancialConnections;
+
+/**
+ * A Financial Connections Account represents an account that exists outside of
+ * Stripe, to which you have been granted some degree of access.
+ *
+ * @property string $id Unique identifier for the object.
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
+ * @property null|\Stripe\StripeObject $account_holder The account holder that this account belongs to.
+ * @property null|\Stripe\StripeObject $balance The most recent information about the account's balance.
+ * @property null|\Stripe\StripeObject $balance_refresh The state of the most recent attempt to refresh the account balance.
+ * @property string $category The type of the account. Account category is further divided in <code>subcategory</code>.
+ * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
+ * @property null|string $display_name A human-readable name that has been assigned to this account, either by the account holder or by the institution.
+ * @property string $institution_name The name of the institution that holds this account.
+ * @property null|string $last4 The last 4 digits of the account number. If present, this will be 4 numeric characters.
+ * @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.
+ * @property null|string|\Stripe\FinancialConnections\AccountOwnership $ownership The most recent information about the account's owners.
+ * @property null|\Stripe\StripeObject $ownership_refresh The state of the most recent attempt to refresh the account owners.
+ * @property null|string[] $permissions The list of permissions granted by this account.
+ * @property string $status The status of the link to the account.
+ * @property string $subcategory <p>If <code>category</code> is <code>cash</code>, one of:</p><p>- <code>checking</code> - <code>savings</code> - <code>other</code></p><p>If <code>category</code> is <code>credit</code>, one of:</p><p>- <code>mortgage</code> - <code>line_of_credit</code> - <code>credit_card</code> - <code>other</code></p><p>If <code>category</code> is <code>investment</code> or <code>other</code>, this will be <code>other</code>.</p>
+ * @property string[] $supported_payment_method_types The <a href="https://stripe.com/docs/api/payment_methods/object#payment_method_object-type">PaymentMethod type</a>(s) that can be created from this account.
+ */
+class Account extends \Stripe\ApiResource
+{
+    const OBJECT_NAME = 'financial_connections.account';
+
+    use \Stripe\ApiOperations\All;
+    use \Stripe\ApiOperations\Retrieve;
+
+    const CATEGORY_CASH = 'cash';
+    const CATEGORY_CREDIT = 'credit';
+    const CATEGORY_INVESTMENT = 'investment';
+    const CATEGORY_OTHER = 'other';
+
+    const STATUS_ACTIVE = 'active';
+    const STATUS_DISCONNECTED = 'disconnected';
+    const STATUS_INACTIVE = 'inactive';
+
+    const SUBCATEGORY_CHECKING = 'checking';
+    const SUBCATEGORY_CREDIT_CARD = 'credit_card';
+    const SUBCATEGORY_LINE_OF_CREDIT = 'line_of_credit';
+    const SUBCATEGORY_MORTGAGE = 'mortgage';
+    const SUBCATEGORY_OTHER = 'other';
+    const SUBCATEGORY_SAVINGS = 'savings';
+
+    /**
+     * @param null|array $params
+     * @param null|array|string $opts
+     *
+     * @throws \Stripe\Exception\ApiErrorException if the request fails
+     *
+     * @return \Stripe\FinancialConnections\Account the disconnected account
+     */
+    public function disconnect($params = null, $opts = null)
+    {
+        $url = $this->instanceUrl() . '/disconnect';
+        list($response, $opts) = $this->_request('post', $url, $params, $opts);
+        $this->refreshFrom($response, $opts);
+
+        return $this;
+    }
+
+    /**
+     * @param string $id
+     * @param null|array $params
+     * @param null|array|string $opts
+     *
+     * @throws \Stripe\Exception\ApiErrorException if the request fails
+     *
+     * @return \Stripe\Collection<\Stripe\FinancialConnections\AccountOwner> list of BankConnectionsResourceOwners
+     */
+    public static function allOwners($id, $params = null, $opts = null)
+    {
+        $url = static::resourceUrl($id) . '/owners';
+        list($response, $opts) = static::_staticRequest('get', $url, $params, $opts);
+        $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts);
+        $obj->setLastResponse($response);
+
+        return $obj;
+    }
+
+    /**
+     * @param null|array $params
+     * @param null|array|string $opts
+     *
+     * @throws \Stripe\Exception\ApiErrorException if the request fails
+     *
+     * @return \Stripe\FinancialConnections\Account the refreshed account
+     */
+    public function refreshAccount($params = null, $opts = null)
+    {
+        $url = $this->instanceUrl() . '/refresh';
+        list($response, $opts) = $this->_request('post', $url, $params, $opts);
+        $this->refreshFrom($response, $opts);
+
+        return $this;
+    }
+}

+ 20 - 0
htdocs/includes/stripe/stripe-php/lib/FinancialConnections/AccountOwner.php

@@ -0,0 +1,20 @@
+<?php
+
+// File generated from our OpenAPI spec
+
+namespace Stripe\FinancialConnections;
+
+/**
+ * @property string $id Unique identifier for the object.
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
+ * @property null|string $email The email address of the owner.
+ * @property string $name The full name of the owner.
+ * @property string $ownership The ownership object that this owner belongs to.
+ * @property null|string $phone The raw phone number of the owner.
+ * @property null|string $raw_address The raw physical address of the owner.
+ * @property null|int $refreshed_at The timestamp of the refresh that updated this owner.
+ */
+class AccountOwner extends \Stripe\ApiResource
+{
+    const OBJECT_NAME = 'financial_connections.account_owner';
+}

+ 18 - 0
htdocs/includes/stripe/stripe-php/lib/FinancialConnections/AccountOwnership.php

@@ -0,0 +1,18 @@
+<?php
+
+// File generated from our OpenAPI spec
+
+namespace Stripe\FinancialConnections;
+
+/**
+ * Describes a snapshot of the owners of an account at a particular point in time.
+ *
+ * @property string $id Unique identifier for the object.
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
+ * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
+ * @property \Stripe\Collection<\Stripe\FinancialConnections\AccountOwner> $owners A paginated list of owners for this account.
+ */
+class AccountOwnership extends \Stripe\ApiResource
+{
+    const OBJECT_NAME = 'financial_connections.account_ownership';
+}

+ 27 - 0
htdocs/includes/stripe/stripe-php/lib/FinancialConnections/Session.php

@@ -0,0 +1,27 @@
+<?php
+
+// File generated from our OpenAPI spec
+
+namespace Stripe\FinancialConnections;
+
+/**
+ * A Financial Connections Session is the secure way to programmatically launch the
+ * client-side Stripe.js modal that lets your users link their accounts.
+ *
+ * @property string $id Unique identifier for the object.
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
+ * @property null|\Stripe\StripeObject $account_holder The account holder for whom accounts are collected in this session.
+ * @property \Stripe\Collection<\Stripe\FinancialConnections\Account> $accounts The accounts that were collected as part of this Session.
+ * @property string $client_secret A value that will be passed to the client to launch the authentication flow.
+ * @property null|\Stripe\StripeObject $filters
+ * @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.
+ * @property string[] $permissions Permissions requested for accounts collected during this session.
+ * @property null|string $return_url For webview integrations only. Upon completing OAuth login in the native browser, the user will be redirected to this URL to return to your app.
+ */
+class Session extends \Stripe\ApiResource
+{
+    const OBJECT_NAME = 'financial_connections.session';
+
+    use \Stripe\ApiOperations\Create;
+    use \Stripe\ApiOperations\Retrieve;
+}

+ 28 - 0
htdocs/includes/stripe/stripe-php/lib/FundingInstructions.php

@@ -0,0 +1,28 @@
+<?php
+
+// File generated from our OpenAPI spec
+
+namespace Stripe;
+
+/**
+ * Each customer has a <a
+ * href="https://stripe.com/docs/api/customers/object#customer_object-balance"><code>balance</code></a>
+ * that is automatically applied to future invoices and payments using the
+ * <code>customer_balance</code> payment method. Customers can fund this balance by
+ * initiating a bank transfer to any account in the
+ * <code>financial_addresses</code> field. Related guide: <a
+ * href="https://stripe.com/docs/payments/customer-balance/funding-instructions">Customer
+ * Balance - Funding Instructions</a> to learn more.
+ *
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
+ * @property \Stripe\StripeObject $bank_transfer
+ * @property string $currency Three-letter <a href="https://www.iso.org/iso-4217-currency-codes.html">ISO currency code</a>, in lowercase. Must be a <a href="https://stripe.com/docs/currencies">supported currency</a>.
+ * @property string $funding_type The <code>funding_type</code> of the returned instructions
+ * @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.
+ */
+class FundingInstructions extends ApiResource
+{
+    const OBJECT_NAME = 'funding_instructions';
+
+    const FUNDING_TYPE_BANK_TRANSFER = 'bank_transfer';
+}

+ 206 - 18
htdocs/includes/stripe/stripe-php/lib/HttpClient/CurlClient.php

@@ -24,17 +24,17 @@ if (!\defined('CURL_HTTP_VERSION_2TLS')) {
     \define('CURL_HTTP_VERSION_2TLS', 4);
 }
 
-class CurlClient implements ClientInterface
+class CurlClient implements ClientInterface, StreamingClientInterface
 {
-    private static $instance;
+    protected static $instance;
 
     public static function instance()
     {
-        if (!self::$instance) {
-            self::$instance = new self();
+        if (!static::$instance) {
+            static::$instance = new static();
         }
 
-        return self::$instance;
+        return static::$instance;
     }
 
     protected $defaultOptions;
@@ -193,7 +193,7 @@ class CurlClient implements ClientInterface
 
     // END OF USER DEFINED TIMEOUTS
 
-    public function request($method, $absUrl, $headers, $params, $hasFile)
+    private function constructRequest($method, $absUrl, $headers, $params, $hasFile)
     {
         $method = \strtolower($method);
 
@@ -271,20 +271,215 @@ class CurlClient implements ClientInterface
             $opts[\CURLOPT_HTTP_VERSION] = \CURL_HTTP_VERSION_2TLS;
         }
 
-        // Stripe's API servers are only accessible over IPv4. Force IPv4 resolving to avoid
-        // potential issues (cf. https://github.com/stripe/stripe-php/issues/1045).
-        $opts[\CURLOPT_IPRESOLVE] = \CURL_IPRESOLVE_V4;
+        // If the user didn't explicitly specify a CURLOPT_IPRESOLVE option, we
+        // force IPv4 resolving as Stripe's API servers are only accessible over
+        // IPv4 (see. https://github.com/stripe/stripe-php/issues/1045).
+        // We let users specify a custom option in case they need to say proxy
+        // through an IPv6 proxy.
+        if (!isset($opts[\CURLOPT_IPRESOLVE])) {
+            $opts[\CURLOPT_IPRESOLVE] = \CURL_IPRESOLVE_V4;
+        }
+
+        return [$opts, $absUrl];
+    }
+
+    public function request($method, $absUrl, $headers, $params, $hasFile)
+    {
+        list($opts, $absUrl) = $this->constructRequest($method, $absUrl, $headers, $params, $hasFile);
 
         list($rbody, $rcode, $rheaders) = $this->executeRequestWithRetries($opts, $absUrl);
 
         return [$rbody, $rcode, $rheaders];
     }
 
+    public function requestStream($method, $absUrl, $headers, $params, $hasFile, $readBodyChunk)
+    {
+        list($opts, $absUrl) = $this->constructRequest($method, $absUrl, $headers, $params, $hasFile);
+
+        $opts[\CURLOPT_RETURNTRANSFER] = false;
+        list($rbody, $rcode, $rheaders) = $this->executeStreamingRequestWithRetries($opts, $absUrl, $readBodyChunk);
+
+        return [$rbody, $rcode, $rheaders];
+    }
+
+    /**
+     * Curl permits sending \CURLOPT_HEADERFUNCTION, which is called with lines
+     * from the header and \CURLOPT_WRITEFUNCTION, which is called with bytes
+     * from the body. You usually want to handle the body differently depending
+     * on what was in the header.
+     *
+     * This function makes it easier to specify different callbacks depending
+     * on the contents of the heeder. After the header has been completely read
+     * and the body begins to stream, it will call $determineWriteCallback with
+     * the array of headers. $determineWriteCallback should, based on the
+     * headers it receives, return a "writeCallback" that describes what to do
+     * with the incoming HTTP response body.
+     *
+     * @param array $opts
+     * @param callable $determineWriteCallback
+     *
+     * @return array
+     */
+    private function useHeadersToDetermineWriteCallback($opts, $determineWriteCallback)
+    {
+        $rheaders = new Util\CaseInsensitiveArray();
+        $headerCallback = function ($curl, $header_line) use (&$rheaders) {
+            return self::parseLineIntoHeaderArray($header_line, $rheaders);
+        };
+
+        $writeCallback = null;
+        $writeCallbackWrapper = function ($curl, $data) use (&$writeCallback, &$rheaders, &$determineWriteCallback) {
+            if (null === $writeCallback) {
+                $writeCallback = \call_user_func_array($determineWriteCallback, [$rheaders]);
+            }
+
+            return \call_user_func_array($writeCallback, [$curl, $data]);
+        };
+
+        return [$headerCallback, $writeCallbackWrapper];
+    }
+
+    private static function parseLineIntoHeaderArray($line, &$headers)
+    {
+        if (false === \strpos($line, ':')) {
+            return \strlen($line);
+        }
+        list($key, $value) = \explode(':', \trim($line), 2);
+        $headers[\trim($key)] = \trim($value);
+
+        return \strlen($line);
+    }
+
+    /**
+     * Like `executeRequestWithRetries` except:
+     *   1. Does not buffer the body of a successful (status code < 300)
+     *      response into memory -- instead, calls the caller-provided
+     *      $readBodyChunk with each chunk of incoming data.
+     *   2. Does not retry if a network error occurs while streaming the
+     *      body of a successful response.
+     *
+     * @param array $opts cURL options
+     * @param string $absUrl
+     * @param callable $readBodyChunk
+     *
+     * @return array
+     */
+    public function executeStreamingRequestWithRetries($opts, $absUrl, $readBodyChunk)
+    {
+        /** @var bool */
+        $shouldRetry = false;
+        /** @var int */
+        $numRetries = 0;
+
+        // Will contain the bytes of the body of the last request
+        // if it was not successful and should not be retries
+        /** @var null|string */
+        $rbody = null;
+
+        // Status code of the last request
+        /** @var null|bool */
+        $rcode = null;
+
+        // Array of headers from the last request
+        /** @var null|array */
+        $lastRHeaders = null;
+
+        $errno = null;
+        $message = null;
+
+        $determineWriteCallback = function ($rheaders) use (
+            &$readBodyChunk,
+            &$shouldRetry,
+            &$rbody,
+            &$numRetries,
+            &$rcode,
+            &$lastRHeaders,
+            &$errno
+        ) {
+            $lastRHeaders = $rheaders;
+            $errno = \curl_errno($this->curlHandle);
+
+            $rcode = \curl_getinfo($this->curlHandle, \CURLINFO_HTTP_CODE);
+
+            // Send the bytes from the body of a successful request to the caller-provided $readBodyChunk.
+            if ($rcode < 300) {
+                $rbody = null;
+
+                return function ($curl, $data) use (&$readBodyChunk) {
+                    // Don't expose the $curl handle to the user, and don't require them to
+                    // return the length of $data.
+                    \call_user_func_array($readBodyChunk, [$data]);
+
+                    return \strlen($data);
+                };
+            }
+
+            $shouldRetry = $this->shouldRetry($errno, $rcode, $rheaders, $numRetries);
+
+            // Discard the body from an unsuccessful request that should be retried.
+            if ($shouldRetry) {
+                return function ($curl, $data) {
+                    return \strlen($data);
+                };
+            } else {
+                // Otherwise, buffer the body into $rbody. It will need to be parsed to determine
+                // which exception to throw to the user.
+                $rbody = '';
+
+                return function ($curl, $data) use (&$rbody) {
+                    $rbody .= $data;
+
+                    return \strlen($data);
+                };
+            }
+        };
+
+        while (true) {
+            list($headerCallback, $writeCallback) = $this->useHeadersToDetermineWriteCallback($opts, $determineWriteCallback);
+            $opts[\CURLOPT_HEADERFUNCTION] = $headerCallback;
+            $opts[\CURLOPT_WRITEFUNCTION] = $writeCallback;
+
+            $shouldRetry = false;
+            $rbody = null;
+            $this->resetCurlHandle();
+            \curl_setopt_array($this->curlHandle, $opts);
+            $result = \curl_exec($this->curlHandle);
+            $errno = \curl_errno($this->curlHandle);
+            if (0 !== $errno) {
+                $message = \curl_error($this->curlHandle);
+            }
+            if (!$this->getEnablePersistentConnections()) {
+                $this->closeCurlHandle();
+            }
+
+            if (\is_callable($this->getRequestStatusCallback())) {
+                \call_user_func_array(
+                    $this->getRequestStatusCallback(),
+                    [$rbody, $rcode, $lastRHeaders, $errno, $message, $shouldRetry, $numRetries]
+                );
+            }
+
+            if ($shouldRetry) {
+                ++$numRetries;
+                $sleepSeconds = $this->sleepTime($numRetries, $lastRHeaders);
+                \usleep((int) ($sleepSeconds * 1000000));
+            } else {
+                break;
+            }
+        }
+
+        if (0 !== $errno) {
+            $this->handleCurlError($absUrl, $errno, $message, $numRetries);
+        }
+
+        return [$rbody, $rcode, $lastRHeaders];
+    }
+
     /**
      * @param array $opts cURL options
      * @param string $absUrl
      */
-    private function executeRequestWithRetries($opts, $absUrl)
+    public function executeRequestWithRetries($opts, $absUrl)
     {
         $numRetries = 0;
 
@@ -296,14 +491,7 @@ class CurlClient implements ClientInterface
             // Create a callback to capture HTTP headers for the response
             $rheaders = new Util\CaseInsensitiveArray();
             $headerCallback = function ($curl, $header_line) use (&$rheaders) {
-                // Ignore the HTTP request line (HTTP/1.1 200 OK)
-                if (false === \strpos($header_line, ':')) {
-                    return \strlen($header_line);
-                }
-                list($key, $value) = \explode(':', \trim($header_line), 2);
-                $rheaders[\trim($key)] = \trim($value);
-
-                return \strlen($header_line);
+                return CurlClient::parseLineIntoHeaderArray($header_line, $rheaders);
             };
             $opts[\CURLOPT_HEADERFUNCTION] = $headerCallback;
 

+ 23 - 0
htdocs/includes/stripe/stripe-php/lib/HttpClient/StreamingClientInterface.php

@@ -0,0 +1,23 @@
+<?php
+
+namespace Stripe\HttpClient;
+
+interface StreamingClientInterface
+{
+    /**
+     * @param string $method The HTTP method being used
+     * @param string $absUrl The URL being requested, including domain and protocol
+     * @param array $headers Headers to be used in the request (full strings, not KV pairs)
+     * @param array $params KV pairs for parameters. Can be nested for arrays and hashes
+     * @param bool $hasFile Whether or not $params references a file (via an @ prefix or
+     *                         CURLFile)
+     * @param callable $readBodyChunkCallable a function that will be called with chunks of bytes from the body if the request is successful
+     *
+     * @throws \Stripe\Exception\ApiConnectionException
+     * @throws \Stripe\Exception\UnexpectedValueException
+     *
+     * @return array an array whose first element is raw request body, second
+     *    element is HTTP status code and third array of HTTP headers
+     */
+    public function requestStream($method, $absUrl, $headers, $params, $hasFile, $readBodyChunkCallable);
+}

+ 45 - 0
htdocs/includes/stripe/stripe-php/lib/Identity/VerificationReport.php

@@ -0,0 +1,45 @@
+<?php
+
+// File generated from our OpenAPI spec
+
+namespace Stripe\Identity;
+
+/**
+ * A VerificationReport is the result of an attempt to collect and verify data from
+ * a user. The collection of verification checks performed is determined from the
+ * <code>type</code> and <code>options</code> parameters used. You can find the
+ * result of each verification check performed in the appropriate sub-resource:
+ * <code>document</code>, <code>id_number</code>, <code>selfie</code>.
+ *
+ * Each VerificationReport contains a copy of any data collected by the user as
+ * well as reference IDs which can be used to access collected images through the
+ * <a href="https://stripe.com/docs/api/files">FileUpload</a> API. To configure and
+ * create VerificationReports, use the <a
+ * href="https://stripe.com/docs/api/identity/verification_sessions">VerificationSession</a>
+ * API.
+ *
+ * Related guides: <a
+ * href="https://stripe.com/docs/identity/verification-sessions#results">Accessing
+ * verification results</a>.
+ *
+ * @property string $id Unique identifier for the object.
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
+ * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
+ * @property null|\Stripe\StripeObject $document Result from a document check
+ * @property null|\Stripe\StripeObject $id_number Result from an id_number check
+ * @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.
+ * @property \Stripe\StripeObject $options
+ * @property null|\Stripe\StripeObject $selfie Result from a selfie check
+ * @property string $type Type of report.
+ * @property null|string $verification_session ID of the VerificationSession that created this report.
+ */
+class VerificationReport extends \Stripe\ApiResource
+{
+    const OBJECT_NAME = 'identity.verification_report';
+
+    use \Stripe\ApiOperations\All;
+    use \Stripe\ApiOperations\Retrieve;
+
+    const TYPE_DOCUMENT = 'document';
+    const TYPE_ID_NUMBER = 'id_number';
+}

+ 88 - 0
htdocs/includes/stripe/stripe-php/lib/Identity/VerificationSession.php

@@ -0,0 +1,88 @@
+<?php
+
+// File generated from our OpenAPI spec
+
+namespace Stripe\Identity;
+
+/**
+ * A VerificationSession guides you through the process of collecting and verifying
+ * the identities of your users. It contains details about the type of
+ * verification, such as what <a
+ * href="/docs/identity/verification-checks">verification check</a> to perform.
+ * Only create one VerificationSession for each verification in your system.
+ *
+ * A VerificationSession transitions through <a
+ * href="/docs/identity/how-sessions-work">multiple statuses</a> throughout its
+ * lifetime as it progresses through the verification flow. The VerificationSession
+ * contains the user's verified data after verification checks are complete.
+ *
+ * Related guide: <a
+ * href="https://stripe.com/docs/identity/verification-sessions">The Verification
+ * Sessions API</a>
+ *
+ * @property string $id Unique identifier for the object.
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
+ * @property null|string $client_secret The short-lived client secret used by Stripe.js to <a href="https://stripe.com/docs/js/identity/modal">show a verification modal</a> inside your app. This client secret expires after 24 hours and can only be used once. Don’t store it, log it, embed it in a URL, or expose it to anyone other than the user. Make sure that you have TLS enabled on any page that includes the client secret. Refer to our docs on <a href="https://stripe.com/docs/identity/verification-sessions#client-secret">passing the client secret to the frontend</a> to learn more.
+ * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
+ * @property null|\Stripe\StripeObject $last_error If present, this property tells you the last error encountered when processing the verification.
+ * @property null|string|\Stripe\Identity\VerificationReport $last_verification_report ID of the most recent VerificationReport. <a href="https://stripe.com/docs/identity/verification-sessions#results">Learn more about accessing detailed verification results.</a>
+ * @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.
+ * @property \Stripe\StripeObject $metadata Set of <a href="https://stripe.com/docs/api/metadata">key-value pairs</a> that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
+ * @property \Stripe\StripeObject $options
+ * @property null|\Stripe\StripeObject $redaction Redaction status of this VerificationSession. If the VerificationSession is not redacted, this field will be null.
+ * @property string $status Status of this VerificationSession. <a href="https://stripe.com/docs/identity/how-sessions-work">Learn more about the lifecycle of sessions</a>.
+ * @property string $type The type of <a href="https://stripe.com/docs/identity/verification-checks">verification check</a> to be performed.
+ * @property null|string $url The short-lived URL that you use to redirect a user to Stripe to submit their identity information. This URL expires after 48 hours and can only be used once. Don’t store it, log it, send it in emails or expose it to anyone other than the user. Refer to our docs on <a href="https://stripe.com/docs/identity/verify-identity-documents?platform=web&amp;type=redirect">verifying identity documents</a> to learn how to redirect users to Stripe.
+ * @property null|\Stripe\StripeObject $verified_outputs The user’s verified data.
+ */
+class VerificationSession extends \Stripe\ApiResource
+{
+    const OBJECT_NAME = 'identity.verification_session';
+
+    use \Stripe\ApiOperations\All;
+    use \Stripe\ApiOperations\Create;
+    use \Stripe\ApiOperations\Retrieve;
+    use \Stripe\ApiOperations\Update;
+
+    const STATUS_CANCELED = 'canceled';
+    const STATUS_PROCESSING = 'processing';
+    const STATUS_REQUIRES_INPUT = 'requires_input';
+    const STATUS_VERIFIED = 'verified';
+
+    const TYPE_DOCUMENT = 'document';
+    const TYPE_ID_NUMBER = 'id_number';
+
+    /**
+     * @param null|array $params
+     * @param null|array|string $opts
+     *
+     * @throws \Stripe\Exception\ApiErrorException if the request fails
+     *
+     * @return \Stripe\Identity\VerificationSession the canceled verification session
+     */
+    public function cancel($params = null, $opts = null)
+    {
+        $url = $this->instanceUrl() . '/cancel';
+        list($response, $opts) = $this->_request('post', $url, $params, $opts);
+        $this->refreshFrom($response, $opts);
+
+        return $this;
+    }
+
+    /**
+     * @param null|array $params
+     * @param null|array|string $opts
+     *
+     * @throws \Stripe\Exception\ApiErrorException if the request fails
+     *
+     * @return \Stripe\Identity\VerificationSession the redacted verification session
+     */
+    public function redact($params = null, $opts = null)
+    {
+        $url = $this->instanceUrl() . '/redact';
+        list($response, $opts) = $this->_request('post', $url, $params, $opts);
+        $this->refreshFrom($response, $opts);
+
+        return $this;
+    }
+}

+ 103 - 52
htdocs/includes/stripe/stripe-php/lib/Invoice.php

@@ -23,7 +23,7 @@ namespace Stripe;
  * to finalize the invoice.
  *
  * If your invoice is configured to be billed by sending an email, then based on
- * your <a href="https://dashboard.stripe.com/account/billing/automatic'">email
+ * your <a href="https://dashboard.stripe.com/account/billing/automatic">email
  * settings</a>, Stripe will email the invoice to your customer and await payment.
  * These emails can contain a link to a hosted page to pay the invoice.
  *
@@ -32,34 +32,37 @@ namespace Stripe;
  * amount due for the invoice is less than Stripe's <a
  * href="/docs/currencies#minimum-and-maximum-charge-amounts">minimum allowed
  * charge per currency</a>, the invoice is automatically marked paid, and we add
- * the amount due to the customer's running account balance which is applied to the
- * next invoice.
+ * the amount due to the customer's credit balance which is applied to the next
+ * invoice.
  *
- * More details on the customer's account balance are <a
- * href="https://stripe.com/docs/api/customers/object#customer_object-account_balance">here</a>.
+ * More details on the customer's credit balance are <a
+ * href="https://stripe.com/docs/billing/customer/balance">here</a>.
  *
  * Related guide: <a href="https://stripe.com/docs/billing/invoices/sending">Send
  * Invoices to Customers</a>.
  *
- * @property string $id Unique identifier for the object.
+ * @property null|string $id Unique identifier for the object. This property is always present unless the invoice is an upcoming invoice. See <a href="https://stripe.com/docs/api/invoices/upcoming">Retrieve an upcoming invoice</a> for more details.
  * @property string $object String representing the object's type. Objects of the same type share the same value.
  * @property null|string $account_country The country of the business associated with this invoice, most often the business creating the invoice.
  * @property null|string $account_name The public name of the business associated with this invoice, most often the business creating the invoice.
  * @property null|(string|\Stripe\TaxId)[] $account_tax_ids The account tax IDs associated with the invoice. Only editable when the invoice is a draft.
  * @property int $amount_due Final amount due at this time for this invoice. If the invoice's total is smaller than the minimum charge amount, for example, or if there is account credit that can be applied to the invoice, the <code>amount_due</code> may be 0. If there is a positive <code>starting_balance</code> for the invoice (the customer owes money), the <code>amount_due</code> will also take that into account. The charge that gets generated for the invoice will be for the amount specified in <code>amount_due</code>.
  * @property int $amount_paid The amount, in %s, that was paid.
- * @property int $amount_remaining The amount remaining, in %s, that is due.
+ * @property int $amount_remaining The difference between amount_due and amount_paid, in %s.
+ * @property int $amount_shipping This is the sum of all the shipping amounts.
+ * @property null|string|\Stripe\StripeObject $application ID of the Connect Application that created the invoice.
  * @property null|int $application_fee_amount The fee in %s that will be applied to the invoice and transferred to the application owner's Stripe account when the invoice is paid.
  * @property int $attempt_count Number of payment attempts made for this invoice, from the perspective of the payment retry schedule. Any payment attempt counts as the first attempt, and subsequently only automatic retries increment the attempt count. In other words, manual payment attempts after the first attempt do not affect the retry schedule.
  * @property bool $attempted Whether an attempt has been made to pay the invoice. An invoice is not attempted until 1 hour after the <code>invoice.created</code> webhook, for example, so you might not want to display that invoice as unpaid to your users.
- * @property bool $auto_advance Controls whether Stripe will perform <a href="https://stripe.com/docs/billing/invoices/workflow/#auto_advance">automatic collection</a> of the invoice. When <code>false</code>, the invoice's state will not automatically advance without an explicit action.
+ * @property null|bool $auto_advance Controls whether Stripe will perform <a href="https://stripe.com/docs/billing/invoices/workflow/#auto_advance">automatic collection</a> of the invoice. When <code>false</code>, the invoice's state will not automatically advance without an explicit action.
+ * @property \Stripe\StripeObject $automatic_tax
  * @property null|string $billing_reason Indicates the reason why the invoice was created. <code>subscription_cycle</code> indicates an invoice created by a subscription advancing into a new period. <code>subscription_create</code> indicates an invoice created due to creating a subscription. <code>subscription_update</code> indicates an invoice created due to updating a subscription. <code>subscription</code> is set for all old invoices to indicate either a change to a subscription or a period advancement. <code>manual</code> is set for all invoices unrelated to a subscription (for example: created via the invoice editor). The <code>upcoming</code> value is reserved for simulated invoices per the upcoming invoice endpoint. <code>subscription_threshold</code> indicates an invoice created due to a billing threshold being reached.
  * @property null|string|\Stripe\Charge $charge ID of the latest charge generated for this invoice, if any.
- * @property null|string $collection_method Either <code>charge_automatically</code>, or <code>send_invoice</code>. When charging automatically, Stripe will attempt to pay this invoice using the default source attached to the customer. When sending an invoice, Stripe will email this invoice to the customer with payment instructions.
+ * @property string $collection_method Either <code>charge_automatically</code>, or <code>send_invoice</code>. When charging automatically, Stripe will attempt to pay this invoice using the default source attached to the customer. When sending an invoice, Stripe will email this invoice to the customer with payment instructions.
  * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
  * @property string $currency Three-letter <a href="https://www.iso.org/iso-4217-currency-codes.html">ISO currency code</a>, in lowercase. Must be a <a href="https://stripe.com/docs/currencies">supported currency</a>.
  * @property null|\Stripe\StripeObject[] $custom_fields Custom fields displayed on the invoice.
- * @property string|\Stripe\Customer $customer The ID of the customer who will be billed.
+ * @property null|string|\Stripe\Customer $customer The ID of the customer who will be billed.
  * @property null|\Stripe\StripeObject $customer_address The customer's address. Until the invoice is finalized, this field will equal <code>customer.address</code>. Once the invoice is finalized, this field will no longer be updated.
  * @property null|string $customer_email The customer's email. Until the invoice is finalized, this field will equal <code>customer.email</code>. Once the invoice is finalized, this field will no longer be updated.
  * @property null|string $customer_name The customer's name. Until the invoice is finalized, this field will equal <code>customer.name</code>. Once the invoice is finalized, this field will no longer be updated.
@@ -68,7 +71,7 @@ namespace Stripe;
  * @property null|string $customer_tax_exempt The customer's tax exempt status. Until the invoice is finalized, this field will equal <code>customer.tax_exempt</code>. Once the invoice is finalized, this field will no longer be updated.
  * @property null|\Stripe\StripeObject[] $customer_tax_ids The customer's tax IDs. Until the invoice is finalized, this field will contain the same tax IDs as <code>customer.tax_ids</code>. Once the invoice is finalized, this field will no longer be updated.
  * @property null|string|\Stripe\PaymentMethod $default_payment_method ID of the default payment method for the invoice. It must belong to the customer associated with the invoice. If not set, defaults to the subscription's default payment method, if any, or to the default payment method in the customer's invoice settings.
- * @property null|string|\Stripe\Account|\Stripe\AlipayAccount|\Stripe\BankAccount|\Stripe\BitcoinReceiver|\Stripe\Card|\Stripe\Source $default_source ID of the default payment source for the invoice. It must belong to the customer associated with the invoice and be in a chargeable state. If not set, defaults to the subscription's default source, if any, or to the customer's default source.
+ * @property null|string|\Stripe\Account|\Stripe\BankAccount|\Stripe\Card|\Stripe\Source $default_source ID of the default payment source for the invoice. It must belong to the customer associated with the invoice and be in a chargeable state. If not set, defaults to the subscription's default source, if any, or to the customer's default source.
  * @property \Stripe\TaxRate[] $default_tax_rates The tax rates applied to this invoice, if any.
  * @property null|string $description An arbitrary string attached to the object. Often useful for displaying to users. Referenced as 'memo' in the Dashboard.
  * @property null|\Stripe\Discount $discount Describes the current discount applied to this invoice, if there is one. Not populated if there are multiple discounts.
@@ -76,33 +79,46 @@ namespace Stripe;
  * @property null|int $due_date The date on which payment for this invoice is due. This value will be <code>null</code> for invoices where <code>collection_method=charge_automatically</code>.
  * @property null|int $ending_balance Ending customer balance after the invoice is finalized. Invoices are finalized approximately an hour after successful webhook delivery or when payment collection is attempted for the invoice. If the invoice has not been finalized yet, this will be null.
  * @property null|string $footer Footer displayed on the invoice.
+ * @property null|\Stripe\StripeObject $from_invoice Details of the invoice that was cloned. See the <a href="https://stripe.com/docs/invoicing/invoice-revisions">revision documentation</a> for more details.
  * @property null|string $hosted_invoice_url The URL for the hosted invoice page, which allows customers to view and pay an invoice. If the invoice has not been finalized yet, this will be null.
  * @property null|string $invoice_pdf The link to download the PDF for the invoice. If the invoice has not been finalized yet, this will be null.
- * @property null|\Stripe\ErrorObject $last_finalization_error The error encountered during the previous attempt to finalize the invoice. This field is cleared when the invoice is successfully finalized.
- * @property \Stripe\Collection $lines The individual line items that make up the invoice. <code>lines</code> is sorted as follows: invoice items in reverse chronological order, followed by the subscription, if any.
+ * @property null|\Stripe\StripeObject $last_finalization_error The error encountered during the previous attempt to finalize the invoice. This field is cleared when the invoice is successfully finalized.
+ * @property null|string|\Stripe\Invoice $latest_revision The ID of the most recent non-draft revision of this invoice
+ * @property \Stripe\Collection<\Stripe\InvoiceLineItem> $lines The individual line items that make up the invoice. <code>lines</code> is sorted as follows: (1) pending invoice items (including prorations) in reverse chronological order, (2) subscription items in reverse chronological order, and (3) invoice items added after invoice creation in chronological order.
  * @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.
  * @property null|\Stripe\StripeObject $metadata Set of <a href="https://stripe.com/docs/api/metadata">key-value pairs</a> that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  * @property null|int $next_payment_attempt The time at which payment will next be attempted. This value will be <code>null</code> for invoices where <code>collection_method=send_invoice</code>.
  * @property null|string $number A unique, identifying string that appears on emails sent to the customer for this invoice. This starts with the customer's unique invoice_prefix if it is specified.
+ * @property null|string|\Stripe\Account $on_behalf_of The account (if any) for which the funds of the invoice payment are intended. If set, the invoice will be presented with the branding and support information of the specified account. See the <a href="https://stripe.com/docs/billing/invoices/connect">Invoices with Connect</a> documentation for details.
  * @property bool $paid Whether payment was successfully collected for this invoice. An invoice can be paid (most commonly) with a charge or with credit from the customer's account balance.
+ * @property bool $paid_out_of_band Returns true if the invoice was manually marked paid, returns false if the invoice hasn't been paid yet or was paid on Stripe.
  * @property null|string|\Stripe\PaymentIntent $payment_intent The PaymentIntent associated with this invoice. The PaymentIntent is generated when the invoice is finalized, and can then be used to pay the invoice. Note that voiding an invoice will cancel the PaymentIntent.
+ * @property \Stripe\StripeObject $payment_settings
  * @property int $period_end End of the usage period during which invoice items were added to this invoice.
  * @property int $period_start Start of the usage period during which invoice items were added to this invoice.
  * @property int $post_payment_credit_notes_amount Total amount of all post-payment credit notes issued for this invoice.
  * @property int $pre_payment_credit_notes_amount Total amount of all pre-payment credit notes issued for this invoice.
+ * @property null|string|\Stripe\Quote $quote The quote this invoice was generated from.
  * @property null|string $receipt_number This is the transaction number that appears on email receipts sent for this invoice.
- * @property int $starting_balance Starting customer balance before the invoice is finalized. If the invoice has not been finalized yet, this will be the current customer balance.
+ * @property null|\Stripe\StripeObject $rendering_options Options for invoice PDF rendering.
+ * @property null|\Stripe\StripeObject $shipping_cost The details of the cost of shipping, including the ShippingRate applied on the invoice.
+ * @property null|\Stripe\StripeObject $shipping_details Shipping details for the invoice. The Invoice PDF will use the <code>shipping_details</code> value if it is set, otherwise the PDF will render the shipping address from the customer.
+ * @property int $starting_balance Starting customer balance before the invoice is finalized. If the invoice has not been finalized yet, this will be the current customer balance. For revision invoices, this also includes any customer balance that was applied to the original invoice.
  * @property null|string $statement_descriptor Extra information about an invoice for the customer's credit card statement.
  * @property null|string $status The status of the invoice, one of <code>draft</code>, <code>open</code>, <code>paid</code>, <code>uncollectible</code>, or <code>void</code>. <a href="https://stripe.com/docs/billing/invoices/workflow#workflow-overview">Learn more</a>
  * @property \Stripe\StripeObject $status_transitions
  * @property null|string|\Stripe\Subscription $subscription The subscription that this invoice was prepared for, if any.
- * @property int $subscription_proration_date Only set for upcoming invoices that preview prorations. The time used to calculate prorations.
- * @property int $subtotal Total of all subscriptions, invoice items, and prorations on the invoice before any invoice level discount or tax is applied. Item discounts are already incorporated
+ * @property null|int $subscription_proration_date Only set for upcoming invoices that preview prorations. The time used to calculate prorations.
+ * @property int $subtotal Total of all subscriptions, invoice items, and prorations on the invoice before any invoice level discount or exclusive tax is applied. Item discounts are already incorporated
+ * @property null|int $subtotal_excluding_tax The integer amount in %s representing the subtotal of the invoice before any invoice level discount or tax is applied. Item discounts are already incorporated
  * @property null|int $tax The amount of tax on this invoice. This is the sum of all the tax amounts on this invoice.
- * @property \Stripe\StripeObject $threshold_reason
+ * @property null|string|\Stripe\TestHelpers\TestClock $test_clock ID of the test clock this invoice belongs to.
+ * @property null|\Stripe\StripeObject $threshold_reason
  * @property int $total Total after discounts and taxes.
  * @property null|\Stripe\StripeObject[] $total_discount_amounts The aggregate amounts calculated per discount across all line items.
+ * @property null|int $total_excluding_tax The integer amount in %s representing the total amount of the invoice including all discounts but excluding all tax.
  * @property \Stripe\StripeObject[] $total_tax_amounts The aggregate amounts calculated per tax rate for all line items.
+ * @property null|\Stripe\StripeObject $transfer_data The account (if any) the payment will be attributed to for tax reporting, and where funds from the payment will be transferred to for the invoice.
  * @property null|int $webhooks_delivered_at Invoices are automatically paid or sent 1 hour after webhooks are delivered, or until all webhook delivery attempts have <a href="https://stripe.com/docs/billing/webhooks#understand">been exhausted</a>. This field tracks the time when webhooks for this invoice were successfully delivered. If the invoice had no webhooks to deliver, this will be set while the invoice is being created.
  */
 class Invoice extends ApiResource
@@ -112,13 +128,17 @@ class Invoice extends ApiResource
     use ApiOperations\All;
     use ApiOperations\Create;
     use ApiOperations\Delete;
+    use ApiOperations\NestedResource;
     use ApiOperations\Retrieve;
+    use ApiOperations\Search;
     use ApiOperations\Update;
 
     const BILLING_CHARGE_AUTOMATICALLY = 'charge_automatically';
     const BILLING_SEND_INVOICE = 'send_invoice';
 
+    const BILLING_REASON_AUTOMATIC_PENDING_INVOICE_ITEM_INVOICE = 'automatic_pending_invoice_item_invoice';
     const BILLING_REASON_MANUAL = 'manual';
+    const BILLING_REASON_QUOTE_ACCEPT = 'quote_accept';
     const BILLING_REASON_SUBSCRIPTION = 'subscription';
     const BILLING_REASON_SUBSCRIPTION_CREATE = 'subscription_create';
     const BILLING_REASON_SUBSCRIPTION_CYCLE = 'subscription_cycle';
@@ -136,40 +156,38 @@ class Invoice extends ApiResource
     const STATUS_UNCOLLECTIBLE = 'uncollectible';
     const STATUS_VOID = 'void';
 
-    use ApiOperations\NestedResource;
-
-    const PATH_LINES = '/lines';
-
     /**
      * @param null|array $params
      * @param null|array|string $opts
      *
      * @throws \Stripe\Exception\ApiErrorException if the request fails
      *
-     * @return \Stripe\Invoice the upcoming invoice
+     * @return \Stripe\Invoice the finalized invoice
      */
-    public static function upcoming($params = null, $opts = null)
+    public function finalizeInvoice($params = null, $opts = null)
     {
-        $url = static::classUrl() . '/upcoming';
-        list($response, $opts) = static::_staticRequest('get', $url, $params, $opts);
-        $obj = Util\Util::convertToStripeObject($response->json, $opts);
-        $obj->setLastResponse($response);
+        $url = $this->instanceUrl() . '/finalize';
+        list($response, $opts) = $this->_request('post', $url, $params, $opts);
+        $this->refreshFrom($response, $opts);
 
-        return $obj;
+        return $this;
     }
 
     /**
-     * @param string $id the ID of the invoice on which to retrieve the lines
      * @param null|array $params
      * @param null|array|string $opts
      *
-     * @throws StripeExceptionApiErrorException if the request fails
+     * @throws \Stripe\Exception\ApiErrorException if the request fails
      *
-     * @return \Stripe\Collection the list of lines (InvoiceLineItem)
+     * @return \Stripe\Invoice the uncollectible invoice
      */
-    public static function allLines($id, $params = null, $opts = null)
+    public function markUncollectible($params = null, $opts = null)
     {
-        return self::_allNestedResources($id, static::PATH_LINES, $params, $opts);
+        $url = $this->instanceUrl() . '/mark_uncollectible';
+        list($response, $opts) = $this->_request('post', $url, $params, $opts);
+        $this->refreshFrom($response, $opts);
+
+        return $this;
     }
 
     /**
@@ -178,11 +196,11 @@ class Invoice extends ApiResource
      *
      * @throws \Stripe\Exception\ApiErrorException if the request fails
      *
-     * @return Invoice the finalized invoice
+     * @return \Stripe\Invoice the paid invoice
      */
-    public function finalizeInvoice($params = null, $opts = null)
+    public function pay($params = null, $opts = null)
     {
-        $url = $this->instanceUrl() . '/finalize';
+        $url = $this->instanceUrl() . '/pay';
         list($response, $opts) = $this->_request('post', $url, $params, $opts);
         $this->refreshFrom($response, $opts);
 
@@ -195,11 +213,11 @@ class Invoice extends ApiResource
      *
      * @throws \Stripe\Exception\ApiErrorException if the request fails
      *
-     * @return Invoice the uncollectible invoice
+     * @return \Stripe\Invoice the sent invoice
      */
-    public function markUncollectible($params = null, $opts = null)
+    public function sendInvoice($params = null, $opts = null)
     {
-        $url = $this->instanceUrl() . '/mark_uncollectible';
+        $url = $this->instanceUrl() . '/send';
         list($response, $opts) = $this->_request('post', $url, $params, $opts);
         $this->refreshFrom($response, $opts);
 
@@ -212,15 +230,16 @@ class Invoice extends ApiResource
      *
      * @throws \Stripe\Exception\ApiErrorException if the request fails
      *
-     * @return Invoice the paid invoice
+     * @return \Stripe\Invoice the upcoming invoice
      */
-    public function pay($params = null, $opts = null)
+    public static function upcoming($params = null, $opts = null)
     {
-        $url = $this->instanceUrl() . '/pay';
-        list($response, $opts) = $this->_request('post', $url, $params, $opts);
-        $this->refreshFrom($response, $opts);
+        $url = static::classUrl() . '/upcoming';
+        list($response, $opts) = static::_staticRequest('get', $url, $params, $opts);
+        $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts);
+        $obj->setLastResponse($response);
 
-        return $this;
+        return $obj;
     }
 
     /**
@@ -229,15 +248,16 @@ class Invoice extends ApiResource
      *
      * @throws \Stripe\Exception\ApiErrorException if the request fails
      *
-     * @return Invoice the sent invoice
+     * @return \Stripe\Collection<\Stripe\InvoiceLineItem> list of InvoiceLineItems
      */
-    public function sendInvoice($params = null, $opts = null)
+    public static function upcomingLines($params = null, $opts = null)
     {
-        $url = $this->instanceUrl() . '/send';
-        list($response, $opts) = $this->_request('post', $url, $params, $opts);
-        $this->refreshFrom($response, $opts);
+        $url = static::classUrl() . '/upcoming/lines';
+        list($response, $opts) = static::_staticRequest('get', $url, $params, $opts);
+        $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts);
+        $obj->setLastResponse($response);
 
-        return $this;
+        return $obj;
     }
 
     /**
@@ -246,7 +266,7 @@ class Invoice extends ApiResource
      *
      * @throws \Stripe\Exception\ApiErrorException if the request fails
      *
-     * @return Invoice the voided invoice
+     * @return \Stripe\Invoice the voided invoice
      */
     public function voidInvoice($params = null, $opts = null)
     {
@@ -256,4 +276,35 @@ class Invoice extends ApiResource
 
         return $this;
     }
+
+    /**
+     * @param null|array $params
+     * @param null|array|string $opts
+     *
+     * @throws \Stripe\Exception\ApiErrorException if the request fails
+     *
+     * @return \Stripe\SearchResult<Invoice> the invoice search results
+     */
+    public static function search($params = null, $opts = null)
+    {
+        $url = '/v1/invoices/search';
+
+        return self::_searchResource($url, $params, $opts);
+    }
+
+    const PATH_LINES = '/lines';
+
+    /**
+     * @param string $id the ID of the invoice on which to retrieve the line items
+     * @param null|array $params
+     * @param null|array|string $opts
+     *
+     * @throws \Stripe\Exception\ApiErrorException if the request fails
+     *
+     * @return \Stripe\Collection<\Stripe\LineItem> the list of line items
+     */
+    public static function allLines($id, $params = null, $opts = null)
+    {
+        return self::_allNestedResources($id, static::PATH_LINES, $params, $opts);
+    }
 }

+ 20 - 6
htdocs/includes/stripe/stripe-php/lib/InvoiceItem.php

@@ -5,12 +5,25 @@
 namespace Stripe;
 
 /**
- * Sometimes you want to add a charge or credit to a customer, but actually charge
- * or credit the customer's card only at the end of a regular billing cycle. This
- * is useful for combining several charges (to minimize per-transaction fees), or
- * for having Stripe tabulate your usage-based billing totals.
+ * Invoice Items represent the component lines of an <a
+ * href="https://stripe.com/docs/api/invoices">invoice</a>. An invoice item is
+ * added to an invoice by creating or updating it with an <code>invoice</code>
+ * field, at which point it will be included as <a
+ * href="https://stripe.com/docs/api/invoices/line_item">an invoice line item</a>
+ * within <a
+ * href="https://stripe.com/docs/api/invoices/object#invoice_object-lines">invoice.lines</a>.
  *
- * Related guide: <a
+ * Invoice Items can be created before you are ready to actually send the invoice.
+ * This can be particularly useful when combined with a <a
+ * href="https://stripe.com/docs/api/subscriptions">subscription</a>. Sometimes you
+ * want to add a charge or credit to a customer, but actually charge or credit the
+ * customer’s card only at the end of a regular billing cycle. This is useful for
+ * combining several charges (to minimize per-transaction fees), or for having
+ * Stripe tabulate your usage-based billing totals.
+ *
+ * Related guides: <a
+ * href="https://stripe.com/docs/invoicing/integration">Integrate with the
+ * Invoicing API</a>, <a
  * href="https://stripe.com/docs/billing/invoices/subscription#adding-upcoming-invoice-items">Subscription
  * Invoices</a>.
  *
@@ -32,8 +45,9 @@ namespace Stripe;
  * @property bool $proration Whether the invoice item was created automatically as a proration adjustment when the customer switched plans.
  * @property int $quantity Quantity of units for the invoice item. If the invoice item is a proration, the quantity of the subscription that the proration was computed for.
  * @property null|string|\Stripe\Subscription $subscription The subscription that this invoice item has been created for, if any.
- * @property string $subscription_item The subscription item that this invoice item has been created for, if any.
+ * @property null|string $subscription_item The subscription item that this invoice item has been created for, if any.
  * @property null|\Stripe\TaxRate[] $tax_rates The tax rates which apply to the invoice item. When set, the <code>default_tax_rates</code> on the invoice do not apply to this invoice item.
+ * @property null|string|\Stripe\TestHelpers\TestClock $test_clock ID of the test clock this invoice item belongs to.
  * @property null|int $unit_amount Unit amount (in the <code>currency</code> specified) of the invoice item.
  * @property null|string $unit_amount_decimal Same as <code>unit_amount</code>, but contains a decimal value with at most 12 decimal places.
  */

+ 7 - 4
htdocs/includes/stripe/stripe-php/lib/InvoiceLineItem.php

@@ -8,24 +8,27 @@ namespace Stripe;
  * @property string $id Unique identifier for the object.
  * @property string $object String representing the object's type. Objects of the same type share the same value.
  * @property int $amount The amount, in %s.
+ * @property null|int $amount_excluding_tax The integer amount in %s representing the amount for this line item, excluding all tax and discounts.
  * @property string $currency Three-letter <a href="https://www.iso.org/iso-4217-currency-codes.html">ISO currency code</a>, in lowercase. Must be a <a href="https://stripe.com/docs/currencies">supported currency</a>.
  * @property null|string $description An arbitrary string attached to the object. Often useful for displaying to users.
  * @property null|\Stripe\StripeObject[] $discount_amounts The amount of discount calculated per discount for this line item.
  * @property bool $discountable If true, discounts will apply to this line item. Always false for prorations.
  * @property null|(string|\Stripe\Discount)[] $discounts The discounts applied to the invoice line item. Line item discounts are applied before invoice discounts. Use <code>expand[]=discounts</code> to expand each discount.
- * @property string $invoice_item The ID of the <a href="https://stripe.com/docs/api/invoiceitems">invoice item</a> associated with this line item if any.
+ * @property null|string $invoice_item The ID of the <a href="https://stripe.com/docs/api/invoiceitems">invoice item</a> associated with this line item if any.
  * @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.
  * @property \Stripe\StripeObject $metadata Set of <a href="https://stripe.com/docs/api/metadata">key-value pairs</a> that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Note that for line items with <code>type=subscription</code> this will reflect the metadata of the subscription that caused the line item to be created.
  * @property \Stripe\StripeObject $period
  * @property null|\Stripe\Plan $plan The plan of the subscription, if the line item is a subscription or a proration.
  * @property null|\Stripe\Price $price The price of the line item.
  * @property bool $proration Whether this is a proration.
+ * @property null|\Stripe\StripeObject $proration_details Additional details for proration line items
  * @property null|int $quantity The quantity of the subscription, if the line item is a subscription or a proration.
  * @property null|string $subscription The subscription that the invoice item pertains to, if any.
- * @property string $subscription_item The subscription item that generated this invoice item. Left empty if the line item is not an explicit result of a subscription.
- * @property \Stripe\StripeObject[] $tax_amounts The amount of tax calculated per tax rate for this line item
- * @property \Stripe\TaxRate[] $tax_rates The tax rates which apply to the line item.
+ * @property null|string $subscription_item The subscription item that generated this line item. Left empty if the line item is not an explicit result of a subscription.
+ * @property null|\Stripe\StripeObject[] $tax_amounts The amount of tax calculated per tax rate for this line item
+ * @property null|\Stripe\TaxRate[] $tax_rates The tax rates which apply to the line item.
  * @property string $type A string identifying the type of the source of this line item, either an <code>invoiceitem</code> or a <code>subscription</code>.
+ * @property null|string $unit_amount_excluding_tax The amount in %s representing the unit amount for this line item, excluding all tax and discounts.
  */
 class InvoiceLineItem extends ApiResource
 {

+ 0 - 24
htdocs/includes/stripe/stripe-php/lib/IssuerFraudRecord.php

@@ -1,24 +0,0 @@
-<?php
-
-namespace Stripe;
-
-/**
- * Class IssuerFraudRecord
- *
- * @property string $id
- * @property string $object
- * @property string $charge
- * @property int $created
- * @property int $post_date
- * @property string $fraud_type
- * @property bool $livemode
- *
- * @package Stripe
- */
-class IssuerFraudRecord extends ApiResource
-{
-    const OBJECT_NAME = "issuer_fraud_record";
-
-    use ApiOperations\All;
-    use ApiOperations\Retrieve;
-}

+ 6 - 4
htdocs/includes/stripe/stripe-php/lib/Issuing/Authorization.php

@@ -30,12 +30,14 @@ namespace Stripe\Issuing;
  * @property string $merchant_currency The currency that was presented to the cardholder for the authorization. Three-letter <a href="https://www.iso.org/iso-4217-currency-codes.html">ISO currency code</a>, in lowercase. Must be a <a href="https://stripe.com/docs/currencies">supported currency</a>.
  * @property \Stripe\StripeObject $merchant_data
  * @property \Stripe\StripeObject $metadata Set of <a href="https://stripe.com/docs/api/metadata">key-value pairs</a> that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
+ * @property null|\Stripe\StripeObject $network_data Details about the authorization, such as identifiers, set by the card network.
  * @property null|\Stripe\StripeObject $pending_request The pending authorization request. This field will only be non-null during an <code>issuing_authorization.request</code> webhook.
- * @property \Stripe\StripeObject[] $request_history History of every time the authorization was approved/denied (whether approved/denied by you directly or by Stripe based on your <code>spending_controls</code>). If the merchant changes the authorization by performing an <a href="https://stripe.com/docs/issuing/purchases/authorizations">incremental authorization or partial capture</a>, you can look at this field to see the previous states of the authorization.
+ * @property \Stripe\StripeObject[] $request_history History of every time a <code>pending_request</code> authorization was approved/declined, either by you directly or by Stripe (e.g. based on your spending_controls). If the merchant changes the authorization by performing an incremental authorization, you can look at this field to see the previous requests for the authorization. This field can be helpful in determining why a given authorization was approved/declined.
  * @property string $status The current status of the authorization in its lifecycle.
  * @property \Stripe\Issuing\Transaction[] $transactions List of <a href="https://stripe.com/docs/api/issuing/transactions">transactions</a> associated with this authorization.
+ * @property null|\Stripe\StripeObject $treasury <a href="https://stripe.com/docs/api/treasury">Treasury</a> details related to this authorization if it was created on a <a href="https://stripe.com/docs/api/treasury/financial_accounts">FinancialAccount</a>.
  * @property \Stripe\StripeObject $verification_data
- * @property null|string $wallet What, if any, digital wallet was used for this authorization. One of <code>apple_pay</code>, <code>google_pay</code>, or <code>samsung_pay</code>.
+ * @property null|string $wallet The digital wallet used for this transaction. One of <code>apple_pay</code>, <code>google_pay</code>, or <code>samsung_pay</code>. Will populate as <code>null</code> when no digital wallet was utilized.
  */
 class Authorization extends \Stripe\ApiResource
 {
@@ -51,7 +53,7 @@ class Authorization extends \Stripe\ApiResource
      *
      * @throws \Stripe\Exception\ApiErrorException if the request fails
      *
-     * @return Authorization the approved authorization
+     * @return \Stripe\Issuing\Authorization the approved authorization
      */
     public function approve($params = null, $opts = null)
     {
@@ -68,7 +70,7 @@ class Authorization extends \Stripe\ApiResource
      *
      * @throws \Stripe\Exception\ApiErrorException if the request fails
      *
-     * @return Authorization the declined authorization
+     * @return \Stripe\Issuing\Authorization the declined authorization
      */
     public function decline($params = null, $opts = null)
     {

+ 6 - 22
htdocs/includes/stripe/stripe-php/lib/Issuing/Card.php

@@ -14,21 +14,23 @@ namespace Stripe\Issuing;
  * @property null|string $cancellation_reason The reason why the card was canceled.
  * @property \Stripe\Issuing\Cardholder $cardholder <p>An Issuing <code>Cardholder</code> object represents an individual or business entity who is <a href="https://stripe.com/docs/issuing">issued</a> cards.</p><p>Related guide: <a href="https://stripe.com/docs/issuing/cards#create-cardholder">How to create a Cardholder</a></p>
  * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
- * @property string $currency Three-letter <a href="https://www.iso.org/iso-4217-currency-codes.html">ISO currency code</a>, in lowercase. Must be a <a href="https://stripe.com/docs/currencies">supported currency</a>.
- * @property string $cvc The card's CVC. For security reasons, this is only available for virtual cards, and will be omitted unless you explicitly request it with <a href="https://stripe.com/docs/api/expanding_objects">the <code>expand</code> parameter</a>. Additionally, it's only available via the <a href="https://stripe.com/docs/api/issuing/cards/retrieve">&quot;Retrieve a card&quot; endpoint</a>, not via &quot;List all cards&quot; or any other endpoint.
+ * @property string $currency Three-letter <a href="https://www.iso.org/iso-4217-currency-codes.html">ISO currency code</a>, in lowercase. Supported currencies are <code>usd</code> in the US, <code>eur</code> in the EU, and <code>gbp</code> in the UK.
+ * @property null|string $cvc The card's CVC. For security reasons, this is only available for virtual cards, and will be omitted unless you explicitly request it with <a href="https://stripe.com/docs/api/expanding_objects">the <code>expand</code> parameter</a>. Additionally, it's only available via the <a href="https://stripe.com/docs/api/issuing/cards/retrieve">&quot;Retrieve a card&quot; endpoint</a>, not via &quot;List all cards&quot; or any other endpoint.
  * @property int $exp_month The expiration month of the card.
  * @property int $exp_year The expiration year of the card.
+ * @property null|string $financial_account The financial account this card is attached to.
  * @property string $last4 The last 4 digits of the card number.
  * @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.
  * @property \Stripe\StripeObject $metadata Set of <a href="https://stripe.com/docs/api/metadata">key-value pairs</a> that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
- * @property string $number The full unredacted card number. For security reasons, this is only available for virtual cards, and will be omitted unless you explicitly request it with <a href="https://stripe.com/docs/api/expanding_objects">the <code>expand</code> parameter</a>. Additionally, it's only available via the <a href="https://stripe.com/docs/api/issuing/cards/retrieve">&quot;Retrieve a card&quot; endpoint</a>, not via &quot;List all cards&quot; or any other endpoint.
+ * @property null|string $number The full unredacted card number. For security reasons, this is only available for virtual cards, and will be omitted unless you explicitly request it with <a href="https://stripe.com/docs/api/expanding_objects">the <code>expand</code> parameter</a>. Additionally, it's only available via the <a href="https://stripe.com/docs/api/issuing/cards/retrieve">&quot;Retrieve a card&quot; endpoint</a>, not via &quot;List all cards&quot; or any other endpoint.
  * @property null|string|\Stripe\Issuing\Card $replaced_by The latest card that replaces this card, if any.
  * @property null|string|\Stripe\Issuing\Card $replacement_for The card this card replaces, if any.
  * @property null|string $replacement_reason The reason why the previous card needed to be replaced.
  * @property null|\Stripe\StripeObject $shipping Where and how the card will be shipped.
  * @property \Stripe\StripeObject $spending_controls
- * @property string $status Whether authorizations can be approved on this card.
+ * @property string $status Whether authorizations can be approved on this card. May be blocked from activating cards depending on past-due Cardholder requirements. Defaults to <code>inactive</code>.
  * @property string $type The type of the card.
+ * @property null|\Stripe\StripeObject $wallets Information relating to digital wallets (like Apple Pay and Google Pay).
  */
 class Card extends \Stripe\ApiResource
 {
@@ -38,22 +40,4 @@ class Card extends \Stripe\ApiResource
     use \Stripe\ApiOperations\Create;
     use \Stripe\ApiOperations\Retrieve;
     use \Stripe\ApiOperations\Update;
-
-    /**
-     * @param null|array $params
-     * @param null|array|string $opts
-     *
-     * @throws \Stripe\Exception\ApiErrorException if the request fails
-     *
-     * @return \Stripe\Issuing\CardDetails the card details associated with that issuing card
-     */
-    public function details($params = null, $opts = null)
-    {
-        $url = $this->instanceUrl() . '/details';
-        list($response, $opts) = $this->_request('get', $url, $params, $opts);
-        $obj = \Stripe\Util\Util::convertToStripeObject($response, $opts);
-        $obj->setLastResponse($response);
-
-        return $obj;
-    }
 }

+ 1 - 1
htdocs/includes/stripe/stripe-php/lib/Issuing/Cardholder.php

@@ -22,7 +22,7 @@ namespace Stripe\Issuing;
  * @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.
  * @property \Stripe\StripeObject $metadata Set of <a href="https://stripe.com/docs/api/metadata">key-value pairs</a> that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  * @property string $name The cardholder's name. This will be printed on cards issued to them.
- * @property null|string $phone_number The cardholder's phone number.
+ * @property null|string $phone_number The cardholder's phone number. This is required for all cardholders who will be creating EU cards. See the <a href="https://stripe.com/docs/issuing/3d-secure#when-is-3d-secure-applied">3D Secure documentation</a> for more details.
  * @property \Stripe\StripeObject $requirements
  * @property null|\Stripe\StripeObject $spending_controls Rules that control spending across this cardholder's cards. Refer to our <a href="https://stripe.com/docs/issuing/controls/spending-controls">documentation</a> for more details.
  * @property string $status Specifies whether to permit authorizations on this cardholder's cards.

+ 4 - 3
htdocs/includes/stripe/stripe-php/lib/Issuing/Dispute.php

@@ -15,15 +15,16 @@ namespace Stripe\Issuing;
  *
  * @property string $id Unique identifier for the object.
  * @property string $object String representing the object's type. Objects of the same type share the same value.
- * @property int $amount Disputed amount. Usually the amount of the <code>disputed_transaction</code>, but can differ (usually because of currency fluctuation).
+ * @property int $amount Disputed amount in the card's currency and in the <a href="https://stripe.com/docs/currencies#zero-decimal">smallest currency unit</a>. Usually the amount of the <code>transaction</code>, but can differ (usually because of currency fluctuation).
  * @property null|\Stripe\BalanceTransaction[] $balance_transactions List of balance transactions associated with the dispute.
  * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
- * @property string $currency The currency the <code>disputed_transaction</code> was made in.
+ * @property string $currency The currency the <code>transaction</code> was made in.
  * @property \Stripe\StripeObject $evidence
  * @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.
  * @property \Stripe\StripeObject $metadata Set of <a href="https://stripe.com/docs/api/metadata">key-value pairs</a> that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  * @property string $status Current status of the dispute.
  * @property string|\Stripe\Issuing\Transaction $transaction The transaction being disputed.
+ * @property null|\Stripe\StripeObject $treasury <a href="https://stripe.com/docs/api/treasury">Treasury</a> details related to this dispute if it was created on a [FinancialAccount](/docs/api/treasury/financial_accounts
  */
 class Dispute extends \Stripe\ApiResource
 {
@@ -40,7 +41,7 @@ class Dispute extends \Stripe\ApiResource
      *
      * @throws \Stripe\Exception\ApiErrorException if the request fails
      *
-     * @return Dispute the submited dispute
+     * @return \Stripe\Issuing\Dispute the submited dispute
      */
     public function submit($params = null, $opts = null)
     {

+ 2 - 0
htdocs/includes/stripe/stripe-php/lib/Issuing/Transaction.php

@@ -31,7 +31,9 @@ namespace Stripe\Issuing;
  * @property \Stripe\StripeObject $merchant_data
  * @property \Stripe\StripeObject $metadata Set of <a href="https://stripe.com/docs/api/metadata">key-value pairs</a> that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  * @property null|\Stripe\StripeObject $purchase_details Additional purchase information that is optionally provided by the merchant.
+ * @property null|\Stripe\StripeObject $treasury <a href="https://stripe.com/docs/api/treasury">Treasury</a> details related to this transaction if it was created on a [FinancialAccount](/docs/api/treasury/financial_accounts
  * @property string $type The nature of the transaction.
+ * @property null|string $wallet The digital wallet used for this transaction. One of <code>apple_pay</code>, <code>google_pay</code>, or <code>samsung_pay</code>.
  */
 class Transaction extends \Stripe\ApiResource
 {

+ 7 - 7
htdocs/includes/stripe/stripe-php/lib/LineItem.php

@@ -9,18 +9,18 @@ namespace Stripe;
  *
  * @property string $id Unique identifier for the object.
  * @property string $object String representing the object's type. Objects of the same type share the same value.
- * @property null|int $amount_subtotal Total before any discounts or taxes is applied.
- * @property null|int $amount_total Total after discounts and taxes.
+ * @property int $amount_discount Total discount amount applied. If no discounts were applied, defaults to 0.
+ * @property int $amount_subtotal Total before any discounts or taxes are applied.
+ * @property int $amount_tax Total tax amount applied. If no tax was applied, defaults to 0.
+ * @property int $amount_total Total after discounts and taxes.
  * @property string $currency Three-letter <a href="https://www.iso.org/iso-4217-currency-codes.html">ISO currency code</a>, in lowercase. Must be a <a href="https://stripe.com/docs/currencies">supported currency</a>.
  * @property string $description An arbitrary string attached to the object. Often useful for displaying to users. Defaults to product name.
- * @property \Stripe\StripeObject[] $discounts The discounts applied to the line item.
- * @property \Stripe\Price $price <p>Prices define the unit cost, currency, and (optional) billing cycle for both recurring and one-time purchases of products. <a href="https://stripe.com/docs/api#products">Products</a> help you track inventory or provisioning, and prices help you track payment terms. Different physical goods or levels of service should be represented by products, and pricing options should be represented by prices. This approach lets you change prices without having to change your provisioning scheme.</p><p>For example, you might have a single &quot;gold&quot; product that has prices for $10/month, $100/year, and €9 once.</p><p>Related guides: <a href="https://stripe.com/docs/billing/subscriptions/set-up-subscription">Set up a subscription</a>, <a href="https://stripe.com/docs/billing/invoices/create">create an invoice</a>, and more about <a href="https://stripe.com/docs/billing/prices-guide">products and prices</a>.</p>
+ * @property null|\Stripe\StripeObject[] $discounts The discounts applied to the line item.
+ * @property null|\Stripe\Price $price The price used to generate the line item.
  * @property null|int $quantity The quantity of products being purchased.
- * @property \Stripe\StripeObject[] $taxes The taxes applied to the line item.
+ * @property null|\Stripe\StripeObject[] $taxes The taxes applied to the line item.
  */
 class LineItem extends ApiResource
 {
     const OBJECT_NAME = 'item';
-
-    use ApiOperations\All;
 }

+ 2 - 2
htdocs/includes/stripe/stripe-php/lib/Mandate.php

@@ -12,10 +12,10 @@ namespace Stripe;
  * @property string $object String representing the object's type. Objects of the same type share the same value.
  * @property \Stripe\StripeObject $customer_acceptance
  * @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.
- * @property \Stripe\StripeObject $multi_use
+ * @property null|\Stripe\StripeObject $multi_use
  * @property string|\Stripe\PaymentMethod $payment_method ID of the payment method associated with this mandate.
  * @property \Stripe\StripeObject $payment_method_details
- * @property \Stripe\StripeObject $single_use
+ * @property null|\Stripe\StripeObject $single_use
  * @property string $status The status of the mandate, which indicates whether it can be used to initiate a payment.
  * @property string $type The type of the mandate.
  */

+ 0 - 81
htdocs/includes/stripe/stripe-php/lib/Order.php

@@ -1,81 +0,0 @@
-<?php
-
-// File generated from our OpenAPI spec
-
-namespace Stripe;
-
-/**
- * Order objects are created to handle end customers' purchases of previously
- * defined <a href="https://stripe.com/docs/api#products">products</a>. You can
- * create, retrieve, and pay individual orders, as well as list all orders. Orders
- * are identified by a unique, random ID.
- *
- * Related guide: <a href="https://stripe.com/docs/orders">Tax, Shipping, and
- * Inventory</a>.
- *
- * @property string $id Unique identifier for the object.
- * @property string $object String representing the object's type. Objects of the same type share the same value.
- * @property int $amount A positive integer in the smallest currency unit (that is, 100 cents for $1.00, or 1 for ¥1, Japanese Yen being a zero-decimal currency) representing the total amount for the order.
- * @property null|int $amount_returned The total amount that was returned to the customer.
- * @property null|string $application ID of the Connect Application that created the order.
- * @property null|int $application_fee A fee in cents that will be applied to the order and transferred to the application owner’s Stripe account. The request must be made with an OAuth key or the Stripe-Account header in order to take an application fee. For more information, see the application fees documentation.
- * @property null|string|\Stripe\Charge $charge The ID of the payment used to pay for the order. Present if the order status is <code>paid</code>, <code>fulfilled</code>, or <code>refunded</code>.
- * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
- * @property string $currency Three-letter <a href="https://www.iso.org/iso-4217-currency-codes.html">ISO currency code</a>, in lowercase. Must be a <a href="https://stripe.com/docs/currencies">supported currency</a>.
- * @property null|string|\Stripe\Customer $customer The customer used for the order.
- * @property null|string $email The email address of the customer placing the order.
- * @property string $external_coupon_code External coupon code to load for this order.
- * @property \Stripe\OrderItem[] $items List of items constituting the order. An order can have up to 25 items.
- * @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.
- * @property null|\Stripe\StripeObject $metadata Set of <a href="https://stripe.com/docs/api/metadata">key-value pairs</a> that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
- * @property null|\Stripe\Collection $returns A list of returns that have taken place for this order.
- * @property null|string $selected_shipping_method The shipping method that is currently selected for this order, if any. If present, it is equal to one of the <code>id</code>s of shipping methods in the <code>shipping_methods</code> array. At order creation time, if there are multiple shipping methods, Stripe will automatically selected the first method.
- * @property null|\Stripe\StripeObject $shipping The shipping address for the order. Present if the order is for goods to be shipped.
- * @property null|\Stripe\StripeObject[] $shipping_methods A list of supported shipping methods for this order. The desired shipping method can be specified either by updating the order, or when paying it.
- * @property string $status Current order status. One of <code>created</code>, <code>paid</code>, <code>canceled</code>, <code>fulfilled</code>, or <code>returned</code>. More details in the <a href="https://stripe.com/docs/orders/guide#understanding-order-statuses">Orders Guide</a>.
- * @property null|\Stripe\StripeObject $status_transitions The timestamps at which the order status was updated.
- * @property null|int $updated Time at which the object was last updated. Measured in seconds since the Unix epoch.
- * @property string $upstream_id The user's order ID if it is different from the Stripe order ID.
- */
-class Order extends ApiResource
-{
-    const OBJECT_NAME = 'order';
-
-    use ApiOperations\All;
-    use ApiOperations\Create;
-    use ApiOperations\Retrieve;
-    use ApiOperations\Update;
-
-    /**
-     * @param null|array $params
-     * @param null|array|string $opts
-     *
-     * @throws \Stripe\Exception\ApiErrorException if the request fails
-     *
-     * @return \Stripe\OrderReturn the newly created return
-     */
-    public function returnOrder($params = null, $opts = null)
-    {
-        $url = $this->instanceUrl() . '/returns';
-        list($response, $opts) = $this->_request('post', $url, $params, $opts);
-
-        return Util\Util::convertToStripeObject($response, $opts);
-    }
-
-    /**
-     * @param null|array $params
-     * @param null|array|string $opts
-     *
-     * @throws \Stripe\Exception\ApiErrorException if the request fails
-     *
-     * @return Order the paid order
-     */
-    public function pay($params = null, $opts = null)
-    {
-        $url = $this->instanceUrl() . '/pay';
-        list($response, $opts) = $this->_request('post', $url, $params, $opts);
-        $this->refreshFrom($response, $opts);
-
-        return $this;
-    }
-}

+ 0 - 19
htdocs/includes/stripe/stripe-php/lib/OrderItem.php

@@ -1,19 +0,0 @@
-<?php
-
-namespace Stripe;
-
-/**
- * Class OrderItem.
- *
- * @property string $object
- * @property int $amount
- * @property string $currency
- * @property string $description
- * @property string $parent
- * @property int $quantity
- * @property string $type
- */
-class OrderItem extends StripeObject
-{
-    const OBJECT_NAME = 'order_item';
-}

+ 0 - 32
htdocs/includes/stripe/stripe-php/lib/OrderReturn.php

@@ -1,32 +0,0 @@
-<?php
-
-// File generated from our OpenAPI spec
-
-namespace Stripe;
-
-/**
- * A return represents the full or partial return of a number of <a
- * href="https://stripe.com/docs/api#order_items">order items</a>. Returns always
- * belong to an order, and may optionally contain a refund.
- *
- * Related guide: <a
- * href="https://stripe.com/docs/orders/guide#handling-returns">Handling
- * Returns</a>.
- *
- * @property string $id Unique identifier for the object.
- * @property string $object String representing the object's type. Objects of the same type share the same value.
- * @property int $amount A positive integer in the smallest currency unit (that is, 100 cents for $1.00, or 1 for ¥1, Japanese Yen being a zero-decimal currency) representing the total amount for the returned line item.
- * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
- * @property string $currency Three-letter <a href="https://www.iso.org/iso-4217-currency-codes.html">ISO currency code</a>, in lowercase. Must be a <a href="https://stripe.com/docs/currencies">supported currency</a>.
- * @property \Stripe\OrderItem[] $items The items included in this order return.
- * @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.
- * @property null|string|\Stripe\Order $order The order that this return includes items from.
- * @property null|string|\Stripe\Refund $refund The ID of the refund issued for this return.
- */
-class OrderReturn extends ApiResource
-{
-    const OBJECT_NAME = 'order_return';
-
-    use ApiOperations\All;
-    use ApiOperations\Retrieve;
-}

+ 77 - 7
htdocs/includes/stripe/stripe-php/lib/PaymentIntent.php

@@ -22,21 +22,23 @@ namespace Stripe;
  * @property string $object String representing the object's type. Objects of the same type share the same value.
  * @property int $amount Amount intended to be collected by this PaymentIntent. A positive integer representing how much to charge in the <a href="https://stripe.com/docs/currencies#zero-decimal">smallest currency unit</a> (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency). The minimum amount is $0.50 US or <a href="https://stripe.com/docs/currencies#minimum-and-maximum-charge-amounts">equivalent in charge currency</a>. The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99).
  * @property int $amount_capturable Amount that can be captured from this PaymentIntent.
+ * @property null|\Stripe\StripeObject $amount_details
  * @property int $amount_received Amount that was collected by this PaymentIntent.
  * @property null|string|\Stripe\StripeObject $application ID of the Connect application that created the PaymentIntent.
  * @property null|int $application_fee_amount The amount of the application fee (if any) that will be requested to be applied to the payment and transferred to the application owner's Stripe account. The amount of the application fee collected will be capped at the total payment amount. For more information, see the PaymentIntents <a href="https://stripe.com/docs/payments/connected-accounts">use case for connected accounts</a>.
+ * @property null|\Stripe\StripeObject $automatic_payment_methods Settings to configure compatible payment methods from the <a href="https://dashboard.stripe.com/settings/payment_methods">Stripe Dashboard</a>
  * @property null|int $canceled_at Populated when <code>status</code> is <code>canceled</code>, this is the time at which the PaymentIntent was canceled. Measured in seconds since the Unix epoch.
  * @property null|string $cancellation_reason Reason for cancellation of this PaymentIntent, either user-provided (<code>duplicate</code>, <code>fraudulent</code>, <code>requested_by_customer</code>, or <code>abandoned</code>) or generated by Stripe internally (<code>failed_invoice</code>, <code>void_invoice</code>, or <code>automatic</code>).
  * @property string $capture_method Controls when the funds will be captured from the customer's account.
- * @property \Stripe\Collection $charges Charges that were created by this PaymentIntent, if any.
- * @property null|string $client_secret <p>The client secret of this PaymentIntent. Used for client-side retrieval using a publishable key.</p><p>The client secret can be used to complete a payment from your frontend. It should not be stored, logged, embedded in URLs, or exposed to anyone other than the customer. Make sure that you have TLS enabled on any page that includes the client secret.</p><p>Refer to our docs to <a href="https://stripe.com/docs/payments/accept-a-payment?integration=elements">accept a payment</a> and learn about how <code>client_secret</code> should be handled.</p>
+ * @property null|string $client_secret <p>The client secret of this PaymentIntent. Used for client-side retrieval using a publishable key.</p><p>The client secret can be used to complete a payment from your frontend. It should not be stored, logged, or exposed to anyone other than the customer. Make sure that you have TLS enabled on any page that includes the client secret.</p><p>Refer to our docs to <a href="https://stripe.com/docs/payments/accept-a-payment?ui=elements">accept a payment</a> and learn about how <code>client_secret</code> should be handled.</p>
  * @property string $confirmation_method
  * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
  * @property string $currency Three-letter <a href="https://www.iso.org/iso-4217-currency-codes.html">ISO currency code</a>, in lowercase. Must be a <a href="https://stripe.com/docs/currencies">supported currency</a>.
  * @property null|string|\Stripe\Customer $customer <p>ID of the Customer this PaymentIntent belongs to, if one exists.</p><p>Payment methods attached to other Customers cannot be used with this PaymentIntent.</p><p>If present in combination with <a href="https://stripe.com/docs/api#payment_intent_object-setup_future_usage">setup_future_usage</a>, this PaymentIntent's payment method will be attached to the Customer after the PaymentIntent has been confirmed and any required actions from the user are complete.</p>
  * @property null|string $description An arbitrary string attached to the object. Often useful for displaying to users.
  * @property null|string|\Stripe\Invoice $invoice ID of the invoice that created this PaymentIntent, if it exists.
- * @property null|\Stripe\ErrorObject $last_payment_error The payment error encountered in the previous PaymentIntent confirmation. It will be cleared if the PaymentIntent is later updated for any reason.
+ * @property null|\Stripe\StripeObject $last_payment_error The payment error encountered in the previous PaymentIntent confirmation. It will be cleared if the PaymentIntent is later updated for any reason.
+ * @property null|string|\Stripe\Charge $latest_charge The latest charge created by this payment intent.
  * @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.
  * @property \Stripe\StripeObject $metadata Set of <a href="https://stripe.com/docs/api/metadata">key-value pairs</a> that you can attach to an object. This can be useful for storing additional information about the object in a structured format. For more information, see the <a href="https://stripe.com/docs/payments/payment-intents/creating-payment-intents#storing-information-in-metadata">documentation</a>.
  * @property null|\Stripe\StripeObject $next_action If present, this property tells you what actions you need to take in order for your customer to fulfill a payment using the provided source.
@@ -44,11 +46,12 @@ namespace Stripe;
  * @property null|string|\Stripe\PaymentMethod $payment_method ID of the payment method used in this PaymentIntent.
  * @property null|\Stripe\StripeObject $payment_method_options Payment-method-specific configuration for this PaymentIntent.
  * @property string[] $payment_method_types The list of payment method types (e.g. card) that this PaymentIntent is allowed to use.
+ * @property null|\Stripe\StripeObject $processing If present, this property tells you about the processing state of the payment.
  * @property null|string $receipt_email Email address that the receipt for the resulting payment will be sent to. If <code>receipt_email</code> is specified for a payment in live mode, a receipt will be sent regardless of your <a href="https://dashboard.stripe.com/account/emails">email settings</a>.
  * @property null|string|\Stripe\Review $review ID of the review associated with this PaymentIntent, if any.
  * @property null|string $setup_future_usage <p>Indicates that you intend to make future payments with this PaymentIntent's payment method.</p><p>Providing this parameter will <a href="https://stripe.com/docs/payments/save-during-payment">attach the payment method</a> to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be <a href="https://stripe.com/docs/api/payment_methods/attach">attached</a> to a Customer after the transaction completes.</p><p>When processing card payments, Stripe also uses <code>setup_future_usage</code> to dynamically optimize your payment flow and comply with regional legislation and network rules, such as <a href="https://stripe.com/docs/strong-customer-authentication">SCA</a>.</p>
  * @property null|\Stripe\StripeObject $shipping Shipping information for this PaymentIntent.
- * @property null|string|\Stripe\Account|\Stripe\AlipayAccount|\Stripe\BankAccount|\Stripe\BitcoinReceiver|\Stripe\Card|\Stripe\Source $source This is a legacy field that will be removed in the future. It is the ID of the Source object that is associated with this PaymentIntent, if one was supplied.
+ * @property null|string|\Stripe\Account|\Stripe\BankAccount|\Stripe\Card|\Stripe\Source $source This is a legacy field that will be removed in the future. It is the ID of the Source object that is associated with this PaymentIntent, if one was supplied.
  * @property null|string $statement_descriptor For non-card charges, you can use this value as the complete description that appears on your customers’ statements. Must contain at least one letter, maximum 22 characters.
  * @property null|string $statement_descriptor_suffix Provides information about a card payment that customers see on their statements. Concatenated with the prefix (shortened descriptor) or statement descriptor that’s set on the account to form the complete statement descriptor. Maximum 22 characters for the concatenated descriptor.
  * @property string $status Status of this PaymentIntent, one of <code>requires_payment_method</code>, <code>requires_confirmation</code>, <code>requires_action</code>, <code>processing</code>, <code>requires_capture</code>, <code>canceled</code>, or <code>succeeded</code>. Read more about each PaymentIntent <a href="https://stripe.com/docs/payments/intents#intent-statuses">status</a>.
@@ -62,6 +65,7 @@ class PaymentIntent extends ApiResource
     use ApiOperations\All;
     use ApiOperations\Create;
     use ApiOperations\Retrieve;
+    use ApiOperations\Search;
     use ApiOperations\Update;
 
     const STATUS_CANCELED = 'canceled';
@@ -78,7 +82,24 @@ class PaymentIntent extends ApiResource
      *
      * @throws \Stripe\Exception\ApiErrorException if the request fails
      *
-     * @return PaymentIntent the canceled payment intent
+     * @return \Stripe\PaymentIntent the applied payment intent
+     */
+    public function applyCustomerBalance($params = null, $opts = null)
+    {
+        $url = $this->instanceUrl() . '/apply_customer_balance';
+        list($response, $opts) = $this->_request('post', $url, $params, $opts);
+        $this->refreshFrom($response, $opts);
+
+        return $this;
+    }
+
+    /**
+     * @param null|array $params
+     * @param null|array|string $opts
+     *
+     * @throws \Stripe\Exception\ApiErrorException if the request fails
+     *
+     * @return \Stripe\PaymentIntent the canceled payment intent
      */
     public function cancel($params = null, $opts = null)
     {
@@ -95,7 +116,7 @@ class PaymentIntent extends ApiResource
      *
      * @throws \Stripe\Exception\ApiErrorException if the request fails
      *
-     * @return PaymentIntent the captured payment intent
+     * @return \Stripe\PaymentIntent the captured payment intent
      */
     public function capture($params = null, $opts = null)
     {
@@ -112,7 +133,7 @@ class PaymentIntent extends ApiResource
      *
      * @throws \Stripe\Exception\ApiErrorException if the request fails
      *
-     * @return PaymentIntent the confirmed payment intent
+     * @return \Stripe\PaymentIntent the confirmed payment intent
      */
     public function confirm($params = null, $opts = null)
     {
@@ -122,4 +143,53 @@ class PaymentIntent extends ApiResource
 
         return $this;
     }
+
+    /**
+     * @param null|array $params
+     * @param null|array|string $opts
+     *
+     * @throws \Stripe\Exception\ApiErrorException if the request fails
+     *
+     * @return \Stripe\PaymentIntent the incremented payment intent
+     */
+    public function incrementAuthorization($params = null, $opts = null)
+    {
+        $url = $this->instanceUrl() . '/increment_authorization';
+        list($response, $opts) = $this->_request('post', $url, $params, $opts);
+        $this->refreshFrom($response, $opts);
+
+        return $this;
+    }
+
+    /**
+     * @param null|array $params
+     * @param null|array|string $opts
+     *
+     * @throws \Stripe\Exception\ApiErrorException if the request fails
+     *
+     * @return \Stripe\PaymentIntent the verified payment intent
+     */
+    public function verifyMicrodeposits($params = null, $opts = null)
+    {
+        $url = $this->instanceUrl() . '/verify_microdeposits';
+        list($response, $opts) = $this->_request('post', $url, $params, $opts);
+        $this->refreshFrom($response, $opts);
+
+        return $this;
+    }
+
+    /**
+     * @param null|array $params
+     * @param null|array|string $opts
+     *
+     * @throws \Stripe\Exception\ApiErrorException if the request fails
+     *
+     * @return \Stripe\SearchResult<PaymentIntent> the payment intent search results
+     */
+    public static function search($params = null, $opts = null)
+    {
+        $url = '/v1/payment_intents/search';
+
+        return self::_searchResource($url, $params, $opts);
+    }
 }

+ 92 - 0
htdocs/includes/stripe/stripe-php/lib/PaymentLink.php

@@ -0,0 +1,92 @@
+<?php
+
+// File generated from our OpenAPI spec
+
+namespace Stripe;
+
+/**
+ * A payment link is a shareable URL that will take your customers to a hosted
+ * payment page. A payment link can be shared and used multiple times.
+ *
+ * When a customer opens a payment link it will open a new <a
+ * href="https://stripe.com/docs/api/checkout/sessions">checkout session</a> to
+ * render the payment page. You can use <a
+ * href="https://stripe.com/docs/api/events/types#event_types-checkout.session.completed">checkout
+ * session events</a> to track payments through payment links.
+ *
+ * Related guide: <a
+ * href="https://stripe.com/docs/payments/payment-links/api">Payment Links API</a>
+ *
+ * @property string $id Unique identifier for the object.
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
+ * @property bool $active Whether the payment link's <code>url</code> is active. If <code>false</code>, customers visiting the URL will be shown a page saying that the link has been deactivated.
+ * @property \Stripe\StripeObject $after_completion
+ * @property bool $allow_promotion_codes Whether user redeemable promotion codes are enabled.
+ * @property null|int $application_fee_amount The amount of the application fee (if any) that will be requested to be applied to the payment and transferred to the application owner's Stripe account.
+ * @property null|float $application_fee_percent This represents the percentage of the subscription invoice subtotal that will be transferred to the application owner's Stripe account.
+ * @property \Stripe\StripeObject $automatic_tax
+ * @property string $billing_address_collection Configuration for collecting the customer's billing address.
+ * @property null|\Stripe\StripeObject $consent_collection When set, provides configuration to gather active consent from customers.
+ * @property string $currency Three-letter <a href="https://www.iso.org/iso-4217-currency-codes.html">ISO currency code</a>, in lowercase. Must be a <a href="https://stripe.com/docs/currencies">supported currency</a>.
+ * @property \Stripe\StripeObject[] $custom_fields Collect additional information from your customer using custom fields. Up to 2 fields are supported.
+ * @property \Stripe\StripeObject $custom_text
+ * @property string $customer_creation Configuration for Customer creation during checkout.
+ * @property null|\Stripe\StripeObject $invoice_creation Configuration for creating invoice for payment mode payment links.
+ * @property null|\Stripe\Collection<\Stripe\LineItem> $line_items The line items representing what is being sold.
+ * @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.
+ * @property \Stripe\StripeObject $metadata Set of <a href="https://stripe.com/docs/api/metadata">key-value pairs</a> that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
+ * @property null|string|\Stripe\Account $on_behalf_of The account on behalf of which to charge. See the <a href="https://support.stripe.com/questions/sending-invoices-on-behalf-of-connected-accounts">Connect documentation</a> for details.
+ * @property null|\Stripe\StripeObject $payment_intent_data Indicates the parameters to be passed to PaymentIntent creation during checkout.
+ * @property string $payment_method_collection Configuration for collecting a payment method during checkout.
+ * @property null|string[] $payment_method_types The list of payment method types that customers can use. When <code>null</code>, Stripe will dynamically show relevant payment methods you've enabled in your <a href="https://dashboard.stripe.com/settings/payment_methods">payment method settings</a>.
+ * @property \Stripe\StripeObject $phone_number_collection
+ * @property null|\Stripe\StripeObject $shipping_address_collection Configuration for collecting the customer's shipping address.
+ * @property \Stripe\StripeObject[] $shipping_options The shipping rate options applied to the session.
+ * @property string $submit_type Indicates the type of transaction being performed which customizes relevant text on the page, such as the submit button.
+ * @property null|\Stripe\StripeObject $subscription_data When creating a subscription, the specified configuration data will be used. There must be at least one line item with a recurring price to use <code>subscription_data</code>.
+ * @property \Stripe\StripeObject $tax_id_collection
+ * @property null|\Stripe\StripeObject $transfer_data The account (if any) the payments will be attributed to for tax reporting, and where funds from each payment will be transferred to.
+ * @property string $url The public URL that can be shared with customers.
+ */
+class PaymentLink extends ApiResource
+{
+    const OBJECT_NAME = 'payment_link';
+
+    use ApiOperations\All;
+    use ApiOperations\Create;
+    use ApiOperations\Retrieve;
+    use ApiOperations\Update;
+
+    const BILLING_ADDRESS_COLLECTION_AUTO = 'auto';
+    const BILLING_ADDRESS_COLLECTION_REQUIRED = 'required';
+
+    const CUSTOMER_CREATION_ALWAYS = 'always';
+    const CUSTOMER_CREATION_IF_REQUIRED = 'if_required';
+
+    const PAYMENT_METHOD_COLLECTION_ALWAYS = 'always';
+    const PAYMENT_METHOD_COLLECTION_IF_REQUIRED = 'if_required';
+
+    const SUBMIT_TYPE_AUTO = 'auto';
+    const SUBMIT_TYPE_BOOK = 'book';
+    const SUBMIT_TYPE_DONATE = 'donate';
+    const SUBMIT_TYPE_PAY = 'pay';
+
+    /**
+     * @param string $id
+     * @param null|array $params
+     * @param null|array|string $opts
+     *
+     * @throws \Stripe\Exception\ApiErrorException if the request fails
+     *
+     * @return \Stripe\Collection<\Stripe\LineItem> list of LineItems
+     */
+    public static function allLineItems($id, $params = null, $opts = null)
+    {
+        $url = static::resourceUrl($id) . '/line_items';
+        list($response, $opts) = static::_staticRequest('get', $url, $params, $opts);
+        $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts);
+        $obj->setLastResponse($response);
+
+        return $obj;
+    }
+}

+ 37 - 22
htdocs/includes/stripe/stripe-php/lib/PaymentMethod.php

@@ -5,11 +5,11 @@
 namespace Stripe;
 
 /**
- * PaymentMethod objects represent your customer's payment instruments. They can be
- * used with <a
+ * PaymentMethod objects represent your customer's payment instruments. You can use
+ * them with <a
  * href="https://stripe.com/docs/payments/payment-intents">PaymentIntents</a> to
- * collect payments or saved to Customer objects to store instrument details for
- * future payments.
+ * collect payments or save them to Customer objects to store instrument details
+ * for future payments.
  *
  * Related guides: <a
  * href="https://stripe.com/docs/payments/payment-methods">Payment Methods</a> and
@@ -18,28 +18,43 @@ namespace Stripe;
  *
  * @property string $id Unique identifier for the object.
  * @property string $object String representing the object's type. Objects of the same type share the same value.
- * @property \Stripe\StripeObject $alipay
- * @property \Stripe\StripeObject $au_becs_debit
- * @property \Stripe\StripeObject $bacs_debit
- * @property \Stripe\StripeObject $bancontact
+ * @property null|\Stripe\StripeObject $acss_debit
+ * @property null|\Stripe\StripeObject $affirm
+ * @property null|\Stripe\StripeObject $afterpay_clearpay
+ * @property null|\Stripe\StripeObject $alipay
+ * @property null|\Stripe\StripeObject $au_becs_debit
+ * @property null|\Stripe\StripeObject $bacs_debit
+ * @property null|\Stripe\StripeObject $bancontact
  * @property \Stripe\StripeObject $billing_details
- * @property \Stripe\StripeObject $card
- * @property \Stripe\StripeObject $card_present
+ * @property null|\Stripe\StripeObject $blik
+ * @property null|\Stripe\StripeObject $boleto
+ * @property null|\Stripe\StripeObject $card
+ * @property null|\Stripe\StripeObject $card_present
  * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
  * @property null|string|\Stripe\Customer $customer The ID of the Customer to which this PaymentMethod is saved. This will not be set when the PaymentMethod has not been saved to a Customer.
- * @property \Stripe\StripeObject $eps
- * @property \Stripe\StripeObject $fpx
- * @property \Stripe\StripeObject $giropay
- * @property \Stripe\StripeObject $grabpay
- * @property \Stripe\StripeObject $ideal
- * @property \Stripe\StripeObject $interac_present
+ * @property null|\Stripe\StripeObject $customer_balance
+ * @property null|\Stripe\StripeObject $eps
+ * @property null|\Stripe\StripeObject $fpx
+ * @property null|\Stripe\StripeObject $giropay
+ * @property null|\Stripe\StripeObject $grabpay
+ * @property null|\Stripe\StripeObject $ideal
+ * @property null|\Stripe\StripeObject $interac_present
+ * @property null|\Stripe\StripeObject $klarna
+ * @property null|\Stripe\StripeObject $konbini
+ * @property null|\Stripe\StripeObject $link
  * @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.
  * @property null|\Stripe\StripeObject $metadata Set of <a href="https://stripe.com/docs/api/metadata">key-value pairs</a> that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
- * @property \Stripe\StripeObject $oxxo
- * @property \Stripe\StripeObject $p24
- * @property \Stripe\StripeObject $sepa_debit
- * @property \Stripe\StripeObject $sofort
+ * @property null|\Stripe\StripeObject $oxxo
+ * @property null|\Stripe\StripeObject $p24
+ * @property null|\Stripe\StripeObject $paynow
+ * @property null|\Stripe\StripeObject $pix
+ * @property null|\Stripe\StripeObject $promptpay
+ * @property null|\Stripe\StripeObject $radar_options Options to configure Radar. See <a href="https://stripe.com/docs/radar/radar-session">Radar Session</a> for more information.
+ * @property null|\Stripe\StripeObject $sepa_debit
+ * @property null|\Stripe\StripeObject $sofort
  * @property string $type The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a name matching this value. It contains additional information specific to the PaymentMethod type.
+ * @property null|\Stripe\StripeObject $us_bank_account
+ * @property null|\Stripe\StripeObject $wechat_pay
  */
 class PaymentMethod extends ApiResource
 {
@@ -56,7 +71,7 @@ class PaymentMethod extends ApiResource
      *
      * @throws \Stripe\Exception\ApiErrorException if the request fails
      *
-     * @return PaymentMethod the attached payment method
+     * @return \Stripe\PaymentMethod the attached payment method
      */
     public function attach($params = null, $opts = null)
     {
@@ -73,7 +88,7 @@ class PaymentMethod extends ApiResource
      *
      * @throws \Stripe\Exception\ApiErrorException if the request fails
      *
-     * @return PaymentMethod the detached payment method
+     * @return \Stripe\PaymentMethod the detached payment method
      */
     public function detach($params = null, $opts = null)
     {

+ 4 - 2
htdocs/includes/stripe/stripe-php/lib/Payout.php

@@ -53,7 +53,9 @@ class Payout extends ApiResource
     const FAILURE_COULD_NOT_PROCESS = 'could_not_process';
     const FAILURE_DEBIT_NOT_AUTHORIZED = 'debit_not_authorized';
     const FAILURE_DECLINED = 'declined';
+    const FAILURE_INCORRECT_ACCOUNT_HOLDER_ADDRESS = 'incorrect_account_holder_address';
     const FAILURE_INCORRECT_ACCOUNT_HOLDER_NAME = 'incorrect_account_holder_name';
+    const FAILURE_INCORRECT_ACCOUNT_HOLDER_TAX_ID = 'incorrect_account_holder_tax_id';
     const FAILURE_INSUFFICIENT_FUNDS = 'insufficient_funds';
     const FAILURE_INVALID_ACCOUNT_NUMBER = 'invalid_account_number';
     const FAILURE_INVALID_CURRENCY = 'invalid_currency';
@@ -78,7 +80,7 @@ class Payout extends ApiResource
      *
      * @throws \Stripe\Exception\ApiErrorException if the request fails
      *
-     * @return Payout the canceled payout
+     * @return \Stripe\Payout the canceled payout
      */
     public function cancel($params = null, $opts = null)
     {
@@ -95,7 +97,7 @@ class Payout extends ApiResource
      *
      * @throws \Stripe\Exception\ApiErrorException if the request fails
      *
-     * @return Payout the reversed payout
+     * @return \Stripe\Payout the reversed payout
      */
     public function reverse($params = null, $opts = null)
     {

+ 22 - 9
htdocs/includes/stripe/stripe-php/lib/Person.php

@@ -7,35 +7,48 @@ namespace Stripe;
 /**
  * This is an object representing a person associated with a Stripe account.
  *
+ * A platform cannot access a Standard or Express account's persons after the
+ * account starts onboarding, such as after generating an account link for the
+ * account. See the <a
+ * href="https://stripe.com/docs/connect/standard-accounts">Standard onboarding</a>
+ * or <a href="https://stripe.com/docs/connect/express-accounts">Express onboarding
+ * documentation</a> for information about platform pre-filling and account
+ * onboarding steps.
+ *
  * Related guide: <a
  * href="https://stripe.com/docs/connect/identity-verification-api#person-information">Handling
  * Identity Verification with the API</a>.
  *
  * @property string $id Unique identifier for the object.
  * @property string $object String representing the object's type. Objects of the same type share the same value.
- * @property string $account The account the person is associated with.
- * @property \Stripe\StripeObject $address
+ * @property null|string $account The account the person is associated with.
+ * @property null|\Stripe\StripeObject $address
  * @property null|\Stripe\StripeObject $address_kana The Kana variation of the person's address (Japan only).
  * @property null|\Stripe\StripeObject $address_kanji The Kanji variation of the person's address (Japan only).
  * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
- * @property \Stripe\StripeObject $dob
+ * @property null|\Stripe\StripeObject $dob
  * @property null|string $email The person's email address.
  * @property null|string $first_name The person's first name.
  * @property null|string $first_name_kana The Kana variation of the person's first name (Japan only).
  * @property null|string $first_name_kanji The Kanji variation of the person's first name (Japan only).
+ * @property null|string[] $full_name_aliases A list of alternate names or aliases that the person is known by.
+ * @property null|\Stripe\StripeObject $future_requirements Information about the upcoming new requirements for this person, including what information needs to be collected, and by when.
  * @property null|string $gender The person's gender (International regulations require either &quot;male&quot; or &quot;female&quot;).
- * @property bool $id_number_provided Whether the person's <code>id_number</code> was provided.
+ * @property null|bool $id_number_provided Whether the person's <code>id_number</code> was provided.
+ * @property null|bool $id_number_secondary_provided Whether the person's <code>id_number_secondary</code> was provided.
  * @property null|string $last_name The person's last name.
  * @property null|string $last_name_kana The Kana variation of the person's last name (Japan only).
  * @property null|string $last_name_kanji The Kanji variation of the person's last name (Japan only).
  * @property null|string $maiden_name The person's maiden name.
- * @property \Stripe\StripeObject $metadata Set of <a href="https://stripe.com/docs/api/metadata">key-value pairs</a> that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
+ * @property null|\Stripe\StripeObject $metadata Set of <a href="https://stripe.com/docs/api/metadata">key-value pairs</a> that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
+ * @property null|string $nationality The country where the person is a national.
  * @property null|string $phone The person's phone number.
- * @property string $political_exposure Indicates if the person or any of their representatives, family members, or other closely related persons, declares that they hold or have held an important public job or function, in any jurisdiction.
- * @property \Stripe\StripeObject $relationship
+ * @property null|string $political_exposure Indicates if the person or any of their representatives, family members, or other closely related persons, declares that they hold or have held an important public job or function, in any jurisdiction.
+ * @property null|\Stripe\StripeObject $registered_address
+ * @property null|\Stripe\StripeObject $relationship
  * @property null|\Stripe\StripeObject $requirements Information about the requirements for this person, including what information needs to be collected, and by when.
- * @property bool $ssn_last_4_provided Whether the last four digits of the person's Social Security number have been provided (U.S. only).
- * @property \Stripe\StripeObject $verification
+ * @property null|bool $ssn_last_4_provided Whether the last four digits of the person's Social Security number have been provided (U.S. only).
+ * @property null|\Stripe\StripeObject $verification
  */
 class Person extends ApiResource
 {

+ 4 - 4
htdocs/includes/stripe/stripe-php/lib/Plan.php

@@ -22,14 +22,14 @@ namespace Stripe;
  * Related guides: <a
  * href="https://stripe.com/docs/billing/subscriptions/set-up-subscription">Set up
  * a subscription</a> and more about <a
- * href="https://stripe.com/docs/billing/prices-guide">products and prices</a>.
+ * href="https://stripe.com/docs/products-prices/overview">products and prices</a>.
  *
  * @property string $id Unique identifier for the object.
  * @property string $object String representing the object's type. Objects of the same type share the same value.
  * @property bool $active Whether the plan can be used for new purchases.
  * @property null|string $aggregate_usage Specifies a usage aggregation strategy for plans of <code>usage_type=metered</code>. Allowed values are <code>sum</code> for summing up all usage during a period, <code>last_during_period</code> for using the last usage record reported within a period, <code>last_ever</code> for using the last usage record ever (across period bounds) or <code>max</code> which uses the usage record with the maximum reported usage during a period. Defaults to <code>sum</code>.
- * @property null|int $amount The unit amount in %s to be charged, represented as a whole integer if possible.
- * @property null|string $amount_decimal The unit amount in %s to be charged, represented as a decimal string with at most 12 decimal places.
+ * @property null|int $amount The unit amount in %s to be charged, represented as a whole integer if possible. Only set if <code>billing_scheme=per_unit</code>.
+ * @property null|string $amount_decimal The unit amount in %s to be charged, represented as a decimal string with at most 12 decimal places. Only set if <code>billing_scheme=per_unit</code>.
  * @property string $billing_scheme Describes how to compute the price per period. Either <code>per_unit</code> or <code>tiered</code>. <code>per_unit</code> indicates that the fixed amount (specified in <code>amount</code>) will be charged per unit in <code>quantity</code> (for plans with <code>usage_type=licensed</code>), or per unit of total usage (for plans with <code>usage_type=metered</code>). <code>tiered</code> indicates that the unit pricing will be computed using a tiering strategy as defined using the <code>tiers</code> and <code>tiers_mode</code> attributes.
  * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
  * @property string $currency Three-letter <a href="https://www.iso.org/iso-4217-currency-codes.html">ISO currency code</a>, in lowercase. Must be a <a href="https://stripe.com/docs/currencies">supported currency</a>.
@@ -39,7 +39,7 @@ namespace Stripe;
  * @property null|\Stripe\StripeObject $metadata Set of <a href="https://stripe.com/docs/api/metadata">key-value pairs</a> that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  * @property null|string $nickname A brief description of the plan, hidden from customers.
  * @property null|string|\Stripe\Product $product The product whose pricing this plan determines.
- * @property \Stripe\StripeObject[] $tiers Each element represents a pricing tier. This parameter requires <code>billing_scheme</code> to be set to <code>tiered</code>. See also the documentation for <code>billing_scheme</code>.
+ * @property null|\Stripe\StripeObject[] $tiers Each element represents a pricing tier. This parameter requires <code>billing_scheme</code> to be set to <code>tiered</code>. See also the documentation for <code>billing_scheme</code>.
  * @property null|string $tiers_mode Defines if the tiering price should be <code>graduated</code> or <code>volume</code> based. In <code>volume</code>-based tiering, the maximum quantity within a period determines the per unit price. In <code>graduated</code> tiering, pricing can change as the quantity grows.
  * @property null|\Stripe\StripeObject $transform_usage Apply a transformation to the reported usage or set quantity before computing the amount billed. Cannot be combined with <code>tiers</code>.
  * @property null|int $trial_period_days Default number of trial days when subscribing a customer to this plan using <a href="https://stripe.com/docs/api#create_subscription-trial_from_plan"><code>trial_from_plan=true</code></a>.

+ 30 - 7
htdocs/includes/stripe/stripe-php/lib/Price.php

@@ -20,8 +20,8 @@ namespace Stripe;
  * href="https://stripe.com/docs/billing/subscriptions/set-up-subscription">Set up
  * a subscription</a>, <a
  * href="https://stripe.com/docs/billing/invoices/create">create an invoice</a>,
- * and more about <a href="https://stripe.com/docs/billing/prices-guide">products
- * and prices</a>.
+ * and more about <a
+ * href="https://stripe.com/docs/products-prices/overview">products and prices</a>.
  *
  * @property string $id Unique identifier for the object.
  * @property string $object String representing the object's type. Objects of the same type share the same value.
@@ -29,18 +29,21 @@ namespace Stripe;
  * @property string $billing_scheme Describes how to compute the price per period. Either <code>per_unit</code> or <code>tiered</code>. <code>per_unit</code> indicates that the fixed amount (specified in <code>unit_amount</code> or <code>unit_amount_decimal</code>) will be charged per unit in <code>quantity</code> (for prices with <code>usage_type=licensed</code>), or per unit of total usage (for prices with <code>usage_type=metered</code>). <code>tiered</code> indicates that the unit pricing will be computed using a tiering strategy as defined using the <code>tiers</code> and <code>tiers_mode</code> attributes.
  * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
  * @property string $currency Three-letter <a href="https://www.iso.org/iso-4217-currency-codes.html">ISO currency code</a>, in lowercase. Must be a <a href="https://stripe.com/docs/currencies">supported currency</a>.
+ * @property null|\Stripe\StripeObject $currency_options Prices defined in each available currency option. Each key must be a three-letter <a href="https://www.iso.org/iso-4217-currency-codes.html">ISO currency code</a> and a <a href="https://stripe.com/docs/currencies">supported currency</a>.
+ * @property null|\Stripe\StripeObject $custom_unit_amount When set, provides configuration for the amount to be adjusted by the customer during Checkout Sessions and Payment Links.
  * @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.
- * @property null|string $lookup_key A lookup key used to retrieve prices dynamically from a static string.
+ * @property null|string $lookup_key A lookup key used to retrieve prices dynamically from a static string. This may be up to 200 characters.
  * @property \Stripe\StripeObject $metadata Set of <a href="https://stripe.com/docs/api/metadata">key-value pairs</a> that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
- * @property null|string $nickname A brief description of the plan, hidden from customers.
+ * @property null|string $nickname A brief description of the price, hidden from customers.
  * @property string|\Stripe\Product $product The ID of the product this price is associated with.
  * @property null|\Stripe\StripeObject $recurring The recurring components of a price such as <code>interval</code> and <code>usage_type</code>.
- * @property \Stripe\StripeObject[] $tiers Each element represents a pricing tier. This parameter requires <code>billing_scheme</code> to be set to <code>tiered</code>. See also the documentation for <code>billing_scheme</code>.
+ * @property null|string $tax_behavior Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of <code>inclusive</code>, <code>exclusive</code>, or <code>unspecified</code>. Once specified as either <code>inclusive</code> or <code>exclusive</code>, it cannot be changed.
+ * @property null|\Stripe\StripeObject[] $tiers Each element represents a pricing tier. This parameter requires <code>billing_scheme</code> to be set to <code>tiered</code>. See also the documentation for <code>billing_scheme</code>.
  * @property null|string $tiers_mode Defines if the tiering price should be <code>graduated</code> or <code>volume</code> based. In <code>volume</code>-based tiering, the maximum quantity within a period determines the per unit price. In <code>graduated</code> tiering, pricing can change as the quantity grows.
  * @property null|\Stripe\StripeObject $transform_quantity Apply a transformation to the reported usage or set quantity before computing the amount billed. Cannot be combined with <code>tiers</code>.
  * @property string $type One of <code>one_time</code> or <code>recurring</code> depending on whether the price is for a one-time purchase or a recurring (subscription) purchase.
- * @property null|int $unit_amount The unit amount in %s to be charged, represented as a whole integer if possible.
- * @property null|string $unit_amount_decimal The unit amount in %s to be charged, represented as a decimal string with at most 12 decimal places.
+ * @property null|int $unit_amount The unit amount in %s to be charged, represented as a whole integer if possible. Only set if <code>billing_scheme=per_unit</code>.
+ * @property null|string $unit_amount_decimal The unit amount in %s to be charged, represented as a decimal string with at most 12 decimal places. Only set if <code>billing_scheme=per_unit</code>.
  */
 class Price extends ApiResource
 {
@@ -49,14 +52,34 @@ class Price extends ApiResource
     use ApiOperations\All;
     use ApiOperations\Create;
     use ApiOperations\Retrieve;
+    use ApiOperations\Search;
     use ApiOperations\Update;
 
     const BILLING_SCHEME_PER_UNIT = 'per_unit';
     const BILLING_SCHEME_TIERED = 'tiered';
 
+    const TAX_BEHAVIOR_EXCLUSIVE = 'exclusive';
+    const TAX_BEHAVIOR_INCLUSIVE = 'inclusive';
+    const TAX_BEHAVIOR_UNSPECIFIED = 'unspecified';
+
     const TIERS_MODE_GRADUATED = 'graduated';
     const TIERS_MODE_VOLUME = 'volume';
 
     const TYPE_ONE_TIME = 'one_time';
     const TYPE_RECURRING = 'recurring';
+
+    /**
+     * @param null|array $params
+     * @param null|array|string $opts
+     *
+     * @throws \Stripe\Exception\ApiErrorException if the request fails
+     *
+     * @return \Stripe\SearchResult<Price> the price search results
+     */
+    public static function search($params = null, $opts = null)
+    {
+        $url = '/v1/prices/search';
+
+        return self::_searchResource($url, $params, $opts);
+    }
 }

+ 31 - 11
htdocs/includes/stripe/stripe-php/lib/Product.php

@@ -9,14 +9,16 @@ namespace Stripe;
  * For example, you might offer a Standard and Premium version of your goods or
  * service; each version would be a separate Product. They can be used in
  * conjunction with <a href="https://stripe.com/docs/api#prices">Prices</a> to
- * configure pricing in Checkout and Subscriptions.
+ * configure pricing in Payment Links, Checkout, and Subscriptions.
  *
  * Related guides: <a
  * href="https://stripe.com/docs/billing/subscriptions/set-up-subscription">Set up
- * a subscription</a> or accept <a
- * href="https://stripe.com/docs/payments/checkout/client#create-products">one-time
- * payments with Checkout</a> and more about <a
- * href="https://stripe.com/docs/billing/prices-guide">Products and Prices</a>
+ * a subscription</a>, <a
+ * href="https://stripe.com/docs/payments/payment-links/overview">share a Payment
+ * Link</a>, <a
+ * href="https://stripe.com/docs/payments/accept-a-payment#create-product-prices-upfront">accept
+ * payments with Checkout</a>, and more about <a
+ * href="https://stripe.com/docs/products-prices/overview">Products and Prices</a>
  *
  * @property string $id Unique identifier for the object.
  * @property string $object String representing the object's type. Objects of the same type share the same value.
@@ -24,19 +26,21 @@ namespace Stripe;
  * @property null|string[] $attributes A list of up to 5 attributes that each SKU can provide values for (e.g., <code>[&quot;color&quot;, &quot;size&quot;]</code>).
  * @property null|string $caption A short one-line description of the product, meant to be displayable to the customer. Only applicable to products of <code>type=good</code>.
  * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
- * @property string[] $deactivate_on An array of connect application identifiers that cannot purchase this product. Only applicable to products of <code>type=good</code>.
+ * @property null|string[] $deactivate_on An array of connect application identifiers that cannot purchase this product. Only applicable to products of <code>type=good</code>.
+ * @property null|string|\Stripe\Price $default_price The ID of the <a href="https://stripe.com/docs/api/prices">Price</a> object that is the default price for this product.
  * @property null|string $description The product's description, meant to be displayable to the customer. Use this field to optionally store a long form explanation of the product being sold for your own rendering purposes.
  * @property string[] $images A list of up to 8 URLs of images for this product, meant to be displayable to the customer.
  * @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.
  * @property \Stripe\StripeObject $metadata Set of <a href="https://stripe.com/docs/api/metadata">key-value pairs</a> that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
- * @property string $name The product's name, meant to be displayable to the customer. Whenever this product is sold via a subscription, name will show up on associated invoice line item descriptions.
- * @property null|\Stripe\StripeObject $package_dimensions The dimensions of this product for shipping purposes. A SKU associated with this product can override this value by having its own <code>package_dimensions</code>. Only applicable to products of <code>type=good</code>.
- * @property null|bool $shippable Whether this product is a shipped good. Only applicable to products of <code>type=good</code>.
+ * @property string $name The product's name, meant to be displayable to the customer.
+ * @property null|\Stripe\StripeObject $package_dimensions The dimensions of this product for shipping purposes.
+ * @property null|bool $shippable Whether this product is shipped (i.e., physical goods).
  * @property null|string $statement_descriptor Extra information about a product which will appear on your customer's credit card statement. In the case that multiple products are billed at once, the first statement descriptor will be used.
+ * @property null|string|\Stripe\TaxCode $tax_code A <a href="https://stripe.com/docs/tax/tax-categories">tax code</a> ID.
  * @property string $type The type of the product. The product is either of type <code>good</code>, which is eligible for use with Orders and SKUs, or <code>service</code>, which is eligible for use with Subscriptions and Plans.
- * @property null|string $unit_label A label that represents units of this product in Stripe and on customers’ receipts and invoices. When set, this will be included in associated invoice line item descriptions.
+ * @property null|string $unit_label A label that represents units of this product. When set, this will be included in customers' receipts, invoices, Checkout, and the customer portal.
  * @property int $updated Time at which the object was last updated. Measured in seconds since the Unix epoch.
- * @property null|string $url A URL of a publicly-accessible webpage for this product. Only applicable to products of <code>type=good</code>.
+ * @property null|string $url A URL of a publicly-accessible webpage for this product.
  */
 class Product extends ApiResource
 {
@@ -46,8 +50,24 @@ class Product extends ApiResource
     use ApiOperations\Create;
     use ApiOperations\Delete;
     use ApiOperations\Retrieve;
+    use ApiOperations\Search;
     use ApiOperations\Update;
 
     const TYPE_GOOD = 'good';
     const TYPE_SERVICE = 'service';
+
+    /**
+     * @param null|array $params
+     * @param null|array|string $opts
+     *
+     * @throws \Stripe\Exception\ApiErrorException if the request fails
+     *
+     * @return \Stripe\SearchResult<Product> the product search results
+     */
+    public static function search($params = null, $opts = null)
+    {
+        $url = '/v1/products/search';
+
+        return self::_searchResource($url, $params, $opts);
+    }
 }

Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác