+#
+# The latter raises errors.
+#
+# Adding to these attributes is officially supported:
+# - https://github.com/haml/haml/releases/tag/v6.2.2
+#
+Haml::BOOLEAN_ATTRIBUTES.push(
+ *%w[
+ mailto
+ new-tag-rule-dialog
+ ng-cloak
+ ng-transclude
+ offcanvas
+ ofn-disable-enter
+ question-mark-with-tooltip-animation
+ scroll-after-load
+ textangular-links-target-blank
+ ]
+)
diff --git a/config/initializers/pagy.rb b/config/initializers/pagy.rb
index ff9ed076e6..cd18f12b32 100644
--- a/config/initializers/pagy.rb
+++ b/config/initializers/pagy.rb
@@ -1,15 +1,18 @@
# frozen_string_literal: true
+require 'pagy/extras/arel'
+require 'pagy/extras/items'
+require 'pagy/extras/overflow'
+
+
# Pagy Variables
# See https://ddnexus.github.io/pagy/api/pagy#variables
Pagy::DEFAULT[:items] = 100
# Items extra: Allow the client to request a custom number of items per page with an optional selector UI
# See https://ddnexus.github.io/pagy/extras/items
-require 'pagy/extras/items'
Pagy::DEFAULT[:items_param] = :per_page
Pagy::DEFAULT[:max_items] = 100
# For handling requests for non-existant pages eg: page 35 when there are only 4 pages of results
-require 'pagy/extras/overflow'
Pagy::DEFAULT[:overflow] = :empty_page
diff --git a/config/locales/ar.yml b/config/locales/ar.yml
index 15acfbe95c..be4307484d 100644
--- a/config/locales/ar.yml
+++ b/config/locales/ar.yml
@@ -48,6 +48,9 @@ ar:
variant_unit: "وحدة النوع"
variant_unit_name: "اسم وحدة النوع"
unit_value: "قيمةالوحدة"
+ spree/variant:
+ primary_taxon: "نوع المنتج "
+ shipping_category_id: "نوع الشحن"
spree/credit_card:
base: "بطاقة ائتمان"
number: "رقم "
@@ -448,6 +451,7 @@ ar:
columns:
name: الاسم
unit: وحدة
+ unit_value: قيمةالوحدة
price: السعر
producer: المنتج
category: الفئة
@@ -691,15 +695,15 @@ ar:
index:
header:
title: تحرير المنتجات بالجملة
- sort:
- pagination:
- clear_search: مسح البحث
filters:
producers:
label: المنتجين
categories:
label: التصنيفات
search: بحث
+ sort:
+ pagination:
+ clear_search: مسح البحث
table:
new_variant: نوع جديد
edit_image:
@@ -745,6 +749,9 @@ ar:
product_categories: فئات المنتجات
tax_categories: فئات الضرائب
shipping_categories: فئات الشحن
+ dfc_import_form:
+ enterprise: "الشركة"
+ import: "استيراد"
import:
review: مراجعة
import: استيراد
@@ -3596,6 +3603,7 @@ ar:
new_taxon: "اصنوفة جديدة"
new_user: "مستخدم جديد"
no_pending_payments: "لا توجد دفعات معلقة"
+ remove: "إزالة"
none: "لا شيء"
not_found: "غير موجود"
notice_messages:
@@ -3612,8 +3620,6 @@ ar:
start_date: "تاريخ البدء"
successfully_removed: "تمت الإزالة بنجاح"
taxonomy_edit: "التصنيف"
- taxonomy_tree_error: "خطأ شجرة التصنيف"
- taxonomy_tree_instruction: "تعليمات شجرة التصنيف"
tree: "شجرة"
updating: "تحديث"
your_order_is_empty_add_product: "طلبك فارغ ، يرجى البحث عن المنتج أعلاه وإضافته"
diff --git a/config/locales/ca.yml b/config/locales/ca.yml
index c552703236..1522484fc1 100644
--- a/config/locales/ca.yml
+++ b/config/locales/ca.yml
@@ -48,6 +48,9 @@ ca:
variant_unit: "Unitat de la variant"
variant_unit_name: "Nom de la unitat de la variant"
unit_value: "Valor de la unitat"
+ spree/variant:
+ primary_taxon: "Categoria del producte"
+ shipping_category_id: "Categoria d'enviament"
spree/credit_card:
base: "Targeta de crèdit"
number: "Número"
@@ -475,6 +478,7 @@ ca:
columns:
name: Nom
unit: Unitat
+ unit_value: Valor de la unitat
price: Preu
producer: Productora
category: Categoria
@@ -733,13 +737,6 @@ ca:
prompt: "Això l'eliminarà permanentment de la vostra llista."
confirmation_text: "Suprimeix la variant"
cancellation_text: "Mantenir la variant"
- sort:
- pagination:
- total_html: "
%{total} productes trobats pels vostres criteris de cerca. Mostrant de %{from} a %{to} ."
- per_page:
- show: Mostra
- per_page: "%{num} per pàgina"
- clear_search: Esborra la cerca
filters:
search_products: Cerca de productes
search_for_producers: Cercar productors
@@ -751,6 +748,13 @@ ca:
categories:
label: Categories
search: Cerca
+ sort:
+ pagination:
+ total_html: "
%{total} productes trobats pels vostres criteris de cerca. Mostrant de %{from} a %{to} ."
+ per_page:
+ show: Mostra
+ per_page: "%{num} per pàgina"
+ clear_search: Esborra la cerca
no_products:
no_products_found: No hem trobat productes
table:
@@ -809,6 +813,9 @@ ca:
product_categories: Tipus de productes
tax_categories: Tipus d'impostos
shipping_categories: Tipus d'enviament
+ dfc_import_form:
+ enterprise: "Organització"
+ import: "Importa"
import:
review: Revisa
import: Importa
@@ -3479,6 +3486,7 @@ ca:
new_taxon: "Nou tàxon"
new_user: "Nou usuari"
no_pending_payments: "No hi ha pagaments pendents"
+ remove: "Eliminar"
none: "Cap"
not_found: "No trobat"
notice_messages:
@@ -3495,8 +3503,6 @@ ca:
start_date: "Data d'inici"
successfully_removed: "S'ha suprimit correctament"
taxonomy_edit: "Edició de taxonomia"
- taxonomy_tree_error: "Error d'arbre de taxonomia"
- taxonomy_tree_instruction: "Instrucció d'arbre de taxonomia"
tree: "Arbre"
updating: "Actualitzant"
your_order_is_empty_add_product: "La comanda està buida, si us plau cerca i afegeix un producte a dalt"
diff --git a/config/locales/cy.yml b/config/locales/cy.yml
index a9f0b4db3f..2d774a500f 100644
--- a/config/locales/cy.yml
+++ b/config/locales/cy.yml
@@ -1,5 +1,8 @@
cy:
language_name: "Cymraeg"
+ time:
+ formats:
+ long: "%B %d, %Y %-l:%M %p"
activerecord:
models:
spree/product: Cynnyrch
@@ -48,6 +51,9 @@ cy:
variant_unit: "Uned Amrywiol"
variant_unit_name: "Enw Uned Amrywiol"
unit_value: "Gwerth yr uned"
+ spree/variant:
+ primary_taxon: "Categori Cynnyrch"
+ shipping_category_id: "Categori Anfon"
spree/credit_card:
base: "Cerdyn credyd"
number: "Rhif"
@@ -502,6 +508,7 @@ cy:
columns:
name: Enw
unit: Uned
+ unit_value: Gwerth yr uned
price: Pris
producer: Cynhyrchydd
category: Categori
@@ -760,13 +767,6 @@ cy:
prompt: "Caiff ei ddileu’n barhaol o’ch rhestr."
confirmation_text: "Dileu amrywiolyn"
cancellation_text: "Cadw amrywiolyn"
- sort:
- pagination:
- total_html: "
%{total}Cafwyd hyd i cynnyrch ar gyfer eich meini prawf chwilio. Yn dangos %{from} i %{to}."
- per_page:
- show: Dangos
- per_page: "%{num} fesul tudalen"
- clear_search: Clirio'r chwiliad
filters:
search_products: Chwilio am gynnyrch
search_for_producers: Chwilio am gynhyrchwyr
@@ -778,6 +778,13 @@ cy:
categories:
label: Categorïau
search: Chwilio
+ sort:
+ pagination:
+ total_html: "
%{total}Cafwyd hyd i cynnyrch ar gyfer eich meini prawf chwilio. Yn dangos %{from} i %{to}."
+ per_page:
+ show: Dangos
+ per_page: "%{num} fesul tudalen"
+ clear_search: Clirio'r chwiliad
no_products:
no_products_found: Ni chafwyd hyd i gynnyrch
import_products: Mewnforio cynnyrch lluosog
@@ -846,6 +853,9 @@ cy:
product_categories: Categorïau Cynnyrch
tax_categories: Categorïau Treth
shipping_categories: Categorïau Cludo
+ dfc_import_form:
+ enterprise: "Menter"
+ import: "Mewnforio"
import:
review: Adolygu
import: Mewnforio
@@ -3714,6 +3724,7 @@ cy:
new_taxon: "Tacson newydd"
new_user: "Defnyddiwr newydd"
no_pending_payments: "Dim taliadau yn yr arfaeth"
+ remove: "Dileu"
none: "Dim"
not_found: "Heb ei ganfod"
notice_messages:
@@ -3730,8 +3741,6 @@ cy:
start_date: "Dyddiad cychwyn"
successfully_removed: "Llwyddwyd i ddileu"
taxonomy_edit: "Golygu tacsonomi"
- taxonomy_tree_error: "Gwall - coeden tacsonomi"
- taxonomy_tree_instruction: "Cyfarwyddyd - coeden tacsonomi"
tree: "Coeden"
updating: "Yn diweddaru"
your_order_is_empty_add_product: "Mae eich archeb yn wag, chwiliwch am ac ychwanegwch gynnyrch uchod"
@@ -4323,6 +4332,9 @@ cy:
form:
name: Enw
permalink: Permalink
+ meta_title: Meta Title
+ meta_description: Meta Description
+ meta_keywords: Meta Keywords
description: Disgrifiad
general_settings:
edit:
diff --git a/config/locales/de_CH.yml b/config/locales/de_CH.yml
index c95ba52c40..64385cd440 100644
--- a/config/locales/de_CH.yml
+++ b/config/locales/de_CH.yml
@@ -38,6 +38,9 @@ de_CH:
shipping_category_id: "Lieferkategorie"
variant_unit: "Varianteneinheit"
variant_unit_name: "Name der Varianteneinheit"
+ spree/variant:
+ primary_taxon: "Produktkategorie"
+ shipping_category_id: "Lieferkategorie"
spree/credit_card:
base: "Kreditkarte"
number: "Kreditkartennummer"
@@ -681,15 +684,15 @@ de_CH:
index:
header:
title: Produkte verwalten
- sort:
- pagination:
- clear_search: Suche zurücksetzen
filters:
producers:
label: Unsere Produzenten
categories:
label: Lieferkategorien
search: Suche
+ sort:
+ pagination:
+ clear_search: Suche zurücksetzen
no_products:
no_products_found: Keine Produkte gefunden.
table:
@@ -735,6 +738,9 @@ de_CH:
product_categories: Produktkategorien
tax_categories: Steuerkategorien
shipping_categories: Lieferkategorien
+ dfc_import_form:
+ enterprise: "Unternehmen"
+ import: "Importieren"
import:
review: Überprüfung
import: Importieren
@@ -881,7 +887,7 @@ de_CH:
legend: "Adresse"
business_details:
legend: "Geschäftsdetails"
- abn: USt-IdNr.
+ abn: MWST nr.
abn_placeholder: z. B. DE999999999
acn: St.-Nr.
acn_placeholder: z. B. 93815/08152
@@ -1720,7 +1726,7 @@ de_CH:
invoice_shipping_category_pickup: "Abholen"
total_excl_tax: "Netto (zzgl. Steuern):"
total_incl_tax: "GESAMT (inkl. Steuern):"
- abn: "USt-IdNr.:"
+ abn: "MWST nr."
acn: "St.-Nr.:"
invoice_issued_on: "Rechnungsdatum:"
date_of_transaction: "Bestelldatum:"
@@ -2351,7 +2357,7 @@ de_CH:
enterprise_long_desc: "Ausführliche Beschreibung (empfohlen)"
enterprise_long_desc_placeholder: "Erzählen Sie hier die Geschichte Ihres Unternehmens - was macht Sie anders und wunderbar? Wir empfehlen, die Beschreibung unter 600 Zeichen oder 150 Wörtern zu halten."
enterprise_long_desc_length: "%{num} Zeichen/bis zu 600 empfohlen"
- enterprise_abn: "USt-IdNr. (optional für Rechnungserstellung)"
+ enterprise_abn: "MWST nr. (optional für Rechnungserstellung)"
enterprise_abn_placeholder: "z. B. DE999999999"
enterprise_acn: "St.-Nr. (optional für Rechnungserstellung)"
enterprise_acn_placeholder: "z. B. 93815/08152"
@@ -3406,6 +3412,7 @@ de_CH:
new_taxon: "Neue Kategorie"
new_user: "Neuer Benutzer"
no_pending_payments: "Keine ausstehenden Zahlungen."
+ remove: "Löschen"
none: "Keine"
not_found: "Nicht gefunden"
notice_messages:
@@ -3420,8 +3427,6 @@ de_CH:
start_date: "Anfangsdatum"
successfully_removed: "Erfolgreich gelöscht"
taxonomy_edit: "Kategorien bearbeiten"
- taxonomy_tree_error: "Fehler in Struktur der Kategorien"
- taxonomy_tree_instruction: "Anleitung zur Struktur der Kategorien"
tree: "Struktur"
updating: "Aktualisierung"
your_order_is_empty_add_product: "Ihre Bestellung ist leer. Suchen Sie oben ein Produkt und fügen Sie es hinzu."
diff --git a/config/locales/de_DE.yml b/config/locales/de_DE.yml
index 36019f4511..fde7a15eb1 100644
--- a/config/locales/de_DE.yml
+++ b/config/locales/de_DE.yml
@@ -51,6 +51,9 @@ de_DE:
variant_unit: "Varianteneinheit"
variant_unit_name: "Name der Varianteneinheit"
unit_value: "Menge"
+ spree/variant:
+ primary_taxon: "Produktkategorie"
+ shipping_category_id: "Lieferkategorie"
spree/credit_card:
base: "Kreditkarte"
number: "Kreditkartennummer"
@@ -505,6 +508,7 @@ de_DE:
columns:
name: Name
unit: Einheit
+ unit_value: Menge
price: Preis
producer: Produzent
category: Kategorie
@@ -633,7 +637,7 @@ de_DE:
configuration_explanation_html: Detaillierte Anweisungen zur Konfiguration der Stripe Connect-Integration finden Sie in der
Anleitung.
status: Status
ok: OK
- instance_secret_key: Instanzgeheimschlüssel
+ instance_secret_key: Geheimer Schlüssel der Instanz
account_id: Konto-ID
business_name: Unternehmensname
charges_enabled: Gebühren aktiviert
@@ -752,13 +756,6 @@ de_DE:
header:
title: Produkte verwalten
loading: Produkte werden geladen...
- sort:
- pagination:
- total_html: "
%{total} Produkte für Ihre Suchkriterien gefunden. Zeige %{from} bis %{to}."
- per_page:
- show: Zeige
- per_page: "%{num} pro Seite"
- clear_search: Suche zurücksetzen
filters:
search_products: Nach Produkten suchen
all_producers: Alle Produzenten
@@ -768,6 +765,13 @@ de_DE:
categories:
label: Lieferkategorien
search: Suche
+ sort:
+ pagination:
+ total_html: "
%{total} Produkte für Ihre Suchkriterien gefunden. Zeige %{from} bis %{to}."
+ per_page:
+ show: Zeige
+ per_page: "%{num} pro Seite"
+ clear_search: Suche zurücksetzen
no_products:
no_products_found: Keine Produkte gefunden.
import_products: Produkte importieren
@@ -831,6 +835,9 @@ de_DE:
product_categories: Produktkategorien
tax_categories: Steuerkategorien
shipping_categories: Lieferkategorien
+ dfc_import_form:
+ enterprise: "Unternehmen"
+ import: "Importieren"
import:
review: Überprüfung
import: Importieren
@@ -1249,7 +1256,7 @@ de_DE:
sell_your_produce: Verkaufen Sie Ihre eigenen Produkte
producer_shop_description_text: Verkaufen Sie Ihre eigenen Produkte direkt an Ihre Kunden durch Ihren eigenen Produzentenladen im Open Food Network.
producer_shop_description_text2: Ein Produzentenladen ist nur für Ihre eigenen Produkte bestimmt. Wenn Sie nur oder auch Produkte anderer verkaufen möchten, wählen Sie "Laden".
- producer_hub: Produzentenladen
+ producer_hub: Laden
producer_hub_text: Verkaufen Sie eigene Produkte und Produkte anderer
producer_hub_description_text: Verkaufen Sie eigene Produkte und Produkte anderer Produzenten oder Läden im Open Food Network. Mit Ihrem Laden sind Sie ein zentraler Bestandteil Ihres lokalen Lebensmittelsystems.
profile: Profil
@@ -2880,7 +2887,7 @@ de_DE:
report_header_billing_state: Rechnungsadresse Bundesland
report_header_incoming_transport: Eingehender Transport
report_header_special_instructions: Besondere Hinweise
- report_header_order_number: Bestell-Nummer
+ report_header_order_number: Bestellnummer
report_header_date: Datum
report_header_confirmation_date: Bestätigungsdatum
report_header_tags: Stichwörter
@@ -2955,7 +2962,7 @@ de_DE:
report_header_units_required: Benötigte Einheiten
report_header_remainder: Rest
report_header_order_date: Bestelldatum
- report_header_order_id: Bestell-Nummer
+ report_header_order_id: Bestellnummer
report_header_item_name: Produktname
report_header_temp_controlled_items: Temperaturüberwachte Produkte?
report_header_customer_name: Kundenname
@@ -3079,7 +3086,7 @@ de_DE:
order_cycles_no_permission_to_coordinate_error: "Keines Ihrer Unternehmen ist berechtigt, einen Bestellzyklus zu koordinieren."
order_cycles_no_permission_to_create_error: "Sie sind nicht berechtigt, einen von diesem Unternehmen koordinierten Bestellzyklus zu erstellen."
order_cycle_closed: "Der von Ihnen ausgewählte Bestellzyklus wurde gerade geschlossen. Bitte versuchen Sie es später noch einmal!"
- back_to_orders_list: "Zurück zur Bestellliste"
+ back_to_orders_list: "Zurück zur Bestellübersicht"
no_orders_found: "Keine Bestellungen gefunden."
order_information: "Bestellinformationen"
new_payment: "Neue Zahlung"
@@ -3212,7 +3219,7 @@ de_DE:
producer_shop_text2: >
Ein Produzentenladen ist nur für Ihre eigenen Produkte bestimmt. Wenn
Sie Produkte anderer verkaufen möchten, wählen Sie "Laden".
- producer_hub: Produzentenladen
+ producer_hub: Laden
producer_hub_text1: >
Verkaufen Sie eigene Produkte und Produkte anderer Produzenten oder
Läden im Open Food Network. Mit Ihrem Laden sind Sie ein zentraler Bestandteil
@@ -3515,7 +3522,7 @@ de_DE:
other: "Schalen"
piece:
one: "Stück"
- other: "Stücke"
+ other: "Stück"
pot:
one: "Topf"
other: "Töpfe"
@@ -3656,6 +3663,7 @@ de_DE:
new_taxon: "Neue Kategorie"
new_user: "Neuer Benutzer"
no_pending_payments: "Keine ausstehenden Zahlungen."
+ remove: "Löschen"
none: "Keine"
not_found: "Nicht gefunden"
notice_messages:
@@ -3672,15 +3680,13 @@ de_DE:
start_date: "Anfangsdatum"
successfully_removed: "Erfolgreich gelöscht"
taxonomy_edit: "Kategorien bearbeiten"
- taxonomy_tree_error: "Fehler in Struktur der Kategorien"
- taxonomy_tree_instruction: "Anleitung zur Struktur der Kategorien"
tree: "Struktur"
updating: "Aktualisierung"
your_order_is_empty_add_product: "Ihre Bestellung ist leer. Suchen Sie oben ein Produkt und fügen Sie es hinzu."
add_product: "Produkt hinzufügen"
name_or_sku: "Produktname oder Artikelnummer (geben Sie mindestens die ersten 3 Zeichen des Produktnamens ein)"
resend: "Erneut senden"
- back_to_orders_list: "Zurück zur Bestellliste"
+ back_to_orders_list: "Zurück zur Bestellübersicht"
back_to_payments_list: "Zurück zur Zahlungsliste"
return_authorizations: "Retouren"
cannot_create_returns: "Retouren können nicht erstellt werden, da für diese Bestellung keine Lieferung bestätigt wurde."
@@ -3933,7 +3939,7 @@ de_DE:
index:
new_return_authorization: "Neue Retour"
return_authorizations: "Retouren"
- back_to_orders_list: "Zurück zur Bestellliste"
+ back_to_orders_list: "Zurück zur Bestellübersicht"
rma_number: "RMA-Nummer"
status: "Status"
amount: "Betrag"
diff --git a/config/locales/el.yml b/config/locales/el.yml
index 78961a8c1e..f8e2a3864d 100644
--- a/config/locales/el.yml
+++ b/config/locales/el.yml
@@ -29,6 +29,9 @@ el:
shipping_category_id: "Κατηγορία μεταφορικών"
variant_unit: "Μονάδα μέτρησης μεταβλητής"
variant_unit_name: "Όνομα μεταβλητής"
+ spree/variant:
+ primary_taxon: "Κατηγορία προϊόντων"
+ shipping_category_id: "Κατηγορία μεταφορικών"
spree/credit_card:
base: "Κάρτα πιστωτική/χρεωστική"
number: "Αριθμός"
@@ -630,6 +633,9 @@ el:
product_categories: Κατηγορίες προϊόντος
tax_categories: Κατηγορίες Φορολόγησης
shipping_categories: Κατηγορίες Μεταφορικών
+ dfc_import_form:
+ enterprise: "Επιχείρηση"
+ import: "Εισαγωγή"
import:
review: Αναθεώρηση
import: Εισαγωγή
@@ -3032,6 +3038,7 @@ el:
new_taxon: "Νέο ταξί"
new_user: "Νέος χρήστης"
no_pending_payments: "Δεν υπάρχουν πληρωμές σε εκκρεμότητα"
+ remove: "Αφαίρεση"
none: "Κανένας"
not_found: "Δεν βρέθηκε"
notice_messages:
@@ -3046,8 +3053,6 @@ el:
start_date: "Ημερομηνία έναρξης"
successfully_removed: "Καταργήθηκε επιτυχώς"
taxonomy_edit: "Επεξεργασία ταξινόμησης"
- taxonomy_tree_error: "Σφάλμα δέντρου ταξινόμησης"
- taxonomy_tree_instruction: "Οδηγίες δέντρων ταξινομίας"
tree: "Δέντρο"
updating: "Ενημέρωση"
your_order_is_empty_add_product: "Η παραγγελία σας είναι κενή, αναζητήστε και προσθέστε ένα προϊόν παραπάνω"
diff --git a/config/locales/en.yml b/config/locales/en.yml
index 8d88ce2cd7..e20236b1d9 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -72,6 +72,9 @@ en:
variant_unit: "Variant Unit"
variant_unit_name: "Variant Unit Name"
unit_value: "Unit value"
+ spree/variant:
+ primary_taxon: "Product Category"
+ shipping_category_id: "Shipping Category"
spree/credit_card:
base: "Credit Card"
number: "Number"
@@ -232,6 +235,9 @@ en:
transaction_not_allowed: "The card has been declined for an unknown reason."
try_again_later: "The card has been declined for an unknown reason."
withdrawal_count_limit_exceeded: "The customer has exceeded the balance or credit limit available on their card."
+ disconnect_failure: "Failed to disconnect Stripe."
+ success_code:
+ disconnected: "Stripe account disconnected."
activemodel:
errors:
@@ -258,10 +264,16 @@ en:
not_available_to_shop: "is not available to %{shop}"
card_details: "Card details"
card_type: "Card type"
+ card_type_is: "Card type is"
+ unrecognized_card_type: "Unrecognized card type"
+ use_new_cc: "Use a new credit card"
+ what_is_this: "What is this?"
cardholder_name: "Cardholder name"
community_forum_url: "Community forum URL"
customer_instructions: "Customer instructions"
additional_information: "Additional Information"
+ connect_app:
+ url: "https://n8n.openfoodnetwork.org/webhook/regen/connect-enterprise"
devise:
passwords:
spree_user:
@@ -559,7 +571,10 @@ en:
colums: Columns
columns:
name: Name
+ unit_scale: Unit scale
unit: Unit
+ unit_value: Unit value
+ display_as: Display unit as
price: Price
producer: Producer
category: Category
@@ -701,6 +716,7 @@ en:
status: Status
ok: Ok
instance_secret_key: Instance Secret Key
+ instance_publishable_key: Instance Publishable Key
account_id: Account ID
business_name: Business Name
charges_enabled: Charges Enabled
@@ -756,6 +772,10 @@ en:
user_guide: User Guide
map: Map
+ dfc_product_imports:
+ index:
+ title: "Importing a DFC product catalog"
+ imported_products: "Imported products:"
enterprise_fees:
index:
title: "Enterprise Fees"
@@ -824,6 +844,7 @@ en:
index:
header:
title: Bulk Edit Products
+ content:
loading: Loading your products
delete_modal:
delete_product_modal:
@@ -836,13 +857,6 @@ en:
prompt: "This will permanently remove it from your list."
confirmation_text: "Delete variant"
cancellation_text: "Keep variant"
- sort:
- pagination:
- total_html: "
%{total} products found for your search criteria. Showing %{from} to %{to}."
- per_page:
- show: Show
- per_page: "%{num} per page"
- clear_search: Clear search
filters:
search_products: Search for products
search_for_producers: Search for producers
@@ -854,7 +868,13 @@ en:
categories:
label: Categories
search: Search
- content:
+ sort:
+ pagination:
+ total_html: "
%{total} products found for your search criteria. Showing %{from} to %{to}."
+ per_page:
+ show: Show
+ per_page: "%{num} per page"
+ clear_search: Clear search
no_products:
no_products_found: No products found
import_products: Import multiple products
@@ -887,6 +907,8 @@ en:
delete_variant:
success: Successfully deleted the variant
error: Unable to delete the variant
+ variant_row:
+ none_tax_category: None
product_import:
title: Product Import
file_not_found: File not found or could not be opened
@@ -928,6 +950,11 @@ en:
product_categories: Product Categories
tax_categories: Tax Categories
shipping_categories: Shipping Categories
+ dfc_import_form:
+ title: "Import from DFC catalog"
+ enterprise: "Enterprise"
+ catalog_url: "DFC catalog URL"
+ import: "Import"
import:
review: Review
import: Import
@@ -1234,6 +1261,7 @@ en:
open_date: "Open Date"
close_date: "Close Date"
display_ordering_in_shopfront: "Display ordering in shopfront:"
+ shopfront_sort_by_product: "By product"
shopfront_sort_by_category: "By category"
shopfront_sort_by_producer: "By producer"
shopfront_sort_by_category_placeholder: "Category"
@@ -2608,6 +2636,7 @@ See the %{link} to find out more about %{sitename}'s features and to start using
orders_bought_already_confirmed: "* already confirmed"
orders_confirm_cancel: "Are you sure you want to cancel this order?"
order_processed_successfully: "Your order has been processed successfully"
+ thank_you_for_your_order: "Thank you for your order"
products_cart_distributor_choice: "Distributor for your order:"
products_cart_distributor_change: "Your distributor for this order will be changed to %{name} if you add this product to your cart."
@@ -3852,6 +3881,7 @@ See the %{link} to find out more about %{sitename}'s features and to start using
editing_tax_category: "Editing tax category"
editing_tax_rate: "Editing tax rate"
editing_zone: "Editing zone"
+ editing_state: "Editing State"
expiration: "Expiration"
invalid_payment_provider: "Invalid payment provider"
items_cannot_be_shipped: "Items cannot be shipped"
@@ -3863,7 +3893,8 @@ See the %{link} to find out more about %{sitename}'s features and to start using
new_taxon: "New taxon"
new_user: "New user"
no_pending_payments: "No pending payments"
- "none": "None"
+ remove: "Remove"
+ none: "None"
not_found: "Not found"
notice_messages:
variant_deleted: "Variant deleted"
@@ -3879,8 +3910,8 @@ See the %{link} to find out more about %{sitename}'s features and to start using
start_date: "Start date"
successfully_removed: "Successfully Removed"
taxonomy_edit: "Taxonomy edit"
- taxonomy_tree_error: "Taxonomy tree error"
- taxonomy_tree_instruction: "Taxonomy tree instruction"
+ taxonomy_tree_error: "There was an error updating the taxonomy tree."
+ taxonomy_tree_instruction: "Right-click on an item to add, rename, remove or edit."
tree: "Tree"
updating: "Updating"
your_order_is_empty_add_product: "Your order is empty, please search for and add a product above"
@@ -3889,6 +3920,7 @@ See the %{link} to find out more about %{sitename}'s features and to start using
resend: "Resend"
back_to_orders_list: "Back To Orders List"
back_to_payments_list: "Back To Payments List"
+ back_to_states_list: "Back To States List"
return_authorizations: "Return Authorizations"
cannot_create_returns: "Cannot create returns as this order has no shipped units."
select_stock: "Select stock"
diff --git a/config/locales/en_AU.yml b/config/locales/en_AU.yml
index 21963297cd..553225c846 100644
--- a/config/locales/en_AU.yml
+++ b/config/locales/en_AU.yml
@@ -33,6 +33,9 @@ en_AU:
shipping_category_id: "Shipping Category"
variant_unit: "Variant Unit"
variant_unit_name: "Variant Unit Name"
+ spree/variant:
+ primary_taxon: "Product Category"
+ shipping_category_id: "Shipping Category"
spree/credit_card:
base: "Credit Card"
number: "Number"
@@ -410,7 +413,7 @@ en_AU:
enable_embedded_shopfronts: "Enable Embedded Shopfronts"
embedded_shopfronts_whitelist: "External Domains Whitelist"
number_localization:
- number_localization_settings: "Number Localization Settings"
+ number_localization_settings: "Number Localisation Settings"
enable_localized_number: "Use the international thousand/decimal separator logic"
invoice_settings:
edit:
@@ -542,15 +545,15 @@ en_AU:
index:
header:
title: Bulk Edit Products
- sort:
- pagination:
- clear_search: Clear search
filters:
producers:
label: Producers
categories:
label: Categories
search: Search
+ sort:
+ pagination:
+ clear_search: Clear search
table:
new_variant: New variant
edit_image:
@@ -594,6 +597,9 @@ en_AU:
product_categories: Product Categories
tax_categories: Tax Categories
shipping_categories: Shipping Categories
+ dfc_import_form:
+ enterprise: "Enterprise"
+ import: "Import"
import:
review: Review
import: Import
@@ -743,7 +749,7 @@ en_AU:
acn: ACN
acn_placeholder: eg. 123 456 789
display_invoice_logo: Display logo in invoices
- invoice_text: Add customized text at the end of invoices
+ invoice_text: Add customised text at the end of invoices
terms_and_conditions: "Terms and Conditions"
remove_terms_and_conditions: "Remove File"
uploaded_on: "uploaded on"
@@ -3100,6 +3106,7 @@ en_AU:
credit: "Credit"
more: "More"
no_pending_payments: "No pending payments"
+ remove: "Remove"
none: "None"
updating: "Updating"
your_order_is_empty_add_product: "Your order is empty, please search for and add a product above"
diff --git a/config/locales/en_BE.yml b/config/locales/en_BE.yml
index d34967e6ae..3eedba8b4e 100644
--- a/config/locales/en_BE.yml
+++ b/config/locales/en_BE.yml
@@ -32,6 +32,9 @@ en_BE:
shipping_category_id: "Shipping Category"
variant_unit: "Variant Unit"
variant_unit_name: "Variant Unit Name"
+ spree/variant:
+ primary_taxon: "Product Category"
+ shipping_category_id: "Shipping Category"
spree/credit_card:
base: "Credit Card"
number: "Number"
@@ -552,6 +555,9 @@ en_BE:
product_categories: Product Categories
tax_categories: Tax Categories
shipping_categories: Shipping Categories
+ dfc_import_form:
+ enterprise: "Enterprise"
+ import: "Import"
import:
review: Review
import: Import
@@ -2853,6 +2859,7 @@ en_BE:
category: "Category"
credit: "Credit"
more: "More"
+ remove: "Remove"
none: "None"
updating: "Updating"
your_order_is_empty_add_product: "Your order is empty, please search for and add a product above"
diff --git a/config/locales/en_CA.yml b/config/locales/en_CA.yml
index 386ae48429..29a11fa88f 100644
--- a/config/locales/en_CA.yml
+++ b/config/locales/en_CA.yml
@@ -51,6 +51,9 @@ en_CA:
variant_unit: "Variant Unit"
variant_unit_name: "Variant Unit Name"
unit_value: "Unit value"
+ spree/variant:
+ primary_taxon: "Product Category"
+ shipping_category_id: "Shipping Category"
spree/credit_card:
base: "Credit Card"
number: "Number"
@@ -191,6 +194,9 @@ en_CA:
transaction_not_allowed: "The card has been declined for an unknown reason."
try_again_later: "The card has been declined for an unknown reason."
withdrawal_count_limit_exceeded: "The customer has exceeded the balance or credit limit available on their card."
+ disconnect_failure: "Failed to disconnecct Stripe."
+ success_code:
+ disconnected: "Stripe account disconnected."
activemodel:
errors:
messages:
@@ -220,6 +226,8 @@ en_CA:
community_forum_url: "Community forum URL"
customer_instructions: "Customer instructions"
additional_information: "Additional information"
+ connect_app:
+ url: "https://n8n.opernfoodnetwork.org/webhook/regen-CAN/connect-enterprise"
devise:
passwords:
spree_user:
@@ -509,7 +517,10 @@ en_CA:
colums: Columns
columns:
name: Name
+ unit_scale: Unit scale
unit: Unit
+ unit_value: Unit value
+ display_as: Display unit as
price: Price
producer: Producer
category: Category
@@ -691,6 +702,10 @@ en_CA:
your_content: Your content
user_guide: User Guide
map: Map
+ dfc_product_imports:
+ index:
+ title: "Importing a DFC product catalog"
+ imported_products: "Imported products:"
enterprise_fees:
index:
title: "Enterprise Fees"
@@ -768,13 +783,6 @@ en_CA:
prompt: "This will permanently remove it from your list."
confirmation_text: "Delete variant"
cancellation_text: "Keep variant"
- sort:
- pagination:
- total_html: "
%{total} products found for your search criteria. Showing %{from} to %{to}."
- per_page:
- show: Show
- per_page: "%{num} per page"
- clear_search: Clear search
filters:
search_products: Search for products
search_for_producers: Search for producers
@@ -786,6 +794,13 @@ en_CA:
categories:
label: Categories
search: Search
+ sort:
+ pagination:
+ total_html: "
%{total} products found for your search criteria. Showing %{from} to %{to}."
+ per_page:
+ show: Show
+ per_page: "%{num} per page"
+ clear_search: Clear search
no_products:
no_products_found: No products found
import_products: Import multiple products
@@ -857,6 +872,11 @@ en_CA:
product_categories: Product Categories
tax_categories: Tax Categories
shipping_categories: Shipping Categories
+ dfc_import_form:
+ title: "Import from DFC catalog"
+ enterprise: "Enterprise"
+ catalog_url: "DFC catalog URL"
+ import: "Import"
import:
review: Review
import: Import
@@ -1165,6 +1185,7 @@ en_CA:
open_date: "Open Date"
close_date: "Close Date"
display_ordering_in_shopfront: "Display ordering in shopfront:"
+ shopfront_sort_by_product: "By product"
shopfront_sort_by_category: "By category"
shopfront_sort_by_producer: "By producer"
shopfront_sort_by_category_placeholder: "Category"
@@ -1640,9 +1661,15 @@ en_CA:
index:
title: "OIDC Settings"
connect: "Connect Your Account"
+ disconnect: "Disconnect"
+ connected: "Your account is linked to %{uid}."
les_communs_link: "Les Communs Open ID server"
link_your_account: "First you need to link your account with the authorization provider used by DFC (Les Communs Open ID Connect)."
link_account_button: "Link your Les Communs OIDC Account"
+ note_expiry: |
+ Tokens to access connected apps have expired. Please refresh your
+ account connection to keep all integrations working.
+ refresh: "Refresh authorisation"
view_account: "To view your account, see:"
subscriptions:
index:
@@ -3699,6 +3726,7 @@ en_CA:
new_taxon: "New taxon"
new_user: "New user"
no_pending_payments: "No pending payments"
+ remove: "Remove"
none: "None"
not_found: "Not found"
notice_messages:
@@ -3715,8 +3743,8 @@ en_CA:
start_date: "Start date"
successfully_removed: "Successfully Removed"
taxonomy_edit: "Taxonomy edit"
- taxonomy_tree_error: "Taxonomy tree error"
- taxonomy_tree_instruction: "Taxonomy tree instruction"
+ taxonomy_tree_error: "There was an error updating the taxonomy tree."
+ taxonomy_tree_instruction: "Right-click on an item to add, rename, remove or edit."
tree: "Tree"
updating: "Updating"
your_order_is_empty_add_product: "Your order is empty, please search for and add a product above"
diff --git a/config/locales/en_DE.yml b/config/locales/en_DE.yml
index 68cb723338..80ac27c6ed 100644
--- a/config/locales/en_DE.yml
+++ b/config/locales/en_DE.yml
@@ -32,6 +32,9 @@ en_DE:
shipping_category_id: "Shipping Category"
variant_unit: "Variant Unit"
variant_unit_name: "Variant Unit Name"
+ spree/variant:
+ primary_taxon: "Product Category"
+ shipping_category_id: "Shipping Category"
spree/credit_card:
base: "Credit Card"
number: "Number"
@@ -559,6 +562,9 @@ en_DE:
product_categories: Product Categories
tax_categories: Tax Categories
shipping_categories: Shipping Categories
+ dfc_import_form:
+ enterprise: "Enterprise"
+ import: "Import"
import:
review: Review
import: Import
@@ -2862,6 +2868,7 @@ en_DE:
category: "Category"
credit: "Credit"
more: "More"
+ remove: "Remove"
none: "None"
updating: "Updating"
your_order_is_empty_add_product: "Your order is empty, please search for and add a product above"
diff --git a/config/locales/en_FR.yml b/config/locales/en_FR.yml
index 7206cfc306..1a50fd6267 100644
--- a/config/locales/en_FR.yml
+++ b/config/locales/en_FR.yml
@@ -51,6 +51,9 @@ en_FR:
variant_unit: "Variant Unit"
variant_unit_name: "Variant Unit Name"
unit_value: "Unit value"
+ spree/variant:
+ primary_taxon: "Product Category"
+ shipping_category_id: "Shipping Category"
spree/credit_card:
base: "Credit Card"
number: "Number"
@@ -191,6 +194,9 @@ en_FR:
transaction_not_allowed: "The card has been declined for an unknown reason."
try_again_later: "The card has been declined for an unknown reason."
withdrawal_count_limit_exceeded: "The customer has exceeded the balance or credit limit available on their card."
+ disconnect_failure: "Failed to disconnect Stripe."
+ success_code:
+ disconnected: "Stripe account disconnected."
activemodel:
errors:
messages:
@@ -216,10 +222,16 @@ en_FR:
not_available_to_shop: "is not available to %{shop}"
card_details: "Card details"
card_type: "Card type"
+ card_type_is: "Card type is"
+ unrecognized_card_type: "Unrecognized card type"
+ use_new_cc: "Use a new credit card"
+ what_is_this: "What is this?"
cardholder_name: "Cardholder name"
community_forum_url: "Community forum URL"
customer_instructions: "Customer instructions"
additional_information: "Additional Information"
+ connect_app:
+ url: "https://n8n.openfoodnetwork.org/webhook/regen/connect-enterprise"
devise:
passwords:
spree_user:
@@ -509,7 +521,10 @@ en_FR:
colums: Columns
columns:
name: Name
+ unit_scale: Unit scale
unit: Unit
+ unit_value: Unit value
+ display_as: Display unit as
price: Price
producer: Producer
category: Category
@@ -639,6 +654,7 @@ en_FR:
status: Status
ok: Ok
instance_secret_key: Instance Secret Key
+ instance_publishable_key: Instance Publishable Key
account_id: Account ID
business_name: Business Name
charges_enabled: Charges Enabled
@@ -691,6 +707,10 @@ en_FR:
your_content: Your content
user_guide: User Guide
map: Map
+ dfc_product_imports:
+ index:
+ title: "Importing a DFC product catalog"
+ imported_products: "Imported products:"
enterprise_fees:
index:
title: "Enterprise Fees"
@@ -768,13 +788,6 @@ en_FR:
prompt: "This will permanently remove it from your list."
confirmation_text: "Delete variant"
cancellation_text: "Keep variant"
- sort:
- pagination:
- total_html: "
%{total} products found for your search criteria. Showing %{from} to %{to}."
- per_page:
- show: Show
- per_page: "%{num} per page"
- clear_search: Clear search
filters:
search_products: Search for products
search_for_producers: Search for producers
@@ -786,6 +799,13 @@ en_FR:
categories:
label: Categories
search: Search
+ sort:
+ pagination:
+ total_html: "
%{total} products found for your search criteria. Showing %{from} to %{to}."
+ per_page:
+ show: Show
+ per_page: "%{num} per page"
+ clear_search: Clear search
no_products:
no_products_found: No products found
import_products: Import multiple products
@@ -857,6 +877,11 @@ en_FR:
product_categories: Product Categories
tax_categories: Tax Categories
shipping_categories: Shipping Categories
+ dfc_import_form:
+ title: "Import from DFC catalog"
+ enterprise: "Enterprise"
+ catalog_url: "DFC catalog URL"
+ import: "Import"
import:
review: Review
import: Import
@@ -1165,6 +1190,7 @@ en_FR:
open_date: "Open Date"
close_date: "Close Date"
display_ordering_in_shopfront: "Display ordering in shopfront:"
+ shopfront_sort_by_product: "By product"
shopfront_sort_by_category: "By category"
shopfront_sort_by_producer: "By producer"
shopfront_sort_by_category_placeholder: "Category"
@@ -2471,6 +2497,7 @@ en_FR:
orders_bought_already_confirmed: "* already confirmed"
orders_confirm_cancel: "Are you sure you want to cancel this order?"
order_processed_successfully: "Your order has been processed successfully"
+ thank_you_for_your_order: "Thank you for your order"
products_cart_distributor_choice: "Distributor for your order:"
products_cart_distributor_change: "Your distributor for this order will be changed to %{name} if you add this product to your cart."
products_cart_distributor_is: "Your distributor for this order is %{name}."
@@ -3695,6 +3722,7 @@ en_FR:
editing_tax_category: "Editing tax category"
editing_tax_rate: "Editing tax rate"
editing_zone: "Editing zone"
+ editing_state: "Editing State"
expiration: "Expiration"
invalid_payment_provider: "Invalid payment provider"
items_cannot_be_shipped: "Items cannot be shipped"
@@ -3706,6 +3734,7 @@ en_FR:
new_taxon: "New taxon"
new_user: "New user"
no_pending_payments: "No pending payments"
+ remove: "Remove"
none: "None"
not_found: "Not found"
notice_messages:
@@ -3722,8 +3751,8 @@ en_FR:
start_date: "Start date"
successfully_removed: "Successfully Removed"
taxonomy_edit: "Taxonomy edit"
- taxonomy_tree_error: "Taxonomy tree error"
- taxonomy_tree_instruction: "Taxonomy tree instruction"
+ taxonomy_tree_error: "There was an error updating the taxonomy tree."
+ taxonomy_tree_instruction: "Right-click on an item to add, rename, remove or edit."
tree: "Tree"
updating: "Updating"
your_order_is_empty_add_product: "Your order is empty, please search for and add a product above"
@@ -3732,6 +3761,7 @@ en_FR:
resend: "Resend"
back_to_orders_list: "Back To Orders List"
back_to_payments_list: "Back To Payments List"
+ back_to_states_list: "Back To States List"
return_authorizations: "Return Authorizations"
cannot_create_returns: "Cannot create returns as this order has no shipped units."
select_stock: "Select stock"
diff --git a/config/locales/en_GB.yml b/config/locales/en_GB.yml
index 054eb82938..3530fc640f 100644
--- a/config/locales/en_GB.yml
+++ b/config/locales/en_GB.yml
@@ -48,6 +48,9 @@ en_GB:
variant_unit: "Variant Unit"
variant_unit_name: "Variant Unit Name"
unit_value: "Unit value"
+ spree/variant:
+ primary_taxon: "Product Category"
+ shipping_category_id: "Shipping Category"
spree/credit_card:
base: "Credit Card"
number: "Number"
@@ -75,6 +78,10 @@ en_GB:
models:
enterprise_fee:
inherit_tax_requires_per_item_calculator: "Inheriting the tax category requires a per-item calculator."
+ spree/image:
+ attributes:
+ attachment:
+ integrity_error: "failed to load. Please check to ensure the file is not corrupt, and try again."
spree/user:
attributes:
email:
@@ -384,6 +391,7 @@ en_GB:
cancel_order: "Cancel Order"
confirm_send_invoice: "An invoice for this order will be sent to the customer. Are you sure you want to continue?"
confirm_resend_order_confirmation: "Are you sure you want to resend the order confirmation email?"
+ must_have_valid_business_number: "%{enterprise_name} must have a valid company number or charity number before invoices can be used."
invoice: "Invoice"
invoices: "Invoices"
file: "File"
@@ -501,7 +509,10 @@ en_GB:
colums: Columns
columns:
name: Name
+ unit_scale: Unit scale
unit: Unit
+ unit_value: Unit value
+ display_as: Display unit as
price: Price
producer: Producer
category: Category
@@ -683,6 +694,9 @@ en_GB:
your_content: Your content
user_guide: User Guide
map: Map
+ dfc_product_imports:
+ index:
+ imported_products: "Imported products:"
enterprise_fees:
index:
title: "Enterprise Fees"
@@ -759,13 +773,7 @@ en_GB:
heading: "Delete variant"
prompt: "This will permanently remove it from your list."
confirmation_text: "Delete variant"
- sort:
- pagination:
- total_html: "
%{total}productsfound for your search criteria. Showing %{from}to%{to}."
- per_page:
- show: Show
- per_page: "%{num}per page"
- clear_search: Clear search
+ cancellation_text: "Keep variant"
filters:
search_products: Search for products
search_for_producers: Search for producers
@@ -777,6 +785,13 @@ en_GB:
categories:
label: Categories
search: Search
+ sort:
+ pagination:
+ total_html: "
%{total}productsfound for your search criteria. Showing %{from}to%{to}."
+ per_page:
+ show: Show
+ per_page: "%{num}per page"
+ clear_search: Clear search
no_products:
no_products_found: No products found
import_products: Import multiple products
@@ -845,6 +860,9 @@ en_GB:
product_categories: Product Categories
tax_categories: Tax Categories
shipping_categories: Shipping Categories
+ dfc_import_form:
+ enterprise: "Enterprise"
+ import: "Import"
import:
review: Review
import: Import
@@ -1628,9 +1646,15 @@ en_GB:
index:
title: "OIDC Settings"
connect: "Connect Your Account"
+ disconnect: "Disconnect"
+ connected: "Your account is linked to %{uid}"
les_communs_link: "Les Communs Open ID server"
link_your_account: "You need first to link your account with the authorisation provider used by DFC (Les Communs Open ID Connect)."
link_account_button: "Link your Les Communs OIDC Account"
+ note_expiry: |
+ Tokens to access connected apps have expired. Please refresh your account
+ connection to keep all integrations working.
+ refresh: "Refresh authorisation"
view_account: "To view your account, see:"
subscriptions:
index:
@@ -2173,6 +2197,7 @@ en_GB:
order_back_to_website: Back To Website
checkout_details_title: Checkout Details
checkout_payment_title: Checkout Payment
+ checkout_summary_title: Checkout Summary
bom_tip: "Use this page to alter product quantities across multiple orders. Products may also be removed from orders entirely, if required."
unsaved_changes_warning: "Unsaved changes exist and will be lost if you continue."
unsaved_changes_error: "Fields with red borders contain errors."
@@ -3693,6 +3718,7 @@ en_GB:
new_taxon: "New taxon"
new_user: "New user"
no_pending_payments: "No pending payments"
+ remove: "Remove"
none: "None"
not_found: "Not found"
notice_messages:
@@ -3709,8 +3735,8 @@ en_GB:
start_date: "Start date"
successfully_removed: "Successfully Removed"
taxonomy_edit: "Taxonomy edit"
- taxonomy_tree_error: "Taxonomy tree error"
- taxonomy_tree_instruction: "Taxonomy tree instruction"
+ taxonomy_tree_error: "There was an error updating the taxonomy tree."
+ taxonomy_tree_instruction: "Right-click on an item to add, rename, remove or edit."
tree: "Tree"
updating: "Updating"
your_order_is_empty_add_product: "Your order is empty, please search for and add a product above"
@@ -4005,6 +4031,9 @@ en_GB:
add_product:
cannot_add_item_to_canceled_order: "Cannot add item to canceled order"
include_out_of_stock_variants: "Include variants with no available stock"
+ shipment:
+ mark_as_shipped_message_html: "This will mark the order as Shipped.
Are you sure you want to proceed?"
+ mark_as_shipped_label_message: "Send a shipment/pick up notification email to the customer."
index:
listing_orders: "Listing Orders"
new_order: "New Order"
@@ -4302,7 +4331,11 @@ en_GB:
form:
name: Name
permalink: Permalink
+ meta_title: Meta Title
+ meta_description: Meta Description
+ meta_keywords: Meta Keywords
description: Description
+ dfc_id: DFC URI
general_settings:
edit:
legal_settings: "Legal Settings"
@@ -4598,3 +4631,6 @@ en_GB:
pagination:
next: Next
previous: Previous
+ invisible_captcha:
+ sentence_for_humans: "Please leave empty"
+ timestamp_error_message: "Please try again after 5 seconds."
diff --git a/config/locales/en_IE.yml b/config/locales/en_IE.yml
index 92b1d59807..d58402827c 100644
--- a/config/locales/en_IE.yml
+++ b/config/locales/en_IE.yml
@@ -1,5 +1,8 @@
en_IE:
language_name: "English"
+ time:
+ formats:
+ long: "%B %d, %Y %-l:%M %p"
activerecord:
models:
spree/product: Product
@@ -48,6 +51,9 @@ en_IE:
variant_unit: "Variant Unit"
variant_unit_name: "Variant Unit Name"
unit_value: "Unit value"
+ spree/variant:
+ primary_taxon: "Product Category"
+ shipping_category_id: "Shipping Category"
spree/credit_card:
base: "Credit Card"
number: "Number"
@@ -75,6 +81,10 @@ en_IE:
models:
enterprise_fee:
inherit_tax_requires_per_item_calculator: "Inheriting the tax categeory requires a per-item calculator."
+ spree/image:
+ attributes:
+ attachment:
+ integrity_error: "failed to load. Please check to ensure the file is not corrupt, and try again."
spree/user:
attributes:
email:
@@ -384,6 +394,7 @@ en_IE:
cancel_order: "Cancel Order"
confirm_send_invoice: "An invoice for this order will be sent to the customer. Are you sure you want to continue?"
confirm_resend_order_confirmation: "Are you sure you want to resend the order confirmation email?"
+ must_have_valid_business_number: "%{enterprise_name} must have a company number before invoices can be used."
invoice: "Invoice"
invoices: "Invoices"
file: "File"
@@ -501,7 +512,9 @@ en_IE:
colums: Columns
columns:
name: Name
+ unit_scale: Unit scale
unit: Unit
+ unit_value: Unit value
price: Price
producer: Producer
category: Category
@@ -593,6 +606,9 @@ en_IE:
has_n_rules: "has %{num} rules"
unsaved_confirm_leave: "There are unsaved changed on this page. Continue without saving?"
available_units: "Available Units"
+ terms_of_service_have_been_updated_html: "Open Food Network's Terms of Service have been updated: %{tos_link}"
+ terms_of_service: Read Terms of Service
+ accept_terms_of_service: Accept Terms of Service
shopfront_settings:
embedded_shopfront_settings: "Embedded Shopfront Settings"
enable_embedded_shopfronts: "Enable Embedded Shopfronts"
@@ -617,7 +633,7 @@ en_IE:
title: "Invoice Settings"
enable_invoices?: "Enable Invoices?"
invoice_style2?: "Use the alternative invoice model that includes total tax breakdown per rate and tax rate info per item (not yet suitable for countries displaying prices excluding tax)"
- enterprise_number_required_on_invoices?: "Require an ABN to generate an invoice?"
+ enterprise_number_required_on_invoices?: "Require a company number to generate an invoice?"
stripe_connect_settings:
edit:
title: "Stripe Connect"
@@ -746,6 +762,28 @@ en_IE:
header:
title: Bulk Edit Products
loading: Loading your products
+ delete_modal:
+ delete_product_modal:
+ heading: "Delete product"
+ prompt: "This will permanently remove it from your list."
+ confirmation_text: "Delete product"
+ cancellation_text: "Keep product"
+ delete_variant_modal:
+ heading: "Delete variant"
+ prompt: "This will permanently remove it from your list."
+ confirmation_text: "Delete variant"
+ cancellation_text: "Keep variant"
+ filters:
+ search_products: Search for products
+ search_for_producers: Search for producers
+ all_producers: All producers
+ search_for_categories: Search for categories
+ all_categories: All categories
+ producers:
+ label: Producers
+ categories:
+ label: Categories
+ search: Search
sort:
pagination:
total_html: "
%{total} products found for your search criteria. Showing %{from} to %{to}."
@@ -753,15 +791,6 @@ en_IE:
show: Show
per_page: "%{num} per page"
clear_search: Clear search
- filters:
- search_products: Search for products
- all_producers: All producers
- all_categories: All categories
- producers:
- label: Producers
- categories:
- label: Categories
- search: Search
no_products:
no_products_found: No products found
import_products: Import multiple products
@@ -780,8 +809,18 @@ en_IE:
reset: Discard changes
save: Save changes
new_variant: New variant
+ bulk_update:
+ success: Changes saved
edit_image:
+ title: Edit product photo
close: Back
+ upload: Upload photo
+ delete_product:
+ success: Successfully deleted the product
+ error: Unable to delete the product
+ delete_variant:
+ success: Successfully deleted the variant
+ error: Unable to delete the variant
product_import:
title: Product Import
file_not_found: File not found or could not be opened
@@ -823,6 +862,9 @@ en_IE:
product_categories: Product Categories
tax_categories: Tax Categories
shipping_categories: Shipping Categories
+ dfc_import_form:
+ enterprise: "Enterprise"
+ import: "Import"
import:
review: Review
import: Import
@@ -1027,6 +1069,7 @@ en_IE:
images:
legend: "Images"
logo: Logo
+ logo_size: "300 x 300 pixels"
promo_image_placeholder: 'This image is displayed in "About Us"'
promo_image_note1: 'PLEASE NOTE:'
promo_image_note2: Any promo image uploaded here will be cropped to 1200 x 260.
@@ -1212,7 +1255,28 @@ en_IE:
custom_tab_title: "Title for custom tab"
custom_tab_content: "Content for custom tab"
connected_apps:
+ legend: "Connected apps"
+ title: "Discover Regenerative"
+ tagline: "Allow Discover Regenerative to publish your enterprise information."
+ enable: "Allow data sharing"
+ disable: "Stop sharing"
loading: "Loading"
+ note: |
+ Your Open Food Network account is connected to Discover Regenerative.
+ Add or update information on your Discover Regenerative listing here.
+ link_label: "Manage listing"
+ description_html: |
+
+ Eligible producers can showcase their regenerative credentials,
+ farming practices and more through a profile listing.
+ Simplifying how buyers can find regenerative produce and connect
+ with producers of interest.
+
+
+ Learn more about Discover Regenerative
+
+
actions:
edit_profile: Settings
properties: Properties
@@ -1442,6 +1506,8 @@ en_IE:
has_no_payment_methods: "%{enterprise} has no payment methods"
has_no_shipping_methods: "%{enterprise} has no shipping methods"
has_no_enterprise_fees: "%{enterprise} has no enterprise fees"
+ flashes:
+ dismiss: Dismiss
side_menu:
enterprise:
primary_details: "Primary Details"
@@ -1462,6 +1528,7 @@ en_IE:
users: "Users"
vouchers: Vouchers
white_label: "White Label"
+ connected_apps: "Connected apps"
enterprise_group:
primary_details: "Primary Details"
users: "Users"
@@ -1581,9 +1648,15 @@ en_IE:
index:
title: "OIDC Settings"
connect: "Connect Your Account"
+ disconnect: "Disconnect"
+ connected: "Your account is linked to %{uid}."
les_communs_link: "Les Communs Open ID server"
link_your_account: "You need first to link your account with the authorization provider used by DFC (Les Communs Open ID Connect)."
link_account_button: "Link your Les Communs OIDC Account"
+ note_expiry: |
+ Tokens to access connected apps have expired. Please refresh your
+ account connection to keep all integrations working.
+ refresh: "Refresh authorisation"
view_account: "To view your account, see:"
subscriptions:
index:
@@ -1900,6 +1973,7 @@ en_IE:
invoice_column_price_per_unit_without_taxes: "Price Per unit (Excl. tax)"
invoice_column_tax_rate: "Tax rate"
invoice_tax_total: "VAT Total:"
+ invoice_cancel_and_replace_invoice: "cancels and replaces invoice"
tax_invoice: "TAX INVOICE"
tax_total: "Total tax (%{rate}):"
invoice_shipping_category_delivery: "Delivery"
@@ -1922,8 +1996,8 @@ en_IE:
menu_4_url: "/groups"
menu_5_title: "About"
menu_5_url: "https://about.openfoodnetwork.ie"
- menu_6_title: "Blog"
- menu_6_url: "https://about.openfoodnetwork.ie/blog"
+ menu_6_title: "Resources"
+ menu_6_url: "https://about.openfoodnetwork.ie/resources"
menu_7_title: "Support"
menu_7_url: "https://about.openfoodnetwork.ie/support"
logo: "Logo (640x130)"
@@ -2123,6 +2197,9 @@ en_IE:
order_back_to_store: Back To Store
order_back_to_cart: Back To Cart
order_back_to_website: Back To Website
+ checkout_details_title: Checkout Details
+ checkout_payment_title: Checkout Payment
+ checkout_summary_title: Checkout Summary
bom_tip: "Use this page to alter product quantities across multiple orders. Products may also be removed from orders entirely, if required."
unsaved_changes_warning: "Unsaved changes exist and will be lost if you continue."
unsaved_changes_error: "Fields with red borders contain errors."
@@ -2985,6 +3062,8 @@ en_IE:
report_header_transaction_fee: Transaction Fee (no tax)
report_header_total_untaxable_admin: Total untaxable admin adjustments (no tax)
report_header_total_taxable_admin: Total taxable admin adjustments (tax inclusive)
+ report_header_voucher_label: Voucher Label
+ report_header_voucher_amount: "Voucher Amount (%{currency_symbol})"
report_line_cost_of_produce: Cost of produce
report_line_line_items: line items
report_header_last_completed_order_date: Last completed order date
@@ -3306,6 +3385,7 @@ en_IE:
processing: "processing"
void: "void"
invalid: "invalid"
+ quantity_unavailable: "Insufficient stock available. Line item unsaved!"
quantity_unchanged: "Quantity unchanged from previous amount."
cancel_the_order_html: "This will cancel the current order.
Are you sure you want to proceed?"
cancel_the_order_send_cancelation_email: "Send a cancellation email to the customer"
@@ -3640,6 +3720,7 @@ en_IE:
new_taxon: "New taxon"
new_user: "New user"
no_pending_payments: "No pending payments"
+ remove: "Remove"
none: "None"
not_found: "Not found"
notice_messages:
@@ -3656,8 +3737,8 @@ en_IE:
start_date: "Start date"
successfully_removed: "Successfully Removed"
taxonomy_edit: "Taxonomy edit"
- taxonomy_tree_error: "Taxonomy tree error"
- taxonomy_tree_instruction: "Taxonomy tree instruction"
+ taxonomy_tree_error: "There was an error updating the taxonomy tree."
+ taxonomy_tree_instruction: "Right-click on an item to add, rename, remove or edit."
tree: "Tree"
updating: "Updating"
your_order_is_empty_add_product: "Your order is empty, please search for and add a product above"
@@ -3710,6 +3791,7 @@ en_IE:
credit_card: "Credit Card"
new_payment: "New Payment"
capture: "Capture"
+ capture_and_complete_order: "Capture and complete order"
void: "Void"
login: "Login"
password: "Password"
@@ -3951,6 +4033,9 @@ en_IE:
add_product:
cannot_add_item_to_canceled_order: "Cannot add item to canceled order"
include_out_of_stock_variants: "Include variants with no available stock"
+ shipment:
+ mark_as_shipped_message_html: "This will mark the order as Shipped.
Are you sure you want to proceed?"
+ mark_as_shipped_label_message: "Send a shipment/pick up notification email to the customer."
index:
listing_orders: "Listing Orders"
new_order: "New Order"
@@ -4009,6 +4094,9 @@ en_IE:
line_item_adjustments: "Line Item Adjustments"
order_adjustments: "Order Adjustments"
order_total: "Order Total"
+ invoices:
+ index:
+ order_has_changed: "The order has changed since the last invoice update. The invoice shown here might not be up-to-date anymore."
overview:
enterprises_header:
ofn_with_tip: Enterprises are Producers and/or Hubs and are the basic unit of organisation within the Open Food Network.
@@ -4017,6 +4105,7 @@ en_IE:
has_no_payment_methods: "has no payment methods"
has_no_shipping_methods: "has no shipping methods"
products:
+ products_tip: "The products that you sell through the Open Food Network."
active_products:
zero: "You don't have any active products."
one: "You have one active product"
@@ -4169,6 +4258,8 @@ en_IE:
bulk_unit_size: Bulk unit size
display_as:
display_as: Display As
+ clone:
+ success: Product cloned
reports:
table:
select_and_search: "Select filters and click on %{option} to access your data."
@@ -4242,7 +4333,11 @@ en_IE:
form:
name: Name
permalink: Permalink
+ meta_title: Meta Title
+ meta_description: Meta Description
+ meta_keywords: Meta Keywords
description: Description
+ dfc_id: DFC URI
general_settings:
edit:
legal_settings: "Legal Settings"
@@ -4538,3 +4633,6 @@ en_IE:
pagination:
next: Next
previous: Previous
+ invisible_captcha:
+ sentence_for_humans: "Please leave empty"
+ timestamp_error_message: "Please try again after 5 seconds."
diff --git a/config/locales/en_IN.yml b/config/locales/en_IN.yml
index e139bb021d..64b8d02c11 100644
--- a/config/locales/en_IN.yml
+++ b/config/locales/en_IN.yml
@@ -32,6 +32,9 @@ en_IN:
shipping_category_id: "Shipping Category"
variant_unit: "Variant Unit"
variant_unit_name: "Variant Unit Name"
+ spree/variant:
+ primary_taxon: "Product Category"
+ shipping_category_id: "Shipping Category"
spree/credit_card:
base: "Credit Card"
number: "Number"
@@ -526,15 +529,15 @@ en_IN:
index:
header:
title: Bulk Edit Products
- sort:
- pagination:
- clear_search: Clear search
filters:
producers:
label: Producers
categories:
label: Categories
search: Search
+ sort:
+ pagination:
+ clear_search: Clear search
table:
new_variant: New variant
edit_image:
@@ -578,6 +581,9 @@ en_IN:
product_categories: Product Categories
tax_categories: Tax Categories
shipping_categories: Shipping Categories
+ dfc_import_form:
+ enterprise: "Enterprise"
+ import: "Import"
import:
review: Review
import: Import
@@ -3027,6 +3033,7 @@ en_IN:
credit: "Credit"
more: "More"
no_pending_payments: "No pending payments"
+ remove: "Remove"
none: "None"
updating: "Updating"
your_order_is_empty_add_product: "Your order is empty, please search for and add a product above"
diff --git a/config/locales/en_NZ.yml b/config/locales/en_NZ.yml
index 4f54e8810b..0abd85c023 100644
--- a/config/locales/en_NZ.yml
+++ b/config/locales/en_NZ.yml
@@ -34,6 +34,9 @@ en_NZ:
shipping_category_id: "Shipping Category"
variant_unit: "Variant Unit"
variant_unit_name: "Variant Unit Name"
+ spree/variant:
+ primary_taxon: "Product Category"
+ shipping_category_id: "Shipping Category"
spree/credit_card:
base: "Credit Card"
number: "Number"
@@ -679,15 +682,15 @@ en_NZ:
index:
header:
title: Bulk Edit Products
- sort:
- pagination:
- clear_search: Clear search
filters:
producers:
label: Producers
categories:
label: Categories
search: Search
+ sort:
+ pagination:
+ clear_search: Clear search
table:
new_variant: New variant
edit_image:
@@ -731,6 +734,9 @@ en_NZ:
product_categories: Product Categories
tax_categories: Tax Categories
shipping_categories: Shipping Categories
+ dfc_import_form:
+ enterprise: "Enterprise"
+ import: "Import"
import:
review: Review
import: Import
@@ -3345,6 +3351,7 @@ en_NZ:
credit: "Credit"
more: "More"
no_pending_payments: "No pending payments"
+ remove: "Remove"
none: "None"
refund: "Refund"
updating: "Updating"
diff --git a/config/locales/en_PH.yml b/config/locales/en_PH.yml
index 2d6c548ccd..c492d71a9f 100644
--- a/config/locales/en_PH.yml
+++ b/config/locales/en_PH.yml
@@ -32,6 +32,9 @@ en_PH:
shipping_category_id: "Shipping Category"
variant_unit: "Variant Unit"
variant_unit_name: "Variant Unit Name"
+ spree/variant:
+ primary_taxon: "Product Category"
+ shipping_category_id: "Shipping Category"
spree/credit_card:
base: "Credit Card"
number: "Number"
@@ -569,6 +572,9 @@ en_PH:
product_categories: Product Categories
tax_categories: Tax Categories
shipping_categories: Shipping Categories
+ dfc_import_form:
+ enterprise: "Enterprise"
+ import: "Import"
import:
review: Review
import: Import
@@ -2985,6 +2991,7 @@ en_PH:
credit: "Credit"
more: "More"
no_pending_payments: "No pending payments"
+ remove: "Remove"
none: "None"
updating: "Updating"
your_order_is_empty_add_product: "Your order is empty, please search for and add a product above"
diff --git a/config/locales/en_US.yml b/config/locales/en_US.yml
index e2718b81c2..58e3454eba 100644
--- a/config/locales/en_US.yml
+++ b/config/locales/en_US.yml
@@ -34,6 +34,9 @@ en_US:
shipping_category_id: "Shipping Category"
variant_unit: "Variant Unit"
variant_unit_name: "Variant Unit Name"
+ spree/variant:
+ primary_taxon: "Product Category"
+ shipping_category_id: "Shipping Category"
spree/credit_card:
base: "Credit Card"
number: "Number"
@@ -657,15 +660,15 @@ en_US:
index:
header:
title: Bulk Edit Products
- sort:
- pagination:
- clear_search: Clear search
filters:
producers:
label: Producers
categories:
label: Categories
search: Search
+ sort:
+ pagination:
+ clear_search: Clear search
table:
new_variant: New variant
edit_image:
@@ -709,6 +712,9 @@ en_US:
product_categories: Product Categories
tax_categories: Tax Categories
shipping_categories: Shipping Categories
+ dfc_import_form:
+ enterprise: "Enterprise"
+ import: "Import"
import:
review: Review
import: Import
@@ -3337,6 +3343,7 @@ en_US:
new_taxon: "New taxon"
new_user: "New user"
no_pending_payments: "No pending payments"
+ remove: "Remove"
none: "None"
not_found: "Not found"
notice_messages:
@@ -3351,8 +3358,6 @@ en_US:
start_date: "Start date"
successfully_removed: "Successfully Removed"
taxonomy_edit: "Taxonomy edit"
- taxonomy_tree_error: "Taxonomy tree error"
- taxonomy_tree_instruction: "Taxonomy tree instruction"
tree: "Tree"
updating: "Updating"
your_order_is_empty_add_product: "Your cart is empty, please search for and add a product above"
diff --git a/config/locales/en_ZA.yml b/config/locales/en_ZA.yml
index bc36137e74..0d920527ad 100644
--- a/config/locales/en_ZA.yml
+++ b/config/locales/en_ZA.yml
@@ -32,6 +32,9 @@ en_ZA:
shipping_category_id: "Shipping Category"
variant_unit: "Variant Unit"
variant_unit_name: "Variant Unit Name"
+ spree/variant:
+ primary_taxon: "Product Category"
+ shipping_category_id: "Shipping Category"
spree/credit_card:
base: "Credit Card"
number: "Number"
@@ -522,15 +525,15 @@ en_ZA:
index:
header:
title: Bulk Edit Products
- sort:
- pagination:
- clear_search: Clear search
filters:
producers:
label: Pricing
categories:
label: Categories
search: Search
+ sort:
+ pagination:
+ clear_search: Clear search
table:
new_variant: New variant
edit_image:
@@ -573,6 +576,9 @@ en_ZA:
product_categories: Product Categories
tax_categories: Tax Categories
shipping_categories: Shipping Categories
+ dfc_import_form:
+ enterprise: "Enterprise"
+ import: "Import"
import:
review: Review
import: Import
@@ -2927,6 +2933,7 @@ en_ZA:
credit: "Credit"
more: "More"
no_pending_payments: "No pending payments"
+ remove: "Remove"
none: "None"
updating: "Updating"
your_order_is_empty_add_product: "Your order is empty, please search for and add a product above"
diff --git a/config/locales/es.yml b/config/locales/es.yml
index 0bc3c30e4e..7c3473f7c2 100644
--- a/config/locales/es.yml
+++ b/config/locales/es.yml
@@ -48,6 +48,9 @@ es:
variant_unit: "Unidad Variante"
variant_unit_name: "Nombre de la unidad de la variante"
unit_value: "Valor unidad"
+ spree/variant:
+ primary_taxon: "categoría del producto"
+ shipping_category_id: "Categoría de envío"
spree/credit_card:
base: "Tarjeta de crédito"
number: "Número"
@@ -449,6 +452,7 @@ es:
columns:
name: Nombre
unit: Unidad
+ unit_value: Valor unidad
price: Precio
producer: Productora
category: Categoría
@@ -691,15 +695,15 @@ es:
header:
title: Editar varios Productos
loading: Cargando tus productos
- sort:
- pagination:
- clear_search: Limpiar la búsqueda
filters:
producers:
label: Productoras
categories:
label: Categorías
search: Buscar
+ sort:
+ pagination:
+ clear_search: Limpiar la búsqueda
no_products:
no_products_found: No se encontraron productos
import_products: Importar varios productos
@@ -748,6 +752,9 @@ es:
product_categories: Categorías de Producto
tax_categories: Categorías de impuestos
shipping_categories: Categorías de envío
+ dfc_import_form:
+ enterprise: "Organización"
+ import: "Importar"
import:
review: Revisión
import: Importar
@@ -3477,6 +3484,7 @@ es:
new_taxon: "Nuevo taxón"
new_user: "Nuevo usuario"
no_pending_payments: "No tiene pagos pendientes"
+ remove: "Eliminar"
none: "Ninguno"
not_found: "No encontrado"
notice_messages:
@@ -3492,8 +3500,6 @@ es:
start_date: "Fecha de inicio"
successfully_removed: "Eliminado con éxito"
taxonomy_edit: "editar taxonomía"
- taxonomy_tree_error: "Error del árbol de taxonomía"
- taxonomy_tree_instruction: "Instrucción del árbol de taxonomía"
tree: "Árbol"
updating: "Actualizando"
your_order_is_empty_add_product: "Su pedido está vacío, busque y añada un producto arriba"
diff --git a/config/locales/es_CO.yml b/config/locales/es_CO.yml
index 1d1d4a2af0..964ea1c945 100644
--- a/config/locales/es_CO.yml
+++ b/config/locales/es_CO.yml
@@ -34,6 +34,9 @@ es_CO:
shipping_category_id: "Categoría de envío"
variant_unit: "Unidad Variante"
variant_unit_name: "Nombre de la unidad de la variante"
+ spree/variant:
+ primary_taxon: "Categoría del producto"
+ shipping_category_id: "Categoría de envío"
spree/credit_card:
base: "Tarjeta de crédito"
number: "Número"
@@ -598,6 +601,9 @@ es_CO:
product_categories: Categorías de producto
tax_categories: Categorías de impuestos
shipping_categories: Categorías de envío
+ dfc_import_form:
+ enterprise: "Organización"
+ import: "Importar"
import:
review: Revisión
import: Importar
@@ -3086,6 +3092,7 @@ es_CO:
credit: "Crédito"
more: "Más"
no_pending_payments: "No tiene pagos pendientes"
+ remove: "Eliminar"
none: "Ninguno"
updating: "Actualizando"
your_order_is_empty_add_product: "Su pedido está vacío, busque y añada un producto arriba"
diff --git a/config/locales/es_CR.yml b/config/locales/es_CR.yml
index caf1766932..3b903b274c 100644
--- a/config/locales/es_CR.yml
+++ b/config/locales/es_CR.yml
@@ -34,6 +34,9 @@ es_CR:
shipping_category_id: "Categoría de envío"
variant_unit: "Unidad Variante"
variant_unit_name: "Nombre de la unidad de la variante"
+ spree/variant:
+ primary_taxon: "Categoría del producto"
+ shipping_category_id: "Categoría de envío"
spree/credit_card:
base: "Tarjeta de crédito"
number: "Número"
@@ -683,15 +686,15 @@ es_CR:
index:
header:
title: Editar productos por volumen
- sort:
- pagination:
- clear_search: Borrar búsqueda
filters:
producers:
label: Productores
categories:
label: Categorías
search: Buscar
+ sort:
+ pagination:
+ clear_search: Borrar búsqueda
table:
new_variant: Nueva variante
edit_image:
@@ -735,6 +738,9 @@ es_CR:
product_categories: Categorías de producto
tax_categories: Categorías de impuestos
shipping_categories: Categorías de envío
+ dfc_import_form:
+ enterprise: "Organización"
+ import: "Importar"
import:
review: Revisión
import: Importar
@@ -3436,6 +3442,7 @@ es_CR:
new_taxon: "Nuevo taxon"
new_user: "Nuevo usuari"
no_pending_payments: "No tiene pagos pendientes"
+ remove: "Eliminar"
none: "Ninguno"
not_found: "No encontrado"
notice_messages:
diff --git a/config/locales/es_US.yml b/config/locales/es_US.yml
index 196864cf35..35e2dc488b 100644
--- a/config/locales/es_US.yml
+++ b/config/locales/es_US.yml
@@ -34,6 +34,9 @@ es_US:
shipping_category_id: "Categoría de envío"
variant_unit: "Unidad Variante"
variant_unit_name: "Nombre de la unidad de la variante"
+ spree/variant:
+ primary_taxon: "categoría del producto"
+ shipping_category_id: "Categoría de envío"
spree/credit_card:
base: "Tarjeta de crédito"
number: "Número"
@@ -655,15 +658,15 @@ es_US:
index:
header:
title: Editar varios Productos
- sort:
- pagination:
- clear_search: Limpiar la búsqueda
filters:
producers:
label: Productoras
categories:
label: Categorías
search: Buscar
+ sort:
+ pagination:
+ clear_search: Limpiar la búsqueda
table:
new_variant: Nueva variante
edit_image:
@@ -707,6 +710,9 @@ es_US:
product_categories: Categorías de Producto
tax_categories: Categorías de impuestos
shipping_categories: Categorías de envío
+ dfc_import_form:
+ enterprise: "Organización"
+ import: "Importar"
import:
review: Revisión
import: Importar
@@ -3294,6 +3300,7 @@ es_US:
new_tax_category: "Nueva categoría de impuestos"
new_user: "Nuevo usuario"
no_pending_payments: "No tiene pagos pendientes"
+ remove: "Eliminar"
none: "Ninguno"
not_found: "no encontrado"
notice_messages:
diff --git a/config/locales/fil_PH.yml b/config/locales/fil_PH.yml
index 6e7b0726db..13c709fda4 100644
--- a/config/locales/fil_PH.yml
+++ b/config/locales/fil_PH.yml
@@ -32,6 +32,9 @@ fil_PH:
shipping_category_id: "Kategorya ng Pagpapadala"
variant_unit: "Yunit ng variant"
variant_unit_name: "pangalan ng yunit ng variant"
+ spree/variant:
+ primary_taxon: "Kategorya ng Produkto"
+ shipping_category_id: "Kategorya ng Pagpapadala"
spree/credit_card:
base: "Credit Card"
number: "Bilang"
@@ -570,6 +573,9 @@ fil_PH:
product_categories: kategorya ng produkto
tax_categories: kategorya ng tax
shipping_categories: mga kategorya ng pagpapadala
+ dfc_import_form:
+ enterprise: "Enterprise"
+ import: "ilipat"
import:
review: suriin
import: i-import
@@ -2997,6 +3003,7 @@ fil_PH:
credit: "utang"
more: "Karagdagang Impormasyon"
no_pending_payments: "walang nakabinbin na mga bayad"
+ remove: "Tanggalin"
none: "wala"
updating: "ina-update"
your_order_is_empty_add_product: "ang iyong order ay walang laman, humanap at magdagdag ng produkto sa itaas."
diff --git a/config/locales/fr.yml b/config/locales/fr.yml
index 6a1f99273d..74a8d86f47 100644
--- a/config/locales/fr.yml
+++ b/config/locales/fr.yml
@@ -51,6 +51,9 @@ fr:
variant_unit: "Unité"
variant_unit_name: "Unité de la variante"
unit_value: "Nb unités"
+ spree/variant:
+ primary_taxon: "Catégorie Produit"
+ shipping_category_id: "Condition de transport"
spree/credit_card:
base: "Carte de crédit"
number: "N° commande"
@@ -191,6 +194,9 @@ fr:
transaction_not_allowed: "La carte a été refusée pour une raison inconnue."
try_again_later: "La carte a été refusée pour une raison inconnue."
withdrawal_count_limit_exceeded: "L'acheteur a dépassé son plafond de carte bancaire."
+ disconnect_failure: "Déconnecter Stripe a échoué."
+ success_code:
+ disconnected: "Le compte Stripe est déconnecté."
activemodel:
errors:
messages:
@@ -216,10 +222,16 @@ fr:
not_available_to_shop: "n'est pas disponible pour %{shop}"
card_details: "Détalis de la carte"
card_type: "Type de carte"
+ card_type_is: "Type de carte"
+ unrecognized_card_type: "Type de carte non reconnu"
+ use_new_cc: "Utilisez une nouvelle carte bancaire"
+ what_is_this: "Qu'est-ce que c'est ?"
cardholder_name: "Titulaire de la carte"
community_forum_url: "Lien vers le forum"
customer_instructions: "Précisions pour l'acheteur"
additional_information: "Informations additionnelles"
+ connect_app:
+ url: "https://n8n.openfoodnetwork.org/webhook/regen/connect-enterprise"
devise:
passwords:
spree_user:
@@ -310,9 +322,9 @@ fr:
email_registered: "va, dès que vous aurez choisi un type d'entreprise, être créé sur"
email_userguide_html: "Le Guide Utilisateur est là pour vous accompagner dans la prise en main de la plateforme. Vous y trouverez les informations détaillées de paramétrage de votre entreprise, de vos produits si vous êtes producteur, et éventuellement de votre boutique. Pour accéder au guide en français, cliquez ici : %{link}"
userguide: "Guide utilisateur"
- email_admin_html: "Pour gérez votre entreprise, rendez-vous sur l’%{link}. Si vous choisissez CoopCircuits pour organiser vos ventes, l’utilisation est gratuite les 3 premiers mois pour vous permettre de tester notre solution. Au-delà, vous devrez choisir une de nos offres pour continuer à utiliser le service (voir rubrique “nos offres” sur notre site internet)."
+ email_admin_html: "Pour gérer votre entreprise, rendez-vous sur l’%{link}. Si vous choisissez CoopCircuits pour organiser vos ventes, l’utilisation est gratuite les 3 premiers mois après la première vente pour vous permettre de tester notre solution. Vous pouvez faire des \"vraies commandes\" pour tester à condition de les annuler juste après pour ne pas démarrer les 3 mois. Consultez la rubrique \"Nos offres & tarifs\" du site internet pour en connaître les détails."
admin_panel: "interface d'administration"
- email_community_html: "Nous avons aussi un forum de discussion en ligne pour échanger avec la communauté sur des questions liées à la plateforme ou aux défis de la gestion d'un circuit court. Nous vous invitons à y participer ! %{link}"
+ email_community_html: "Nous avons aussi un forum de discussion en ligne pour échanger avec la communauté sur des questions liées à la plateforme ou aux défis de la gestion d'un circuit court. Nous vous invitons à y participer ! %{link}\nSi vous avez besoin d'aide, nous proposons des démonstrations hebdomadaires en visio, où nous vous présentons la coopérative CoopCircuits, et vous donnons tous les trucs et astuces sur l'outil et ses fonctionnalités. Inscrivez-vous via le lien présent sur la page Aide&FAQ de notre site.\nSi vous préférez un rdv individuel - par téléphone ou visio - n'hésitez-pas à nous proposer un créneau pour vous rappeler \U0001F917"
join_community: "Accéder au forum"
invite_manager:
subject: "%{enterprise} vous a invité comme gestionnaire"
@@ -508,7 +520,10 @@ fr:
colums: Colonnes
columns:
name: Nom
+ unit_scale: Échelle d'unité
unit: Unité
+ unit_value: Nb unités
+ display_as: 'Afficher l''unité en '
price: Prix
producer: Producteur
category: Catégorie
@@ -638,6 +653,7 @@ fr:
status: Statut
ok: Ok
instance_secret_key: Clé Secrète de l'Instance
+ instance_publishable_key: Clé publique de l'instance
account_id: Identifiant Compte
business_name: Nom de l'entreprise
charges_enabled: Frais activés
@@ -690,6 +706,10 @@ fr:
your_content: Votre contenu
user_guide: Guide utilisateur
map: Carte
+ dfc_product_imports:
+ index:
+ title: "Importation d'un produit du catalogue DFC"
+ imported_products: "Produits importés :"
enterprise_fees:
index:
title: "Marges et Commissions"
@@ -767,13 +787,6 @@ fr:
prompt: "Cette action va supprimer ceci de façon permanente de votre liste."
confirmation_text: "Supprimer la variante"
cancellation_text: "Conserver la variante"
- sort:
- pagination:
- total_html: "
%{total} produits trouvés selon vos critères de recherche. Montrer %{from} à %{to}."
- per_page:
- show: Montrer
- per_page: "%{num} par page"
- clear_search: Annuler la recherche
filters:
search_products: Chercher des produits
search_for_producers: Rechercher des producteurs
@@ -785,6 +798,13 @@ fr:
categories:
label: Conditions de transport
search: Rechercher
+ sort:
+ pagination:
+ total_html: "
%{total} produits trouvés selon vos critères de recherche. Résultats %{from} à %{to}."
+ per_page:
+ show: Montrer
+ per_page: "%{num} par page"
+ clear_search: Annuler la recherche
no_products:
no_products_found: Pas de produits trouvés
import_products: Importer plusieurs produits
@@ -857,6 +877,11 @@ fr:
product_categories: Catégorie Produit
tax_categories: TVA applicable
shipping_categories: Conditions de transport
+ dfc_import_form:
+ title: "Importer depuis le catalogue DFC"
+ enterprise: "Entreprise"
+ catalog_url: "URL du catalogue DFC"
+ import: "Importer"
import:
review: Vérifier
import: Importer
@@ -1153,7 +1178,7 @@ fr:
Vous pouvez indiquer ici un message de bienvenue ou un message expliquant
les particularités de votre boutique. Ce message s'affiche dans l'onglet
Accueil de votre boutique. Si aucun message n'est affiché, l'onglet
- Accueil n'apparaitra pas.
+ Accueil n’apparaîtra pas.
shopfront_message_link_tooltip: "Insérer / modifier un lien"
shopfront_message_link_prompt: "Veuillez entrer l'URL à insérer"
shopfront_closed_message: "Message d'accueil ventes terminées"
@@ -1166,6 +1191,7 @@ fr:
open_date: "Date d'ouverture"
close_date: "Date de fermeture"
display_ordering_in_shopfront: "Ordre d'affichage sur la boutique en ligne :"
+ shopfront_sort_by_product: "Par produit"
shopfront_sort_by_category: "Par catégorie"
shopfront_sort_by_producer: "Par producteur"
shopfront_sort_by_category_placeholder: "Catégorie"
@@ -1187,7 +1213,7 @@ fr:
disconnect: "Déconnecter le compte"
confirm_modal:
title: Connecter avec Stripe
- part1: Stripe est un système de paiement qui permet aux boutiques sur CoopCircuits d'accepter des paiements par carte bancaire de leurs acheteurs.
+ part1: Stripe est un système de paiement en ligne qui permet aux boutiques sur CoopCircuits d'accepter des paiements par carte bancaire de leurs acheteurs.
part2: Pour utiliser cette fonctionnalité, vous devez connecter votre compte Stripe à CoopCircuits. En cliquant sur "J'accepte" ci-dessous, vous serez redirigé vers le site internet de Stripe, où vous pourrez connecter votre compte existant ou en créer un si vous n'en avez pas encore.
part3: Cela permettra à CoopCircuits d'accepter en votre nom les paiements par carte de crédit en provenance de vos acheteurs. Veuillez noter que c'est à vous de gérer votre compte Stripe, de payer les frais dus à Stripe et de gérer les éventuels remboursements et le service après vente.
i_agree: J'accepte
@@ -2476,6 +2502,7 @@ fr:
orders_bought_already_confirmed: "* déjà confirmé"
orders_confirm_cancel: "Voulez-vous vraiment annuler cette commande ?"
order_processed_successfully: "Votre commande a été traitée avec succès"
+ thank_you_for_your_order: "Merci pour votre commande"
products_cart_distributor_choice: "Distributeur pour votre commande:"
products_cart_distributor_change: "Vore distributeur pour cette commande sera dorénavant %{name} si vous ajoutez ce produit à votre panier."
products_cart_distributor_is: "Votre distributeur pour cette commande est %{name}."
@@ -3646,7 +3673,7 @@ fr:
bulk_coop:
filters:
bulk_coop_allocation: "Achats groupés Allocation"
- bulk_coop_customer_payments: "Achats groupés - Paiement des acheteurs"
+ bulk_coop_customer_payments: "Achats groupés - Paiements des acheteurs"
bulk_coop_packing_sheets: "Achats groupés - Feuilles de préparation des paniers"
bulk_coop_supplier_report: "Achats groupés - Totaux par Producteur"
enterprise_fee_summaries:
@@ -3752,6 +3779,7 @@ fr:
editing_tax_category: "Modifier une catégorie de taxe"
editing_tax_rate: "Modifier un taux"
editing_zone: "Modifier une zone"
+ editing_state: "Modifier département"
expiration: "Expiration"
invalid_payment_provider: "Fournisseur de paiement invalide"
items_cannot_be_shipped: "Les produits ne peuvent pas être envoyés"
@@ -3763,6 +3791,7 @@ fr:
new_taxon: "Nouvelle taxonomie"
new_user: "Nouvel utilisateur"
no_pending_payments: "Aucun paiement en attente."
+ remove: "Supprimer"
none: "Aucun"
not_found: "Non trouvé"
notice_messages:
@@ -3779,8 +3808,8 @@ fr:
start_date: "Date de début"
successfully_removed: "Supprimé avec succès"
taxonomy_edit: "Modifier la taxonomie"
- taxonomy_tree_error: "Erreur de l'arbre de toxonomie"
- taxonomy_tree_instruction: "Consignes pour l'arbre de taxonomie"
+ taxonomy_tree_error: "Erreur lors de la mise à jour de l'arbre de taxonomie."
+ taxonomy_tree_instruction: "Faites un clic droit sur un article pour ajouter, renommer, supprimer ou modifier."
tree: "Arbre"
updating: "Mettre à jour"
your_order_is_empty_add_product: "Votre commande est vide, veuillez ajouter des produits"
@@ -3789,6 +3818,7 @@ fr:
resend: "Renvoyer"
back_to_orders_list: "Retour à la liste des commandes"
back_to_payments_list: "Retour à la liste des paiements"
+ back_to_states_list: "Retour à la liste"
return_authorizations: "Autorisations de retours"
cannot_create_returns: "Impossible de créer une autorisation de retour car aucun produit n'a été livré pour cette commande."
select_stock: "Sélectionner le stock"
diff --git a/config/locales/fr_BE.yml b/config/locales/fr_BE.yml
index 22eeb32b54..4e08d7b657 100644
--- a/config/locales/fr_BE.yml
+++ b/config/locales/fr_BE.yml
@@ -48,6 +48,9 @@ fr_BE:
variant_unit: "Unité de variante"
variant_unit_name: "Nom de la variante"
unit_value: "Valeur unitaire"
+ spree/variant:
+ primary_taxon: "Catégorie de Produit"
+ shipping_category_id: "Catégorie de livraison"
spree/credit_card:
base: "Carte de crédit"
number: "N° commande"
@@ -438,6 +441,7 @@ fr_BE:
columns:
name: Nom
unit: Unité
+ unit_value: Valeur unitaire
price: Prix
producer: Producteur·trice
category: Catégorie
@@ -678,15 +682,15 @@ fr_BE:
index:
header:
title: Gestion du catalogue produits
- sort:
- pagination:
- clear_search: Effacer recherche
filters:
producers:
label: Producteur·trice·s
categories:
label: Les catégories
search: Rechercher
+ sort:
+ pagination:
+ clear_search: Effacer recherche
table:
new_variant: Nouvelle variante
edit_image:
@@ -712,7 +716,7 @@ fr_BE:
none_saved: n'a pu sauvegarder aucun produit :-(
line_number: "Ligne %{number} :"
encoding_error: "Veuillez vérifier la langage de votre fichier source et l'enregistrer avec un encodage UTF-8"
- unexpected_error: "L'import du produit à provoqué une erreur à l'ouverture du fichier: %{error_message}"
+ unexpected_error: "L'import du produit a provoqué une erreur à l'ouverture du fichier: %{error_message}"
malformed_csv: "L'import du produit a rencontré une erreur a l'ouverture du fichier:%{error_message}"
index:
notice: "Remarque"
@@ -732,6 +736,9 @@ fr_BE:
product_categories: Catégorie Produit
tax_categories: TVA applicable
shipping_categories: Condition de transport
+ dfc_import_form:
+ enterprise: "Entreprise"
+ import: "Importer"
import:
review: Vérifier
import: Importer
@@ -2519,6 +2526,7 @@ fr_BE:
calculator: "Calculateur"
calculator_values: "Valeurs applicables"
calculator_settings_warning: "Si vous changez le type de calculatrice, vous devez d'abord enregistrer avant de pouvoir modifier les paramètres de la calculatrice"
+ calculator_preferred_unit_error: "doit être en kg ou en lb"
flat_percent_per_item: "Pourcentage net"
flat_rate_per_item: "Montant fixe (par article)"
flat_rate_per_order: "Montant fixe (par commande)"
@@ -3367,6 +3375,7 @@ fr_BE:
new_adjustment: "Nouvel ajustement"
new_tax_category: "Nouvelle catégorie de taxe"
no_pending_payments: "Aucun paiement en attente"
+ remove: "Supprimer"
none: "Aucun"
notice_messages:
variant_deleted: "Variante supprimée"
@@ -3526,6 +3535,7 @@ fr_BE:
inventory_error_flash_for_insufficient_quantity: "Une donnée n'est plus disponible sur votre carte."
inventory: Catalogue boutique
zipcode: Code postal
+ weight: Poids (par kg ou lb)
error_user_destroy_with_orders: "Les utilisateurs avec une commande finalisée ne peuvent pas être supprimés"
cannot_create_payment_without_payment_methods: "Vous ne pouvez pas créer un paiement pour une commande sans qu'aucun mode de paiement ne soit défini."
please_define_payment_methods: "Veuillez d'abord définir certains modes de paiement."
diff --git a/config/locales/fr_CA.yml b/config/locales/fr_CA.yml
index 8cf09ffb8f..7f9b2fe62c 100644
--- a/config/locales/fr_CA.yml
+++ b/config/locales/fr_CA.yml
@@ -1,5 +1,8 @@
fr_CA:
language_name: "Français"
+ time:
+ formats:
+ long: "%B %d, %Y %-l:%M %p"
activerecord:
models:
spree/product: Produit
@@ -48,6 +51,9 @@ fr_CA:
variant_unit: "Unité"
variant_unit_name: "Unité de la variante"
unit_value: "Nb unités"
+ spree/variant:
+ primary_taxon: "Catégorie Produit"
+ shipping_category_id: "Condition de transport"
spree/credit_card:
base: "Carte de crédit"
number: "N° commande"
@@ -75,6 +81,10 @@ fr_CA:
models:
enterprise_fee:
inherit_tax_requires_per_item_calculator: "Déterminer la catégorie de taxe requiert l'utilisation du calculateur par article"
+ spree/image:
+ attributes:
+ attachment:
+ integrity_error: "failed to load. Please check to ensure the file is not corrupt, and try again."
spree/user:
attributes:
email:
@@ -131,6 +141,7 @@ fr_CA:
unprocessable_entity:
title: "La modification réalisée a été rejetée (erreur 422)"
message_html: "
La modification souhaitée a été refusée. Peut-être avez-vous essayé de faire quelque chose sans avoir les droits d'accès suffisants ?
"
+ stimulus_reflex_error: "Nous sommes désolés mais quelque chose s'est mal passé.\n\n C'est un problème temporaire, merci donc de réessayer ou de recharger la page. \nNous enregistrons toutes les erreurs et travaillons sur les améliorations nécessaires.\nSi le problème persiste ou est urgent, merci de nous contacter.\n "
stripe:
error_code:
incorrect_number: "e numéro de carte bancaire est incorrect."
@@ -183,6 +194,9 @@ fr_CA:
transaction_not_allowed: "La carte bancaire a été refusée pour une raison inconnue."
try_again_later: "La carte bancaire a été refusée pour une raison inconnue."
withdrawal_count_limit_exceeded: "L'acheteur a dépassé son plafond de carte bancaire."
+ disconnect_failure: "Déconnecter Stripe a échoué."
+ success_code:
+ disconnected: "Le compte Stripe est déconnecté."
activemodel:
errors:
messages:
@@ -212,6 +226,8 @@ fr_CA:
community_forum_url: "Lien vers le forum"
customer_instructions: "Précisions pour l'acheteur"
additional_information: "Informations additionnelles"
+ connect_app:
+ url: "https://n8n.openfoodnetwork.org/webhook/regen-CAN/connect-enterprise"
devise:
passwords:
spree_user:
@@ -291,6 +307,9 @@ fr_CA:
integer_array_validator:
not_array_error: "doit être une séquence"
invalid_element_error: "doit contenir uniquement des nombres entiers"
+ report_job:
+ report_failed: |
+ L'édition de ce rapport a échoué. Il est probablement trop volumineux. Nous allons examiner cela, mais faites-nous signe si le problème persiste.
enterprise_mailer:
confirmation_instructions:
subject: "Confirmez l'adresse email pour %{enterprise}"
@@ -380,6 +399,7 @@ fr_CA:
cancel_order: "Annuler la commande"
confirm_send_invoice: "La facture de cette commande va être transmise à l'acheteur. Etes-vous sûr de vouloir continuer ?"
confirm_resend_order_confirmation: "Etes-vous sûr de vouloir renvoyer le mail de confirmation de commande ?"
+ must_have_valid_business_number: "%{enterprise_name} doit avoir un SIRET valide avant que les factures puissent être envoyées. "
invoice: "Facture"
invoices: "Factures"
file: "fichier"
@@ -497,7 +517,10 @@ fr_CA:
colums: Colonnes
columns:
name: Nom
+ unit_scale: Échelle d'unité
unit: Unité
+ unit_value: Nb unités
+ display_as: 'Afficher l''unité en '
price: Prix
producer: Producteur
category: Catégorie
@@ -589,6 +612,9 @@ fr_CA:
has_n_rules: "a %{num} règles"
unsaved_confirm_leave: "Des modifications n'ont pas été sauvegardées et seront perdues si vous quittez la page. Souhaitez-vous quitter la page?"
available_units: "Unités disponibles"
+ terms_of_service_have_been_updated_html: "Les conditions d'utilisation de CoopCircuits ont été mises à jour : %{tos_link}"
+ terms_of_service: Lire les conditions d'utilisation
+ accept_terms_of_service: Accepter les conditions d'utilisation
shopfront_settings:
embedded_shopfront_settings: "Paramètres Boutiques Intégrées"
enable_embedded_shopfronts: "Autoriser l'intégration des boutiques"
@@ -676,6 +702,10 @@ fr_CA:
your_content: Votre contenu
user_guide: Guide utilisateur
map: Carte
+ dfc_product_imports:
+ index:
+ title: "Importation d'un produit du catalogue DFC"
+ imported_products: "Produits importés :"
enterprise_fees:
index:
title: "Marges et Commissions"
@@ -742,6 +772,28 @@ fr_CA:
header:
title: Gestion du catalogue produits
loading: Vos produits sont en cours de chargement
+ delete_modal:
+ delete_product_modal:
+ heading: "Supprimer produit"
+ prompt: "Cette action va supprimer ceci de façon permanente de votre liste."
+ confirmation_text: "Supprimer produit"
+ cancellation_text: "Conserver le produit"
+ delete_variant_modal:
+ heading: "Supprimer la variante"
+ prompt: "Cette action va supprimer ceci de façon permanente de votre liste."
+ confirmation_text: "Supprimer la variante"
+ cancellation_text: "Conserver la variante"
+ filters:
+ search_products: Chercher des produits
+ search_for_producers: Rechercher des producteurs
+ all_producers: Tous les producteurs
+ search_for_categories: Rechercher des catégories
+ all_categories: Toutes les catégories
+ producers:
+ label: Producteurs
+ categories:
+ label: Conditions de transport
+ search: Chercher
sort:
pagination:
total_html: "
%{total} produits trouvés selon vos critères de recherche. Montrer %{from} à %{to}."
@@ -749,15 +801,6 @@ fr_CA:
show: Montrer
per_page: "%{num} par page"
clear_search: Annuler la recherche
- filters:
- search_products: Chercher des produits
- all_producers: Tous les producteurs
- all_categories: Toutes les catégories
- producers:
- label: Producteurs
- categories:
- label: Conditions de transport
- search: Chercher
no_products:
no_products_found: Pas de produits trouvés
import_products: Importer plusieurs produits
@@ -766,11 +809,29 @@ fr_CA:
changed_summary:
one: "%{count} produits modifiés"
other: "%{count} produits modifiés"
+ error_summary:
+ saved:
+ one: "%{count}le produit a été sauvegardé correctement, mais "
+ other: "%{count} les produits ont été sauvegardés correctement, mais"
+ invalid:
+ one: "%{count} produit n'a pas pu être sauvegardé. Veuillez examiner les erreurs et réessayer."
+ many: "%{count} produits n'ont pas pu être sauvegardés. Veuillez examiner les erreurs et réessayer."
+ other: "%{count} produits n'ont pas pu être sauvegardés. Veuillez examiner les erreurs et réessayer."
reset: Annuler les changements
save: Sauvegarder les changements
new_variant: Nouvelle variante
+ bulk_update:
+ success: Changements sauvegardés
edit_image:
+ title: Modifier la photo du produit
close: Retour
+ upload: Télécharger la photo
+ delete_product:
+ success: Le produit a bien été supprimé
+ error: Le produit n'a pas pu être supprimé
+ delete_variant:
+ success: La variante a bien été supprimée
+ error: La variante n'a pas pu être supprimée
product_import:
title: import produit
file_not_found: Fichier non trouvé ou impossible à ouvrir
@@ -812,6 +873,11 @@ fr_CA:
product_categories: Catégorie Produit
tax_categories: Taxe applicable
shipping_categories: Condition de transport
+ dfc_import_form:
+ title: "Importer depuis le catalogue DFC"
+ enterprise: "Entreprise"
+ catalog_url: "URL du catalogue DFC"
+ import: "Importer"
import:
review: Vérifier
import: Importer
@@ -913,6 +979,7 @@ fr_CA:
orders:
edit:
order_sure_want_to: Etes-vous sûr de vouloir %{event} cette commande ?
+ voucher_tax_included_in_price: "%{label} (taxe inclue dans le bon de réduction)"
invoice_email_sent: 'L''email de facturation a bien été envoyé'
order_email_resent: 'L''email de commande a de nouveau été envoyé'
bulk_management:
@@ -1015,6 +1082,7 @@ fr_CA:
images:
legend: "Images"
logo: Logo
+ logo_size: "300 x 300 pixels"
promo_image_placeholder: 'Cette image est affichée dans "A propos"'
promo_image_note1: 'ATTENTION:'
promo_image_note2: Votre bannière doit mesurer 1200 x 260, toute image non conforme sera rognée.
@@ -1120,6 +1188,7 @@ fr_CA:
open_date: "Date d'ouverture"
close_date: "Date de fermeture"
display_ordering_in_shopfront: "Ordre d'affichage sur la boutique en ligne:"
+ shopfront_sort_by_product: "Par produit"
shopfront_sort_by_category: "Par catégorie"
shopfront_sort_by_producer: "Par producteur"
shopfront_sort_by_category_placeholder: "Catégorie"
@@ -1202,7 +1271,28 @@ fr_CA:
custom_tab_title: "Titre de l'onglet personnalisé"
custom_tab_content: "Contenu de l'onglet personnalisé"
connected_apps:
+ legend: "Connected apps https://n8n.openfoodnetwork.org.uk/webhook-test/regen/connect-enterprise/can"
+ title: "Discover Regenerative"
+ tagline: "Autoriser Discover Regenerative à publier les informations de votre entreprise"
+ enable: "Autoriser le partage de données"
+ disable: "Arrêter le partage"
loading: "Chargement en cours"
+ note: |
+ Votre compte Open Food Network est connecté à Discover Regenerative.
+ Ajouter et mettre à jour les informations sur votre liste Discover Regenerative ici.
+ link_label: "Gérer la liste"
+ description_html: |
+
+ Les producteurs éligibles peuvent mettre en avant leurs références Regenerative,
+ pratiques agricoles et plus à travers le listing du profil.
+ Simplifier comment les acheteurs peuvent trouver les produits regeneratives et se connecter
+ avec des producteurs.
+
+
+ En savoir plus sur Discover Regenerative
+
+
actions:
edit_profile: Paramètres
properties: Labels / propriétés
@@ -1432,6 +1522,8 @@ fr_CA:
has_no_payment_methods: "%{enterprise} n'a pas défini de méthode de paiement"
has_no_shipping_methods: "%{enterprise} n'a pas défini de méthode de livraison"
has_no_enterprise_fees: "%{enterprise} n'a pas défini de marges et commissions"
+ flashes:
+ dismiss: Masquer
side_menu:
enterprise:
primary_details: "Informations de base"
@@ -1452,6 +1544,7 @@ fr_CA:
users: "Utilisateurs"
vouchers: Bon de réduction
white_label: "Marque blanche"
+ connected_apps: "Connected apps https://n8n.openfoodnetwork.org.uk/webhook-test/regen/connect-enterprise/can"
enterprise_group:
primary_details: "Informations de base"
users: "Utilisateurs"
@@ -1573,9 +1666,15 @@ fr_CA:
index:
title: "OIDC"
connect: "Connecter votre compte"
+ disconnect: "Déconnecter"
+ connected: "Votre compte est relié à %{uid}."
les_communs_link: "Serveur OIDC Les Communs"
link_your_account: "Vous devez d'abord vous connecter avec le serveur des Communs."
link_account_button: "Relier votre compte OIDC Les Communs"
+ note_expiry: |
+ Les approbations permettant d'accéder aux applications connectées ont expiré. Veuillez rafraîchir
+ la connexion à votre compte pour que toutes les intégrations fonctionnent.
+ refresh: "Rafraichir l'autorisation"
view_account: "Pour voir votre compte, consultez :"
subscriptions:
index:
@@ -1885,18 +1984,22 @@ fr_CA:
invoice_column_price: "Prix"
invoice_column_item: "Produit"
invoice_column_qty: "Qté"
+ invoice_column_weight_volume: "Poids / volume"
invoice_column_unit_price_with_taxes: "Prix unitaire TTC"
invoice_column_unit_price_without_taxes: "Prix unitaire HT"
invoice_column_price_with_taxes: "Prix total TTC"
invoice_column_price_without_taxes: "Prix total HT"
+ invoice_column_price_per_unit_without_taxes: "Prix par unité (hors taxe)"
invoice_column_tax_rate: "Taux de taxe"
invoice_tax_total: "Total Taxe :"
+ invoice_cancel_and_replace_invoice: "annule et remplace la facture"
tax_invoice: "FACTURE"
tax_total: "Total taxe (%{rate}) :"
invoice_shipping_category_delivery: "Livraison"
invoice_shipping_category_pickup: "Retrait"
total_excl_tax: "Total HT :"
total_incl_tax: "Total TTC :"
+ total_all_tax: "Total taxe"
abn: "SIRET"
acn: "n° TVA intracommunautaire"
invoice_issued_on: "Date de facture :"
@@ -2113,6 +2216,9 @@ fr_CA:
order_back_to_store: Retour à la boutique
order_back_to_cart: Retour au panier
order_back_to_website: Retour vers le site
+ checkout_details_title: Détails de la commande
+ checkout_payment_title: Paiement de la commande
+ checkout_summary_title: Résumé de la commande
bom_tip: "Utilisez cette page pour modifier les quantités sur plusieurs commandes à la fois. Les produits peuvent aussi être supprimés des commandes si nécessaire."
unsaved_changes_warning: "Des modifications n'ont pas été enregistrées et seront perdues si vous continuez."
unsaved_changes_error: "Les champs entourés en rouge contiennent des erreurs."
@@ -2975,6 +3081,8 @@ fr_CA:
report_header_transaction_fee: Frais de Transaction (Taxes non incluses)
report_header_total_untaxable_admin: Total ajustements non taxables
report_header_total_taxable_admin: Total ajustments soumis aux taxes (taxes incluses)
+ report_header_voucher_label: Label de la réduction
+ report_header_voucher_amount: "Montant de la réduction (%{currency_symbol})"
report_line_cost_of_produce: 'Coût des produits hors '
report_line_line_items: produits
report_header_last_completed_order_date: Date dernière commande
@@ -3300,6 +3408,7 @@ fr_CA:
processing: "en traitement"
void: "faire un avoir"
invalid: "invalide"
+ quantity_unavailable: "Stock disponible insuffisant. La ligne produit ne peut pas être sauvegardée."
quantity_unchanged: "La quantité n'a pas été modifiée."
cancel_the_order_html: "Cette action va annuler la commande.
Etes-vous sûr de vouloir continuer ?"
cancel_the_order_send_cancelation_email: "Envoyer un email d'annulation à l'acheteur"
@@ -3660,6 +3769,7 @@ fr_CA:
new_taxon: "Nouvelle taxonomie"
new_user: "Nouvel utilisateur"
no_pending_payments: "Aucun paiement en attente."
+ remove: "Supprimer"
none: "Aucun"
not_found: "Non trouvé"
notice_messages:
@@ -3676,8 +3786,8 @@ fr_CA:
start_date: "Date de début"
successfully_removed: "Supprimé avec succès"
taxonomy_edit: "Modifier la taxonomie"
- taxonomy_tree_error: "Erreur de l'arbre de toxonomie"
- taxonomy_tree_instruction: "Consignes pour l'arbre de taxonomie"
+ taxonomy_tree_error: "Erreur lors de la mise à jour de l'arbre de taxonomie."
+ taxonomy_tree_instruction: "Faites un clic droit sur un article pour ajouter, renommer, supprimer ou modifier."
tree: "Arbre"
updating: "Mettre à jour"
your_order_is_empty_add_product: "Votre commande est vide, veuillez ajouter des produits"
@@ -3730,6 +3840,7 @@ fr_CA:
credit_card: "Carte de crédit"
new_payment: "Nouveau paiement"
capture: "Payée"
+ capture_and_complete_order: "Capturer et terminer la commande"
void: "Annulé"
login: "Se connecter"
password: "Mot de passe"
@@ -3971,6 +4082,9 @@ fr_CA:
add_product:
cannot_add_item_to_canceled_order: "Il n'est pas possible d'ajouter des produits sur une commande annulée."
include_out_of_stock_variants: "Inclure les variantes sans stock"
+ shipment:
+ mark_as_shipped_message_html: "Cette action marque la commande comme livrée.
Etes-vous certain de vouloir faire ceci? "
+ mark_as_shipped_label_message: "Etes-vous certain de vouloir faire ceci? "
index:
listing_orders: "Liste des commandes"
new_order: "Nouvelle commande"
@@ -4029,6 +4143,9 @@ fr_CA:
line_item_adjustments: "Ajustements sur la ligne produit"
order_adjustments: "Ajustements sur la commande"
order_total: "Total Commande:"
+ invoices:
+ index:
+ order_has_changed: "La commande a changé depuis la dernière mise à jour de la facture. La facture affichée ici risque donc de ne pas être à jour."
overview:
enterprises_header:
ofn_with_tip: Les Entreprises sont des Producteurs et/ou Hubs distributeurs, et sont donc les organisations de base qui utilisent Open Food Network.
@@ -4037,6 +4154,7 @@ fr_CA:
has_no_payment_methods: "n'a pas de méthode de paiement"
has_no_shipping_methods: "n'a pas de méthode de livraison"
products:
+ products_tip: "Les produits que vous vendez via Open Food Network."
active_products:
zero: "Vous n'avez aucun produit actif."
one: "Vous avez un produit actif"
@@ -4189,6 +4307,8 @@ fr_CA:
bulk_unit_size: Quantité totale du lot
display_as:
display_as: Unité affichéé
+ clone:
+ success: Produit dupliqué
reports:
table:
select_and_search: "Sélectionner les filtres et cliquez sur %{option} pour accéder aux données."
@@ -4262,7 +4382,11 @@ fr_CA:
form:
name: Nom
permalink: Nom pour URL (sans espace)
+ meta_title: Méta titre
+ meta_description: Méta description
+ meta_keywords: Méta mots clés
description: Description
+ dfc_id: URI DFC
general_settings:
edit:
legal_settings: "Configuration légales"
@@ -4572,3 +4696,6 @@ fr_CA:
pagination:
next: Suivant
previous: Précédent
+ invisible_captcha:
+ sentence_for_humans: "Merci de laisser ce champ libre"
+ timestamp_error_message: "S'il vous plaît réessayez après 5 secondes."
diff --git a/config/locales/fr_CH.yml b/config/locales/fr_CH.yml
index 28e1ee256d..f89193fb84 100644
--- a/config/locales/fr_CH.yml
+++ b/config/locales/fr_CH.yml
@@ -34,6 +34,9 @@ fr_CH:
shipping_category_id: "Condition de transport"
variant_unit: "Unité"
variant_unit_name: "Unité de la variante"
+ spree/variant:
+ primary_taxon: "Catégorie Produit"
+ shipping_category_id: "Condition de transport"
spree/credit_card:
base: "Carte de crédit"
number: "N° commande"
@@ -677,15 +680,15 @@ fr_CH:
index:
header:
title: Gestion du catalogue produits
- sort:
- pagination:
- clear_search: Annuler la recherche
filters:
producers:
label: Producteurs
categories:
label: Conditions de transport
search: Rechercher
+ sort:
+ pagination:
+ clear_search: Annuler la recherche
table:
new_variant: Nouvelle variante
edit_image:
@@ -729,6 +732,9 @@ fr_CH:
product_categories: Catégorie Produit
tax_categories: TVA applicable
shipping_categories: Conditions de transport
+ dfc_import_form:
+ enterprise: "Entreprise"
+ import: "Importer"
import:
review: Vérifier
import: Importer
@@ -3443,6 +3449,7 @@ fr_CH:
new_taxon: "Nouvelle taxonomie"
new_user: "Nouvel utilisateur"
no_pending_payments: "Aucun paiement en attente."
+ remove: "Supprimer"
none: "Aucun"
not_found: "Non trouvé"
notice_messages:
@@ -3457,8 +3464,6 @@ fr_CH:
start_date: "Date de début"
successfully_removed: "Supprimé avec succès"
taxonomy_edit: "Modifier la taxonomie"
- taxonomy_tree_error: "Erreur de l'arbre de toxonomie"
- taxonomy_tree_instruction: "Consignes pour l'arbre de taxonomie"
tree: "Arbre"
updating: "Mettre à jour"
your_order_is_empty_add_product: "Votre commande est vide, veuillez ajouter des produits"
diff --git a/config/locales/fr_CM.yml b/config/locales/fr_CM.yml
index fa8b672a09..981cbe5f31 100644
--- a/config/locales/fr_CM.yml
+++ b/config/locales/fr_CM.yml
@@ -34,6 +34,9 @@ fr_CM:
shipping_category_id: "Condition de transport"
variant_unit: "Unité"
variant_unit_name: "Unité de la variante"
+ spree/variant:
+ primary_taxon: "Catégorie Produit"
+ shipping_category_id: "Condition de transport"
spree/credit_card:
base: "Carte de crédit"
number: "N° commande"
@@ -614,15 +617,15 @@ fr_CM:
index:
header:
title: Gestion du catalogue produits
- sort:
- pagination:
- clear_search: Annuler la recherche
filters:
producers:
label: Producteurs
categories:
label: Conditions de transport
search: Rechercher
+ sort:
+ pagination:
+ clear_search: Annuler la recherche
table:
new_variant: Nouvelle variante
edit_image:
@@ -666,6 +669,9 @@ fr_CM:
product_categories: Catégorie Produit
tax_categories: TVA applicable
shipping_categories: Conditions de transport
+ dfc_import_form:
+ enterprise: "Entreprise"
+ import: "Importer"
import:
review: Vérifier
import: Importer
@@ -3337,6 +3343,7 @@ fr_CM:
new_taxon: "Nouvelle taxonomie"
new_user: "Nouvel utilisateur"
no_pending_payments: "Aucun paiement en attente."
+ remove: "Supprimer"
none: "Aucun"
not_found: "Non trouvé"
notice_messages:
@@ -3351,8 +3358,6 @@ fr_CM:
start_date: "Date de début"
successfully_removed: "Supprimé avec succès"
taxonomy_edit: "Modifier la taxonomie"
- taxonomy_tree_error: "Erreur de l'arbre de toxonomie"
- taxonomy_tree_instruction: "Consignes pour l'arbre de taxonomie"
tree: "Arbre"
updating: "Mettre à jour"
your_order_is_empty_add_product: "Votre commande est vide, veuillez ajouter des produits"
diff --git a/config/locales/hi.yml b/config/locales/hi.yml
index ca846a1cb9..182872feb8 100644
--- a/config/locales/hi.yml
+++ b/config/locales/hi.yml
@@ -51,6 +51,9 @@ hi:
variant_unit: "वेरिएंट यूनिट"
variant_unit_name: "वेरिएंट यूनिट का नाम"
unit_value: "यूनिट वैल्यू"
+ spree/variant:
+ primary_taxon: "उत्पाद की श्रेणी"
+ shipping_category_id: "शिपिंग श्रेणी"
spree/credit_card:
base: "क्रेडिट कार्ड"
number: "नंबर"
@@ -505,6 +508,7 @@ hi:
columns:
name: नाम
unit: यूनिट
+ unit_value: यूनिट वैल्यू
price: कीमत
producer: उत्पादक
category: श्रेणी
@@ -749,13 +753,6 @@ hi:
header:
title: बल्क उत्पाद एडिट करें
loading: अपने उत्पादों को लोड कर रहा है
- sort:
- pagination:
- total_html: "
%{total} उत्पाद आपके सर्च क्राइटेरिया के लिए मिले। %{from} से %{to} दिखा रहा है।"
- per_page:
- show: दिखाएं
- per_page: "%{num} प्रति पेज"
- clear_search: सर्च साफ़ करें
filters:
search_products: उत्पादों के लिए सर्च करें
all_producers: सभी उत्पादक
@@ -765,6 +762,13 @@ hi:
categories:
label: श्रेणियां
search: सर्च
+ sort:
+ pagination:
+ total_html: "
%{total} उत्पाद आपके सर्च क्राइटेरिया के लिए मिले। %{from} से %{to} दिखा रहा है।"
+ per_page:
+ show: दिखाएं
+ per_page: "%{num} प्रति पेज"
+ clear_search: सर्च साफ़ करें
no_products:
no_products_found: कोई उत्पाद नहीं मिला
import_products: कई उत्पाद इम्पोर्ट करें
@@ -826,6 +830,9 @@ hi:
product_categories: उत्पाद श्रेणियां
tax_categories: टैक्स श्रेणियां
shipping_categories: शिपिंग श्रेणियां
+ dfc_import_form:
+ enterprise: "एंटरप्राइज़"
+ import: "इम्पोर्ट करें"
import:
review: रिव्यू
import: इम्पोर्ट करें
@@ -3641,6 +3648,7 @@ hi:
new_taxon: "नया टैक्सोन"
new_user: "नया यूज़र"
no_pending_payments: "कोई पेंडिंग भुगतान नहीं"
+ remove: "मिटाएँ"
none: "कोई नहीं"
not_found: "नहीं मिला"
notice_messages:
@@ -3657,8 +3665,6 @@ hi:
start_date: "शुरू होने की तिथि"
successfully_removed: "सफलतापूर्वक हटाया गया"
taxonomy_edit: "टैक्सोनॉमी एडिट करें"
- taxonomy_tree_error: "टैक्सोनॉमी ट्री त्रुटि"
- taxonomy_tree_instruction: "टैक्सोनॉमी ट्री निर्देश"
tree: "ट्री"
updating: "अपडेट किया जा रहा है"
your_order_is_empty_add_product: "आपका ऑर्डर खाली है, कृपया ऊपर दिए गए उत्पाद को सर्च करें और जोड़ें"
diff --git a/config/locales/hu.yml b/config/locales/hu.yml
index 17699cbfb5..a1a84a4054 100644
--- a/config/locales/hu.yml
+++ b/config/locales/hu.yml
@@ -6,9 +6,22 @@ hu:
spree/shipping_method: Szállítási Mód
attributes:
spree/order/ship_address:
+ address1: "Szállítási cím (utca és házszám)"
+ address2: "Szállítási cím 2. sor"
+ city: "Szállítási cím város"
+ country: "Szállítási cím ország"
phone: "Telefonszám"
firstname: "Keresztnév"
lastname: "Vezetéknév"
+ zipcode: "Szállítási cím irányítószám"
+ spree/order/bill_address:
+ address1: "Számlázási cím (Utca és Házszám)"
+ zipcode: "Számlázási cím Irányítószám"
+ city: "Számlázási cím Város"
+ country: "Számlázási cím Ország"
+ firstname: "Számlázási név Keresztnév"
+ lastname: "Számlázási cím Vezetéknév"
+ phone: Vásárlói telefonszám
spree/user:
password: "Jelszó"
password_confirmation: "Jelszó megerősítése"
@@ -34,6 +47,10 @@ hu:
shipping_category_id: "Szállítási mód"
variant_unit: "Változatos egység"
variant_unit_name: "Változat egység neve"
+ unit_value: "Egység értéke"
+ spree/variant:
+ primary_taxon: "Termékkategória"
+ shipping_category_id: "Szállítási mód"
spree/credit_card:
base: "Hitelkártya"
number: "Szám"
@@ -253,6 +270,10 @@ hu:
order_cycle:
subject: "Rendelési ciklus jelentés a következőhöz: %{producer}"
provider_settings: "Szolgáltató beállításai"
+ report_mailer:
+ report_ready:
+ subject: "A jelentés kész"
+ heading: "A jelentés letöltésre kész"
shipment_mailer:
shipped_email:
dear_customer: "Tisztelt Ügyfelünk,"
@@ -427,6 +448,7 @@ hu:
columns:
name: Név
unit: Mértékegység
+ unit_value: Egység értéke
price: Ár
producer: Termelő
category: Kategória
@@ -670,19 +692,39 @@ hu:
index:
header:
title: Termékek tömeges szerkesztése
- sort:
- pagination:
- clear_search: Keresés törlése
+ delete_modal:
+ delete_product_modal:
+ heading: "Termék törlése"
+ confirmation_text: "Termék törlése"
+ delete_variant_modal:
+ heading: "Változat törlése"
+ confirmation_text: "Változat törlése"
filters:
producers:
label: Termelők
categories:
label: Kategóriák
search: Keresés
+ sort:
+ pagination:
+ clear_search: Keresés törlése
table:
+ error_summary:
+ saved:
+ one: "a termék helyesen lett elmentve, de"
+ other: "a termékek helyesen lettek elmentve, de"
+ save: Változások mentése
new_variant: Új variáns
+ bulk_update:
+ success: Változtatások mentve
edit_image:
close: Vissza
+ delete_product:
+ success: Sikeresen törölte a terméket
+ error: A terméket nem lehet törölni
+ delete_variant:
+ success: Sikeresen törölte a terméket
+ error: A változatot nem lehet törölni
product_import:
title: Termék importálása
file_not_found: A fájl nem található vagy nem nyitható meg
@@ -722,6 +764,9 @@ hu:
product_categories: termék kategóriák
tax_categories: Adókategóriák
shipping_categories: Szállítási módok
+ dfc_import_form:
+ enterprise: "Vállalkozás"
+ import: "Importálás"
import:
review: Felülvizsgálat
import: Importálás
@@ -3107,6 +3152,7 @@ hu:
processing: "feldolgozás"
void: "üres"
invalid: "érvénytelen"
+ quantity_unavailable: "Nem áll rendelkezésre elegendő készlet. A tétel nem menthető!"
quantity_unchanged: "A mennyiség nem változott az előző mennyiséghez képest."
cancel_the_order_html: "Ez megszakítja a vásárlási folyamatot. Biztosan folytatja?"
cancel_the_order_send_cancelation_email: "A törlés elküldése a vásárlónak, emailben."
@@ -3431,6 +3477,7 @@ hu:
new_taxon: "Új taxon"
new_user: "Új felhasználó"
no_pending_payments: "Nincsenek függőben lévő kifizetések"
+ remove: "eltávolítás"
none: "Egyik sem"
not_found: "Nem található"
notice_messages:
@@ -3445,8 +3492,6 @@ hu:
start_date: "Kezdő dátum"
successfully_removed: "Sikeresen eltávolítva"
taxonomy_edit: "Termék kategória szerkesztés"
- taxonomy_tree_error: "Termék kategória fa hiba"
- taxonomy_tree_instruction: "Termék kategória fa"
tree: "Fa"
updating: "Frissítés"
your_order_is_empty_add_product: "Rendelése üres, kérjük keressen és adjon hozzá egy terméket fent"
diff --git a/config/locales/it.yml b/config/locales/it.yml
index 965a021e85..c5ad8a82e2 100644
--- a/config/locales/it.yml
+++ b/config/locales/it.yml
@@ -48,6 +48,9 @@ it:
variant_unit: "Unità Variante"
variant_unit_name: "Nome Unità Variante"
unit_value: "Valore unità"
+ spree/variant:
+ primary_taxon: "Categoria Prodotto"
+ shipping_category_id: "Categoria Spedizioni"
spree/credit_card:
base: "Carta di Credito"
number: "Numero"
@@ -469,6 +472,7 @@ it:
columns:
name: Nome
unit: Unità
+ unit_value: Valore unità
price: Prezzo
producer: Produttore
category: Categoria
@@ -712,15 +716,15 @@ it:
index:
header:
title: Modifica prodotti tabella
- sort:
- pagination:
- clear_search: Pulisci ricerca
filters:
producers:
label: Produttori
categories:
label: categorie
search: Cerca
+ sort:
+ pagination:
+ clear_search: Pulisci ricerca
table:
new_variant: Nuova variante
edit_image:
@@ -766,6 +770,9 @@ it:
product_categories: Categorie Prodotti
tax_categories: Categorie imposte
shipping_categories: Categorie Spedizioni
+ dfc_import_form:
+ enterprise: "Azienda"
+ import: "Importazione"
import:
review: Revisione
import: Importazione
@@ -3509,6 +3516,7 @@ it:
new_taxon: "Nuova tassonomia"
new_user: "Nuovo utente"
no_pending_payments: "Nessun pagamento in sospeso"
+ remove: "Rimuovi"
none: "Nessuno"
not_found: "Non trovato"
notice_messages:
@@ -3525,8 +3533,6 @@ it:
start_date: "Data inizio"
successfully_removed: "Rimosso con successo"
taxonomy_edit: "Modifica tassonomia"
- taxonomy_tree_error: "Errore schema tassonomia"
- taxonomy_tree_instruction: "Istruzioni schema tassonomia"
tree: "Schema"
updating: "In aggiornamento"
your_order_is_empty_add_product: "Il tuo ordine è vuoto, cerca e aggiungi un prodotto qui sopra"
diff --git a/config/locales/it_CH.yml b/config/locales/it_CH.yml
index 3856beaa28..ea951827a5 100644
--- a/config/locales/it_CH.yml
+++ b/config/locales/it_CH.yml
@@ -34,6 +34,9 @@ it_CH:
shipping_category_id: "Categoria Spedizioni"
variant_unit: "Unità Variante"
variant_unit_name: "Nome Unità Variante"
+ spree/variant:
+ primary_taxon: "Categoria prodotto"
+ shipping_category_id: "Categoria Spedizioni"
spree/credit_card:
base: "Carta di Credito"
number: "Numero"
@@ -655,15 +658,15 @@ it_CH:
index:
header:
title: Modifica prodotti tabella
- sort:
- pagination:
- clear_search: Pulisci ricerca
filters:
producers:
label: Produttori
categories:
label: categorie
search: Cerca
+ sort:
+ pagination:
+ clear_search: Pulisci ricerca
table:
new_variant: Nuova variante
edit_image:
@@ -707,6 +710,9 @@ it_CH:
product_categories: Categorie Prodotti
tax_categories: Categorie imposte
shipping_categories: Categorie Spedizioni
+ dfc_import_form:
+ enterprise: "Azienda"
+ import: "Importazione"
import:
review: Revisione
import: Importazione
@@ -3372,6 +3378,7 @@ it_CH:
new_taxon: "Nuova tassonomia"
new_user: "Nuovo utente"
no_pending_payments: "Nessun pagamento in sospeso"
+ remove: "Rimuovi"
none: "Nessuno"
not_found: "Non trovato"
notice_messages:
@@ -3386,8 +3393,6 @@ it_CH:
start_date: "Data inizio"
successfully_removed: "Rimosso con successo"
taxonomy_edit: "Modifica tassonomia"
- taxonomy_tree_error: "Errore schema tassonomia"
- taxonomy_tree_instruction: "Istruzioni schema tassonomia"
tree: "Schema"
updating: "In aggiornamento"
your_order_is_empty_add_product: "Il tuo ordine è vuoto, cerca e aggiungi un prodotto qui sopra"
diff --git a/config/locales/ko.yml b/config/locales/ko.yml
index 5342544798..2484c4f61f 100644
--- a/config/locales/ko.yml
+++ b/config/locales/ko.yml
@@ -34,6 +34,9 @@ ko:
shipping_category_id: "전송물품 목록"
variant_unit: "구성 단위 변경"
variant_unit_name: "변경된 구성 단위 이름"
+ spree/variant:
+ primary_taxon: "물품 목록"
+ shipping_category_id: "전송물품 목록"
spree/credit_card:
base: "신용카드"
number: "숫자"
@@ -678,15 +681,15 @@ ko:
index:
header:
title: 제품 대량 편집
- sort:
- pagination:
- clear_search: 검색 지우기
filters:
producers:
label: 생산자들
categories:
label: 카테고리
search: 탐색
+ sort:
+ pagination:
+ clear_search: 검색 지우기
table:
new_variant: 새로운 변경사항
edit_image:
@@ -730,6 +733,9 @@ ko:
product_categories: 제품 카테고리
tax_categories: 세금 카테고리
shipping_categories: 배송 카테고리
+ dfc_import_form:
+ enterprise: "회사"
+ import: "수입"
import:
review: 리뷰
import: 수입
@@ -3338,6 +3344,7 @@ ko:
new_taxon: "새 분류군"
new_user: "신규 사용자"
no_pending_payments: "미지금급"
+ remove: "제거"
none: "아니다"
not_found: "찾을 수 없습니다"
notice_messages:
@@ -3352,8 +3359,6 @@ ko:
start_date: "시작 날짜"
successfully_removed: "성공적으로 제거됨"
taxonomy_edit: "분류법 편집"
- taxonomy_tree_error: "분류법 트리 오류"
- taxonomy_tree_instruction: "분류법 트리 소개"
tree: "트리"
updating: "업데이트 중"
your_order_is_empty_add_product: "주문이 비어 있습니다. 위의 제품을 검색하여 추가하십시오."
diff --git a/config/locales/ml.yml b/config/locales/ml.yml
index 9b4f01cd72..7126238da9 100644
--- a/config/locales/ml.yml
+++ b/config/locales/ml.yml
@@ -51,6 +51,9 @@ ml:
variant_unit: "വേരിയന്റ് യൂണിറ്റ്"
variant_unit_name: "വേരിയന്റ് യൂണിറ്റിന്റെ പേര്"
unit_value: "യൂണിറ്റ് മൂല്യം"
+ spree/variant:
+ primary_taxon: "ഉൽപ്പന്ന വിഭാഗം"
+ shipping_category_id: "അയക്കൽ വിഭാഗം"
spree/credit_card:
base: "ക്രെഡിറ്റ് കാർഡ്"
number: "നമ്പർ"
@@ -505,6 +508,7 @@ ml:
columns:
name: പേര്
unit: യൂണിറ്റ്
+ unit_value: യൂണിറ്റ് മൂല്യം
price: വില
producer: പ്രൊഡ്യൂസർ
category: വിഭാഗം
@@ -752,13 +756,6 @@ ml:
header:
title: ഉൽപ്പന്നങ്ങൾ മൊത്തമായി തിരുത്തുക
loading: നിങ്ങളുടെ ഉൽപ്പന്നങ്ങൾ ലോഡ് ചെയ്യുന്നു
- sort:
- pagination:
- total_html: "നിങ്ങളുടെ തിരയൽ മാനദണ്ഡങ്ങൾക്കനുസരിച്ച്
%{total} ഉൽപ്പന്നങ്ങൾ കണ്ടെത്തി. %{from} മുതൽ %{to} വരെ കാണിക്കുന്നു."
- per_page:
- show: കാണിക്കുക
- per_page: "ഓരോ പേജിലും %{num}"
- clear_search: തിരയൽ മായ്ക്കുക
filters:
search_products: ഉൽപ്പന്നങ്ങൾക്കായി തിരയുക
all_producers: എല്ലാ പ്രൊഡ്യൂസേഴ്സും
@@ -768,6 +765,13 @@ ml:
categories:
label: വിഭാഗങ്ങൾ
search: തിരയുക
+ sort:
+ pagination:
+ total_html: "നിങ്ങളുടെ തിരയൽ മാനദണ്ഡങ്ങൾക്കനുസരിച്ച്
%{total} ഉൽപ്പന്നങ്ങൾ കണ്ടെത്തി. %{from} മുതൽ %{to} വരെ കാണിക്കുന്നു."
+ per_page:
+ show: കാണിക്കുക
+ per_page: "ഓരോ പേജിലും %{num}"
+ clear_search: തിരയൽ മായ്ക്കുക
no_products:
no_products_found: ഉൽപ്പന്നങ്ങളൊന്നും കണ്ടെത്തിയില്ല
import_products: ഒന്നിലധികം ഉൽപ്പന്നങ്ങൾ ഇറക്കുമതി ചെയ്യുക
@@ -831,6 +835,9 @@ ml:
product_categories: ഉൽപ്പന്ന വിഭാഗങ്ങൾ
tax_categories: നികുതി വിഭാഗങ്ങൾ
shipping_categories: ഷിപ്പിംഗ് വിഭാഗങ്ങൾ
+ dfc_import_form:
+ enterprise: "എന്റർപ്രൈസ്"
+ import: "ഇറക്കുമതി ചെയ്യുക"
import:
review: അവലോകനം
import: ഇറക്കുമതി ചെയ്യുക
@@ -3665,6 +3672,7 @@ ml:
new_taxon: "പുതിയ ടാക്സൺ"
new_user: "പുതിയ ഉപയോക്താവ്"
no_pending_payments: "തീർപ്പാക്കാത്ത പേയ്മെന്റുകളൊന്നുമില്ല"
+ remove: "നീക്കം ചെയ്യുക"
none: "ഒന്നുമില്ല"
not_found: "കണ്ടെത്തിയില്ല"
notice_messages:
@@ -3681,8 +3689,6 @@ ml:
start_date: "ആരംഭിക്കുന്ന തീയതി"
successfully_removed: "വിജയകരമായി നീക്കം ചെയ്തു"
taxonomy_edit: "ടാക്സോണമി എഡിറ്റ്"
- taxonomy_tree_error: "ടാക്സോണമി ട്രീ തകരാർ"
- taxonomy_tree_instruction: "ടാക്സോണമി ട്രീ നിർദ്ദേശം"
tree: "ട്രീ"
updating: "അപ്ഡേറ്റ് ചെയ്യുന്നു"
your_order_is_empty_add_product: "നിങ്ങളുടെ ഓർഡർ ശൂന്യമാണ്, മുകളിൽ ഒരു ഉൽപ്പന്നം തിരയുകയും ചേർക്കുകയും ചെയ്യുക"
diff --git a/config/locales/mr.yml b/config/locales/mr.yml
index a8d0b9bc12..df80ca985c 100644
--- a/config/locales/mr.yml
+++ b/config/locales/mr.yml
@@ -51,6 +51,9 @@ mr:
variant_unit: "व्हेरिएंट युनिट"
variant_unit_name: "वेरिएंट युनिटचे नाव"
unit_value: "युनिट मूल्य"
+ spree/variant:
+ primary_taxon: "उत्पादन श्रेणी"
+ shipping_category_id: "शिपिंग श्रेणी"
spree/credit_card:
base: "क्रेडीट कार्ड"
number: "क्रमांक"
@@ -505,6 +508,7 @@ mr:
columns:
name: नाव
unit: युनिट
+ unit_value: युनिट मूल्य
price: किंमत
producer: उत्पादक
category: श्रेणी
@@ -748,13 +752,6 @@ mr:
header:
title: मोठ्या प्रमाणात उत्पादने संपादित करा
loading: तुमची उत्पादने लोड करत आहे
- sort:
- pagination:
- total_html: "तुमच्या शोध निकषांसाठी
%{total} उत्पादने आढळली. %{from} ते %{to} दाखवत आहे."
- per_page:
- show: दाखवा
- per_page: "%{num} प्रति पृष्ठ"
- clear_search: सर्च क्लिअर करा
filters:
search_products: उत्पादने शोधा
all_producers: सर्व उत्पादक
@@ -764,6 +761,13 @@ mr:
categories:
label: श्रेण्या
search: शोधा
+ sort:
+ pagination:
+ total_html: "तुमच्या शोध निकषांसाठी
%{total} उत्पादने आढळली. %{from} ते %{to} दाखवत आहे."
+ per_page:
+ show: दाखवा
+ per_page: "%{num} प्रति पृष्ठ"
+ clear_search: सर्च क्लिअर करा
no_products:
no_products_found: कोणतीही उत्पादने आढळली नाहीत
import_products: अनेक उत्पादने आयात करा
@@ -822,6 +826,9 @@ mr:
product_categories: उत्पादन श्रेणी
tax_categories: कर श्रेणी
shipping_categories: शिपिंग श्रेण्या
+ dfc_import_form:
+ enterprise: "एंटरप्राइझ"
+ import: "Import करा"
import:
review: पुनरावलोकन करा
import: आयात करा
@@ -3588,8 +3595,6 @@ mr:
start_date: "प्रारंभ तारीख"
successfully_removed: "यशस्वीरित्या काढले"
taxonomy_edit: "वर्गीकरण संपादन"
- taxonomy_tree_error: "वर्गीकरण वृक्ष त्रुटी"
- taxonomy_tree_instruction: "वर्गीकरण वृक्ष सूचना"
tree: "वृक्ष"
updating: "अपडेट करत आहे"
your_order_is_empty_add_product: "तुमची ऑर्डर रिकामी आहे, कृपया उत्पादन शोधा आणि वर समाविष्ट करा"
diff --git a/config/locales/nb.yml b/config/locales/nb.yml
index 8d77563952..3fe54ffd61 100644
--- a/config/locales/nb.yml
+++ b/config/locales/nb.yml
@@ -51,6 +51,9 @@ nb:
variant_unit: "Variant Enhet"
variant_unit_name: "Enhetsnavn Variant"
unit_value: "Enhetsverdi"
+ spree/variant:
+ primary_taxon: "Produktkategori"
+ shipping_category_id: "Leveringskategori"
spree/credit_card:
base: "Kredittkort"
number: "Antall"
@@ -510,6 +513,7 @@ nb:
columns:
name: Navn
unit: Enhet
+ unit_value: Enhetsverdi
price: Pris
producer: Produsent
category: Kategori
@@ -768,13 +772,6 @@ nb:
prompt: "Dette vil fjerne den permanent fra listen din."
confirmation_text: "Slett variant"
cancellation_text: "Behold variant"
- sort:
- pagination:
- total_html: "
%{total} produkter funnet for søkekriteriene dine. Viser %{from} til %{to} ."
- per_page:
- show: Vis
- per_page: "%{num} per side"
- clear_search: Tøm søk
filters:
search_products: Søk etter produkter
search_for_producers: Søk etter produsenter
@@ -786,6 +783,13 @@ nb:
categories:
label: Kategorier
search: Søk
+ sort:
+ pagination:
+ total_html: "
%{total} produkter funnet for søkekriteriene dine. Viser %{from} til %{to} ."
+ per_page:
+ show: Vis
+ per_page: "%{num} per side"
+ clear_search: Tøm søk
no_products:
no_products_found: Ingen produkter funnet
import_products: Importer flere produkter
@@ -857,6 +861,9 @@ nb:
product_categories: Produktkategorier
tax_categories: Avgiftskategorier
shipping_categories: Fraktkategorier
+ dfc_import_form:
+ enterprise: "Bedrift"
+ import: "Import"
import:
review: Anmeldelse
import: Import
@@ -3703,6 +3710,7 @@ nb:
new_taxon: "Ny kategori"
new_user: "Ny bruker"
no_pending_payments: "Ingen ventende betalinger"
+ remove: "Fjern"
none: "Ingen"
not_found: "Ikke funnet"
notice_messages:
@@ -3719,8 +3727,6 @@ nb:
start_date: "Startdato"
successfully_removed: "Fjernet OK"
taxonomy_edit: "Rediger kategori"
- taxonomy_tree_error: "Feil i kategoritre"
- taxonomy_tree_instruction: "Instruksjon for kategoritre"
tree: "Tre"
updating: "Oppdaterer"
your_order_is_empty_add_product: "Bestillingen din er tom, vennligst søk etter og legg til et produkt over"
diff --git a/config/locales/nl_BE.yml b/config/locales/nl_BE.yml
index d55114fb4a..df9de41f92 100644
--- a/config/locales/nl_BE.yml
+++ b/config/locales/nl_BE.yml
@@ -34,6 +34,9 @@ nl_BE:
shipping_category_id: "Verzendcategorie"
variant_unit: "Eénheid"
variant_unit_name: "Variant Unit Name"
+ spree/variant:
+ primary_taxon: "Product categorie"
+ shipping_category_id: "Verzendcategorie"
spree/credit_card:
base: "Kredietkaart"
number: "Nummer"
@@ -535,15 +538,15 @@ nl_BE:
index:
header:
title: Beheer van de productencatalogus
- sort:
- pagination:
- clear_search: Verwijder zoektermen
filters:
producers:
label: Producenten
categories:
label: Categorieën
search: Zoeken
+ sort:
+ pagination:
+ clear_search: Verwijder zoektermen
table:
new_variant: Nieuw variant
edit_image:
@@ -587,6 +590,9 @@ nl_BE:
product_categories: Productcategorieën
tax_categories: Belastingcategorieën
shipping_categories: Verzendingscategorieën
+ dfc_import_form:
+ enterprise: "Onderneming"
+ import: "Importeren"
import:
review: Beoordeling
import: Importeren
@@ -2984,6 +2990,7 @@ nl_BE:
credit: "Krediet"
more: "Meer"
no_pending_payments: "Geen betaling in afhandeling"
+ remove: "Verwijderen"
none: "Geen enkele"
updating: "Updatend"
your_order_is_empty_add_product: "Je bestelling is leeg, gelieve hierboven een product te zoeken en toe te voegen "
diff --git a/config/locales/pa.yml b/config/locales/pa.yml
index a257e79bc2..426a227655 100644
--- a/config/locales/pa.yml
+++ b/config/locales/pa.yml
@@ -48,6 +48,9 @@ pa:
variant_unit: "ਵੇਰੀਐਂਟ ਯੂਨਿਟ"
variant_unit_name: "ਵੇਰੀਐਂਟ ਯੂਨਿਟ ਦਾ ਨਾਮ"
unit_value: "ਯੂਨਿਟ ਵੈਲਯੂ"
+ spree/variant:
+ primary_taxon: "ਉਤਪਾਦ ਸ਼੍ਰੇਣੀ"
+ shipping_category_id: "ਸ਼ਿਪਿੰਗ ਸ਼੍ਰੇਣੀ"
spree/credit_card:
base: "ਕਰੇਡਿਟ ਕਾਰਡ"
number: "ਨੰਬਰ"
@@ -498,6 +501,7 @@ pa:
columns:
name: ਨਾਮ
unit: ਯੂਨਿਟ
+ unit_value: ਯੂਨਿਟ ਵੈਲਯੂ
price: ਕੀਮਤ
producer: ਉਤਪਾਦਕ
category: ਸ਼੍ਰੇਣੀ
@@ -741,13 +745,6 @@ pa:
header:
title: ਥੋਕ ਸੰਪਾਦਿਤ ਉਤਪਾਦ
loading: ਤੁਹਾਡੇ ਉਤਪਾਦ ਲੋਡ ਕੀਤੇ ਜਾ ਰਹੇ ਹਨ
- sort:
- pagination:
- total_html: "ਤੁਹਾਡੇ ਖੋਜ ਮਾਪਦੰਡ ਲਈ
%{total} ਉਤਪਾਦ ਮਿਲੇ ਹਨ। %{from} ਤੋਂ %{to} ਦਿਖਾ ਰਹੇ ਹਨ।"
- per_page:
- show: ਵਿਖਾਓ
- per_page: "%{num} ਪ੍ਰਤੀ ਪੇਜ"
- clear_search: ਖੋਜ ਮਿਟਾਓ
filters:
search_products: ਉਤਪਾਦਾਂ ਦੀ ਖੋਜ ਕਰੋ
all_producers: ਸਾਰੇ ਉਤਪਾਦਕ
@@ -757,6 +754,13 @@ pa:
categories:
label: ਸ਼੍ਰੇਣੀਆਂ
search: ਖੋਜੋ
+ sort:
+ pagination:
+ total_html: "ਤੁਹਾਡੇ ਖੋਜ ਮਾਪਦੰਡ ਲਈ
%{total} ਉਤਪਾਦ ਮਿਲੇ ਹਨ। %{from} ਤੋਂ %{to} ਦਿਖਾ ਰਹੇ ਹਨ।"
+ per_page:
+ show: ਵਿਖਾਓ
+ per_page: "%{num} ਪ੍ਰਤੀ ਪੇਜ"
+ clear_search: ਖੋਜ ਮਿਟਾਓ
no_products:
no_products_found: ਕੋਈ ਉਤਪਾਦ ਨਹੀਂ ਲੱਭੇ
import_products: ਇੱਕ ਤੋਂ ਜ਼ਿਆਦਾ ਉਤਪਾਦ ਇਮਪੋਰਟ ਕਰੋ
@@ -810,6 +814,9 @@ pa:
product_categories: ਉਤਪਾਦ ਸ਼੍ਰੇਣੀਆਂ
tax_categories: ਟੈਕਸ ਸ਼੍ਰੇਣੀਆਂ
shipping_categories: ਸ਼ਿਪਿੰਗ ਸ਼੍ਰੇਣੀਆਂ
+ dfc_import_form:
+ enterprise: "ਐਂਟਰਪ੍ਰਾਈਜ਼"
+ import: "ਇਮਪੋਰਟ"
import:
review: ਸਮੀਖਿਆ
import: ਇਮਪੋਰਟ
@@ -3535,6 +3542,7 @@ pa:
new_taxon: "ਨਵਾਂ ਟੈਕਸੋਨ"
new_user: "ਨਵਾਂ ਉਪਭੋਗਤਾ"
no_pending_payments: "ਕੋਈ ਬਕਾਇਆ ਭੁਗਤਾਨ ਨਹੀਂ ਹੈ"
+ remove: "Remove"
none: "ਕੋਈ ਨਹੀਂ"
not_found: "ਨਹੀਂ ਲਭਿਆ"
notice_messages:
@@ -3551,8 +3559,6 @@ pa:
start_date: "ਸ਼ੁਰੂ ਕਰਨ ਦੀ ਮਿਤੀ"
successfully_removed: "ਸਫਲਤਾਪੂਰਵਕ ਹਟਾਇਆ ਗਿਆ"
taxonomy_edit: "ਟੈਕਸੋਨੌਮੀ ਸੰਪਾਦਨ"
- taxonomy_tree_error: "ਟੈਕਸੋਨੌਮੀ ਟ੍ਰੀ ਗਲਤੀ"
- taxonomy_tree_instruction: "ਟੈਕਸੋਨੌਮੀ ਟ੍ਰੀ ਹਿਦਾਇਤ"
tree: "ਟ੍ਰੀ"
updating: "ਅੱਪਡੇਟ ਹੋ ਰਿਹਾ ਹੈ"
your_order_is_empty_add_product: "ਤੁਹਾਡਾ ਆਰਡਰ ਖਾਲੀ ਹੈ, ਕਿਰਪਾ ਕਰਕੇ ਉਪਰ ਇੱਕ ਉਤਪਾਦ ਦੀ ਖੋਜ ਕਰੋ ਅਤੇ ਜੋੜੋ"
diff --git a/config/locales/pl.yml b/config/locales/pl.yml
index 36c2f9d75e..8348a75138 100644
--- a/config/locales/pl.yml
+++ b/config/locales/pl.yml
@@ -29,6 +29,9 @@ pl:
shipping_category_id: "Kategoria dostawy"
variant_unit: "Jednostka wariantu"
variant_unit_name: "Nazwa jednostki wariantu"
+ spree/variant:
+ primary_taxon: "Kategoria produktu"
+ shipping_category_id: "Kategoria dostawy"
spree/credit_card:
base: "Karta kredytowa"
number: "Numer zamówienia"
@@ -561,6 +564,9 @@ pl:
product_categories: Kategorie produktów
tax_categories: Kategorie podatków
shipping_categories: Kategorie dostaw
+ dfc_import_form:
+ enterprise: "Podmiot"
+ import: "Import"
import:
review: Przejrzyj
import: Import
@@ -2972,6 +2978,7 @@ pl:
category: "Kategoria"
more: "Więcej"
no_pending_payments: "Brak oczekujących płatności"
+ remove: "Usuń"
none: "Nic"
your_order_is_empty_add_product: "Twoje zamówienie jest puste, wyszukaj i dodaj produkt powyżej"
add_product: "Dodaj produkt"
diff --git a/config/locales/pt.yml b/config/locales/pt.yml
index ea7a09d3fb..00ab7fc455 100644
--- a/config/locales/pt.yml
+++ b/config/locales/pt.yml
@@ -34,6 +34,9 @@ pt:
shipping_category_id: "Categoria de Envio"
variant_unit: "Unidade da Variante"
variant_unit_name: "Nome da Unidade da Variante"
+ spree/variant:
+ primary_taxon: "Categoria de Produto"
+ shipping_category_id: "Categoria de Envio"
spree/credit_card:
base: "Cartão de Crédito"
number: "Número"
@@ -623,6 +626,9 @@ pt:
product_categories: Categorias de Produtos
tax_categories: Categorias de Impostos
shipping_categories: Categorias de Envio
+ dfc_import_form:
+ enterprise: "Organização"
+ import: "Importar"
import:
review: Rever
import: Importar
@@ -3007,6 +3013,7 @@ pt:
credit: "Crédito"
more: "Mais"
no_pending_payments: "Sem pagamentos pendentes"
+ remove: "Remover"
none: "Nenhum"
updating: "Atualizando"
your_order_is_empty_add_product: "A sua encomenda está vazia, por favor procure e adicione um produto em cima"
diff --git a/config/locales/pt_BR.yml b/config/locales/pt_BR.yml
index 61bad0de0e..01c66c961e 100644
--- a/config/locales/pt_BR.yml
+++ b/config/locales/pt_BR.yml
@@ -32,6 +32,9 @@ pt_BR:
shipping_category_id: "Tipos de Frete"
variant_unit: "Unidade variante"
variant_unit_name: "Nome da unidade variante"
+ spree/variant:
+ primary_taxon: "Categoria de Produto"
+ shipping_category_id: "Tipos de Frete"
spree/credit_card:
base: "Cartão de Crédito"
number: "Número"
@@ -616,13 +619,13 @@ pt_BR:
index:
header:
title: Editar Produtos em Atacado
- sort:
- pagination:
- clear_search: Nova busca
filters:
producers:
label: Produtores
search: Buscar
+ sort:
+ pagination:
+ clear_search: Nova busca
edit_image:
close: Voltar
product_import:
@@ -664,6 +667,9 @@ pt_BR:
product_categories: Categorias de Produtos
tax_categories: Categorias fiscais
shipping_categories: Categorias de Remessa
+ dfc_import_form:
+ enterprise: "Iniciativas"
+ import: "Importar"
import:
review: Reveja
import: Importar
@@ -3232,6 +3238,7 @@ pt_BR:
new_taxon: "Nova taxonomia"
new_user: "Novo usuário"
no_pending_payments: "Nenhum pagamento pendente"
+ remove: "Remover"
none: "Nenhum"
not_found: "Não encontrado"
notice_messages:
@@ -3243,8 +3250,6 @@ pt_BR:
start_date: "Data de início"
successfully_removed: "Removido com Sucesso"
taxonomy_edit: "Editar Taxonomia"
- taxonomy_tree_error: "Erro na árvore taxonômica"
- taxonomy_tree_instruction: "Guia para a árvore taxonômica"
tree: "Árvore"
updating: "Atualizando"
your_order_is_empty_add_product: "Seu pedido está vazio, pesquise e adicione um produto acima"
diff --git a/config/locales/ru.yml b/config/locales/ru.yml
index fd1c94e793..76076fc356 100644
--- a/config/locales/ru.yml
+++ b/config/locales/ru.yml
@@ -1,5 +1,8 @@
ru:
language_name: "Русский"
+ time:
+ formats:
+ long: "%B %d, %Y %-l:%M %p"
activerecord:
models:
spree/product: Товар
@@ -48,6 +51,9 @@ ru:
variant_unit: "Единица Варианта"
variant_unit_name: "Название Единицы Варианта"
unit_value: "Значение товара"
+ spree/variant:
+ primary_taxon: "Категория Товара"
+ shipping_category_id: "Категория Доставки"
spree/credit_card:
base: "Кредитная Карта"
number: "Номер"
@@ -75,6 +81,10 @@ ru:
models:
enterprise_fee:
inherit_tax_requires_per_item_calculator: "Для наследования налоговой категории требуется поэлементный калькулятор."
+ spree/image:
+ attributes:
+ attachment:
+ integrity_error: "ошибка загрузки. Пожалуйста, проверьте, не поврежден ли файл и повторите попытку."
spree/user:
attributes:
email:
@@ -97,7 +107,9 @@ ru:
on_demand_but_count_on_hand_set: "должен быть пустым, если по требованию'"
limited_stock_but_no_count_on_hand: "необходимо указать, поскольку принудительный ограниченный запас"
messages:
+ confirmation: "не соответствует %{attribute}"
blank: "не может быть пустым"
+ too_short: "слишком короткий (минимум %{count} символов)"
errors:
messages:
content_type_invalid: "имеет неверный тип контента"
@@ -129,6 +141,7 @@ ru:
unprocessable_entity:
title: "Требуемое изменение было отклонено (422)"
message_html: "
Требуемое изменение было отклонено. Возможно, вы пытались изменить что-то, к чему у вас нет доступа.
"
+ stimulus_reflex_error: "Нам очень жаль, но что-то пошло не так.\n\n Возможно, это временная проблема, поэтому повторите попытку или перезагрузите страницу.\n Мы записываем все ошибки и возможно уже работаем над их исправлением.\n Если проблема не устранена или срочная, пожалуйста, свяжитесь с нами."
stripe:
error_code:
incorrect_number: "Номер карты неверный."
@@ -289,6 +302,10 @@ ru:
integer_array_validator:
not_array_error: "должен быть массивом"
invalid_element_error: "должен содержать только правильные целые числа"
+ report_job:
+ report_failed: |
+ Ошибка создания отчета. Возможно, он слишком велик для обработки.
+ Мы рассмотрим эту проблему, но, пожалуйста, сообщите нам, если проблема не исчезнет.
enterprise_mailer:
confirmation_instructions:
subject: "Пожалуйста, подтвердите адрес электронной почты для %{enterprise}"
@@ -378,6 +395,7 @@ ru:
cancel_order: "Отменить Заказ"
confirm_send_invoice: "Счет на этот заказ будет отправлен клиенту. Вы уверены что хотите продолжить?"
confirm_resend_order_confirmation: "Вы уверены, что хотите повторно отправить письмо с подтверждением заказа?"
+ must_have_valid_business_number: "Чтобы можно было использовать счета, %{enterprise_name} должен иметь корректный ИНН."
invoice: "Счёт"
invoices: "Счета"
file: "Файл"
@@ -495,7 +513,10 @@ ru:
colums: Колонки
columns:
name: Название
+ unit_scale: Единицы
unit: Единица измерения
+ unit_value: Значение товара
+ display_as: Отображать единицы как
price: Цена
producer: Производитель
category: Категория
@@ -587,6 +608,9 @@ ru:
has_n_rules: "имеет %{num} правил"
unsaved_confirm_leave: "На этой странице есть несохранённые изменения. Продолжить без сохранения?"
available_units: "Доступные Единицы"
+ terms_of_service_have_been_updated_html: "Обновлены Условия Сервиса Открытой Сети Продуктов: %{tos_link}"
+ terms_of_service: Прочтите Условия Сервиса
+ accept_terms_of_service: Принять Условия Сервиса
shopfront_settings:
embedded_shopfront_settings: "Настройки Встроенного Магазина"
enable_embedded_shopfronts: "Включить Встроенные Витрины"
@@ -674,6 +698,10 @@ ru:
your_content: Ваше Содержимое
user_guide: Руководство Пользователя
map: Карта
+ dfc_product_imports:
+ index:
+ title: "Импорт каталога продуктов DFC"
+ imported_products: "Внесенные товары:"
enterprise_fees:
index:
title: "Сборы Предприятия"
@@ -740,22 +768,67 @@ ru:
header:
title: Массовое редактирование товаров
loading: Загрузка ваших товаров
- sort:
- pagination:
- clear_search: Сбросить поиск
+ delete_modal:
+ delete_product_modal:
+ heading: "Удалить товар"
+ prompt: "Это навсегда удалит его из вашего списка."
+ confirmation_text: "Удалить товар"
+ cancellation_text: "Сохранить товар"
+ delete_variant_modal:
+ heading: "Удалить вариант"
+ prompt: "Это навсегда удалит его из вашего списка."
+ confirmation_text: "Удалить вариант"
+ cancellation_text: "Сохранить вариант"
filters:
+ search_products: Поиск товаров
+ search_for_producers: Поиск производителей
+ all_producers: Все производители
+ search_for_categories: Поиск категорий
+ all_categories: Все категории
producers:
label: Производители
categories:
label: Категории
search: Поиск
+ sort:
+ pagination:
+ total_html: "
%{total} товаров найдено по вашим критериям поиска. Показаны %{from} до %{to} ."
+ per_page:
+ show: Показывать
+ per_page: "%{num} на странице"
+ clear_search: Сбросить поиск
no_products:
no_products_found: Товары не найдены
import_products: Импорт нескольких товаров
+ no_products_found_for_search: По вашим критериям поиска товары не найдены
table:
+ changed_summary:
+ one: "%{count} товар изменен."
+ other: "%{count} товары изменены."
+ error_summary:
+ saved:
+ one: "%{count} товар был сохранен правильно, но "
+ other: "%{count} товары сохранились корректно, но "
+ invalid:
+ one: "%{count} продукт не удалось сохранить. Пожалуйста, просмотрите ошибки и повторите попытку."
+ few: "%{count} продукты не удалось сохранить. Пожалуйста, просмотрите ошибки и повторите попытку."
+ many: "%{count} продукты не удалось сохранить. Пожалуйста, просмотрите ошибки и повторите попытку."
+ other: "%{count} товары не удалось сохранить. Пожалуйста, просмотрите ошибки и повторите попытку."
+ reset: Отменить изменения
+ save: Сохранить изменения
new_variant: Новый вариант
+ bulk_update:
+ success: Изменения сохранены
edit_image:
+ title: Изменить фотографию товара
close: Назад
+ upload: Загрузить фото
+ delete_product:
+ success: Товар успешно удален
+ error: Невозможно удалить товар
+ delete_variant:
+ success: Вариант успешно удален.
+ error: Невозможно удалить вариант
product_import:
title: Импорт Товара
file_not_found: Файл не найден или не может быть открыт
@@ -797,6 +870,11 @@ ru:
product_categories: Категории Товаров
tax_categories: Налоговые Категории
shipping_categories: Категории Доставки
+ dfc_import_form:
+ title: "Импорт из каталога DFC"
+ enterprise: "Предприятие"
+ catalog_url: "URL-адрес каталога DFC"
+ import: "Импорт"
import:
review: Просмотр
import: Импорт
@@ -898,6 +976,7 @@ ru:
orders:
edit:
order_sure_want_to: Вы уверены, что хотите %{event} этот заказ?
+ voucher_tax_included_in_price: "%{label} (налог включен в купон)"
invoice_email_sent: 'Письмо Счета отправлено'
order_email_resent: 'Письмо Заказа отправлено'
bulk_management:
@@ -1000,6 +1079,7 @@ ru:
images:
legend: "Изображения"
logo: Логотип
+ logo_size: "300 х 300 пикселей"
promo_image_placeholder: 'Это изображение будет отображаться в "О Нас"'
promo_image_note1: 'ОБРАТИТЕ ВНИМАНИЕ:'
promo_image_note2: Любое загруженное здесь промо изображение будет обрезано до 1200x260.
@@ -1104,6 +1184,7 @@ ru:
open_date: "Время Открытия"
close_date: "Время Закрытия"
display_ordering_in_shopfront: "Отображение заказа на витрине:"
+ shopfront_sort_by_product: "По товару"
shopfront_sort_by_category: "По категории"
shopfront_sort_by_producer: "По производителю"
shopfront_sort_by_category_placeholder: "Категория"
@@ -1186,7 +1267,16 @@ ru:
custom_tab_title: "Название пользовательской вкладки"
custom_tab_content: "Контент для пользовательской вкладки"
connected_apps:
+ legend: "Подключенные приложения"
+ title: "Discover Regenerative"
+ tagline: "Разрешите Discover Regenerative публиковать информацию о вашем предприятии."
+ enable: "Разрешить обмен данными"
+ disable: "Прекратить обмен данными"
loading: "Загружается"
+ note: |
+ Ваша учетная запись Открытой Сети Продуктов подключена к Discover Regenerative.
+ Добавьте или обновите информацию о своем списке Discover Regenerative здесь.
+ link_label: "Управление списком"
actions:
edit_profile: Настройки
properties: Свойства
@@ -1416,6 +1506,8 @@ ru:
has_no_payment_methods: "%{enterprise} не имеет способов оплаты"
has_no_shipping_methods: "%{enterprise} не имеет способов доставки"
has_no_enterprise_fees: "%{enterprise} не имеет сборов предприятия"
+ flashes:
+ dismiss: Отклонять
side_menu:
enterprise:
primary_details: "Основная Информация"
@@ -1436,6 +1528,7 @@ ru:
users: "Пользователи"
vouchers: Купоны
white_label: "Белая Этикетка"
+ connected_apps: "Подключенные приложения"
enterprise_group:
primary_details: "Основная Информация"
users: "Пользователи"
@@ -1519,6 +1612,7 @@ ru:
name: "Сводка Сборов Предприятия"
description: "Сводная Информация о Сборах с Предприятия"
enterprise_fees_with_tax_report_by_order: "Сборы Предприятия с Налоговым Отчетом по Заказу"
+ enterprise_fees_with_tax_report_by_producer: "Комиссионные Сборы Предприятия С Налоговым Отчетом По Производителю"
errors:
no_report_type: "Укажите тип отчета"
report_not_found: "Отчет не найден"
@@ -1555,9 +1649,15 @@ ru:
index:
title: "Настройки OIDC"
connect: "Подключить свою учетную запись"
+ disconnect: "Отключить"
+ connected: "Ваша учетная запись связана с %{uid} ."
les_communs_link: "Les Communs Open ID сервер"
link_your_account: "Сначала вам необходимо связать свою учетную запись с поставщиком авторизации, используемым DFC (Les Communs Open ID Connect)."
link_account_button: "Свяжите свою учетную запись Les Communs OIDC"
+ note_expiry: |
+ Срок действия токенов для доступа к подключенным приложениям истек. Пожалуйста, обновите ваше
+ подключение учетной записи для поддержания работы всех интеграций.
+ refresh: "Обновить авторизацию"
view_account: "Чтобы просмотреть свою учетную запись, см.:"
subscriptions:
index:
@@ -1662,6 +1762,9 @@ ru:
save: Сохранить
voucher_code: Код Купона
voucher_amount: Количество
+ voucher_type: Тип Купона
+ flat_rate: Плоский
+ percentage_rate: Процент (%)
controllers:
enterprises:
stripe_connect_cancelled: "Подключение к Stripe было отменено"
@@ -1868,21 +1971,26 @@ ru:
invoice_column_price: "Цена"
invoice_column_item: "Позиция"
invoice_column_qty: "Кол-во"
+ invoice_column_weight_volume: "Вес / ОБЪЕМ."
invoice_column_unit_price_with_taxes: "Цена за единицу (Вкл. налоги)"
invoice_column_unit_price_without_taxes: "Цена за единицу (Искл. налоги)"
invoice_column_price_with_taxes: "Итоговая цена (Искл. налоги)"
invoice_column_price_without_taxes: "Итоговая цена (Вкл. налоги)"
+ invoice_column_price_per_unit_without_taxes: "Цена За Единицу (без налога)"
invoice_column_tax_rate: "Налоговая ставка"
invoice_tax_total: "Всего налогов:"
+ invoice_cancel_and_replace_invoice: "отменяет и заменяет счет"
tax_invoice: "СЧЁТ"
tax_total: "Всего налога (%{rate}):"
invoice_shipping_category_delivery: "Доставка"
invoice_shipping_category_pickup: "Самовывоз"
total_excl_tax: "Всего (Искл. налог):"
total_incl_tax: "Всего (Вкл. налог):"
+ total_all_tax: "Общий налог:"
abn: "ИНН"
acn: "Юридическое название"
invoice_issued_on: "Счёт выписан:"
+ order_number: "Номер заказа:"
date_of_transaction: "Дата операции:"
menu_1_title: "Магазины"
menu_1_url: "/shops"
@@ -2095,6 +2203,9 @@ ru:
order_back_to_store: Назад В Магазин
order_back_to_cart: Назад В Корзину
order_back_to_website: Вернуться На Сайт
+ checkout_details_title: Детали Заказа
+ checkout_payment_title: Оплата Заказа
+ checkout_summary_title: Информация по заказу
bom_tip: "Используйте эту страницу для изменения количества товара в нескольких заказах. Если необходимо, Товары могут быть полностью удалены из заказов."
unsaved_changes_warning: "Есть несохраненные изменения, которые будут потеряны, если вы продолжите."
unsaved_changes_error: "Поля с красными границами содержат ошибки."
@@ -2957,6 +3068,11 @@ ru:
report_header_transaction_fee: Комиссия за Операцию (без налога)
report_header_total_untaxable_admin: Всего необлагаемых налогом административных корректировок (без налогов)
report_header_total_taxable_admin: Всего налогооблагаемых административных корректировок (включая налоги)
+ report_header_voucher_label: Этикетка Купона
+ report_header_voucher_amount: "Сумма Купона ( %{currency_symbol} )"
+ report_line_cost_of_produce: Стоимость продукции
+ report_line_line_items: позиции
+ report_header_last_completed_order_date: Дата последнего выполненного заказа
report_xero_configuration: Xero Конфигурация
initial_invoice_number: "Начальный номер счета"
invoice_date: "Дата Счёта"
@@ -3039,10 +3155,12 @@ ru:
no_orders_found: "Заказов Не Найдено"
order_information: "Информация по Заказу"
new_payment: "Новый Платёж"
+ create_or_update_invoice: "Создать или Обновить счет"
date_completed: "Дата Завершения"
amount: "К оплате"
invoice_number: "Номер Счета"
invoice_file: "Файл"
+ invalid_url: "' %{url} ' — неверный URL-адрес."
state_names:
ready: Готово
pending: В ожидании
@@ -3214,6 +3332,8 @@ ru:
select_all_variants: "Выбрать Все %{total_number_of_variants} Варианты"
variants_loaded: "Загружено %{num_of_variants_loaded} из %{total_number_of_variants} Вариантов"
loading_variants: "Загрузка Вариантов"
+ no_variants: "Для этого товара нет доступных вариантов (скрыт в настройках инвентаря)."
+ some_variants_hidden: "(Некоторые варианты могут быть скрыты в настройках инвентаря)"
tag_rules:
shipping_method_tagged_top: "Способы доставки помечены"
shipping_method_tagged_bottom: "являются:"
@@ -3270,6 +3390,7 @@ ru:
processing: "в обработке"
void: "аннулирован"
invalid: "Недействительный"
+ quantity_unavailable: "Недостаточно товаров на складе. Позиция не сохранена!"
quantity_unchanged: "Количество не изменилось по сравнению с предыдущим."
cancel_the_order_html: "Это отменит текущий заказ.
Вы уверены, что хотите продолжить?"
cancel_the_order_send_cancelation_email: "Отправить клиенту электронное письмо об отмене"
@@ -3626,6 +3747,7 @@ ru:
success: Конечная точка веб-хука успешно удалена
error: Не удалось удалить конечную точку веб-хука.
spree:
+ order_updated: "Заказ Обновлен"
add_country: "Добавить страну"
add_state: "Добавить область"
adjustment: "Корректирование"
@@ -3653,6 +3775,7 @@ ru:
new_taxon: "Новая таксономия"
new_user: "Новый пользователь"
no_pending_payments: "Нет ожидающих платежей"
+ remove: "Удалить"
none: "Нет"
not_found: "Не найден"
notice_messages:
@@ -3669,8 +3792,8 @@ ru:
start_date: "Дата начала"
successfully_removed: "Успешно удалено"
taxonomy_edit: "Изменить таксономию"
- taxonomy_tree_error: "Ошибка дерева таксономии"
- taxonomy_tree_instruction: "Инструкция по дереву таксономии"
+ taxonomy_tree_error: "Произошла ошибка при обновлении дерева таксономии."
+ taxonomy_tree_instruction: "Щелкните правой кнопкой мыши элемент, чтобы добавить, переименовать, удалить или отредактировать."
tree: "Дерево"
updating: "Обновление"
your_order_is_empty_add_product: "Ваша корзина пуста, пожалуйста, найдите и добавьте товар выше"
@@ -3723,6 +3846,7 @@ ru:
credit_card: "Кредитная Карта"
new_payment: "Новый Платёж"
capture: "Capture"
+ capture_and_complete_order: "Применить и завершить заказ"
void: "Void"
login: "Войти"
password: "Пароль"
@@ -3964,6 +4088,9 @@ ru:
add_product:
cannot_add_item_to_canceled_order: "Невозможно добавить товар в отмененный заказ"
include_out_of_stock_variants: "Включить варианты, которых нет в наличии"
+ shipment:
+ mark_as_shipped_message_html: "Заказ будет помечен как Отправленный.
Вы уверены, что хотите продолжить?"
+ mark_as_shipped_label_message: "Отправить клиенту сообщение об отправке/выдаче."
index:
listing_orders: "Список Заказов"
new_order: "Новый Заказ"
@@ -4004,10 +4131,12 @@ ru:
from: "От"
to: "Плательщик"
shipping: "Доставка"
+ order_number: "Номер Заказа"
invoice_number: "Номер Счета"
payments_list:
date_time: "Дата/Время"
payment_method: "Способ оплаты"
+ payment_state: "Состояние оплаты"
amount: "Количество"
note:
note_label: "Примечание:"
@@ -4020,6 +4149,9 @@ ru:
line_item_adjustments: "Корректировки позиции"
order_adjustments: "Корректировки Заказа"
order_total: "Весь заказ"
+ invoices:
+ index:
+ order_has_changed: "Заказ изменился с момента последнего обновления счета. Показанный здесь счет, возможно, уже неактуален."
overview:
enterprises_header:
ofn_with_tip: Предприятия являются Производителями и/или Центрами и являются основной единицей организации в рамках Открытой Сети Продуктов.
@@ -4028,6 +4160,7 @@ ru:
has_no_payment_methods: "нет способов оплаты"
has_no_shipping_methods: "нет способов доставки"
products:
+ products_tip: "Товары, которые вы продаете через Открытую Сеть Продуктов."
active_products:
zero: "У Вас нет активных товаров."
one: "У Вас один активный товар."
@@ -4180,6 +4313,8 @@ ru:
bulk_unit_size: Размер оптовой еденицы
display_as:
display_as: Показывать Как
+ clone:
+ success: Товар клонирован
reports:
table:
select_and_search: "Для получения данных, выберите фильры и нажмите на %{option}."
@@ -4207,6 +4342,7 @@ ru:
enterprise_limit: "Ограничение Предприятий"
confirm_password: "Подтвердить пароль"
password: "Пароль"
+ locale: "Язык"
email_confirmation:
confirmation_pending: "Ожидается подтверждение по электронной почте. Мы отправили электронное письмо с подтверждением на %{address}."
variants:
diff --git a/config/locales/sv.yml b/config/locales/sv.yml
index d381f9c996..78f53f39ab 100644
--- a/config/locales/sv.yml
+++ b/config/locales/sv.yml
@@ -335,6 +335,8 @@ sv:
could_not_process: "kunde inte hantera filen: ogiltig filtyp"
blank: kan inte vara blank
none_saved: sparade inte några produkter
+ dfc_import_form:
+ enterprise: "Företag"
product_headings:
distributor: Distributör
producer: Producent
@@ -2134,6 +2136,7 @@ sv:
all: "Alla"
category: "Kategori"
credit: "Kredit"
+ remove: "Ta bort"
none: "Ingen"
updating: "Uppdaterar"
resend: "Återsänd"
diff --git a/config/locales/tr.yml b/config/locales/tr.yml
index e3e06731f1..121265018a 100644
--- a/config/locales/tr.yml
+++ b/config/locales/tr.yml
@@ -34,6 +34,9 @@ tr:
shipping_category_id: "TESLİMAT KATEGORİSİ"
variant_unit: "Çeşit Birimi"
variant_unit_name: "Çeşit Birim Adı"
+ spree/variant:
+ primary_taxon: "ÜRÜN KATEGORİSİ"
+ shipping_category_id: "TESLİMAT KATEGORİSİ"
spree/credit_card:
base: "Kredİ kartı"
number: "Numara"
@@ -596,15 +599,15 @@ tr:
index:
header:
title: Ürünleri Toplu Düzenleme
- sort:
- pagination:
- clear_search: Aramayı temizle
filters:
producers:
label: ÜRETİCİLER
categories:
label: Kategoriler
search: Ara
+ sort:
+ pagination:
+ clear_search: Aramayı temizle
table:
new_variant: Yeni Çeşit
edit_image:
@@ -648,6 +651,9 @@ tr:
product_categories: Ürün Kategorileri
tax_categories: Vergi Kategorileri
shipping_categories: Teslimat Kategorileri
+ dfc_import_form:
+ enterprise: "İşletme"
+ import: "Aktar"
import:
review: İncele
import: İçe Aktar
@@ -3229,6 +3235,7 @@ tr:
new_taxon: "Yeni kategori"
new_user: "Yeni kullanıcı"
no_pending_payments: "Bekleyen ödeme yok"
+ remove: "Kaldır"
none: "SATIŞ YAPMIYOR"
not_found: "Bulunamadı"
notice_messages:
@@ -3241,8 +3248,6 @@ tr:
start_date: "Başlangıç tarihi"
successfully_removed: "Başarıyla Kaldırıldı"
taxonomy_edit: "Kategori düzenleme"
- taxonomy_tree_error: "Kategori ağacı hatası"
- taxonomy_tree_instruction: "Kategori ağacı talimatı"
tree: "Ağaç"
updating: "Güncelleniyor"
your_order_is_empty_add_product: "Sepetiniz boş, lütfen bir ürün arayın ve ekleyin"
diff --git a/config/locales/uk.yml b/config/locales/uk.yml
index eb53fb60b7..210e77f134 100644
--- a/config/locales/uk.yml
+++ b/config/locales/uk.yml
@@ -34,6 +34,9 @@ uk:
shipping_category_id: "Категорія доставки"
variant_unit: "Варіант одиниці"
variant_unit_name: "Назва варіанта одиниці"
+ spree/variant:
+ primary_taxon: "Категорія товару"
+ shipping_category_id: "Категорія доставки"
spree/credit_card:
base: "Кредитна картка"
number: "Номер"
@@ -681,15 +684,15 @@ uk:
index:
header:
title: Масове редагування продуктів
- sort:
- pagination:
- clear_search: Очистити пошук
filters:
producers:
label: Виробники
categories:
label: Категорії
search: Пошук
+ sort:
+ pagination:
+ clear_search: Очистити пошук
table:
new_variant: Новий варіант
edit_image:
@@ -733,6 +736,9 @@ uk:
product_categories: Категорії продуктів
tax_categories: Податкові категорії
shipping_categories: Категорії доставки
+ dfc_import_form:
+ enterprise: "Підприємство"
+ import: "Імпорт"
import:
review: Огляд
import: Імпорт
@@ -3453,6 +3459,7 @@ uk:
new_taxon: "Новий таксон"
new_user: "Новий користувач"
no_pending_payments: "Немає незавершених платежів"
+ remove: "Видалити"
none: "Жодного"
not_found: "Не знайдено"
notice_messages:
@@ -3467,8 +3474,6 @@ uk:
start_date: "Дата початку"
successfully_removed: "Успішно видалено"
taxonomy_edit: "Редагування таксономії"
- taxonomy_tree_error: "Помилка дерева таксономії"
- taxonomy_tree_instruction: "Інструкція з таксономічного дерева"
tree: "Дерево"
updating: "Оновлення"
your_order_is_empty_add_product: "Ваше замовлення порожнє, знайдіть і додайте продукт вище"
diff --git a/config/routes/admin.rb b/config/routes/admin.rb
index 20dace8c6a..1a7ca8c3cc 100644
--- a/config/routes/admin.rb
+++ b/config/routes/admin.rb
@@ -67,10 +67,12 @@ Openfoodnetwork::Application.routes.draw do
post '/product_import/save_data', to: 'product_import#save_data', as: 'product_import_save_async'
post '/product_import/reset_absent', to: 'product_import#reset_absent_products', as: 'product_import_reset_async'
+ resources :dfc_product_imports, only: [:index]
+
constraints FeatureToggleConstraint.new(:admin_style_v3) do
- resources :products, to: 'products_v3#index', only: :index do
- patch :bulk_update, on: :collection
- end
+ # This might be easier to arrange once we rename the controller to plain old "products"
+ post '/products/bulk_update', to: 'products_v3#bulk_update'
+ get '/products', to: 'products_v3#index'
end
resources :variant_overrides do
diff --git a/config/routes/spree.rb b/config/routes/spree.rb
index 462073b486..f59e4e7dca 100644
--- a/config/routes/spree.rb
+++ b/config/routes/spree.rb
@@ -110,7 +110,7 @@ Spree::Core::Engine.routes.draw do
resources :adjustments
resources :invoices, only: [:index]
resource :invoices, only: [] do
- post :generate, to: :generate
+ post :generate
end
resources :payments do
diff --git a/db/migrate/20230803191831_add_taxons_to_variants.rb b/db/migrate/20230803191831_add_taxons_to_variants.rb
new file mode 100644
index 0000000000..c9193ac344
--- /dev/null
+++ b/db/migrate/20230803191831_add_taxons_to_variants.rb
@@ -0,0 +1,5 @@
+class AddTaxonsToVariants < ActiveRecord::Migration[7.0]
+ def change
+ add_reference :spree_variants, :primary_taxon, foreign_key: { to_table: :spree_taxons }
+ end
+end
diff --git a/db/migrate/20230807114014_remove_taxon_constraint.rb b/db/migrate/20230807114014_remove_taxon_constraint.rb
new file mode 100644
index 0000000000..a2dabbbb35
--- /dev/null
+++ b/db/migrate/20230807114014_remove_taxon_constraint.rb
@@ -0,0 +1,5 @@
+class RemoveTaxonConstraint < ActiveRecord::Migration[7.0]
+ def change
+ change_column_null :spree_products, :primary_taxon_id, true
+ end
+end
diff --git a/db/migrate/20230807122052_migrate_product_taxons.rb b/db/migrate/20230807122052_migrate_product_taxons.rb
new file mode 100644
index 0000000000..5bc982a805
--- /dev/null
+++ b/db/migrate/20230807122052_migrate_product_taxons.rb
@@ -0,0 +1,15 @@
+class MigrateProductTaxons < ActiveRecord::Migration[7.0]
+ def up
+ migrate_primary_taxon
+ end
+
+ def migrate_primary_taxon
+ ActiveRecord::Base.connection.execute(<<-SQL
+ UPDATE spree_variants
+ SET primary_taxon_id = spree_products.primary_taxon_id
+ FROM spree_products
+ WHERE spree_variants.product_id = spree_products.id
+ SQL
+ )
+ end
+end
diff --git a/db/migrate/20240105043228_create_semantic_links.rb b/db/migrate/20240105043228_create_semantic_links.rb
new file mode 100644
index 0000000000..89ac707783
--- /dev/null
+++ b/db/migrate/20240105043228_create_semantic_links.rb
@@ -0,0 +1,12 @@
+# frozen_string_literal: true
+
+class CreateSemanticLinks < ActiveRecord::Migration[7.0]
+ def change
+ create_table :semantic_links do |t|
+ t.references :variant, null: false, foreign_key: { to_table: :spree_variants }
+ t.string :semantic_id, null: false
+
+ t.timestamps
+ end
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 0ab2fb2f2e..51491dce7f 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -400,6 +400,14 @@ ActiveRecord::Schema[7.0].define(version: 2024_02_13_044159) do
t.datetime "updated_at", precision: nil, null: false
end
+ create_table "semantic_links", force: :cascade do |t|
+ t.bigint "variant_id", null: false
+ t.string "semantic_id", null: false
+ t.datetime "created_at", null: false
+ t.datetime "updated_at", null: false
+ t.index ["variant_id"], name: "index_semantic_links_on_variant_id"
+ end
+
create_table "sessions", id: :serial, force: :cascade do |t|
t.string "session_id", limit: 255, null: false
t.text "data"
@@ -690,7 +698,7 @@ ActiveRecord::Schema[7.0].define(version: 2024_02_13_044159) do
t.float "variant_unit_scale"
t.string "variant_unit_name", limit: 255
t.text "notes"
- t.integer "primary_taxon_id", null: false
+ t.integer "primary_taxon_id"
t.boolean "inherits_properties", default: true, null: false
t.string "sku", limit: 255, default: "", null: false
t.index ["deleted_at"], name: "index_products_on_deleted_at"
@@ -971,6 +979,8 @@ ActiveRecord::Schema[7.0].define(version: 2024_02_13_044159) do
t.datetime "updated_at", default: -> { "now()" }, null: false
t.bigint "tax_category_id"
t.bigint "shipping_category_id"
+ t.bigint "primary_taxon_id"
+ t.index ["primary_taxon_id"], name: "index_spree_variants_on_primary_taxon_id"
t.index ["product_id"], name: "index_variants_on_product_id"
t.index ["shipping_category_id"], name: "index_spree_variants_on_shipping_category_id"
t.index ["sku"], name: "index_spree_variants_on_sku"
@@ -1168,6 +1178,7 @@ ActiveRecord::Schema[7.0].define(version: 2024_02_13_044159) do
add_foreign_key "proxy_orders", "spree_orders", column: "order_id", name: "order_id_fk"
add_foreign_key "proxy_orders", "subscriptions", name: "proxy_orders_subscription_id_fk"
add_foreign_key "report_rendering_options", "spree_users", column: "user_id"
+ add_foreign_key "semantic_links", "spree_variants", column: "variant_id"
add_foreign_key "spree_addresses", "spree_countries", column: "country_id", name: "spree_addresses_country_id_fk"
add_foreign_key "spree_addresses", "spree_states", column: "state_id", name: "spree_addresses_state_id_fk"
add_foreign_key "spree_inventory_units", "spree_orders", column: "order_id", name: "spree_inventory_units_order_id_fk", on_delete: :cascade
@@ -1216,6 +1227,7 @@ ActiveRecord::Schema[7.0].define(version: 2024_02_13_044159) do
add_foreign_key "spree_variants", "spree_products", column: "product_id", name: "spree_variants_product_id_fk"
add_foreign_key "spree_variants", "spree_shipping_categories", column: "shipping_category_id"
add_foreign_key "spree_variants", "spree_tax_categories", column: "tax_category_id"
+ add_foreign_key "spree_variants", "spree_taxons", column: "primary_taxon_id"
add_foreign_key "spree_zone_members", "spree_zones", column: "zone_id", name: "spree_zone_members_zone_id_fk"
add_foreign_key "subscription_line_items", "spree_variants", column: "variant_id", name: "subscription_line_items_variant_id_fk"
add_foreign_key "subscription_line_items", "subscriptions", name: "subscription_line_items_subscription_id_fk"
diff --git a/engines/dfc_provider/app/controllers/dfc_provider/supplied_products_controller.rb b/engines/dfc_provider/app/controllers/dfc_provider/supplied_products_controller.rb
index d4142f25d6..57d25c1929 100644
--- a/engines/dfc_provider/app/controllers/dfc_provider/supplied_products_controller.rb
+++ b/engines/dfc_provider/app/controllers/dfc_provider/supplied_products_controller.rb
@@ -14,17 +14,14 @@ module DfcProvider
return head :bad_request unless supplied_product
- variant = SuppliedProductBuilder.import_variant(supplied_product)
+ variant = SuppliedProductBuilder.import_variant(
+ supplied_product,
+ current_enterprise,
+ )
product = variant.product
- if product.new_record?
- product.supplier = current_enterprise
- product.save!
- end
-
- if variant.new_record?
- variant.save!
- end
+ product.save! if product.new_record?
+ variant.save! if variant.new_record?
supplied_product = SuppliedProductBuilder.supplied_product(variant)
render json: DfcIo.export(supplied_product)
diff --git a/engines/dfc_provider/app/services/dfc_request.rb b/engines/dfc_provider/app/services/dfc_request.rb
new file mode 100644
index 0000000000..8de0108d99
--- /dev/null
+++ b/engines/dfc_provider/app/services/dfc_request.rb
@@ -0,0 +1,69 @@
+# frozen_string_literal: true
+
+require "private_address_check"
+require "private_address_check/tcpsocket_ext"
+
+# Request a JSON document from a DFC API with authentication.
+#
+# All DFC API interactions are authenticated via OIDC tokens. If the user's
+# access token is expired, we try to get a new one with the user's refresh
+# token.
+class DfcRequest
+ def initialize(user)
+ @user = user
+ end
+
+ def get(url)
+ response = request(url)
+
+ return response.body if response.status == 200
+
+ return "" if @user.oidc_account.updated_at > 15.minutes.ago
+
+ refresh_access_token!
+
+ response = request(url)
+ response.body
+ end
+
+ private
+
+ def request(url)
+ connection = Faraday.new(
+ request: { timeout: 30 },
+ headers: {
+ 'Content-Type' => 'application/json',
+ 'Authorization' => "Bearer #{@user.oidc_account.token}",
+ }
+ )
+
+ only_public_connections do
+ connection.get(url)
+ end
+ end
+
+ def only_public_connections(&)
+ return yield if Rails.env.development?
+
+ PrivateAddressCheck.only_public_connections(&)
+ end
+
+ def refresh_access_token!
+ strategy = OmniAuth::Strategies::OpenIDConnect.new(
+ Rails.application,
+ Devise.omniauth_configs[:openid_connect].options
+ # Don't try to call `Devise.omniauth(:openid_connect)` first.
+ # It results in an empty config hash and we lose our config.
+ )
+ client = strategy.client
+ client.token_endpoint = strategy.config.token_endpoint
+ client.refresh_token = @user.oidc_account.refresh_token
+
+ token = client.access_token!
+
+ @user.oidc_account.update!(
+ token: token.access_token,
+ refresh_token: token.refresh_token
+ )
+ end
+end
diff --git a/engines/dfc_provider/app/services/enterprise_builder.rb b/engines/dfc_provider/app/services/enterprise_builder.rb
index d1af0afad9..b2087c2601 100644
--- a/engines/dfc_provider/app/services/enterprise_builder.rb
+++ b/engines/dfc_provider/app/services/enterprise_builder.rb
@@ -29,8 +29,8 @@ class EnterpriseBuilder < DfcBuilder
# But that would require a new endpoint for a single string.
add_ofn_property(e, "ofn:contact_name", enterprise.contact_name)
- add_ofn_property(e, "ofn:logo_url", enterprise.logo.url)
- add_ofn_property(e, "ofn:promo_image_url", enterprise.promo_image.url)
+ add_ofn_property(e, "ofn:logo_url", enterprise.logo_url(:small))
+ add_ofn_property(e, "ofn:promo_image_url", enterprise.promo_image_url(:large))
end
end
diff --git a/engines/dfc_provider/app/services/social_media_builder.rb b/engines/dfc_provider/app/services/social_media_builder.rb
index bb13edc4f9..3c855b3d5b 100644
--- a/engines/dfc_provider/app/services/social_media_builder.rb
+++ b/engines/dfc_provider/app/services/social_media_builder.rb
@@ -12,10 +12,16 @@ class SocialMediaBuilder < DfcBuilder
def self.social_media(enterprise, name)
return nil unless name.in?(NAMES)
- url = enterprise.attributes[name]
+ url = enterprise.public_send(name)
return nil if url.blank?
+ if name == "instagram"
+ url = "https://www.instagram.com/#{url}/"
+ end
+
+ url = "https://#{url}" unless url.starts_with?(%r{https?://})
+
DataFoodConsortium::Connector::SocialMedia.new(
urls.enterprise_social_media_url(enterprise.id, name),
name:, url:,
diff --git a/engines/dfc_provider/app/services/supplied_product_builder.rb b/engines/dfc_provider/app/services/supplied_product_builder.rb
index ea475da1ec..bdf069bdfb 100644
--- a/engines/dfc_provider/app/services/supplied_product_builder.rb
+++ b/engines/dfc_provider/app/services/supplied_product_builder.rb
@@ -6,6 +6,10 @@ class SuppliedProductBuilder < DfcBuilder
enterprise_id: variant.product.supplier_id,
id: variant.id,
)
+ product_uri = urls.enterprise_url(
+ variant.product.supplier_id,
+ spree_product_id: variant.product_id
+ )
DfcProvider::SuppliedProduct.new(
id,
@@ -13,16 +17,16 @@ class SuppliedProductBuilder < DfcBuilder
description: variant.description,
productType: product_type(variant),
quantity: QuantitativeValueBuilder.quantity(variant),
+ spree_product_uri: product_uri,
spree_product_id: variant.product.id,
image_url: variant.product&.image&.url(:product)
)
end
- def self.import_variant(supplied_product)
- product_id = supplied_product.spree_product_id
+ def self.import_variant(supplied_product, supplier)
+ product = referenced_spree_product(supplied_product, supplier)
- if product_id.present?
- product = Spree::Product.find(product_id)
+ if product
Spree::Variant.new(
product:,
price: 0,
@@ -31,8 +35,29 @@ class SuppliedProductBuilder < DfcBuilder
end
else
product = import_product(supplied_product)
+ product.supplier = supplier
product.ensure_standard_variant
product.variants.first
+ end.tap do |variant|
+ link = supplied_product.semanticId
+ variant.semantic_links.new(semantic_id: link) if link.present?
+ end
+ end
+
+ def self.referenced_spree_product(supplied_product, supplier)
+ uri = supplied_product.spree_product_uri
+ id = supplied_product.spree_product_id
+
+ if uri.present?
+ route = Rails.application.routes.recognize_path(uri)
+ params = Rack::Utils.parse_nested_query(URI.parse(uri).query)
+
+ # Check that the given URI points to us:
+ return unless uri == urls.enterprise_url(route.merge(params))
+
+ supplier.supplied_products.find_by(id: params["spree_product_id"])
+ elsif id.present?
+ supplier.supplied_products.find_by(id:)
end
end
@@ -40,33 +65,35 @@ class SuppliedProductBuilder < DfcBuilder
Spree::Product.new(
name: supplied_product.name,
description: supplied_product.description,
- price: 0, # will be in DFC Offer
- primary_taxon: taxon(supplied_product)
+ price: 0 # will be in DFC Offer
).tap do |product|
QuantitativeValueBuilder.apply(supplied_product.quantity, product)
+ product.ensure_standard_variant
+ product.variants.first.primary_taxon = taxon(supplied_product)
end
end
def self.apply(supplied_product, variant)
- variant.product.assign_attributes(
- description: supplied_product.description,
- primary_taxon: taxon(supplied_product)
- )
+ variant.product.assign_attributes(description: supplied_product.description)
variant.display_name = supplied_product.name
+ variant.primary_taxon = taxon(supplied_product)
QuantitativeValueBuilder.apply(supplied_product.quantity, variant.product)
variant.unit_value = variant.product.unit_value
end
def self.product_type(variant)
- taxon_dfc_id = variant.product.primary_taxon&.dfc_id
+ taxon_dfc_id = variant.primary_taxon&.dfc_id
DfcProductTypeFactory.for(taxon_dfc_id)
end
def self.taxon(supplied_product)
- dfc_id = supplied_product.productType.semanticId
- Spree::Taxon.find_by(dfc_id: )
+ dfc_id = supplied_product.productType&.semanticId
+
+ # Every product needs a primary taxon to be valid. So if we don't have
+ # one or can't find it we just take a random one.
+ Spree::Taxon.find_by(dfc_id:) || Spree::Taxon.first
end
private_class_method :product_type, :taxon
diff --git a/engines/dfc_provider/lib/dfc_provider/supplied_product.rb b/engines/dfc_provider/lib/dfc_provider/supplied_product.rb
index 8e8b258206..f2ebc9f61f 100644
--- a/engines/dfc_provider/lib/dfc_provider/supplied_product.rb
+++ b/engines/dfc_provider/lib/dfc_provider/supplied_product.rb
@@ -2,15 +2,20 @@
module DfcProvider
class SuppliedProduct < DataFoodConsortium::Connector::SuppliedProduct
- attr_accessor :spree_product_id, :image
+ attr_accessor :spree_product_id, :spree_product_uri, :image
- def initialize(semantic_id, spree_product_id: nil, image_url: nil, **properties)
+ def initialize(
+ semantic_id, spree_product_id: nil, spree_product_uri: nil, image_url: nil, **properties
+ )
super(semantic_id, **properties)
self.spree_product_id = spree_product_id
+ self.spree_product_uri = spree_product_uri
self.image = image_url
+ # This is now replaced by spree_product_uri, keeping it for backward compatibility
register_ofn_property("spree_product_id")
+ register_ofn_property("spree_product_uri")
# Temporary solution, will be replaced by "dfc_b:image" in future version of the DFC connector
register_ofn_property("image")
end
diff --git a/engines/dfc_provider/spec/requests/enterprises_spec.rb b/engines/dfc_provider/spec/requests/enterprises_spec.rb
index 766a2d3beb..587971a2ec 100644
--- a/engines/dfc_provider/spec/requests/enterprises_spec.rb
+++ b/engines/dfc_provider/spec/requests/enterprises_spec.rb
@@ -93,7 +93,7 @@ describe "Enterprises", type: :request, swagger_doc: "dfc.yaml", rswag_autodoc:
let(:other_enterprise) { create(:distributor_enterprise) }
run_test! do
- expect(response.body).to_not include "Apple"
+ expect(response.body).not_to include "Apple"
end
end
end
diff --git a/engines/dfc_provider/spec/requests/persons_spec.rb b/engines/dfc_provider/spec/requests/persons_spec.rb
index 8e03a7667e..3af17b76e9 100644
--- a/engines/dfc_provider/spec/requests/persons_spec.rb
+++ b/engines/dfc_provider/spec/requests/persons_spec.rb
@@ -26,7 +26,7 @@ describe "Persons", type: :request, swagger_doc: "dfc.yaml", rswag_autodoc: true
let(:id) { other_user.id }
run_test! do
- expect(response.body).to_not include "dfc-b:Person"
+ expect(response.body).not_to include "dfc-b:Person"
end
end
end
diff --git a/engines/dfc_provider/spec/requests/supplied_products_spec.rb b/engines/dfc_provider/spec/requests/supplied_products_spec.rb
index 8ca59d0d84..d57d45c0f0 100644
--- a/engines/dfc_provider/spec/requests/supplied_products_spec.rb
+++ b/engines/dfc_provider/spec/requests/supplied_products_spec.rb
@@ -10,11 +10,10 @@ describe "SuppliedProducts", type: :request, swagger_doc: "dfc.yaml", rswag_auto
:product_with_image,
id: 90_000,
supplier: enterprise, name: "Pesto", description: "Basil Pesto",
- variants: [variant],
- primary_taxon: taxon
+ variants: [variant]
)
}
- let(:variant) { build(:base_variant, id: 10_001, unit_value: 1) }
+ let(:variant) { build(:base_variant, id: 10_001, unit_value: 1, primary_taxon: taxon) }
let(:taxon) {
build(
:taxon,
@@ -114,7 +113,7 @@ describe "SuppliedProducts", type: :request, swagger_doc: "dfc.yaml", rswag_auto
product = Spree::Product.find(product_id)
expect(product.name).to eq "Apple"
expect(product.variants).to eq [variant]
- expect(product.primary_taxon).to eq(non_local_vegetable)
+ expect(product.variants.first.primary_taxon).to eq(non_local_vegetable)
# Creates a variant for existing product
supplied_product[:'ofn:spree_product_id'] = product_id
@@ -142,6 +141,36 @@ describe "SuppliedProducts", type: :request, swagger_doc: "dfc.yaml", rswag_auto
'"ofn:spree_product_id":90000'
)
end
+
+ context "when supplying spree_product_uri matching the host" do
+ it "creates a variant for the existing product" do |example|
+ supplied_product[:'ofn:spree_product_uri'] =
+ "http://test.host/api/dfc/enterprises/10000?spree_product_id=90000"
+ supplied_product[:'dfc-b:hasQuantity'][:'dfc-b:value'] = 6
+
+ expect {
+ submit_request(example.metadata)
+ product.variants.reload
+ }
+ .to change { product.variants.count }.by(1)
+
+ # Creates a variant for existing product
+ variant_id = json_response["@id"].split("/").last.to_i
+ new_variant = Spree::Variant.find(variant_id)
+ expect(product.variants).to include(new_variant)
+ expect(new_variant.unit_value).to eq 6
+
+ # Insert static value to keep documentation deterministic:
+ response.body.gsub!(
+ "supplied_products/#{variant_id}",
+ "supplied_products/10001"
+ )
+ .gsub!(
+ %r{active_storage/[0-9A-Za-z/=-]*/logo-white.png},
+ "active_storage/url/logo-white.png",
+ )
+ end
+ end
end
end
end
@@ -214,7 +243,7 @@ describe "SuppliedProducts", type: :request, swagger_doc: "dfc.yaml", rswag_auto
}.to change { variant.description }.to("DFC-Pesto updated")
.and change { variant.display_name }.to("Pesto novo")
.and change { variant.unit_value }.to(17)
- .and change { variant.product.primary_taxon }.to(drink_taxon)
+ .and change { variant.primary_taxon }.to(drink_taxon)
end
end
end
diff --git a/engines/dfc_provider/spec/services/dfc_request_spec.rb b/engines/dfc_provider/spec/services/dfc_request_spec.rb
new file mode 100644
index 0000000000..a4f0421fad
--- /dev/null
+++ b/engines/dfc_provider/spec/services/dfc_request_spec.rb
@@ -0,0 +1,53 @@
+# frozen_string_literal: true
+
+require_relative "../spec_helper"
+
+describe DfcRequest do
+ subject(:api) { DfcRequest.new(user) }
+
+ let(:user) { build(:oidc_user) }
+ let(:account) { user.oidc_account }
+
+ it "gets a DFC document" do
+ stub_request(:get, "http://example.net/api").
+ to_return(status: 200, body: '{"@context":"/"}')
+
+ expect(api.get("http://example.net/api")).to eq '{"@context":"/"}'
+ end
+
+ it "refreshes the access token on fail", vcr: true do
+ # Live VCR recordings require the following secret ENV variables:
+ # - OPENID_APP_ID
+ # - OPENID_APP_SECRET
+ # - OPENID_REFRESH_TOKEN
+ # You can set them in the .env.test.local file.
+
+ stub_request(:get, "http://example.net/api").
+ to_return(status: 401)
+
+ # A refresh is only attempted if the token is stale.
+ account.refresh_token = ENV.fetch("OPENID_REFRESH_TOKEN")
+ account.updated_at = 1.day.ago
+
+ expect {
+ api.get("http://example.net/api")
+ }.to change {
+ account.token
+ }.and change {
+ account.refresh_token
+ }
+ end
+
+ it "doesn't try to refresh the token when it's still fresh" do
+ stub_request(:get, "http://example.net/api").
+ to_return(status: 401)
+
+ user.oidc_account.updated_at = 1.minute.ago
+
+ expect(api.get("http://example.net/api")).to eq ""
+
+ # Trying to reach the OIDC server via network request to refresh the token
+ # would raise errors because we didn't setup Webmock or VCR.
+ # The absence of errors makes this test pass.
+ end
+end
diff --git a/engines/dfc_provider/spec/services/social_media_builder_spec.rb b/engines/dfc_provider/spec/services/social_media_builder_spec.rb
new file mode 100644
index 0000000000..633ce732d8
--- /dev/null
+++ b/engines/dfc_provider/spec/services/social_media_builder_spec.rb
@@ -0,0 +1,34 @@
+# frozen_string_literal: true
+
+require_relative "../spec_helper"
+
+describe SocialMediaBuilder do
+ let(:enterprise) do
+ create(
+ :enterprise,
+ id: 10_000,
+
+ # These formats are requested by our UI:
+ facebook: "www.facebook.com/user",
+ instagram: "handle",
+ linkedin: "www.linkedin.com/company/name",
+ )
+ end
+
+ describe ".social_media" do
+ it "links to Facebook" do
+ result = SocialMediaBuilder.social_media(enterprise, "facebook")
+ expect(result.url).to eq "https://www.facebook.com/user"
+ end
+
+ it "links to Instagram" do
+ result = SocialMediaBuilder.social_media(enterprise, "instagram")
+ expect(result.url).to eq "https://www.instagram.com/handle/"
+ end
+
+ it "links to Linkedin" do
+ result = SocialMediaBuilder.social_media(enterprise, "linkedin")
+ expect(result.url).to eq "https://www.linkedin.com/company/name"
+ end
+ end
+end
diff --git a/engines/dfc_provider/spec/services/supplied_product_builder_spec.rb b/engines/dfc_provider/spec/services/supplied_product_builder_spec.rb
index b8e41df742..12bc49f518 100644
--- a/engines/dfc_provider/spec/services/supplied_product_builder_spec.rb
+++ b/engines/dfc_provider/spec/services/supplied_product_builder_spec.rb
@@ -7,10 +7,13 @@ describe SuppliedProductBuilder do
subject(:builder) { described_class }
let(:variant) {
- build(:variant, id: 5).tap do |v|
- v.product.supplier_id = 7
- v.product.primary_taxon = taxon
- end
+ build(:variant, id: 5, product: spree_product, primary_taxon: taxon)
+ }
+ let(:spree_product) {
+ create(:product, id: 6, supplier:)
+ }
+ let(:supplier) {
+ build(:supplier_enterprise, id: 7)
}
let(:taxon) {
build(
@@ -59,14 +62,6 @@ describe SuppliedProductBuilder do
expect(product.productType).to eq soft_drink
end
-
- context "when no taxon set" do
- let(:taxon) { nil }
-
- it "returns nil" do
- expect(product.productType).to be_nil
- end
- end
end
it "assigns an image_url type" do
@@ -79,6 +74,14 @@ describe SuppliedProductBuilder do
expect(product.image).to eq variant.product.image.url(:product)
end
+
+ it "assigns the product uri" do
+ product = builder.supplied_product(variant)
+
+ expect(product.spree_product_uri).to eq(
+ "http://test.host/api/dfc/enterprises/7?spree_product_id=6"
+ )
+ end
end
describe ".import_product" do
@@ -116,18 +119,149 @@ describe SuppliedProductBuilder do
it "assigns the taxon matching the DFC product type" do
product = builder.import_product(supplied_product)
- expect(product.primary_taxon).to eq(taxon)
+ expect(product.variants.first.primary_taxon).to eq(taxon)
+ end
+ end
+ end
+
+ describe ".import_variant" do
+ let(:imported_variant) { builder.import_variant(supplied_product, supplier) }
+ let(:supplied_product) do
+ DfcProvider::SuppliedProduct.new(
+ "https://example.net/tomato",
+ name: "Tomato",
+ description: "Awesome tomato",
+ quantity: DataFoodConsortium::Connector::QuantitativeValue.new(
+ unit: DfcLoader.connector.MEASURES.KILOGRAM,
+ value: 2,
+ ),
+ productType: product_type,
+ )
+ end
+ let(:product_type) { DfcLoader.connector.PRODUCT_TYPES.VEGETABLE.NON_LOCAL_VEGETABLE }
+
+ it "creates a new Spree::Product and variant" do
+ create(:taxon)
+
+ expect(imported_variant).to be_a(Spree::Variant)
+ expect(imported_variant).to be_valid
+ expect(imported_variant.id).to be_nil
+ expect(imported_variant.semantic_links.size).to eq 1
+
+ link = imported_variant.semantic_links[0]
+ expect(link.semantic_id).to eq "https://example.net/tomato"
+
+ imported_product = imported_variant.product
+ expect(imported_product).to be_a(Spree::Product)
+ expect(imported_product).to be_valid
+ expect(imported_product.id).to be_nil
+ expect(imported_product.name).to eq("Tomato")
+ expect(imported_product.description).to eq("Awesome tomato")
+ expect(imported_product.variant_unit).to eq("weight")
+ end
+
+ context "with spree_product_id supplied" do
+ let(:imported_variant) { builder.import_variant(supplied_product, supplier) }
+
+ let(:supplied_product) do
+ DfcProvider::SuppliedProduct.new(
+ "https://example.net/tomato",
+ name: "Tomato",
+ description: "Better Awesome tomato",
+ quantity: DataFoodConsortium::Connector::QuantitativeValue.new(
+ unit: DfcLoader.connector.MEASURES.KILOGRAM,
+ value: 2,
+ ),
+ productType: product_type,
+ spree_product_id: variant.product.id
+ )
+ end
+ let(:product_type) { DfcLoader.connector.PRODUCT_TYPES.DRINK.SOFT_DRINK }
+ let!(:new_taxon) {
+ create(
+ :taxon,
+ name: "Soft Drink",
+ dfc_id: "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/productTypes.rdf#soft-drink"
+ )
+ }
+
+ it "update an existing Spree::Product" do
+ imported_product = imported_variant.product
+ expect(imported_product.id).to eq(spree_product.id)
+ expect(imported_product.description).to eq("Better Awesome tomato")
+ expect(imported_variant.primary_taxon).to eq(new_taxon)
end
- describe "when no matching taxon" do
- let(:product_type) { DfcLoader.connector.PRODUCT_TYPES.DRINK }
+ context "when spree_product_uri doesn't match the server host" do
+ let(:supplied_product) do
+ DfcProvider::SuppliedProduct.new(
+ "https://example.net/tomato",
+ name: "Tomato",
+ description: "Awesome tomato",
+ quantity: DataFoodConsortium::Connector::QuantitativeValue.new(
+ unit: DfcLoader.connector.MEASURES.KILOGRAM,
+ value: 2,
+ ),
+ productType: product_type,
+ spree_product_uri: "http://another.host/api/dfc/enterprises/10/supplied_products/50"
+ )
+ end
- it "set the taxon to nil" do
- product = builder.import_product(supplied_product)
+ it "creates a new Spree::Product and variant" do
+ expect(imported_variant).to be_a(Spree::Variant)
+ expect(imported_variant.id).to be_nil
- expect(product.primary_taxon).to be_nil
+ imported_product = imported_variant.product
+ expect(imported_product).to be_a(Spree::Product)
+ expect(imported_product.id).to be_nil
+ expect(imported_product.name).to eq("Tomato")
+ expect(imported_product.description).to eq("Awesome tomato")
+ expect(imported_product.variant_unit).to eq("weight")
end
end
end
end
+
+ describe ".referenced_spree_product" do
+ let(:result) { builder.referenced_spree_product(supplied_product, supplier) }
+ let(:supplied_product) do
+ DfcProvider::SuppliedProduct.new(
+ "https://example.net/tomato",
+ name: "Tomato",
+ )
+ end
+
+ it "returns nil when no reference is given" do
+ expect(result).to eq nil
+ end
+
+ it "returns a product referenced by URI" do
+ variant.save!
+ supplied_product.spree_product_uri =
+ "http://test.host/api/dfc/enterprises/7?spree_product_id=6"
+ expect(result).to eq spree_product
+ end
+
+ it "doesn't return a product of another enterprise" do
+ variant.save!
+ create(:product, id: 8, supplier: create(:enterprise))
+
+ supplied_product.spree_product_uri =
+ "http://test.host/api/dfc/enterprises/7?spree_product_id=8"
+ expect(result).to eq nil
+ end
+
+ it "doesn't return a foreign product referenced by URI" do
+ variant.save!
+ supplied_product.spree_product_uri =
+ "http://another.host/api/dfc/enterprises/7?spree_product_id=6"
+ expect(result).to eq nil
+ end
+
+ it "returns a product referenced by id" do
+ variant.save!
+ supplied_product.spree_product_id = "6"
+ expect(result).to eq spree_product
+ end
+ end
end
diff --git a/engines/order_management/app/services/order_management/order/stripe_sca_payment_authorize.rb b/engines/order_management/app/services/order_management/order/stripe_sca_payment_authorize.rb
index cfecbc7de9..0763a32b1a 100644
--- a/engines/order_management/app/services/order_management/order/stripe_sca_payment_authorize.rb
+++ b/engines/order_management/app/services/order_management/order/stripe_sca_payment_authorize.rb
@@ -12,7 +12,7 @@ module OrderManagement
def initialize(order, payment: nil, off_session: false, notify_hub: false)
@order = order
- @payment = payment || OrderPaymentFinder.new(order).last_pending_payment
+ @payment = payment || Orders::FindPaymentService.new(order).last_pending_payment
@off_session = off_session
@notify_hub = notify_hub
end
diff --git a/engines/order_management/app/services/order_management/subscriptions/form.rb b/engines/order_management/app/services/order_management/subscriptions/form.rb
index 53c0e615cd..74aa78d72f 100644
--- a/engines/order_management/app/services/order_management/subscriptions/form.rb
+++ b/engines/order_management/app/services/order_management/subscriptions/form.rb
@@ -15,7 +15,7 @@ module OrderManagement
@options = options
@estimator = OrderManagement::Subscriptions::Estimator.new(subscription)
@validator = OrderManagement::Subscriptions::Validator.new(subscription)
- @order_syncer = OrderSyncer.new(subscription)
+ @order_syncer = Orders::SyncService.new(subscription)
end
def save
diff --git a/engines/order_management/app/services/order_management/subscriptions/payment_setup.rb b/engines/order_management/app/services/order_management/subscriptions/payment_setup.rb
index fea4da84e5..15cab96ee2 100644
--- a/engines/order_management/app/services/order_management/subscriptions/payment_setup.rb
+++ b/engines/order_management/app/services/order_management/subscriptions/payment_setup.rb
@@ -18,7 +18,7 @@ module OrderManagement
private
def create_payment
- payment = OrderPaymentFinder.new(@order).last_pending_payment
+ payment = Orders::FindPaymentService.new(@order).last_pending_payment
return payment if payment.present?
@order.payments.create(
diff --git a/engines/order_management/app/services/order_management/subscriptions/proxy_order_syncer.rb b/engines/order_management/app/services/order_management/subscriptions/proxy_order_syncer.rb
index 9c50e175d5..e906a0ed16 100644
--- a/engines/order_management/app/services/order_management/subscriptions/proxy_order_syncer.rb
+++ b/engines/order_management/app/services/order_management/subscriptions/proxy_order_syncer.rb
@@ -14,7 +14,7 @@ module OrderManagement
when ActiveRecord::Relation
@subscriptions = subscriptions.not_ended.not_canceled
else
- raise "ProxyOrderSyncer must be initialized with " \
+ raise "ProxyOrders::SyncService must be initialized with " \
"an instance of Subscription or ActiveRecord::Relation"
end
end
diff --git a/engines/order_management/app/services/order_management/subscriptions/stripe_payment_setup.rb b/engines/order_management/app/services/order_management/subscriptions/stripe_payment_setup.rb
index df79b45ddd..e3d01bdfc1 100644
--- a/engines/order_management/app/services/order_management/subscriptions/stripe_payment_setup.rb
+++ b/engines/order_management/app/services/order_management/subscriptions/stripe_payment_setup.rb
@@ -5,7 +5,7 @@ module OrderManagement
class StripePaymentSetup
def initialize(order)
@order = order
- @payment = OrderPaymentFinder.new(@order).last_pending_payment
+ @payment = Orders::FindPaymentService.new(@order).last_pending_payment
end
def call!
diff --git a/engines/order_management/spec/services/order_management/order/stripe_sca_payment_authorize_spec.rb b/engines/order_management/spec/services/order_management/order/stripe_sca_payment_authorize_spec.rb
index 9dd15e8a8b..afe866f15b 100644
--- a/engines/order_management/spec/services/order_management/order/stripe_sca_payment_authorize_spec.rb
+++ b/engines/order_management/spec/services/order_management/order/stripe_sca_payment_authorize_spec.rb
@@ -74,9 +74,9 @@ module OrderManagement
payment_authorize.call!
expect(order.errors.size).to eq 0
- expect(PaymentMailer).to_not have_received(:authorize_payment)
- expect(PaymentMailer).to_not have_received(:authorization_required)
- expect(mail_mock).to_not have_received(:deliver_now)
+ expect(PaymentMailer).not_to have_received(:authorize_payment)
+ expect(PaymentMailer).not_to have_received(:authorization_required)
+ expect(mail_mock).not_to have_received(:deliver_now)
end
context "when the processing is off-session (via backoffice/subscription)" do
diff --git a/engines/order_management/spec/services/order_management/order/updater_spec.rb b/engines/order_management/spec/services/order_management/order/updater_spec.rb
index 0447e84cb8..6c2542b9e0 100644
--- a/engines/order_management/spec/services/order_management/order/updater_spec.rb
+++ b/engines/order_management/spec/services/order_management/order/updater_spec.rb
@@ -237,7 +237,7 @@ module OrderManagement
it "returns paid" do
updater.update_payment_state
- expect(order.payment_state).to_not eq("requires_authorization")
+ expect(order.payment_state).not_to eq("requires_authorization")
end
end
@@ -362,7 +362,7 @@ module OrderManagement
it "cancels unused payments requiring authorization" do
expect(stripe_payment).to receive(:void_transaction!)
- expect(cash_payment).to_not receive(:void_transaction!)
+ expect(cash_payment).not_to receive(:void_transaction!)
order.updater.update_payment_state
end
@@ -416,7 +416,7 @@ module OrderManagement
it "doesn't touch taxes" do
allow(order).to receive(:completed?) { false }
- expect(order).to_not receive(:create_tax_charge!)
+ expect(order).not_to receive(:create_tax_charge!)
updater.__send__(:handle_legacy_taxes)
end
end
@@ -439,7 +439,7 @@ module OrderManagement
context "and the order has no legacy taxes" do
it "leaves taxes untouched" do
- expect(order).to_not receive(:create_tax_charge!)
+ expect(order).not_to receive(:create_tax_charge!)
updater.__send__(:handle_legacy_taxes)
end
diff --git a/engines/order_management/spec/services/order_management/stock/package_spec.rb b/engines/order_management/spec/services/order_management/stock/package_spec.rb
index 5f36592a67..64a9fd46d3 100644
--- a/engines/order_management/spec/services/order_management/stock/package_spec.rb
+++ b/engines/order_management/spec/services/order_management/stock/package_spec.rb
@@ -168,7 +168,7 @@ module OrderManagement
end
it "does not return soft-deleted shipping methods" do
- expect(package.shipping_methods).to_not include shipping_method3
+ expect(package.shipping_methods).not_to include shipping_method3
end
it "returns an empty array if distributor is nil" do
diff --git a/engines/order_management/spec/services/order_management/subscriptions/payment_setup_spec.rb b/engines/order_management/spec/services/order_management/subscriptions/payment_setup_spec.rb
index b646ea5222..035021eb49 100644
--- a/engines/order_management/spec/services/order_management/subscriptions/payment_setup_spec.rb
+++ b/engines/order_management/spec/services/order_management/subscriptions/payment_setup_spec.rb
@@ -42,7 +42,7 @@ module OrderManagement
before { allow(order).to receive(:new_outstanding_balance) { 10 } }
it "does nothing" do
- expect{ payment_setup.call! }.to_not change { payment.amount }.from(10)
+ expect{ payment_setup.call! }.not_to change { payment.amount }.from(10)
end
end
end
diff --git a/engines/order_management/spec/services/order_management/subscriptions/proxy_order_syncer_spec.rb b/engines/order_management/spec/services/order_management/subscriptions/proxy_order_syncer_spec.rb
index 510bf780e0..fcf06793df 100644
--- a/engines/order_management/spec/services/order_management/subscriptions/proxy_order_syncer_spec.rb
+++ b/engines/order_management/spec/services/order_management/subscriptions/proxy_order_syncer_spec.rb
@@ -10,8 +10,8 @@ module OrderManagement
it "raises an error when initialized with an object
that is not a Subscription or an ActiveRecord::Relation" do
- expect{ ProxyOrderSyncer.new(subscription) }.to_not raise_error
- expect{ ProxyOrderSyncer.new(Subscription.where(id: subscription.id)) }.to_not raise_error
+ expect{ ProxyOrderSyncer.new(subscription) }.not_to raise_error
+ expect{ ProxyOrderSyncer.new(Subscription.where(id: subscription.id)) }.not_to raise_error
expect{ ProxyOrderSyncer.new("something") }.to raise_error RuntimeError
end
end
@@ -70,8 +70,8 @@ module OrderManagement
let!(:oc) { closed_oc }
it "does not create a new proxy order for that oc" do
- expect{ subscription.save! }.to_not change { ProxyOrder.count }.from(0)
- expect(order_cycles).to_not include oc
+ expect{ subscription.save! }.not_to change { ProxyOrder.count }.from(0)
+ expect(order_cycles).not_to include oc
end
end
@@ -79,8 +79,8 @@ module OrderManagement
let!(:oc) { open_oc_closes_before_begins_at_oc }
it "does not create a new proxy order for that oc" do
- expect{ subscription.save! }.to_not change { ProxyOrder.count }.from(0)
- expect(order_cycles).to_not include oc
+ expect{ subscription.save! }.not_to change { ProxyOrder.count }.from(0)
+ expect(order_cycles).not_to include oc
end
end
@@ -99,8 +99,8 @@ module OrderManagement
let!(:oc) { upcoming_closes_before_begins_at_oc }
it "does not create a new proxy order for that oc" do
- expect{ subscription.save! }.to_not change { ProxyOrder.count }.from(0)
- expect(order_cycles).to_not include oc
+ expect{ subscription.save! }.not_to change { ProxyOrder.count }.from(0)
+ expect(order_cycles).not_to include oc
end
end
@@ -130,8 +130,8 @@ module OrderManagement
let!(:oc) { upcoming_closes_after_ends_at_oc }
it "does not create a new proxy order for that oc" do
- expect{ subscription.save! }.to_not change { ProxyOrder.count }.from(0)
- expect(order_cycles).to_not include oc
+ expect{ subscription.save! }.not_to change { ProxyOrder.count }.from(0)
+ expect(order_cycles).not_to include oc
end
end
end
@@ -149,7 +149,7 @@ module OrderManagement
context "the oc is closed (ie. closed before opens_at)" do
let(:oc) { closed_oc }
it "keeps the proxy order" do
- expect{ syncer.sync! }.to_not change { ProxyOrder.count }.from(1)
+ expect{ syncer.sync! }.not_to change { ProxyOrder.count }.from(1)
expect(proxy_orders).to include proxy_order
end
end
@@ -157,7 +157,7 @@ module OrderManagement
context "and the schedule includes an open oc that closes before begins_at" do
let(:oc) { open_oc_closes_before_begins_at_oc }
it "keeps the proxy order" do
- expect{ syncer.sync! }.to_not change { ProxyOrder.count }.from(1)
+ expect{ syncer.sync! }.not_to change { ProxyOrder.count }.from(1)
expect(proxy_orders).to include proxy_order
end
end
@@ -165,7 +165,7 @@ module OrderManagement
context "and the oc is open and closes between begins_at and ends_at" do
let(:oc) { open_oc }
it "keeps the proxy order" do
- expect{ syncer.sync! }.to_not change { ProxyOrder.count }.from(1)
+ expect{ syncer.sync! }.not_to change { ProxyOrder.count }.from(1)
expect(proxy_orders).to include proxy_order
end
end
@@ -173,7 +173,7 @@ module OrderManagement
context "and the oc is upcoming and closes before begins_at" do
let(:oc) { upcoming_closes_before_begins_at_oc }
it "keeps the proxy order" do
- expect{ syncer.sync! }.to_not change { ProxyOrder.count }.from(1)
+ expect{ syncer.sync! }.not_to change { ProxyOrder.count }.from(1)
expect(proxy_orders).to include proxy_order
end
end
@@ -181,7 +181,7 @@ module OrderManagement
context "and the oc is upcoming and closes on begins_at" do
let(:oc) { upcoming_closes_on_begins_at_oc }
it "keeps the proxy order" do
- expect{ syncer.sync! }.to_not change { ProxyOrder.count }.from(1)
+ expect{ syncer.sync! }.not_to change { ProxyOrder.count }.from(1)
expect(proxy_orders).to include proxy_order
end
end
@@ -189,7 +189,7 @@ module OrderManagement
context "and the oc is upcoming and closes on ends_at" do
let(:oc) { upcoming_closes_on_ends_at_oc }
it "keeps the proxy order" do
- expect{ syncer.sync! }.to_not change { ProxyOrder.count }.from(1)
+ expect{ syncer.sync! }.not_to change { ProxyOrder.count }.from(1)
expect(proxy_orders).to include proxy_order
end
end
@@ -197,7 +197,7 @@ module OrderManagement
context "and the oc is upcoming and closes after ends_at" do
let(:oc) { upcoming_closes_after_ends_at_oc }
it "keeps the proxy order" do
- expect{ syncer.sync! }.to_not change { ProxyOrder.count }.from(1)
+ expect{ syncer.sync! }.not_to change { ProxyOrder.count }.from(1)
expect(proxy_orders).to include proxy_order
end
end
@@ -209,7 +209,7 @@ module OrderManagement
it "removes the proxy order" do
expect{ syncer.sync! }.to change { ProxyOrder.count }.from(1).to(0)
- expect(proxy_orders).to_not include proxy_order
+ expect(proxy_orders).not_to include proxy_order
end
end
@@ -218,7 +218,7 @@ module OrderManagement
it "removes the proxy order" do
expect{ syncer.sync! }.to change { ProxyOrder.count }.from(1).to(0)
- expect(proxy_orders).to_not include proxy_order
+ expect(proxy_orders).not_to include proxy_order
end
end
@@ -238,7 +238,7 @@ module OrderManagement
let(:oc) { open_oc }
it "keeps the proxy order" do
- expect{ syncer.sync! }.to_not change { ProxyOrder.count }.from(1)
+ expect{ syncer.sync! }.not_to change { ProxyOrder.count }.from(1)
expect(proxy_orders).to include proxy_order
end
end
@@ -247,7 +247,7 @@ module OrderManagement
let(:oc) { upcoming_closes_on_begins_at_oc }
it "keeps the proxy order" do
- expect{ syncer.sync! }.to_not change { ProxyOrder.count }.from(1)
+ expect{ syncer.sync! }.not_to change { ProxyOrder.count }.from(1)
expect(proxy_orders).to include proxy_order
end
end
@@ -256,7 +256,7 @@ module OrderManagement
let(:oc) { upcoming_closes_on_ends_at_oc }
it "keeps the proxy order" do
- expect{ syncer.sync! }.to_not change { ProxyOrder.count }.from(1)
+ expect{ syncer.sync! }.not_to change { ProxyOrder.count }.from(1)
expect(proxy_orders).to include proxy_order
end
end
@@ -267,7 +267,7 @@ module OrderManagement
it "removes the proxy order" do
expect{ syncer.sync! }.to change { ProxyOrder.count }.from(1).to(0)
- expect(proxy_orders).to_not include proxy_order
+ expect(proxy_orders).not_to include proxy_order
end
end
@@ -276,7 +276,7 @@ module OrderManagement
it "removes the proxy order" do
expect{ syncer.sync! }.to change { ProxyOrder.count }.from(1).to(0)
- expect(proxy_orders).to_not include proxy_order
+ expect(proxy_orders).not_to include proxy_order
end
end
end
@@ -297,7 +297,7 @@ module OrderManagement
context "the oc is closed (ie. closed before opens_at)" do
let(:oc) { closed_oc }
it "keeps the proxy order" do
- expect{ syncer.sync! }.to_not change { ProxyOrder.count }.from(1)
+ expect{ syncer.sync! }.not_to change { ProxyOrder.count }.from(1)
expect(proxy_orders).to include proxy_order
end
end
@@ -305,7 +305,7 @@ module OrderManagement
context "and the schedule includes an open oc that closes before begins_at" do
let(:oc) { open_oc_closes_before_begins_at_oc }
it "keeps the proxy order" do
- expect{ syncer.sync! }.to_not change { ProxyOrder.count }.from(1)
+ expect{ syncer.sync! }.not_to change { ProxyOrder.count }.from(1)
expect(proxy_orders).to include proxy_order
end
end
@@ -313,7 +313,7 @@ module OrderManagement
context "and the oc is open and closes between begins_at and ends_at" do
let(:oc) { open_oc }
it "keeps the proxy order" do
- expect{ syncer.sync! }.to_not change { ProxyOrder.count }.from(1)
+ expect{ syncer.sync! }.not_to change { ProxyOrder.count }.from(1)
expect(proxy_orders).to include proxy_order
end
end
@@ -321,7 +321,7 @@ module OrderManagement
context "and the oc is upcoming and closes before begins_at" do
let(:oc) { upcoming_closes_before_begins_at_oc }
it "keeps the proxy order" do
- expect{ syncer.sync! }.to_not change { ProxyOrder.count }.from(1)
+ expect{ syncer.sync! }.not_to change { ProxyOrder.count }.from(1)
expect(proxy_orders).to include proxy_order
end
end
@@ -329,7 +329,7 @@ module OrderManagement
context "and the oc is upcoming and closes on begins_at" do
let(:oc) { upcoming_closes_on_begins_at_oc }
it "keeps the proxy order" do
- expect{ syncer.sync! }.to_not change { ProxyOrder.count }.from(1)
+ expect{ syncer.sync! }.not_to change { ProxyOrder.count }.from(1)
expect(proxy_orders).to include proxy_order
end
end
@@ -337,7 +337,7 @@ module OrderManagement
context "and the oc is upcoming and closes on ends_at" do
let(:oc) { upcoming_closes_on_ends_at_oc }
it "keeps the proxy order" do
- expect{ syncer.sync! }.to_not change { ProxyOrder.count }.from(1)
+ expect{ syncer.sync! }.not_to change { ProxyOrder.count }.from(1)
expect(proxy_orders).to include proxy_order
end
end
@@ -345,7 +345,7 @@ module OrderManagement
context "and the oc is upcoming and closes after ends_at" do
let(:oc) { upcoming_closes_after_ends_at_oc }
it "keeps the proxy order" do
- expect{ syncer.sync! }.to_not change { ProxyOrder.count }.from(1)
+ expect{ syncer.sync! }.not_to change { ProxyOrder.count }.from(1)
expect(proxy_orders).to include proxy_order
end
end
@@ -357,7 +357,7 @@ module OrderManagement
let(:oc) { closed_oc }
it "removes the proxy order" do
expect{ syncer.sync! }.to change { ProxyOrder.count }.from(1).to(0)
- expect(proxy_orders).to_not include proxy_order
+ expect(proxy_orders).not_to include proxy_order
end
end
@@ -366,7 +366,7 @@ module OrderManagement
let(:oc) { open_oc }
it "removes the proxy order" do
expect{ syncer.sync! }.to change { ProxyOrder.count }.from(1).to(0)
- expect(proxy_orders).to_not include proxy_order
+ expect(proxy_orders).not_to include proxy_order
end
end
@@ -374,7 +374,7 @@ module OrderManagement
let(:oc) { upcoming_closes_before_begins_at_oc }
it "removes the proxy order" do
expect{ syncer.sync! }.to change { ProxyOrder.count }.from(1).to(0)
- expect(proxy_orders).to_not include proxy_order
+ expect(proxy_orders).not_to include proxy_order
end
end
@@ -382,7 +382,7 @@ module OrderManagement
let(:oc) { upcoming_closes_on_begins_at_oc }
it "removes the proxy order" do
expect{ syncer.sync! }.to change { ProxyOrder.count }.from(1).to(0)
- expect(proxy_orders).to_not include proxy_order
+ expect(proxy_orders).not_to include proxy_order
end
end
@@ -390,7 +390,7 @@ module OrderManagement
let(:oc) { upcoming_closes_on_ends_at_oc }
it "removes the proxy order" do
expect{ syncer.sync! }.to change { ProxyOrder.count }.from(1).to(0)
- expect(proxy_orders).to_not include proxy_order
+ expect(proxy_orders).not_to include proxy_order
end
end
@@ -398,7 +398,7 @@ module OrderManagement
let(:oc) { upcoming_closes_after_ends_at_oc }
it "removes the proxy order" do
expect{ syncer.sync! }.to change { ProxyOrder.count }.from(1).to(0)
- expect(proxy_orders).to_not include proxy_order
+ expect(proxy_orders).not_to include proxy_order
end
end
end
@@ -421,8 +421,8 @@ module OrderManagement
let!(:oc) { closed_oc }
it "does not create a new proxy order for that oc" do
- expect{ syncer.sync! }.to_not change { ProxyOrder.count }.from(0)
- expect(order_cycles).to_not include oc
+ expect{ syncer.sync! }.not_to change { ProxyOrder.count }.from(0)
+ expect(order_cycles).not_to include oc
end
end
@@ -430,8 +430,8 @@ module OrderManagement
let(:oc) { open_oc_closes_before_begins_at_oc }
it "does not create a new proxy order for that oc" do
- expect{ subscription.save! }.to_not change { ProxyOrder.count }.from(0)
- expect(order_cycles).to_not include oc
+ expect{ subscription.save! }.not_to change { ProxyOrder.count }.from(0)
+ expect(order_cycles).not_to include oc
end
end
@@ -448,8 +448,8 @@ module OrderManagement
let!(:oc) { upcoming_closes_before_begins_at_oc }
it "does not create a new proxy order for that oc" do
- expect{ syncer.sync! }.to_not change { ProxyOrder.count }.from(0)
- expect(order_cycles).to_not include oc
+ expect{ syncer.sync! }.not_to change { ProxyOrder.count }.from(0)
+ expect(order_cycles).not_to include oc
end
end
@@ -475,8 +475,8 @@ module OrderManagement
let!(:oc) { upcoming_closes_after_ends_at_oc }
it "does not create a new proxy order for that oc" do
- expect{ syncer.sync! }.to_not change { ProxyOrder.count }.from(0)
- expect(order_cycles).to_not include oc
+ expect{ syncer.sync! }.not_to change { ProxyOrder.count }.from(0)
+ expect(order_cycles).not_to include oc
end
end
end
diff --git a/engines/order_management/spec/services/order_management/subscriptions/stripe_payment_setup_spec.rb b/engines/order_management/spec/services/order_management/subscriptions/stripe_payment_setup_spec.rb
index 8e9b063f3c..9c4e97157c 100644
--- a/engines/order_management/spec/services/order_management/subscriptions/stripe_payment_setup_spec.rb
+++ b/engines/order_management/spec/services/order_management/subscriptions/stripe_payment_setup_spec.rb
@@ -28,7 +28,7 @@ module OrderManagement
let(:payment_method) { create(:payment_method) }
it "returns the pending payment with no change" do
- expect(payment).to_not receive(:update)
+ expect(payment).not_to receive(:update)
expect(payment_setup.call!).to eq payment
end
end
@@ -38,7 +38,7 @@ module OrderManagement
context "and the card is already set (the payment source is a credit card)" do
it "returns the pending payment with no change" do
- expect(payment).to_not receive(:update)
+ expect(payment).not_to receive(:update)
expect(payment_setup.call!).to eq payment
end
end
@@ -54,7 +54,7 @@ module OrderManagement
it "adds an error to the order and does not update the payment" do
payment_setup.call!
- expect(payment).to_not receive(:update)
+ expect(payment).not_to receive(:update)
expect(payment_setup.call!).to eq payment
expect(order.errors[:base].first).to eq "There are no authorised " \
"credit cards available to charge"
@@ -80,7 +80,7 @@ module OrderManagement
it "adds an error to the order and does not update the payment" do
payment_setup.call!
- expect(payment).to_not receive(:update)
+ expect(payment).not_to receive(:update)
expect(payment_setup.call!).to eq payment
expect(order.errors[:base].first).to eq "There are no authorised " \
"credit cards available to charge"
diff --git a/engines/order_management/spec/services/order_management/subscriptions/summary_spec.rb b/engines/order_management/spec/services/order_management/subscriptions/summary_spec.rb
index dcfd214008..6aeb292bf2 100644
--- a/engines/order_management/spec/services/order_management/subscriptions/summary_spec.rb
+++ b/engines/order_management/spec/services/order_management/subscriptions/summary_spec.rb
@@ -121,7 +121,7 @@ module OrderManagement
it "returns orders specified by unrecorded_ids" do
expect(orders).to include order1
- expect(orders).to_not include order2
+ expect(orders).not_to include order2
end
end
@@ -130,7 +130,7 @@ module OrderManagement
it "returns orders specified by the relevant issue hash" do
expect(orders).to include order2
- expect(orders).to_not include order1
+ expect(orders).not_to include order1
end
end
end
diff --git a/engines/order_management/spec/services/order_management/subscriptions/validator_spec.rb b/engines/order_management/spec/services/order_management/subscriptions/validator_spec.rb
index 6df7740d4e..55e4d28944 100644
--- a/engines/order_management/spec/services/order_management/subscriptions/validator_spec.rb
+++ b/engines/order_management/spec/services/order_management/subscriptions/validator_spec.rb
@@ -74,7 +74,7 @@ module OrderManagement
it "adds an error and returns false" do
expect(validator.valid?).to be false
- expect(validator.errors[:shipping_method]).to_not be_empty
+ expect(validator.errors[:shipping_method]).not_to be_empty
end
end
@@ -89,7 +89,7 @@ module OrderManagement
it "adds an error and returns false" do
expect(validator.valid?).to be false
- expect(validator.errors[:shipping_method]).to_not be_empty
+ expect(validator.errors[:shipping_method]).not_to be_empty
end
end
@@ -115,7 +115,7 @@ module OrderManagement
it "adds an error and returns false" do
expect(validator.valid?).to be false
- expect(validator.errors[:payment_method]).to_not be_empty
+ expect(validator.errors[:payment_method]).not_to be_empty
end
end
@@ -130,7 +130,7 @@ module OrderManagement
it "adds an error and returns false" do
expect(validator.valid?).to be false
- expect(validator.errors[:payment_method]).to_not be_empty
+ expect(validator.errors[:payment_method]).not_to be_empty
end
end
@@ -164,7 +164,7 @@ module OrderManagement
it "adds an error and returns false" do
expect(validator.valid?).to be false
- expect(validator.errors[:payment_method]).to_not be_empty
+ expect(validator.errors[:payment_method]).not_to be_empty
end
end
@@ -192,7 +192,7 @@ module OrderManagement
it "adds an error and returns false" do
expect(validator.valid?).to be false
- expect(validator.errors[:begins_at]).to_not be_empty
+ expect(validator.errors[:begins_at]).not_to be_empty
end
end
@@ -213,7 +213,7 @@ module OrderManagement
let(:ends_at) { Time.zone.today }
it "adds an error and returns false" do
expect(validator.valid?).to be false
- expect(validator.errors[:ends_at]).to_not be_empty
+ expect(validator.errors[:ends_at]).not_to be_empty
end
end
@@ -221,7 +221,7 @@ module OrderManagement
let(:ends_at) { Time.zone.today - 1.day }
it "adds an error and returns false" do
expect(validator.valid?).to be false
- expect(validator.errors[:ends_at]).to_not be_empty
+ expect(validator.errors[:ends_at]).not_to be_empty
end
end
@@ -249,8 +249,8 @@ module OrderManagement
it "adds an error and returns false" do
expect(validator.valid?).to be false
- expect(validator.errors[:bill_address]).to_not be_empty
- expect(validator.errors[:ship_address]).to_not be_empty
+ expect(validator.errors[:bill_address]).not_to be_empty
+ expect(validator.errors[:ship_address]).not_to be_empty
end
end
@@ -276,7 +276,7 @@ module OrderManagement
it "adds an error and returns false" do
expect(validator.valid?).to be false
- expect(validator.errors[:customer]).to_not be_empty
+ expect(validator.errors[:customer]).not_to be_empty
end
end
@@ -288,7 +288,7 @@ module OrderManagement
it "adds an error and returns false" do
expect(validator.valid?).to be false
- expect(validator.errors[:customer]).to_not be_empty
+ expect(validator.errors[:customer]).not_to be_empty
end
end
@@ -313,7 +313,7 @@ module OrderManagement
it "adds an error and returns false" do
expect(validator.valid?).to be false
- expect(validator.errors[:schedule]).to_not be_empty
+ expect(validator.errors[:schedule]).not_to be_empty
end
end
@@ -325,7 +325,7 @@ module OrderManagement
it "adds an error and returns false" do
expect(validator.valid?).to be false
- expect(validator.errors[:schedule]).to_not be_empty
+ expect(validator.errors[:schedule]).not_to be_empty
end
end
@@ -371,7 +371,7 @@ module OrderManagement
it "adds an error and returns false" do
expect(validator.valid?).to be false
- expect(validator.errors[:payment_method]).to_not be_empty
+ expect(validator.errors[:payment_method]).not_to be_empty
end
end
@@ -383,7 +383,7 @@ module OrderManagement
it "adds an error and returns false" do
expect(validator.valid?).to be false
- expect(validator.errors[:payment_method]).to_not be_empty
+ expect(validator.errors[:payment_method]).not_to be_empty
end
end
@@ -395,7 +395,7 @@ module OrderManagement
it "adds an error and returns false" do
expect(validator.valid?).to be false
- expect(validator.errors[:payment_method]).to_not be_empty
+ expect(validator.errors[:payment_method]).not_to be_empty
end
end
@@ -428,7 +428,7 @@ module OrderManagement
it "adds an error and returns false" do
expect(validator.valid?).to be false
- expect(validator.errors[:subscription_line_items]).to_not be_empty
+ expect(validator.errors[:subscription_line_items]).not_to be_empty
end
end
@@ -441,7 +441,7 @@ module OrderManagement
it "adds an error and returns false" do
expect(validator.valid?).to be false
- expect(validator.errors[:subscription_line_items]).to_not be_empty
+ expect(validator.errors[:subscription_line_items]).not_to be_empty
end
end
@@ -468,7 +468,7 @@ module OrderManagement
it "adds an error and returns false" do
expect(validator.valid?).to be false
- expect(validator.errors[:subscription_line_items]).to_not be_empty
+ expect(validator.errors[:subscription_line_items]).not_to be_empty
end
end
@@ -480,7 +480,7 @@ module OrderManagement
it "adds an error and returns false" do
expect(validator.valid?).to be false
- expect(validator.errors[:subscription_line_items]).to_not be_empty
+ expect(validator.errors[:subscription_line_items]).not_to be_empty
end
end
end
@@ -538,7 +538,7 @@ module OrderManagement
it "adds an error and returns false" do
expect(validator.valid?).to be false
- expect(validator.errors[:subscription_line_items]).to_not be_empty
+ expect(validator.errors[:subscription_line_items]).not_to be_empty
end
end
diff --git a/engines/order_management/spec/services/order_management/subscriptions/variants_list_spec.rb b/engines/order_management/spec/services/order_management/subscriptions/variants_list_spec.rb
index 0e00df50df..dc51f14f8e 100644
--- a/engines/order_management/spec/services/order_management/subscriptions/variants_list_spec.rb
+++ b/engines/order_management/spec/services/order_management/subscriptions/variants_list_spec.rb
@@ -66,7 +66,7 @@ module OrderManagement
}
it "is not eligible" do
- expect(described_class.eligible_variants(shop)).to_not include(variant)
+ expect(described_class.eligible_variants(shop)).not_to include(variant)
end
end
@@ -106,7 +106,7 @@ module OrderManagement
context "if the variant is unrelated" do
it "is not eligible" do
- expect(described_class.eligible_variants(shop)).to_not include(variant)
+ expect(described_class.eligible_variants(shop)).not_to include(variant)
end
end
end
@@ -154,7 +154,7 @@ module OrderManagement
context "if the variant is unrelated" do
it "is false" do
- expect(described_class).to_not be_in_open_and_upcoming_order_cycles(shop,
+ expect(described_class).not_to be_in_open_and_upcoming_order_cycles(shop,
schedule,
variant)
end
diff --git a/engines/web/app/views/web/angular_templates/cookies_banner.html.haml b/engines/web/app/views/web/angular_templates/cookies_banner.html.haml
index 2343051cd7..04b4b4ba20 100644
--- a/engines/web/app/views/web/angular_templates/cookies_banner.html.haml
+++ b/engines/web/app/views/web/angular_templates/cookies_banner.html.haml
@@ -11,5 +11,5 @@
{{ 'legal.cookies_banner.cookies_policy_link' | t}}
.large-3.columns
- %button{ng: { controller:"CookiesBannerCtrl", click: "acceptCookies()" }}
+ %button{ "ng-controller": "CookiesBannerCtrl", "ng-click": "acceptCookies()" }
{{ 'legal.cookies_banner.cookies_accept_button' | t}}
diff --git a/engines/web/app/views/web/angular_templates/cookies_policy.html.haml b/engines/web/app/views/web/angular_templates/cookies_policy.html.haml
index c53fa93bed..ab52054b24 100644
--- a/engines/web/app/views/web/angular_templates/cookies_policy.html.haml
+++ b/engines/web/app/views/web/angular_templates/cookies_policy.html.haml
@@ -12,7 +12,7 @@
%p
{{ 'legal.cookies_policy.essential_cookies_desc' | t }}
-%table{ng: { controller:"CookiesPolicyModalCtrl"}}
+%table{ "ng-controller": "CookiesPolicyModalCtrl" }
= render_cookie_entry( "_ofn_session_id", "legal.cookies_policy.cookie_session_desc" )
= render_cookie_entry( "cookies_consent", "legal.cookies_policy.cookie_consent_desc" )
= render_cookie_entry( "remember_spree_user_token", "legal.cookies_policy.cookie_remember_me_desc" )
@@ -52,7 +52,7 @@
%p
{{ 'legal.cookies_policy.statistics_cookies_matomo_desc_html' | t }}
- %table{ng: { controller:"CookiesPolicyModalCtrl"}}
+ %table{ "ng-controller": "CookiesPolicyModalCtrl" }
= render_cookie_entry( "_pk_ref, _pk_cvar, _pk_id and _pk_ses", "legal.cookies_policy.cookie_matomo_basics_desc" )
= render_cookie_entry( "_pk_hsr, _pk_cvar, _pk_id and _pk_ses", "legal.cookies_policy.cookie_matomo_heatmap_desc" )
= render_cookie_entry( "piwik_ignore, _pk_cvar, _pk_id and _pk_ses", "legal.cookies_policy.cookie_matomo_ignore_desc" )
diff --git a/engines/web/spec/helpers/cookies_policy_helper_spec.rb b/engines/web/spec/helpers/cookies_policy_helper_spec.rb
index 6807786a36..02ff9910a0 100644
--- a/engines/web/spec/helpers/cookies_policy_helper_spec.rb
+++ b/engines/web/spec/helpers/cookies_policy_helper_spec.rb
@@ -24,13 +24,13 @@ module Web
end
scenario "is not equal to the matomo URL" do
- expect(helper.matomo_iframe_src).to_not eq Spree::Config.matomo_url
+ expect(helper.matomo_iframe_src).not_to eq Spree::Config.matomo_url
end
end
scenario "is not nil, when matomo url is nil" do
Spree::Config.matomo_url = nil
- expect(helper.matomo_iframe_src).to_not eq nil
+ expect(helper.matomo_iframe_src).not_to eq nil
end
end
diff --git a/jest.config.js b/jest.config.js
new file mode 100644
index 0000000000..4c914cf1f8
--- /dev/null
+++ b/jest.config.js
@@ -0,0 +1,195 @@
+/*
+ * For a detailed explanation regarding each configuration property, visit:
+ * https://jestjs.io/docs/configuration
+ */
+
+module.exports = {
+ // All imported modules in your tests should be mocked automatically
+ // automock: false,
+
+ // Stop running tests after `n` failures
+ // bail: 0,
+
+ // The directory where Jest should store its cached dependency information
+ // cacheDirectory: "/private/var/folders/hf/7hdgr3v5369_b_j_0tj22d5r0000gn/T/jest_dx",
+
+ // Automatically clear mock calls, instances and results before every test
+ // clearMocks: true,
+
+ // Indicates whether the coverage information should be collected while executing the test
+ // collectCoverage: false,
+
+ // An array of glob patterns indicating a set of files for which coverage information should be collected
+ // collectCoverageFrom: undefined,
+
+ // The directory where Jest should output its coverage files
+ // coverageDirectory: undefined,
+
+ // An array of regexp pattern strings used to skip coverage collection
+ // coveragePathIgnorePatterns: [
+ // "/node_modules/"
+ // ],
+
+ // Indicates which provider should be used to instrument code for coverage
+ // coverageProvider: "v8",
+
+ // A list of reporter names that Jest uses when writing coverage reports
+ // coverageReporters: [
+ // "json",
+ // "text",
+ // "lcov",
+ // "clover"
+ // ],
+
+ // An object that configures minimum threshold enforcement for coverage results
+ // coverageThreshold: undefined,
+
+ // A path to a custom dependency extractor
+ // dependencyExtractor: undefined,
+
+ // Make calling deprecated APIs throw helpful error messages
+ // errorOnDeprecated: false,
+
+ // Force coverage collection from ignored files using an array of glob patterns
+ // forceCoverageMatch: [],
+
+ // A path to a module which exports an async function that is triggered once before all test suites
+ // globalSetup: undefined,
+
+ // A path to a module which exports an async function that is triggered once after all test suites
+ // globalTeardown: undefined,
+
+ // A set of global variables that need to be available in all test environments
+ // globals: {},
+
+ // The maximum amount of workers used to run your tests. Can be specified as % or a number. E.g. maxWorkers: 10% will use 10% of your CPU amount + 1 as the maximum worker number. maxWorkers: 2 will use a maximum of 2 workers.
+ // maxWorkers: "50%",
+
+ // An array of directory names to be searched recursively up from the requiring module's location
+ // moduleDirectories: [
+ // "node_modules"
+ // ],
+
+ // An array of file extensions your modules use
+ // moduleFileExtensions: [
+ // "js",
+ // "jsx",
+ // "ts",
+ // "tsx",
+ // "json",
+ // "node"
+ // ],
+
+ // A map from regular expressions to module names or to arrays of module names that allow to stub out resources with a single module
+ // moduleNameMapper: {},
+
+ // An array of regexp pattern strings, matched against all module paths before considered 'visible' to the module loader
+ // modulePathIgnorePatterns: [],
+
+ // Activates notifications for test results
+ // notify: false,
+
+ // An enum that specifies notification mode. Requires { notify: true }
+ // notifyMode: "failure-change",
+
+ // A preset that is used as a base for Jest's configuration
+ // preset: undefined,
+
+ // Run tests from one or more projects
+ // projects: undefined,
+
+ // Use this configuration option to add custom reporters to Jest
+ // reporters: undefined,
+
+ // Automatically reset mock state before every test
+ // resetMocks: false,
+
+ // Reset the module registry before running each individual test
+ // resetModules: false,
+
+ // A path to a custom resolver
+ // resolver: undefined,
+
+ // Automatically restore mock state and implementation before every test
+ // restoreMocks: false,
+
+ // The root directory that Jest should scan for tests and modules within
+ // rootDir: undefined,
+
+ // A list of paths to directories that Jest should use to search for files in
+ // roots: [
+ // "
"
+ // ],
+
+ // Allows you to use a custom runner instead of Jest's default test runner
+ // runner: "jest-runner",
+
+ // The paths to modules that run some code to configure or set up the testing environment before each test
+ // setupFiles: [],
+
+ // A list of paths to modules that run some code to configure or set up the testing framework before each test
+ // setupFilesAfterEnv: [],
+
+ // The number of seconds after which a test is considered as slow and reported as such in the results.
+ // slowTestThreshold: 5,
+
+ // A list of paths to snapshot serializer modules Jest should use for snapshot testing
+ // snapshotSerializers: [],
+
+ // The test environment that will be used for testing
+ // testEnvironment: "jest-environment-node",
+
+ // Options that will be passed to the testEnvironment
+ // testEnvironmentOptions: {},
+
+ // Adds a location field to test results
+ // testLocationInResults: false,
+
+ // The glob patterns Jest uses to detect test files
+ // testMatch: [
+ // "**/__tests__/**/*.[jt]s?(x)",
+ // "**/?(*.)+(spec|test).[tj]s?(x)"
+ // ],
+
+ // An array of regexp pattern strings that are matched against all test paths, matched tests are skipped
+ // testPathIgnorePatterns: [
+ // "/node_modules/"
+ // ],
+
+ // The regexp pattern or array of patterns that Jest uses to detect test files
+ "testRegex": [
+ "spec/javascripts/.*_test\\.js"
+ ],
+
+ // This option allows the use of a custom results processor
+ // testResultsProcessor: undefined,
+
+ // This option allows use of a custom test runner
+ // testRunner: "jest-circus/runner",
+
+ // This option sets the URL for the jsdom environment. It is reflected in properties such as location.href
+ // testURL: "http://localhost",
+
+ // Setting this value to "fake" allows the use of fake timers for functions such as "setTimeout"
+ // timers: "real",
+
+ // A map from regular expressions to paths to transformers
+ // transform: undefined,
+
+ // An array of regexp pattern strings that are matched against all source file paths, matched files will skip transformation
+ "transformIgnorePatterns": [
+ "/node_modules/(?!(stimulus)/)"
+ ]
+
+ // An array of regexp pattern strings that are matched against all modules before the module loader will automatically return a mock for them
+ // unmockedModulePathPatterns: undefined,
+
+ // Indicates whether each individual test should be reported during the run
+ // verbose: undefined,
+
+ // An array of regexp patterns that are matched against all source file paths before re-running tests in watch mode
+ // watchPathIgnorePatterns: [],
+
+ // Whether to use watchman for file crawling
+ // watchman: true,
+};
diff --git a/lib/haml_up.rb b/lib/haml_up.rb
new file mode 100644
index 0000000000..2ecc619960
--- /dev/null
+++ b/lib/haml_up.rb
@@ -0,0 +1,118 @@
+# frozen_string_literal: true
+
+# Upgrade HAML attribute syntax to prepare for HAML 6.
+#
+# HAML 6 stopped supporting nested hash attributes other than `data` and `aria`.
+# We used to be able to write:
+#
+# %div{ ng: { class: "upper", bind: "model" } }
+#
+# This needs to be written in a flat structure now:
+#
+# %div{ "ng-class" => "upper", "ng-bind" => "model" }
+#
+require "fileutils"
+require "haml"
+
+class HamlUp
+ def upgrade_file(filename)
+ template = File.read(filename)
+ rewrite_template(template)
+ File.write(filename, template)
+ end
+
+ def rewrite_template(template)
+ haml_attributes(template).compact.each do |attributes|
+ rewrite_attributes(template, attributes)
+ end
+ end
+
+ def rewrite_attributes(template, original)
+ attributes = parse_attributes(original)
+
+ if attributes.nil? # parser failed
+ puts "Warning: failed to parse:\n" # rubocop:disable Rails/Output
+ puts original # rubocop:disable Rails/Output
+ return
+ end
+
+ parse_deprecated_hashes(attributes)
+
+ to_transform = attributes.select { |_k, v| v.is_a? Hash }
+
+ return if to_transform.empty?
+
+ to_transform.each do |key, hash|
+ add_full_keys(attributes, key, hash)
+ attributes.delete(key)
+ end
+
+ replace_attributes(template, original, attributes)
+ end
+
+ def haml_attributes(template)
+ options = Haml::Options.new
+ parsed_tree = Haml::Parser.new(options).call(template)
+ elements = flatten_tree(parsed_tree)
+ elements.map { |e| e.value[:dynamic_attributes]&.old }
+ end
+
+ def flatten_tree(parent)
+ parent.children.flat_map do |child|
+ [child, *flatten_tree(child)]
+ end
+ end
+
+ def parse_attributes(string)
+ Haml::AttributeParser.parse(string)
+ end
+
+ def parse_deprecated_hashes(hash)
+ hash.each do |key, value|
+ next if ["aria", "data"].include?(key)
+
+ parsed = parse_attributes(value)
+ next unless parsed.is_a? Hash
+
+ parse_deprecated_hashes(parsed)
+ hash[key] = parsed
+ end
+ end
+
+ def add_full_keys(attributes, key, hash)
+ hash.each do |subkey, value|
+ full_key = "#{key}-#{subkey}"
+ if value.is_a? Hash
+ add_full_keys(attributes, full_key, value)
+ else
+ attributes[full_key] = value
+ end
+ end
+ end
+
+ def replace_attributes(template, original, attributes)
+ parsed_lines = original.split("\n")
+ lines_as_regex = parsed_lines.map(&Regexp.method(:escape))
+ pattern = lines_as_regex.join("\n\s*")
+
+ template.gsub!(/#{pattern}/, stringify(attributes))
+ end
+
+ def stringify(hash)
+ entries = hash.map do |key, value|
+ value = stringify(value) if value.is_a? Hash
+
+ # We prefer the Ruby 1.9 hash syntax with symbols followed by a colon
+ # like this:
+ #
+ # %button{ disabled: true, "ng-class": "primary-button" }
+ #
+ # Symbols start with `:` which we slice off. It gets appended below.
+ key = key.to_sym.inspect.slice(1..-1)
+
+ "#{key}: #{value}"
+ end
+
+ "{ #{entries.join(', ')} }"
+ end
+end
diff --git a/lib/open_food_network/enterprise_fee_calculator.rb b/lib/open_food_network/enterprise_fee_calculator.rb
index 66001716ab..739725ce79 100644
--- a/lib/open_food_network/enterprise_fee_calculator.rb
+++ b/lib/open_food_network/enterprise_fee_calculator.rb
@@ -111,7 +111,7 @@ module OpenFoodNetwork
EnterpriseFee.
per_item.
joins(exchanges: :exchange_variants).
- where('exchanges.order_cycle_id = ?', @order_cycle.id).
+ where(exchanges: { order_cycle_id: @order_cycle.id }).
merge(Exchange.supplying_to(@distributor)).
select('enterprise_fees.*, exchange_variants.variant_id AS variant_id')
end
diff --git a/lib/open_food_network/order_cycle_permissions.rb b/lib/open_food_network/order_cycle_permissions.rb
index 7568ff970e..c6c2508112 100644
--- a/lib/open_food_network/order_cycle_permissions.rb
+++ b/lib/open_food_network/order_cycle_permissions.rb
@@ -99,15 +99,15 @@ module OpenFoodNetwork
).pluck(:id).uniq
product_ids = Spree::Product.joins(:variants).
- where("spree_variants.id IN (?)", variant_ids).pluck(:id).uniq
+ where(spree_variants: { id: variant_ids }).pluck(:id).uniq
producers_active_ids = Enterprise.joins(:supplied_products).
- where("spree_products.id IN (?)", product_ids).pluck(:id).uniq
+ where(spree_products: { id: product_ids }).pluck(:id).uniq
end
- ids = managed_permitted_ids | hubs_permitted_ids | hubs_permitting_ids \
- | producers_permitted_ids | producers_permitting_ids | managed_active_ids \
- | hubs_active_ids | producers_active_ids
+ ids = managed_permitted_ids | hubs_permitted_ids | hubs_permitting_ids |
+ producers_permitted_ids | producers_permitting_ids |
+ managed_active_ids | hubs_active_ids | producers_active_ids
Enterprise.where(id: ids)
end
diff --git a/lib/reporting/line_items.rb b/lib/reporting/line_items.rb
index a949e02dce..233c965c2a 100644
--- a/lib/reporting/line_items.rb
+++ b/lib/reporting/line_items.rb
@@ -7,7 +7,7 @@ module Reporting
@order_permissions = order_permissions
@params = params
complete_not_canceled_visible_orders =
- CompleteVisibleOrders.new(order_permissions).query.not_state(:canceled)
+ CompleteVisibleOrdersQuery.new(order_permissions).call.not_state(:canceled)
@orders_relation = orders_relation || complete_not_canceled_visible_orders
end
@@ -36,7 +36,7 @@ module Reporting
without_editable_line_items = line_items - editable_line_items(line_items)
without_editable_line_items.each do |line_item|
- OrderDataMasker.new(line_item.order).call
+ Orders::MaskDataService.new(line_item.order).call
end
line_items
diff --git a/lib/reporting/report_headers_builder.rb b/lib/reporting/report_headers_builder.rb
index 37b85d3629..ef129bedc8 100644
--- a/lib/reporting/report_headers_builder.rb
+++ b/lib/reporting/report_headers_builder.rb
@@ -11,13 +11,13 @@ module Reporting
def table_headers
filter = proc { |key| key.to_sym.in?(fields_to_show) }
- report.columns.keys.filter { |key| filter.call(key) }.map do |key|
+ report.table_columns.keys.filter { |key| filter.call(key) }.map do |key|
translate_header(key)
end
end
def available_headers
- report.columns.keys.map { |key| [translate_header(key), key] }
+ report.table_columns.keys.map { |key| [translate_header(key), key] }
end
def fields_to_hide
diff --git a/lib/reporting/report_rows_builder.rb b/lib/reporting/report_rows_builder.rb
index f8b09488b0..4da6c969c3 100644
--- a/lib/reporting/report_rows_builder.rb
+++ b/lib/reporting/report_rows_builder.rb
@@ -78,12 +78,11 @@ module Reporting
end
def group_and_sort(rule, remaining_rules, datas)
- result = []
groups = group_data_with_rule(datas, rule)
sorted_groups = sort_groups_with_rule(groups, rule)
- sorted_groups.each do |group_value, group_datas|
- result << {
+ sorted_groups.map do |group_value, group_datas|
+ {
is_group: true,
header: @builder.build_header(rule, group_value, group_datas),
header_class: rule[:header_class],
@@ -92,7 +91,6 @@ module Reporting
data: build_tree(group_datas, remaining_rules)
}
end
- result
end
def group_data_with_rule(datas, rule)
diff --git a/lib/reporting/report_template.rb b/lib/reporting/report_template.rb
index 5c295ae553..3567e779e5 100644
--- a/lib/reporting/report_template.rb
+++ b/lib/reporting/report_template.rb
@@ -54,6 +54,10 @@ module Reporting
raise NotImplementedError
end
+ def table_columns
+ columns
+ end
+
# Exple { total_price: :currency }
def columns_format
{}
diff --git a/lib/reporting/reports/bulk_coop/base.rb b/lib/reporting/reports/bulk_coop/base.rb
index bf48a6a9d8..5bb079d923 100644
--- a/lib/reporting/reports/bulk_coop/base.rb
+++ b/lib/reporting/reports/bulk_coop/base.rb
@@ -35,7 +35,7 @@ module Reporting
@report_line_items ||= Reporting::LineItems.new(
order_permissions,
@params,
- CompleteVisibleOrders.new(order_permissions).query
+ CompleteVisibleOrdersQuery.new(order_permissions).call
)
end
diff --git a/lib/reporting/reports/enterprise_fee_summary/enterprise_fees_with_tax_report_by_order.rb b/lib/reporting/reports/enterprise_fee_summary/enterprise_fees_with_tax_report_by_order.rb
index e035a2d469..2ea4a4db14 100644
--- a/lib/reporting/reports/enterprise_fee_summary/enterprise_fees_with_tax_report_by_order.rb
+++ b/lib/reporting/reports/enterprise_fee_summary/enterprise_fees_with_tax_report_by_order.rb
@@ -66,8 +66,8 @@ module Reporting
enterprise_fee_id = arg.first
- EnterpriseFee.exists?(id: enterprise_fee_id,
- enterprise_id: ransack_params[:enterprise_fee_owner_id_in] )
+ EnterpriseFee.where(id: enterprise_fee_id,
+ enterprise_id: ransack_params[:enterprise_fee_owner_id_in] ).exists?
end
def filter_enterprise_fee_by_id_active?
diff --git a/lib/reporting/reports/order_cycle_management/base.rb b/lib/reporting/reports/order_cycle_management/base.rb
index e20e13ab25..d62cd3de33 100644
--- a/lib/reporting/reports/order_cycle_management/base.rb
+++ b/lib/reporting/reports/order_cycle_management/base.rb
@@ -29,7 +29,7 @@ module Reporting
def orders
search_result = search.result.order(:completed_at)
- orders = OutstandingBalance.new(search_result).query.select('spree_orders.*')
+ orders = OutstandingBalanceQuery.new(search_result).call.select('spree_orders.*')
filter(orders)
end
diff --git a/lib/reporting/reports/orders_and_distributors/base.rb b/lib/reporting/reports/orders_and_distributors/base.rb
index 9225096680..2f54235d5e 100644
--- a/lib/reporting/reports/orders_and_distributors/base.rb
+++ b/lib/reporting/reports/orders_and_distributors/base.rb
@@ -43,7 +43,7 @@ module Reporting
editable_orders_ids = permissions.editable_orders.select(&:id).map(&:id)
orders
.filter { |order| order.in?(editable_orders_ids) }
- .each { |order| OrderDataMasker.new(order).call }
+ .each { |order| Orders::MaskDataService.new(order).call }
# Get Line Items
orders.map(&:line_items).flatten
end
diff --git a/lib/reporting/reports/packing/customer.rb b/lib/reporting/reports/packing/customer.rb
index a5609725a2..65622639b4 100644
--- a/lib/reporting/reports/packing/customer.rb
+++ b/lib/reporting/reports/packing/customer.rb
@@ -4,11 +4,16 @@ module Reporting
module Reports
module Packing
class Customer < Base
+ def table_columns
+ Struct.new(:keys).new(
+ [:hub, :customer_code, :first_name, :last_name, :phone, :supplier, :product,
+ :variant, :weight, :height, :width, :depth, :quantity, :price, :temp_controlled]
+ )
+ end
+
def columns
# Reorder default columns
- super.slice(:hub, :customer_code, :first_name, :last_name, :phone,
- :supplier, :product, :variant, :weight, :height, :width, :depth, :quantity,
- :price, :temp_controlled)
+ super.slice(*table_columns.keys)
end
def rules
diff --git a/lib/reporting/reports/packing/product.rb b/lib/reporting/reports/packing/product.rb
index e219fc2c88..63990f3ad4 100644
--- a/lib/reporting/reports/packing/product.rb
+++ b/lib/reporting/reports/packing/product.rb
@@ -4,11 +4,16 @@ module Reporting
module Reports
module Packing
class Product < Base
+ def table_columns
+ Struct.new(:keys).new(
+ [:hub, :supplier, :product, :variant, :customer_code, :first_name,
+ :last_name, :phone, :quantity, :price, :temp_controlled]
+ )
+ end
+
def columns
# Reorder default columns
- super.slice(:hub, :supplier, :product, :variant,
- :customer_code, :first_name, :last_name, :phone,
- :quantity, :price, :temp_controlled)
+ super.slice(*table_columns.keys)
end
def rules
diff --git a/lib/reporting/reports/packing/supplier.rb b/lib/reporting/reports/packing/supplier.rb
index cca255786b..d1f6861ff9 100644
--- a/lib/reporting/reports/packing/supplier.rb
+++ b/lib/reporting/reports/packing/supplier.rb
@@ -4,10 +4,16 @@ module Reporting
module Reports
module Packing
class Supplier < Base
+ def table_columns
+ Struct.new(:keys).new(
+ [:hub, :supplier, :customer_code, :first_name, :last_name, :phone,
+ :product, :variant, :quantity, :price, :temp_controlled]
+ )
+ end
+
def columns
# Reorder default columns
- super.slice(:hub, :supplier, :customer_code, :first_name, :last_name, :phone,
- :product, :variant, :quantity, :price, :temp_controlled)
+ super.slice(*table_columns.keys)
end
def rules
diff --git a/lib/reporting/reports/products_and_inventory/base.rb b/lib/reporting/reports/products_and_inventory/base.rb
index a65b113f2a..3b58daca76 100644
--- a/lib/reporting/reports/products_and_inventory/base.rb
+++ b/lib/reporting/reports/products_and_inventory/base.rb
@@ -17,7 +17,7 @@ module Reporting
producer_suburb: proc { |variant| variant.product.supplier.address.city },
product: proc { |variant| variant.product.name },
product_properties: proc { |v| v.product.properties.map(&:name).join(", ") },
- taxons: proc { |variant| variant.product.primary_taxon.name },
+ taxons: proc { |variant| variant.primary_taxon.name },
variant_value: proc { |variant| variant.full_name },
price: proc { |variant| variant.price },
group_buy_unit_quantity: proc { |variant| variant.product.group_buy_unit_size },
@@ -59,7 +59,7 @@ module Reporting
def filter_to_supplier(variants)
if params[:supplier_id].to_i > 0
- variants.where("spree_products.supplier_id = ?", params[:supplier_id])
+ variants.where(spree_products: { supplier_id: params[:supplier_id] })
else
variants
end
diff --git a/lib/reporting/reports/products_and_inventory/lettuce_share.rb b/lib/reporting/reports/products_and_inventory/lettuce_share.rb
index 8311ff111d..366332fd55 100644
--- a/lib/reporting/reports/products_and_inventory/lettuce_share.rb
+++ b/lib/reporting/reports/products_and_inventory/lettuce_share.rb
@@ -32,7 +32,7 @@ module Reporting
total: proc { |_variant| '' },
gst: proc { |variant| gst(variant) },
grower: proc { |variant| grower_and_method(variant) },
- taxon: proc { |variant| variant.product.primary_taxon.name }
+ taxon: proc { |variant| variant.primary_taxon.name }
}
end
diff --git a/lib/reporting/reports/sales_tax/sales_tax_totals_by_producer.rb b/lib/reporting/reports/sales_tax/sales_tax_totals_by_producer.rb
index 0271b38d59..a2c00ea082 100644
--- a/lib/reporting/reports/sales_tax/sales_tax_totals_by_producer.rb
+++ b/lib/reporting/reports/sales_tax/sales_tax_totals_by_producer.rb
@@ -24,9 +24,9 @@ module Reporting
# [tax_rate, supplier_id, distributor_id and order_cycle_id]
report_line_items.list
.flat_map do |line_item|
- line_item.tax_rates.map do |tax_rate|
+ line_item.adjustments.eligible.tax.map do |tax_rate|
{
- tax_rate_id: tax_rate.id,
+ tax_rate_id: tax_rate.originator_id,
line_item:
}
end
diff --git a/lib/reporting/reports/sales_tax/tax_rates.rb b/lib/reporting/reports/sales_tax/tax_rates.rb
index 83bd3f2eb0..8c82d44b66 100644
--- a/lib/reporting/reports/sales_tax/tax_rates.rb
+++ b/lib/reporting/reports/sales_tax/tax_rates.rb
@@ -11,7 +11,7 @@ module Reporting
total_excl_vat: proc { |order| order.total - order.total_tax }
}
add_key_for_each_rate(result, proc { |rate|
- proc { |order| OrderTaxAdjustmentsFetcher.new(order).totals.fetch(rate, 0) }
+ proc { |order| Orders::FetchTaxAdjustmentsService.new(order).totals.fetch(rate, 0) }
})
other = {
total_tax: proc { |order| order.total_tax },
diff --git a/lib/reporting/reports/xero_invoices/base.rb b/lib/reporting/reports/xero_invoices/base.rb
index d7a36c5c6f..49d9fad4a6 100644
--- a/lib/reporting/reports/xero_invoices/base.rb
+++ b/lib/reporting/reports/xero_invoices/base.rb
@@ -189,7 +189,7 @@ module Reporting
'',
'',
'',
- Spree::Config.currency,
+ CurrentConfig.get(:currency),
'',
order.paid? ? I18n.t(:y) : I18n.t(:n)]
end
diff --git a/lib/spree/core/controller_helpers/order.rb b/lib/spree/core/controller_helpers/order.rb
index 3aea7c853d..d2a1795e20 100644
--- a/lib/spree/core/controller_helpers/order.rb
+++ b/lib/spree/core/controller_helpers/order.rb
@@ -79,7 +79,7 @@ module Spree
end
def current_currency
- Spree::Config[:currency]
+ CurrentConfig.get(:currency)
end
def ip_address
diff --git a/lib/spree/core/mail_settings.rb b/lib/spree/core/mail_settings.rb
index 2c8261b246..9824283521 100644
--- a/lib/spree/core/mail_settings.rb
+++ b/lib/spree/core/mail_settings.rb
@@ -20,29 +20,22 @@ module Spree
private
def mail_server_settings
- settings = if need_authentication?
- basic_settings.merge(user_credentials)
- else
- basic_settings
- end
-
- settings.merge(enable_starttls_auto: secure_connection?)
- end
-
- def user_credentials
- { user_name: Config.smtp_username,
- password: Config.smtp_password }
- end
-
- def basic_settings
- { address: Config.mail_host,
+ {
+ address: Config.mail_host,
domain: Config.mail_domain,
port: Config.mail_port,
- authentication: Config.mail_auth_type }
+ authentication:,
+ enable_starttls_auto: secure_connection?,
+ user_name: Config.smtp_username.presence,
+ password: Config.smtp_password.presence,
+ }
end
- def need_authentication?
- Config.mail_auth_type != 'None'
+ def authentication
+ # "None" is an option in the UI but not a real authentication type.
+ # We should remove it from our host configurations but I'm keeping
+ # this check for backwards-compatibility for now.
+ Config.mail_auth_type.presence unless Config.mail_auth_type == "None"
end
def secure_connection?
diff --git a/lib/spree/localized_number.rb b/lib/spree/localized_number.rb
index 112fb26471..11e572c1a8 100644
--- a/lib/spree/localized_number.rb
+++ b/lib/spree/localized_number.rb
@@ -77,7 +77,7 @@ module Spree
private
def non_activerecord_attribute?(attribute)
- table_exists? && !column_names.include?(attribute.to_s)
+ table_exists? && column_names.exclude?(attribute.to_s)
rescue ::ActiveRecord::NoDatabaseError
# This class is now loaded during `rake db:create` (since Rails 5.2), and not only does the
# table not exist, but the database does not even exist yet, and throws a fatal error.
diff --git a/lib/spree/money.rb b/lib/spree/money.rb
index 4a11d33497..6c6b52a4f2 100644
--- a/lib/spree/money.rb
+++ b/lib/spree/money.rb
@@ -9,7 +9,7 @@ module Spree
delegate :cents, to: :money
def initialize(amount, options = {})
- @money = ::Monetize.parse([amount, options[:currency] || Spree::Config[:currency]].join)
+ @money = ::Monetize.parse([amount, options[:currency] || CurrentConfig.get(:currency)].join)
if options.key?(:symbol_position)
options[:format] = position_to_format(options.delete(:symbol_position))
@@ -20,7 +20,7 @@ module Spree
# Return the currency symbol (on its own) for the current default currency
def self.currency_symbol
- ::Money.new(0, Spree::Config[:currency]).symbol
+ ::Money.new(0, CurrentConfig.get(:currency)).symbol
end
def to_s
@@ -44,11 +44,11 @@ module Spree
def defaults
{
- with_currency: Spree::Config[:display_currency],
- no_cents: Spree::Config[:hide_cents],
- decimal_mark: Spree::Config[:currency_decimal_mark],
- thousands_separator: Spree::Config[:currency_thousands_separator],
- format: position_to_format(Spree::Config[:currency_symbol_position])
+ with_currency: CurrentConfig.get(:display_currency),
+ no_cents: CurrentConfig.get(:hide_cents),
+ decimal_mark: CurrentConfig.get(:currency_decimal_mark),
+ thousands_separator: CurrentConfig.get(:currency_thousands_separator),
+ format: position_to_format(CurrentConfig.get(:currency_symbol_position))
}
end
diff --git a/lib/tasks/data.rake b/lib/tasks/data.rake
index da55b3580e..bb26f748b1 100644
--- a/lib/tasks/data.rake
+++ b/lib/tasks/data.rake
@@ -7,7 +7,7 @@ namespace :ofn do
input = request_months
# For each order cycle which was modified within the past 3 months
- OrderCycle.where('updated_at > ?', Date.current - input.months).each do |order_cycle|
+ OrderCycle.where('updated_at > ?', Date.current - input.months).find_each do |order_cycle|
# Cycle through the incoming exchanges
order_cycle.exchanges.incoming.each do |exchange|
next if exchange.sender == exchange.receiver
@@ -46,11 +46,13 @@ namespace :ofn do
end
# For each variant in the exchange
- products = Spree::Product.joins(:variants).where(
- 'spree_variants.id IN (?)', exchange.variants
- ).pluck(:id).uniq
- producers = Enterprise.joins(:supplied_products).where("spree_products.id IN (?)",
- products).distinct
+ products = Spree::Product.joins(:variants)
+ .where(spree_variants: { id: exchange.variants })
+ .pluck(:id)
+ .uniq
+ producers = Enterprise.joins(:supplied_products)
+ .where(spree_products: { id: products })
+ .distinct
producers.each do |producer|
next if producer == exchange.receiver
diff --git a/lib/tasks/data/anonymize_data.rake b/lib/tasks/data/anonymize_data.rake
index 5a19e56be0..d5a6a8f558 100644
--- a/lib/tasks/data/anonymize_data.rake
+++ b/lib/tasks/data/anonymize_data.rake
@@ -44,7 +44,7 @@ namespace :ofn do
Spree::User.update_all("email = concat(id, '_ofn_user@example.com'),
login = concat(id, '_ofn_user@example.com'),
unconfirmed_email = concat(id, '_ofn_user@example.com')")
- Customer.where("user_id IS NULL")
+ Customer.where(user_id: nil)
.update_all("email = concat(id, '_ofn_customer@example.com'),
name = concat('Customer Number ', id, ' (without connected User)')")
Customer.where.not(user_id: nil)
diff --git a/lib/tasks/data/remove_transient_data.rb b/lib/tasks/data/remove_transient_data.rb
index 36136ceff8..1a519fae8f 100644
--- a/lib/tasks/data/remove_transient_data.rb
+++ b/lib/tasks/data/remove_transient_data.rb
@@ -38,6 +38,6 @@ class RemoveTransientData
# Carts with failed payments are ignored, as they contain potentially useful data
Spree::Order.
joins("LEFT OUTER JOIN spree_payments ON spree_orders.id = spree_payments.order_id").
- where("spree_payments.id IS NULL")
+ where(spree_payments: { id: nil })
end
end
diff --git a/lib/tasks/import_product_images.rake b/lib/tasks/import_product_images.rake
index e82d1e55d1..6b1ab14741 100644
--- a/lib/tasks/import_product_images.rake
+++ b/lib/tasks/import_product_images.rake
@@ -4,15 +4,15 @@ namespace :ofn do
namespace :import do
desc "Importing images for products from CSV"
task :product_images, [:filename] => [:environment] do |_task, args|
- COLUMNS = [:producer, :name, :image_url].freeze
-
puts "Warning: use only with trusted URLs. This script will download whatever it can, " \
"including local secrets, and expose the file as an image file."
raise "Filename required" if args[:filename].blank?
+ columns = %i[producer name image_url].freeze
+
csv = CSV.read(args[:filename], headers: true, header_converters: :symbol)
- raise "CSV columns reqired: #{COLUMNS.map(&:to_s)}" if (COLUMNS - csv.headers).present?
+ raise "CSV columns reqired: #{columns.map(&:to_s)}" if (columns - csv.headers).present?
csv.each.with_index do |entry, index|
puts "#{index} #{entry[:producer]}, #{entry[:name]}"
diff --git a/lib/tasks/sample_data/order_factory.rb b/lib/tasks/sample_data/order_factory.rb
index 39cfdb2996..ef670aa5e0 100644
--- a/lib/tasks/sample_data/order_factory.rb
+++ b/lib/tasks/sample_data/order_factory.rb
@@ -51,7 +51,7 @@ module SampleData
def create_complete_order
order = create_cart_order
- OrderWorkflow.new(order).complete
+ Orders::WorkflowService.new(order).complete
order
end
diff --git a/lib/tasks/sample_data/user_factory.rb b/lib/tasks/sample_data/user_factory.rb
index 445c3fd402..bb5268e2b3 100644
--- a/lib/tasks/sample_data/user_factory.rb
+++ b/lib/tasks/sample_data/user_factory.rb
@@ -30,7 +30,7 @@ module SampleData
def create_user(name)
email = "#{name.downcase.tr(' ', '.')}@example.org"
- password = Spree::User.friendly_token
+ password = "ofn123"
log "- #{email}"
user = Spree::User.create_with(
password:,
diff --git a/lib/tasks/subscriptions/debug.rake b/lib/tasks/subscriptions/debug.rake
index 3b2e29d90a..750bfb4d73 100644
--- a/lib/tasks/subscriptions/debug.rake
+++ b/lib/tasks/subscriptions/debug.rake
@@ -12,7 +12,7 @@ namespace :ofn do
puts "Order Cycle #{order_cycle.name}"
order_cycle.schedules.each do |schedule|
puts "Schedule #{schedule.name}"
- Subscription.where(schedule_id: schedule.id).each do |subscription|
+ Subscription.where(schedule_id: schedule.id).find_each do |subscription|
puts
puts "Subscription #{subscription.id}"
puts subscription.shop.name
@@ -23,7 +23,7 @@ namespace :ofn do
puts "Canceled at #{subscription.canceled_at} and paused at #{subscription.paused_at}"
ProxyOrder.where(order_cycle_id:,
- subscription_id: subscription.id).each do |proxy_order|
+ subscription_id: subscription.id).find_each do |proxy_order|
puts
puts "Proxy Order #{proxy_order.id}"
puts "Canceled at #{proxy_order.canceled_at}"
@@ -42,7 +42,7 @@ namespace :ofn do
puts "Source #{payment.source.to_json}"
end
Spree::LogEntry.where(source_type: "Spree::Payment",
- source_id: payment.id).each do |log_entry|
+ source_id: payment.id).find_each do |log_entry|
puts "Log Entries found"
puts log_entry.details
end
diff --git a/lib/tasks/users.rake b/lib/tasks/users.rake
index d1249cb9a0..fdf2c110f1 100644
--- a/lib/tasks/users.rake
+++ b/lib/tasks/users.rake
@@ -5,23 +5,8 @@ require 'csv'
namespace :ofn do
desc 'remove the limit of enterprises a user can create'
task :remove_enterprise_limit, [:user_id] => :environment do |_task, args|
- RemoveEnterpriseLimit.new(args.user_id).call
- end
-
- class RemoveEnterpriseLimit
- MAX_INTEGER = 2_147_483_647
-
- def initialize(user_id)
- @user_id = user_id
- end
-
- def call
- user = Spree::User.find(user_id)
- user.update_attribute(:enterprise_limit, MAX_INTEGER)
- end
-
- private
-
- attr_reader :user_id
+ max_integer = 2_147_483_647
+ user = Spree::User.find(args.user_id)
+ user.update_attribute(:enterprise_limit, max_integer)
end
end
diff --git a/package.json b/package.json
index e9ce888e22..888b14112c 100644
--- a/package.json
+++ b/package.json
@@ -9,19 +9,12 @@
"scripts": {
"pretty-quick": "pretty-quick"
},
- "jest": {
- "testRegex": [
- "spec/javascripts/.*_test\\.js"
- ],
- "transformIgnorePatterns": [
- "/node_modules/(?!(stimulus)/)"
- ]
- },
"dependencies": {
"@floating-ui/dom": "^1.6.3",
- "@hotwired/turbo": "^8.0.3",
+ "@hotwired/turbo": "^8.0.4",
"@rails/webpacker": "5.4.4",
- "cable_ready": "5.0.2",
+ "@stimulus-components/rails-nested-form": "^5.0.0",
+ "cable_ready": "5.0.1",
"debounced": "^0.0.5",
"flatpickr": "^4.6.9",
"foundation-sites": "^5.5.3",
@@ -34,10 +27,9 @@
"shortcut-buttons-flatpickr": "^0.4.0",
"stimulus": "^3.2.2",
"stimulus-flatpickr": "^1.4.0",
- "stimulus-rails-nested-form": "https://github.com/openfoodfoundation/stimulus-rails-nested-form.git#dist",
"stimulus_reflex": "3.5.0-rc3",
"tom-select": "^2.3.1",
- "trix": "^2.0.10",
+ "trix": "^2.1.0",
"webpack": "~4"
},
"devDependencies": {
diff --git a/script/haml-up.rb b/script/haml-up.rb
new file mode 100755
index 0000000000..033e09f348
--- /dev/null
+++ b/script/haml-up.rb
@@ -0,0 +1,22 @@
+#!/usr/bin/env ruby
+# frozen_string_literal: true
+
+# Upgrade HAML attribute syntax to prepare for HAML 6.
+#
+# HAML 6 stopped supporting nested hash attributes other than `data` and `aria`.
+# We used to be able to write:
+#
+# %div{ ng: { class: "upper", bind: "model" } }
+#
+# This needs to be written in a flat structure now:
+#
+# %div{ "ng-class" => "upper", "ng-bind" => "model" }
+#
+# This script rewrites HAML files automatically. It may be used like:
+#
+# git ls-files '*.haml' | while read f; do ./haml-up.rb "$f"; done
+#
+require "haml_up"
+
+puts ARGV[0]
+HamlUp.new.upgrade_file(ARGV[0])
diff --git a/script/rubocop-diff.sh b/script/rubocop-diff.sh
new file mode 100755
index 0000000000..32dbef1ca8
--- /dev/null
+++ b/script/rubocop-diff.sh
@@ -0,0 +1,23 @@
+#!/bin/bash
+#
+# While you are developing, you can call this script to check all
+# changed files. And then you can also tell Git to check before every
+# commit by adding this line to your `.git/hooks/pre-commit` file:
+#
+# ./script/rubocop-diff.sh --cached || exit 1
+#
+
+rubocop="`dirname $0`/../bin/rubocop"
+cached="$1" # may be empty
+
+if git diff $cached --diff-filter=ACMR HEAD --quiet; then
+ # nothing changed
+ exit 0
+fi
+
+exec git diff $cached --name-only --relative --diff-filter=ACMR HEAD |\
+ xargs \
+ $rubocop --force-exclusion \
+ --fail-level A \
+ --format simple \
+ --parallel --cache true
diff --git a/script/setup b/script/setup
index d8f03ae63b..b016f5d5b0 100755
--- a/script/setup
+++ b/script/setup
@@ -21,9 +21,13 @@ NO_COLOR='\033[0m'
RUBY_VERSION=$(cat .ruby-version)
if command -v rbenv > /dev/null; then
./script/rbenv-install.sh
-elif ! ruby --version | grep $RUBY_VERSION > /dev/null; then
+elif command -v rvm > /dev/null; then
+ rvm install $RUBY_VERSION
+fi
+
+if ! ruby --version | grep $RUBY_VERSION > /dev/null; then
printf "${RED}Open Food Network requires ruby ${RUBY_VERSION}${NO_COLOR}. "
- printf "Have a look at: https://github.com/rbenv/rbenv\n"
+ printf "Have a look at your ruby version manager: https://github.com/rbenv/rbenv\n or https://rvm.io/"
exit 1
fi
diff --git a/spec/base_spec_helper.rb b/spec/base_spec_helper.rb
index c875249ab7..1238281f00 100644
--- a/spec/base_spec_helper.rb
+++ b/spec/base_spec_helper.rb
@@ -96,6 +96,11 @@ RSpec.configure do |config|
expectations.syntax = :expect
end
+ # Reset locale for all specs.
+ config.around(:each) do |example|
+ I18n.with_locale(:en) { example.run }
+ end
+
# Reset all feature toggles to prevent leaking.
config.before(:suite) do
Flipper.features.each(&:remove)
@@ -194,6 +199,7 @@ RSpec.configure do |config|
spree_config.currency = currency
spree_config.shipping_instructions = true
end
+ CurrentConfig.clear_all
end
# Don't validate our invalid test data with expensive network requests.
diff --git a/spec/controllers/admin/bulk_line_items_controller_spec.rb b/spec/controllers/admin/bulk_line_items_controller_spec.rb
index 9fab630c8e..15e540c97b 100644
--- a/spec/controllers/admin/bulk_line_items_controller_spec.rb
+++ b/spec/controllers/admin/bulk_line_items_controller_spec.rb
@@ -390,7 +390,7 @@ describe Admin::BulkLineItemsController, type: :controller do
order.shipments.map(&:refresh_rates)
order.select_shipping_method(shipping_method.id)
- OrderWorkflow.new(order).advance_to_payment
+ Orders::WorkflowService.new(order).advance_to_payment
order.finalize!
order.recreate_all_fees!
order.create_tax_charge!
diff --git a/spec/controllers/admin/customers_controller_spec.rb b/spec/controllers/admin/customers_controller_spec.rb
index 1ef7e91e3e..f7397e58ab 100644
--- a/spec/controllers/admin/customers_controller_spec.rb
+++ b/spec/controllers/admin/customers_controller_spec.rb
@@ -44,12 +44,12 @@ module Admin
get :index, params:
end
- it 'calls CustomersWithBalance' do
- customers_with_balance = instance_double(CustomersWithBalance)
- allow(CustomersWithBalance)
+ it 'calls CustomersWithBalanceQuery' do
+ customers_with_balance = instance_double(CustomersWithBalanceQuery)
+ allow(CustomersWithBalanceQuery)
.to receive(:new).with(customers) { customers_with_balance }
- expect(customers_with_balance).to receive(:query) { Customer.none }
+ expect(customers_with_balance).to receive(:call) { Customer.none }
get :index, params:
end
@@ -182,7 +182,7 @@ module Admin
customer: { email: 'new.email@gmail.com' }
expect(response).to redirect_to unauthorized_path
expect(assigns(:customer)).to eq nil
- expect(customer.email).to_not eq 'new.email@gmail.com'
+ expect(customer.email).not_to eq 'new.email@gmail.com'
end
end
end
diff --git a/spec/controllers/admin/enterprises_controller_spec.rb b/spec/controllers/admin/enterprises_controller_spec.rb
index d2045aa9f1..9c033da706 100644
--- a/spec/controllers/admin/enterprises_controller_spec.rb
+++ b/spec/controllers/admin/enterprises_controller_spec.rb
@@ -168,7 +168,7 @@ describe Admin::EnterprisesController, type: :controller do
spree_post :update, update_params
distributor.reload
- expect(distributor.users).to_not include user
+ expect(distributor.users).not_to include user
end
it "updates the contact for notifications" do
@@ -190,7 +190,7 @@ describe Admin::EnterprisesController, type: :controller do
}
expect { spree_post :update, params }.
- to_not change { distributor.contact }
+ not_to change { distributor.contact }
end
it "updates enterprise preferences" do
@@ -223,7 +223,7 @@ describe Admin::EnterprisesController, type: :controller do
expect(Spree::Property.count).to be 1
expect(ProducerProperty.count).to be 0
property_names = producer.reload.properties.map(&:name)
- expect(property_names).to_not include 'a different name'
+ expect(property_names).not_to include 'a different name'
end
end
@@ -721,7 +721,7 @@ describe Admin::EnterprisesController, type: :controller do
it "scopes @collection to enterprises editable by the user" do
get :index, format: :json
expect(assigns(:collection)).to include enterprise1, enterprise2
- expect(assigns(:collection)).to_not include enterprise3
+ expect(assigns(:collection)).not_to include enterprise3
end
end
end
diff --git a/spec/controllers/admin/order_cycles_controller_spec.rb b/spec/controllers/admin/order_cycles_controller_spec.rb
index 085992f2d8..fd154b7118 100644
--- a/spec/controllers/admin/order_cycles_controller_spec.rb
+++ b/spec/controllers/admin/order_cycles_controller_spec.rb
@@ -37,7 +37,7 @@ module Admin
context "where ransack conditions are specified" do
it "loads order cycles closed within past month, and orders w/o a close_at date" do
get :index, as: :json
- expect(assigns(:collection)).to_not include oc1, oc2
+ expect(assigns(:collection)).not_to include oc1, oc2
expect(assigns(:collection)).to include oc3, oc4
end
end
@@ -47,7 +47,7 @@ module Admin
it "loads order cycles closed after specified date, and orders w/o a close_at date" do
get :index, as: :json, params: { q: }
- expect(assigns(:collection)).to_not include oc1
+ expect(assigns(:collection)).not_to include oc1
expect(assigns(:collection)).to include oc2, oc3, oc4
end
@@ -56,7 +56,7 @@ module Admin
it "loads order cycles that meet all conditions" do
get :index, format: :json, params: { q: }
- expect(assigns(:collection)).to_not include oc1, oc2, oc4
+ expect(assigns(:collection)).not_to include oc1, oc2, oc4
expect(assigns(:collection)).to include oc3
end
end
@@ -132,9 +132,9 @@ module Admin
end
it do
- query_counter = QueryCounter.new
- get :show, params: { id: order_cycle.id }, as: :json
- expect(query_counter.queries).to eq(
+ expect {
+ get :show, params: { id: order_cycle.id }, as: :json
+ }.to query_database(
{
select: {
enterprise_fees: 3,
@@ -151,7 +151,6 @@ module Admin
update: { spree_users: 1 }
}
)
- query_counter.stop
end
end
end
@@ -161,12 +160,12 @@ module Admin
let(:shop) { create(:distributor_enterprise) }
context "as a manager of a shop" do
- let(:form_mock) { instance_double(OrderCycleForm) }
+ let(:form_mock) { instance_double(OrderCycles::FormService) }
let(:params) { { as: :json, order_cycle: {} } }
before do
controller_login_as_enterprise_user([shop])
- allow(OrderCycleForm).to receive(:new) { form_mock }
+ allow(OrderCycles::FormService).to receive(:new) { form_mock }
end
context "when creation is successful" do
@@ -204,10 +203,10 @@ module Admin
describe "update" do
let(:order_cycle) { create(:simple_order_cycle) }
let(:coordinator) { order_cycle.coordinator }
- let(:form_mock) { instance_double(OrderCycleForm) }
+ let(:form_mock) { instance_double(OrderCycles::FormService) }
before do
- allow(OrderCycleForm).to receive(:new) { form_mock }
+ allow(OrderCycles::FormService).to receive(:new) { form_mock }
end
context "as a manager of the coordinator" do
@@ -276,7 +275,7 @@ module Admin
end
it "can update preference product_selection_from_coordinator_inventory_only" do
- expect(OrderCycleForm).to receive(:new).
+ expect(OrderCycles::FormService).to receive(:new).
with(order_cycle,
{ "preferred_product_selection_from_coordinator_inventory_only" => true },
anything) { form_mock }
@@ -289,7 +288,7 @@ module Admin
end
it "can update preference automatic_notifications" do
- expect(OrderCycleForm).to receive(:new).
+ expect(OrderCycles::FormService).to receive(:new).
with(order_cycle,
{ "automatic_notifications" => true },
anything) { form_mock }
@@ -325,7 +324,7 @@ module Admin
format: :json, id: order_cycle.id, order_cycle: allowed.merge(restricted)
}
}
- let(:form_mock) { instance_double(OrderCycleForm, save: true) }
+ let(:form_mock) { instance_double(OrderCycles::FormService, save: true) }
before { allow(controller).to receive(:spree_current_user) { user } }
@@ -334,7 +333,7 @@ module Admin
let(:expected) { [order_cycle, allowed.merge(restricted), user] }
it "allows me to update exchange information for exchanges, name and dates" do
- expect(OrderCycleForm).to receive(:new).with(*expected) { form_mock }
+ expect(OrderCycles::FormService).to receive(:new).with(*expected) { form_mock }
spree_put :update, params
end
end
@@ -344,7 +343,7 @@ module Admin
let(:expected) { [order_cycle, allowed, user] }
it "allows me to update exchange information for exchanges, but not name or dates" do
- expect(OrderCycleForm).to receive(:new).with(*expected) { form_mock }
+ expect(OrderCycles::FormService).to receive(:new).with(*expected) { form_mock }
spree_put :update, params
end
end
@@ -416,9 +415,9 @@ module Admin
} } }
oc.reload
- expect(oc.name).to_not eq "Updated Order Cycle"
- expect(oc.orders_open_at.to_date).to_not eq Date.current - 21.days
- expect(oc.orders_close_at.to_date).to_not eq Date.current + 21.days
+ expect(oc.name).not_to eq "Updated Order Cycle"
+ expect(oc.orders_open_at.to_date).not_to eq Date.current - 21.days
+ expect(oc.orders_close_at.to_date).not_to eq Date.current + 21.days
end
end
end
@@ -506,8 +505,8 @@ module Admin
get :destroy, params: { id: cloned.id }
expect(OrderCycle.find_by(id: cloned.id)).to be nil
- expect(OrderCycle.find_by(id: oc.id)).to_not be nil
- expect(EnterpriseFee.find_by(id: enterprise_fee1.id)).to_not be nil
+ expect(OrderCycle.find_by(id: oc.id)).not_to be nil
+ expect(EnterpriseFee.find_by(id: enterprise_fee1.id)).not_to be nil
expect(response).to redirect_to admin_order_cycles_path
end
end
diff --git a/spec/controllers/admin/proxy_orders_controller_spec.rb b/spec/controllers/admin/proxy_orders_controller_spec.rb
index a19f94a14a..6e505530b6 100644
--- a/spec/controllers/admin/proxy_orders_controller_spec.rb
+++ b/spec/controllers/admin/proxy_orders_controller_spec.rb
@@ -83,7 +83,7 @@ describe Admin::ProxyOrdersController, type: :controller do
before do
# Processing order to completion
allow(Spree::OrderMailer).to receive(:cancel_email) { double(:email, deliver_later: true) }
- OrderWorkflow.new(order).complete!
+ Orders::WorkflowService.new(order).complete!
proxy_order.reload
proxy_order.cancel
allow(controller).to receive(:spree_current_user) { user }
diff --git a/spec/controllers/admin/reports_controller_spec.rb b/spec/controllers/admin/reports_controller_spec.rb
index 32a44c1b88..318682a8e8 100644
--- a/spec/controllers/admin/reports_controller_spec.rb
+++ b/spec/controllers/admin/reports_controller_spec.rb
@@ -162,7 +162,7 @@ describe Admin::ReportsController, type: :controller do
report_types = assigns(:reports).keys
expect(report_types).to include :orders_and_fulfillment,
:products_and_inventory, :packing # and others
- expect(report_types).to_not include :sales_tax
+ expect(report_types).not_to include :sales_tax
end
end
@@ -365,7 +365,7 @@ describe Admin::ReportsController, type: :controller do
spree_get :show, report_type: :sales_tax, report_subtype: report_type
expect(response).to have_http_status(:ok)
expect(resulting_orders_prelim).to include(orderA1, orderB1)
- expect(resulting_orders_prelim).to_not include(orderA2, orderB2)
+ expect(resulting_orders_prelim).not_to include(orderA2, orderB2)
end
end
end
diff --git a/spec/controllers/admin/schedules_controller_spec.rb b/spec/controllers/admin/schedules_controller_spec.rb
index 4bf805c2f6..38b1f12e35 100644
--- a/spec/controllers/admin/schedules_controller_spec.rb
+++ b/spec/controllers/admin/schedules_controller_spec.rb
@@ -115,7 +115,7 @@ describe Admin::SchedulesController, type: :controller do
uncoordinated_order_cycle,
uncoordinated_order_cycle3
# coordinated_order_cycle is removed, uncoordinated_order_cycle2 is NOT added
- expect(coordinated_schedule.reload.order_cycles).to_not include coordinated_order_cycle,
+ expect(coordinated_schedule.reload.order_cycles).not_to include coordinated_order_cycle,
uncoordinated_order_cycle2
end
@@ -145,7 +145,7 @@ describe Admin::SchedulesController, type: :controller do
schedule: { name: "my awesome schedule" }
expect(response).to redirect_to unauthorized_path
expect(assigns(:schedule)).to eq nil
- expect(coordinated_schedule.name).to_not eq "my awesome schedule"
+ expect(coordinated_schedule.name).not_to eq "my awesome schedule"
end
end
end
@@ -173,7 +173,7 @@ describe Admin::SchedulesController, type: :controller do
context "where no order cycles ids are provided" do
it "does not allow me to create the schedule" do
- expect { create_schedule params }.to_not change { Schedule.count }
+ expect { create_schedule params }.not_to change { Schedule.count }
end
end
@@ -187,7 +187,7 @@ describe Admin::SchedulesController, type: :controller do
expect { create_schedule params }.to change { Schedule.count }.by(1)
schedule = Schedule.last
expect(schedule.order_cycles).to include coordinated_order_cycle
- expect(schedule.order_cycles).to_not include uncoordinated_order_cycle
+ expect(schedule.order_cycles).not_to include uncoordinated_order_cycle
end
it "sync proxy orders" do
@@ -205,7 +205,7 @@ describe Admin::SchedulesController, type: :controller do
end
it "prevents me from creating the schedule" do
- expect { create_schedule params }.to_not change { Schedule.count }
+ expect { create_schedule params }.not_to change { Schedule.count }
end
end
end
@@ -257,7 +257,7 @@ describe Admin::SchedulesController, type: :controller do
let!(:subscription) { create(:subscription, schedule: coordinated_schedule) }
it "returns an error message and prevents me from deleting the schedule" do
- expect { spree_delete :destroy, params }.to_not change { Schedule.count }
+ expect { spree_delete :destroy, params }.not_to change { Schedule.count }
json_response = JSON.parse(response.body)
expect(json_response["errors"])
.to include 'This schedule cannot be deleted ' \
@@ -270,7 +270,7 @@ describe Admin::SchedulesController, type: :controller do
before { params.merge!(id: uncoordinated_schedule.id) }
it "prevents me from destroying the schedule" do
- expect { spree_delete :destroy, params }.to_not change { Schedule.count }
+ expect { spree_delete :destroy, params }.not_to change { Schedule.count }
end
end
end
diff --git a/spec/controllers/admin/stripe_accounts_controller_spec.rb b/spec/controllers/admin/stripe_accounts_controller_spec.rb
index b5b0683c73..a1b5df8d69 100644
--- a/spec/controllers/admin/stripe_accounts_controller_spec.rb
+++ b/spec/controllers/admin/stripe_accounts_controller_spec.rb
@@ -5,12 +5,11 @@ require 'spec_helper'
describe Admin::StripeAccountsController, type: :controller do
let(:enterprise) { create(:distributor_enterprise) }
- before do
- Stripe.client_id = "some_id"
- end
-
describe "#connect" do
+ let(:client_id) { ENV.fetch('STRIPE_CLIENT_ID', nil) }
+
before do
+ Stripe.client_id = client_id
allow(controller).to receive(:spree_current_user) { enterprise.owner }
end
@@ -21,12 +20,12 @@ describe Admin::StripeAccountsController, type: :controller do
expect(response).to redirect_to("https://connect.stripe.com/oauth/authorize?" \
"state=eyJhbGciOiJIUzI1NiJ9.eyJlbnRlcnByaXNlX2lkIjoiMSJ9" \
".jSSFGn0bLhwuiQYK5ORmHWW7aay1l030bcfGwn1JbFg&" \
- "scope=read_write&client_id=some_id&response_type=code")
+ "scope=read_write&client_id=#{client_id}&response_type=code")
end
end
describe "#destroy" do
- let(:params) { { format: :json, id: "some_id" } }
+ let(:params) { { format: :json, id: "client_id" } }
context "when the specified stripe account doesn't exist" do
it "raises an error?" do
@@ -34,8 +33,18 @@ describe Admin::StripeAccountsController, type: :controller do
end
end
- context "when the specified stripe account exists" do
- let(:stripe_account) { create(:stripe_account, enterprise:) }
+ context "when the specified stripe account exists", :vcr, :stripe_version do
+ let(:connected_account) do
+ Stripe::Account.create({
+ type: 'standard',
+ country: 'AU',
+ email: 'jumping.jack@example.com',
+ business_type: "non_profit"
+ })
+ end
+ let(:stripe_account) {
+ create(:stripe_account, enterprise:, stripe_user_id: connected_account.id)
+ }
before do
# So that we can stub #deauthorize_and_destroy
@@ -43,6 +52,10 @@ describe Admin::StripeAccountsController, type: :controller do
params[:id] = stripe_account.id
end
+ after do
+ Stripe::Account.delete(connected_account.id)
+ end
+
context "when I don't manage the enterprise linked to the stripe account" do
let(:some_user) { create(:user) }
@@ -83,11 +96,6 @@ describe Admin::StripeAccountsController, type: :controller do
describe "#status" do
let(:params) { { format: :json, enterprise_id: enterprise.id } }
- before do
- Stripe.api_key = "sk_test_12345"
- allow(Spree::Config).to receive(:stripe_connect_enabled).and_return(false)
- end
-
context "when I don't manage the specified enterprise" do
let(:user) { create(:user) }
@@ -125,45 +133,48 @@ describe Admin::StripeAccountsController, type: :controller do
end
end
- context "when a stripe account is associated with the specified enterprise" do
+ context "when a stripe account is associated with the specified enterprise", :vcr,
+ :stripe_version do
+ let(:connected_account) do
+ Stripe::Account.create({
+ type: 'standard',
+ country: 'AU',
+ email: 'jumping.jack@example.com',
+ business_type: "non_profit"
+ })
+ end
let!(:account) {
- create(:stripe_account, stripe_user_id: "acc_123", enterprise:)
+ create(:stripe_account, stripe_user_id: connected_account.id, enterprise:)
}
+ after do
+ Stripe::Account.delete(connected_account.id)
+ end
+
context "but access has been revoked or does not exist on stripe's servers" do
+ let(:message) {
+ "The provided key 'sk_test_******************************uCJm' " \
+ "does not have access to account 'acct_fake_account' (or that account " \
+ "does not exist). Application access may have been revoked."
+ }
before do
- stub_request(:get,
- "https://api.stripe.com/v1/accounts/acc_123").to_return(status: 404)
+ account.update(stripe_user_id: "acct_fake_account")
end
it "returns with a status of 'access_revoked'" do
- get(:status, params:)
- json_response = JSON.parse(response.body)
- expect(json_response["status"]).to eq "access_revoked"
+ expect {
+ response = get(:status, params:)
+ }.to raise_error Stripe::PermissionError, message
end
end
context "which is connected" do
- let(:stripe_account_mock) do
- {
- id: "acc_123",
- business_name: "My Org",
- charges_enabled: true,
- some_other_attr: "something"
- }
- end
-
- before do
- stub_request(:get, "https://api.stripe.com/v1/accounts/acc_123")
- .to_return(body: JSON.generate(stripe_account_mock))
- end
-
it "returns with a status of 'connected'" do
- get(:status, params:)
+ response = get(:status, params:)
json_response = JSON.parse(response.body)
expect(json_response["status"]).to eq "connected"
# serializes required attrs
- expect(json_response["business_name"]).to eq "My Org"
+ expect(json_response["charges_enabled"]).to eq false
# ignores other attrs
expect(json_response["some_other_attr"]).to be nil
end
diff --git a/spec/controllers/admin/subscriptions_controller_spec.rb b/spec/controllers/admin/subscriptions_controller_spec.rb
index 5f807d5110..c00d8ae113 100644
--- a/spec/controllers/admin/subscriptions_controller_spec.rb
+++ b/spec/controllers/admin/subscriptions_controller_spec.rb
@@ -81,7 +81,7 @@ describe Admin::SubscriptionsController, type: :controller do
expect(json_response.count).to be 1
ids = json_response.map{ |so| so['id'] }
expect(ids).to include subscription2.id
- expect(ids).to_not include subscription.id
+ expect(ids).not_to include subscription.id
end
end
end
@@ -134,7 +134,7 @@ describe Admin::SubscriptionsController, type: :controller do
context 'when I submit insufficient params' do
it 'returns errors' do
- expect{ spree_post :create, params }.to_not change{ Subscription.count }
+ expect{ spree_post :create, params }.not_to change{ Subscription.count }
json_response = JSON.parse(response.body)
expect(json_response['errors'].keys).to include 'schedule', 'customer', 'payment_method',
'shipping_method', 'begins_at'
@@ -168,7 +168,7 @@ describe Admin::SubscriptionsController, type: :controller do
end
it 'returns errors' do
- expect{ spree_post :create, params }.to_not change{ Subscription.count }
+ expect{ spree_post :create, params }.not_to change{ Subscription.count }
json_response = JSON.parse(response.body)
expect(json_response['errors'].keys).to include 'schedule', 'customer', 'payment_method',
'shipping_method', 'ends_at'
@@ -197,7 +197,7 @@ describe Admin::SubscriptionsController, type: :controller do
context 'where the specified variants are not available from the shop' do
it 'returns an error' do
- expect{ spree_post :create, params }.to_not change{ Subscription.count }
+ expect{ spree_post :create, params }.not_to change{ Subscription.count }
json_response = JSON.parse(response.body)
expect(json_response['errors']['subscription_line_items'])
.to eq ["#{variant.product.name} - #{variant.full_name} " \
@@ -343,7 +343,7 @@ describe Admin::SubscriptionsController, type: :controller do
end
it 'returns errors' do
- expect{ spree_post :update, params }.to_not change{ Subscription.count }
+ expect{ spree_post :update, params }.not_to change{ Subscription.count }
json_response = JSON.parse(response.body)
expect(json_response['errors'].keys).to include 'payment_method', 'shipping_method'
subscription.reload
@@ -387,7 +387,7 @@ describe Admin::SubscriptionsController, type: :controller do
context 'where the specified variants are not available from the shop' do
it 'returns an error' do
expect{ spree_post :update, params }
- .to_not change{ subscription.subscription_line_items.count }
+ .not_to change{ subscription.subscription_line_items.count }
json_response = JSON.parse(response.body)
expect(json_response['errors']['subscription_line_items'])
.to eq ["#{product2.name} - #{variant2.full_name} " \
@@ -478,7 +478,7 @@ describe Admin::SubscriptionsController, type: :controller do
it 'renders the cancelled subscription as json, and does not cancel the open order' do
spree_put :cancel, params
json_response = JSON.parse(response.body)
- expect(json_response['canceled_at']).to_not be nil
+ expect(json_response['canceled_at']).not_to be nil
expect(json_response['id']).to eq subscription.id
expect(subscription.reload.canceled_at).to be_within(5.seconds).of Time.zone.now
expect(order.reload.state).to eq 'complete'
@@ -498,7 +498,7 @@ describe Admin::SubscriptionsController, type: :controller do
it 'renders the cancelled subscription as json, and cancels the open order' do
spree_put :cancel, params
json_response = JSON.parse(response.body)
- expect(json_response['canceled_at']).to_not be nil
+ expect(json_response['canceled_at']).not_to be nil
expect(json_response['id']).to eq subscription.id
expect(subscription.reload.canceled_at).to be_within(5.seconds).of Time.zone.now
expect(order.reload.state).to eq 'canceled'
@@ -512,7 +512,7 @@ describe Admin::SubscriptionsController, type: :controller do
it 'renders the cancelled subscription as json' do
spree_put :cancel, params
json_response = JSON.parse(response.body)
- expect(json_response['canceled_at']).to_not be nil
+ expect(json_response['canceled_at']).not_to be nil
expect(json_response['id']).to eq subscription.id
expect(subscription.reload.canceled_at).to be_within(5.seconds).of Time.zone.now
end
@@ -582,7 +582,7 @@ describe Admin::SubscriptionsController, type: :controller do
it 'renders the paused subscription as json, and does not cancel the open order' do
spree_put :pause, params
json_response = JSON.parse(response.body)
- expect(json_response['paused_at']).to_not be nil
+ expect(json_response['paused_at']).not_to be nil
expect(json_response['id']).to eq subscription.id
expect(subscription.reload.paused_at).to be_within(5.seconds).of Time.zone.now
expect(order.reload.state).to eq 'complete'
@@ -602,7 +602,7 @@ describe Admin::SubscriptionsController, type: :controller do
it 'renders the paused subscription as json, and cancels the open order' do
spree_put :pause, params
json_response = JSON.parse(response.body)
- expect(json_response['paused_at']).to_not be nil
+ expect(json_response['paused_at']).not_to be nil
expect(json_response['id']).to eq subscription.id
expect(subscription.reload.paused_at).to be_within(5.seconds).of Time.zone.now
expect(order.reload.state).to eq 'canceled'
@@ -616,7 +616,7 @@ describe Admin::SubscriptionsController, type: :controller do
it 'renders the paused subscription as json' do
spree_put :pause, params
json_response = JSON.parse(response.body)
- expect(json_response['paused_at']).to_not be nil
+ expect(json_response['paused_at']).not_to be nil
expect(json_response['id']).to eq subscription.id
expect(subscription.reload.paused_at).to be_within(5.seconds).of Time.zone.now
end
@@ -708,7 +708,7 @@ describe Admin::SubscriptionsController, type: :controller do
expect(json_response['id']).to eq subscription.id
expect(subscription.reload.paused_at).to be nil
expect(order.reload.state).to eq 'canceled'
- expect(proxy_order.reload.canceled_at).to_not be nil
+ expect(proxy_order.reload.canceled_at).not_to be nil
end
end
end
@@ -771,7 +771,7 @@ describe Admin::SubscriptionsController, type: :controller do
it "only loads Stripe and Cash payment methods" do
controller.send(:load_form_data)
expect(assigns(:payment_methods)).to include payment_method, stripe
- expect(assigns(:payment_methods)).to_not include paypal
+ expect(assigns(:payment_methods)).not_to include paypal
end
end
end
diff --git a/spec/controllers/admin/terms_of_service_files_controller_spec.rb b/spec/controllers/admin/terms_of_service_files_controller_spec.rb
index 2a81cc898b..de6b0ba174 100644
--- a/spec/controllers/admin/terms_of_service_files_controller_spec.rb
+++ b/spec/controllers/admin/terms_of_service_files_controller_spec.rb
@@ -12,12 +12,12 @@ describe Admin::TermsOfServiceFilesController, type: :controller do
it "does not allow deletion" do
post :destroy
- expect(TermsOfServiceFile).to_not receive(:current)
+ expect(TermsOfServiceFile).not_to receive(:current)
end
it "does not allow creation" do
post :create
- expect(TermsOfServiceFile).to_not receive(:create!)
+ expect(TermsOfServiceFile).not_to receive(:create!)
end
end
diff --git a/spec/controllers/admin/variant_overrides_controller_spec.rb b/spec/controllers/admin/variant_overrides_controller_spec.rb
index f6040d8ba7..4224452fb1 100644
--- a/spec/controllers/admin/variant_overrides_controller_spec.rb
+++ b/spec/controllers/admin/variant_overrides_controller_spec.rb
@@ -97,7 +97,7 @@ describe Admin::VariantOverridesController, type: :controller do
it "allows to update other variant overrides" do
put :bulk_update, as: format, params: { variant_overrides: variant_override_params }
- expect(response).to_not redirect_to unauthorized_path
+ expect(response).not_to redirect_to unauthorized_path
variant_override.reload
expect(variant_override.price).to eq 123.45
end
@@ -193,7 +193,7 @@ describe Admin::VariantOverridesController, type: :controller do
it "does not reset count_on_hand for variant_overrides not in params" do
expect {
put :bulk_reset, params:
- }.to_not change{ variant_override3.reload.count_on_hand }
+ }.not_to change{ variant_override3.reload.count_on_hand }
end
end
end
diff --git a/spec/controllers/api/v0/logos_controller_spec.rb b/spec/controllers/api/v0/logos_controller_spec.rb
index b1bb65b187..3d8c800ba0 100644
--- a/spec/controllers/api/v0/logos_controller_spec.rb
+++ b/spec/controllers/api/v0/logos_controller_spec.rb
@@ -35,7 +35,7 @@ module Api
expect(response.status).to eq 200
expect(json_response["id"]).to eq enterprise.id
enterprise.reload
- expect(enterprise.logo).to_not be_attached
+ expect(enterprise.logo).not_to be_attached
end
context "when logo does not exist" do
diff --git a/spec/controllers/api/v0/order_cycles_controller_spec.rb b/spec/controllers/api/v0/order_cycles_controller_spec.rb
index dfc6010ec1..a8640fa581 100644
--- a/spec/controllers/api/v0/order_cycles_controller_spec.rb
+++ b/spec/controllers/api/v0/order_cycles_controller_spec.rb
@@ -57,7 +57,7 @@ module Api
q: { ransack_param => "Kangaroo" }
expect(product_ids).to include product1.id
- expect(product_ids).to_not include product2.id
+ expect(product_ids).not_to include product2.id
end
context "with variant overrides" do
@@ -84,7 +84,7 @@ module Api
it "does not return products where the variant overrides are out of stock" do
api_get :products, id: order_cycle.id, distributor: distributor.id
- expect(product_ids).to_not include product2.id
+ expect(product_ids).not_to include product2.id
end
end
@@ -99,7 +99,7 @@ module Api
expect(response.status).to eq 200
expect(product_ids).to eq [product1.id, product2.id]
- expect(product_ids).to_not include product3.id
+ expect(product_ids).not_to include product3.id
end
context "with supplier properties" do
@@ -118,7 +118,7 @@ module Api
expect(response.status).to eq 200
expect(product_ids).to match_array [product1.id, product2.id]
- expect(product_ids).to_not include product3.id
+ expect(product_ids).not_to include product3.id
end
end
end
@@ -126,10 +126,10 @@ module Api
context "with taxon filters" do
it "filters by taxon" do
api_get :products, id: order_cycle.id, distributor: distributor.id,
- q: { primary_taxon_id_in_any: [taxon2.id] }
+ q: { variants_primary_taxon_id_in_any: [taxon2.id] }
expect(product_ids).to include product2.id, product3.id
- expect(product_ids).to_not include product1.id, product4.id
+ expect(product_ids).not_to include product1.id, product4.id
end
end
@@ -176,7 +176,7 @@ module Api
api_get :products, id: order_cycle.id, distributor: distributor.id
- expect(product_ids).to_not include product1.id
+ expect(product_ids).not_to include product1.id
end
it "does not return variants hidden for this specific customer" do
@@ -185,7 +185,7 @@ module Api
api_get :products, id: order_cycle.id, distributor: distributor.id
- expect(product_ids).to_not include product2.id
+ expect(product_ids).not_to include product2.id
end
it "returns hidden variants made visible for this specific customer" do
@@ -197,7 +197,7 @@ module Api
api_get :products, id: order_cycle.id, distributor: distributor.id
- expect(product_ids).to_not include product1.id
+ expect(product_ids).not_to include product1.id
expect(product_ids).to include product3.id
end
end
diff --git a/spec/controllers/api/v0/products_controller_spec.rb b/spec/controllers/api/v0/products_controller_spec.rb
index af6dbfe032..4abba9f3bd 100644
--- a/spec/controllers/api/v0/products_controller_spec.rb
+++ b/spec/controllers/api/v0/products_controller_spec.rb
@@ -25,6 +25,7 @@ describe Api::V0::ProductsController, type: :controller do
end
context "as a normal user" do
+ let(:taxon) { create(:taxon) }
let(:attachment) { fixture_file_upload("thinking-cat.jpg") }
before do
@@ -34,9 +35,11 @@ describe Api::V0::ProductsController, type: :controller do
it "gets a single product" do
product.create_image!(attachment:)
- product.variants.create!(unit_value: "1", unit_description: "thing", price: 1)
+ product.variants.create!(unit_value: "1", unit_description: "thing", price: 1,
+ primary_taxon: taxon)
product.variants.first.images.create!(attachment:)
product.set_property("spree", "rocks")
+
api_get :show, id: product.to_param
expect(all_attributes.all?{ |attr| json_response.keys.include? attr }).to eq(true)
@@ -117,8 +120,7 @@ describe Api::V0::ProductsController, type: :controller do
expect(response.status).to eq(422)
expect(json_response["error"]).to eq("Invalid resource. Please fix errors and try again.")
errors = json_response["errors"]
- expect(errors.keys).to match_array(["name", "primary_taxon", "supplier", "variant_unit",
- "price"])
+ expect(errors.keys).to match_array(["name", "supplier", "variant_unit", "price"])
end
it "can update a product" do
@@ -266,7 +268,8 @@ describe Api::V0::ProductsController, type: :controller do
end
it "filters results by product category" do
- api_get :bulk_products, { page: 1, per_page: 15, q: { primary_taxon_id_eq: taxon.id } },
+ api_get :bulk_products,
+ { page: 1, per_page: 15, q: { variants_primary_taxon_id_eq: taxon.id } },
format: :json
expect(returned_product_ids).to eq [product3.id, product2.id]
end
diff --git a/spec/controllers/api/v0/promo_images_controller_spec.rb b/spec/controllers/api/v0/promo_images_controller_spec.rb
index 92fdce4940..76e7288ae1 100644
--- a/spec/controllers/api/v0/promo_images_controller_spec.rb
+++ b/spec/controllers/api/v0/promo_images_controller_spec.rb
@@ -35,7 +35,7 @@ module Api
expect(response.status).to eq 200
expect(json_response["id"]).to eq enterprise.id
enterprise.reload
- expect(enterprise.promo_image).to_not be_attached
+ expect(enterprise.promo_image).not_to be_attached
end
context "when promo image does not exist" do
diff --git a/spec/controllers/api/v0/reports/packing_report_spec.rb b/spec/controllers/api/v0/reports/packing_report_spec.rb
index 4cee3984f4..a88a26c7d0 100644
--- a/spec/controllers/api/v0/reports/packing_report_spec.rb
+++ b/spec/controllers/api/v0/reports/packing_report_spec.rb
@@ -53,13 +53,9 @@ describe Api::V0::ReportsController, type: :controller do
private
def report_output(order, user_type)
- results = []
-
- order.line_items.each do |line_item|
- results << __send__("#{user_type}_report_row", line_item)
+ results = order.line_items.map do |line_item|
+ __send__("#{user_type}_report_row", line_item)
end
-
- results
end
def distributor_report_row(line_item)
diff --git a/spec/controllers/api/v0/shipments_controller_spec.rb b/spec/controllers/api/v0/shipments_controller_spec.rb
index 9ade418913..add3d0c3ba 100644
--- a/spec/controllers/api/v0/shipments_controller_spec.rb
+++ b/spec/controllers/api/v0/shipments_controller_spec.rb
@@ -194,14 +194,14 @@ describe Api::V0::ShipmentsController, type: :controller do
expect {
api_put :add, params.merge(variant_id: existing_variant.to_param)
expect(response.status).to eq(422)
- }.to_not change { existing_variant.reload.on_hand }
+ }.not_to change { existing_variant.reload.on_hand }
end
it "doesn't adjust stock when removing a variant" do
expect {
api_put :remove, params.merge(variant_id: existing_variant.to_param)
expect(response.status).to eq(422)
- }.to_not change { existing_variant.reload.on_hand }
+ }.not_to change { existing_variant.reload.on_hand }
end
end
@@ -367,13 +367,17 @@ describe Api::V0::ShipmentsController, type: :controller do
instance_double(Spree::Order, number: "123", distributor: variant.product.supplier)
}
let(:contents) { instance_double(Spree::OrderContents) }
+ let(:fee_order_shipment) {
+ instance_double(Spree::Shipment)
+ }
before do
allow(Spree::Order).to receive(:find_by!) { fee_order }
- allow(controller).to receive(:find_and_update_shipment) {}
allow(controller).to receive(:refuse_changing_cancelled_orders) {}
allow(fee_order).to receive(:contents) { contents }
- allow(contents).to receive(:add) {}
+ allow(contents).to receive_messages(add: {}, remove: {})
+ allow(fee_order).to receive_message_chain(:shipments, :find_by!) { fee_order_shipment }
+ allow(fee_order_shipment).to receive_messages(update: nil, reload: nil, persisted?: nil)
allow(fee_order).to receive(:recreate_all_fees!)
end
@@ -382,6 +386,12 @@ describe Api::V0::ShipmentsController, type: :controller do
spree_put :add, params
expect(fee_order).to have_received(:recreate_all_fees!)
end
+
+ it "recalculates fees for the line item when qty is decreased" do
+ params[:order_id] = fee_order.number
+ spree_put :remove, params
+ expect(fee_order).to have_received(:recreate_all_fees!)
+ end
end
end
diff --git a/spec/controllers/api/v0/terms_and_conditions_controller_spec.rb b/spec/controllers/api/v0/terms_and_conditions_controller_spec.rb
index d5e7f511f8..53596f7fd3 100644
--- a/spec/controllers/api/v0/terms_and_conditions_controller_spec.rb
+++ b/spec/controllers/api/v0/terms_and_conditions_controller_spec.rb
@@ -29,7 +29,7 @@ module Api
expect(response.status).to eq 200
expect(json_response["id"]).to eq enterprise.id
enterprise.reload
- expect(enterprise.terms_and_conditions).to_not be_attached
+ expect(enterprise.terms_and_conditions).not_to be_attached
end
context "when terms and conditions file does not exist" do
diff --git a/spec/controllers/api/v0/variants_controller_spec.rb b/spec/controllers/api/v0/variants_controller_spec.rb
index f67fefd7f0..1a90dd704a 100644
--- a/spec/controllers/api/v0/variants_controller_spec.rb
+++ b/spec/controllers/api/v0/variants_controller_spec.rb
@@ -127,6 +127,7 @@ describe Api::V0::VariantsController, type: :controller do
let(:product) { create(:product) }
let(:variant) { product.variants.first }
+ let(:taxon) { create(:taxon) }
let!(:variant2) { create(:variant, product:) }
context "deleted variants" do
@@ -144,7 +145,7 @@ describe Api::V0::VariantsController, type: :controller do
it "can create a new variant" do
original_number_of_variants = variant.product.variants.count
api_post :create, variant: { sku: "12345", unit_value: "1",
- unit_description: "L", price: "1" },
+ unit_description: "L", price: "1", primary_taxon_id: taxon.id },
product_id: variant.product.id
expect(attributes.all?{ |attr| json_response.include? attr.to_s }).to eq(true)
@@ -172,7 +173,7 @@ describe Api::V0::VariantsController, type: :controller do
variant = product.variants.first
spree_delete :destroy, id: variant.to_param
- expect(variant.reload).to_not be_deleted
+ expect(variant.reload).not_to be_deleted
expect(assigns(:variant).errors[:product]).to include "must have at least one variant"
end
end
diff --git a/spec/controllers/base_controller_spec.rb b/spec/controllers/base_controller_spec.rb
index 17725eb773..5158dd1c3c 100644
--- a/spec/controllers/base_controller_spec.rb
+++ b/spec/controllers/base_controller_spec.rb
@@ -17,7 +17,7 @@ describe BaseController, type: :controller do
it "doesn't change anything without a user" do
expect {
get :index
- }.to_not change { Spree::Order.count }
+ }.not_to change { Spree::Order.count }
end
it "creates a new order" do
@@ -36,7 +36,7 @@ describe BaseController, type: :controller do
expect {
get :index
- }.to_not change { Spree::Order.count }
+ }.not_to change { Spree::Order.count }
expect(session[:order_id]).to eq last_cart.id
end
@@ -63,7 +63,7 @@ describe BaseController, type: :controller do
expect {
get :index
- }.to_not change { Spree::Order.count }
+ }.not_to change { Spree::Order.count }
expect(current_cart.line_items.count).to eq 0
end
@@ -89,13 +89,13 @@ describe BaseController, type: :controller do
get :index
}.to change { Spree::Order.count }.by(1)
- expect(session[:order_id]).to_not eq just_completed_order.id
- expect(session[:order_id]).to_not eq last_cart.id
+ expect(session[:order_id]).not_to eq just_completed_order.id
+ expect(session[:order_id]).not_to eq last_cart.id
expect(controller.current_order.line_items.count).to eq 0
end
it "doesn't load variant overrides without line items" do
- expect(VariantOverride).to_not receive(:indexed)
+ expect(VariantOverride).not_to receive(:indexed)
controller.current_order(true)
end
end
diff --git a/spec/controllers/checkout_controller_spec.rb b/spec/controllers/checkout_controller_spec.rb
index 355343d0d5..4f948cdefa 100644
--- a/spec/controllers/checkout_controller_spec.rb
+++ b/spec/controllers/checkout_controller_spec.rb
@@ -148,7 +148,7 @@ describe CheckoutController, type: :controller do
it "doesn't update default bill address on user" do
expect {
put :update, params: params.merge(order: { save_bill_address: "0" })
- }.to_not change {
+ }.not_to change {
order.user.reload.bill_address
}
end
@@ -163,7 +163,7 @@ describe CheckoutController, type: :controller do
it "doesn't update default ship address on user" do
expect {
put :update, params: params.merge(order: { save_ship_address: "0" })
- }.to_not change {
+ }.not_to change {
order.user.reload.ship_address
}
end
@@ -196,7 +196,7 @@ describe CheckoutController, type: :controller do
end
it "doesn't recalculate the voucher adjustment" do
- expect(service).to_not receive(:update)
+ expect(service).not_to receive(:update)
put(:update, params:)
@@ -256,7 +256,7 @@ describe CheckoutController, type: :controller do
order.bill_address = address
order.ship_address = address
order.select_shipping_method shipping_method.id
- OrderWorkflow.new(order).advance_to_payment
+ Orders::WorkflowService.new(order).advance_to_payment
end
context "with incomplete data" do
@@ -387,7 +387,7 @@ describe CheckoutController, type: :controller do
order.bill_address = address
order.ship_address = address
order.select_shipping_method shipping_method.id
- OrderWorkflow.new(order).advance_to_payment
+ Orders::WorkflowService.new(order).advance_to_payment
order.payments << build(:payment, amount: order.total, payment_method:)
order.next
@@ -459,7 +459,7 @@ describe CheckoutController, type: :controller do
allow(order).to receive(:distributor).and_return(distributor)
order.update(order_cycle:)
- allow(OrderCycleDistributedVariants).to receive(:new).and_return(
+ allow(OrderCycles::DistributedVariantsService).to receive(:new).and_return(
order_cycle_distributed_variants
)
end
diff --git a/spec/controllers/concerns/raising_parameters_spec.rb b/spec/controllers/concerns/raising_parameters_spec.rb
index cf330221b7..73008f20cf 100644
--- a/spec/controllers/concerns/raising_parameters_spec.rb
+++ b/spec/controllers/concerns/raising_parameters_spec.rb
@@ -26,7 +26,7 @@ describe RaisingParameters do
it "raises no error when all parameters are permitted" do
expect {
params.require(:data).permit(:id, :admin)
- }.to_not raise_error
+ }.not_to raise_error
end
it "doesn't change standard parameter objects" do
@@ -34,7 +34,7 @@ describe RaisingParameters do
expect {
original_params.permit(:one)
- }.to_not raise_error
+ }.not_to raise_error
end
end
end
diff --git a/spec/controllers/payment_gateways/stripe_controller_spec.rb b/spec/controllers/payment_gateways/stripe_controller_spec.rb
index 72ceef6bfe..9b2e3233d9 100644
--- a/spec/controllers/payment_gateways/stripe_controller_spec.rb
+++ b/spec/controllers/payment_gateways/stripe_controller_spec.rb
@@ -11,7 +11,9 @@ module PaymentGateways
let!(:order) { create(:order_with_totals, distributor:, order_cycle:) }
let(:exchange) { order_cycle.exchanges.to_enterprises(distributor).outgoing.first }
- let(:order_cycle_distributed_variants) { instance_double(OrderCycleDistributedVariants) }
+ let(:order_cycle_distributed_variants) {
+ instance_double(OrderCycles::DistributedVariantsService)
+ }
before do
exchange.variants << order.line_items.first.variant
@@ -305,11 +307,11 @@ completed due to stock issues."
context "with an invalid last payment" do
let(:payment_intent) { "valid" }
- let(:finder) { instance_double(OrderPaymentFinder, last_payment: payment) }
+ let(:finder) { instance_double(Orders::FindPaymentService, last_payment: payment) }
before do
allow(payment).to receive(:response_code).and_return("invalid")
- allow(OrderPaymentFinder).to receive(:new).with(order).and_return(finder)
+ allow(Orders::FindPaymentService).to receive(:new).with(order).and_return(finder)
allow(Stripe::PaymentIntentValidator)
.to receive_message_chain(:new, :call).and_return(payment_intent)
stub_payment_intent_get_request(payment_intent_id: "valid")
diff --git a/spec/controllers/spree/admin/adjustments_controller_spec.rb b/spec/controllers/spree/admin/adjustments_controller_spec.rb
index d44c27a08b..a6ae890071 100644
--- a/spec/controllers/spree/admin/adjustments_controller_spec.rb
+++ b/spec/controllers/spree/admin/adjustments_controller_spec.rb
@@ -27,7 +27,7 @@ module Spree
spree_get :index, order_id: order.number
expect(assigns(:collection)).to include adjustment1, adjustment2
- expect(assigns(:collection)).to_not include adjustment3
+ expect(assigns(:collection)).not_to include adjustment3
end
it "displays admin adjustments" do
@@ -39,7 +39,7 @@ module Spree
it "does not display enterprise fee adjustments" do
spree_get :index, order_id: order.number
- expect(assigns(:collection)).to_not include adjustment4
+ expect(assigns(:collection)).not_to include adjustment4
end
end
@@ -237,7 +237,7 @@ module Spree
expect {
spree_post :create, order_id: order.number,
adjustment: { label: "Testing", amount: "110" }
- }.to_not change { [Adjustment.count, order.reload.total] }
+ }.not_to change { [Adjustment.count, order.reload.total] }
expect(response).to redirect_to spree.admin_order_adjustments_path(order)
end
@@ -246,7 +246,7 @@ module Spree
expect {
spree_put :update, order_id: order.number, id: adjustment.id,
adjustment: { label: "Testing", amount: "110" }
- }.to_not change { [adjustment.reload.amount, order.reload.total] }
+ }.not_to change { [adjustment.reload.amount, order.reload.total] }
expect(response).to redirect_to spree.admin_order_adjustments_path(order)
end
diff --git a/spec/controllers/spree/admin/base_controller_spec.rb b/spec/controllers/spree/admin/base_controller_spec.rb
index 15d763aee0..21dbc71a4e 100644
--- a/spec/controllers/spree/admin/base_controller_spec.rb
+++ b/spec/controllers/spree/admin/base_controller_spec.rb
@@ -71,10 +71,9 @@ describe Spree::Admin::BaseController, type: :controller do
describe "determining the name of the serializer to be used" do
before do
- class Api::Admin::AllowedPrefixBaseSerializer; end;
-
- class Api::Admin::BaseSerializer; end;
allow(controller).to receive(:ams_prefix_whitelist) { [:allowed_prefix] }
+ stub_const('Api::Admin::AllowedPrefixBaseSerializer', Class)
+ stub_const('Api::Admin::BaseSerializer', Class)
end
context "when a prefix is passed in" do
diff --git a/spec/controllers/spree/admin/general_settings_controller_spec.rb b/spec/controllers/spree/admin/general_settings_controller_spec.rb
index 4db32d6183..3fff115d01 100644
--- a/spec/controllers/spree/admin/general_settings_controller_spec.rb
+++ b/spec/controllers/spree/admin/general_settings_controller_spec.rb
@@ -13,7 +13,7 @@ describe Spree::Admin::GeneralSettingsController, type: :controller do
end
it "updates available units" do
- expect(Spree::Config.available_units).to_not include("lb")
+ expect(Spree::Config.available_units).not_to include("lb")
settings_params = { available_units: { lb: "1" } }
spree_put :update, settings_params
expect(Spree::Config.available_units).to include("lb")
diff --git a/spec/controllers/spree/admin/orders/invoices_spec.rb b/spec/controllers/spree/admin/orders/invoices_spec.rb
index 1fcfa606ce..4aea9fd065 100644
--- a/spec/controllers/spree/admin/orders/invoices_spec.rb
+++ b/spec/controllers/spree/admin/orders/invoices_spec.rb
@@ -40,7 +40,7 @@ describe Spree::Admin::OrdersController, type: :controller do
it "should allow me to send order invoices" do
expect do
spree_get :invoice, params
- end.to_not change{ Spree::OrderMailer.deliveries.count }
+ end.not_to change{ Spree::OrderMailer.deliveries.count }
expect(response).to redirect_to spree.edit_admin_order_path(order)
expect(flash[:error])
.to eq "#{distributor.name} must have a valid ABN before invoices can be used."
diff --git a/spec/controllers/spree/admin/orders/payments/payments_controller_refunds_spec.rb b/spec/controllers/spree/admin/orders/payments/payments_controller_refunds_spec.rb
index 3dd36c5273..a6ed0be235 100644
--- a/spec/controllers/spree/admin/orders/payments/payments_controller_refunds_spec.rb
+++ b/spec/controllers/spree/admin/orders/payments/payments_controller_refunds_spec.rb
@@ -49,13 +49,13 @@ describe Spree::Admin::PaymentsController, type: :controller do
it "voids the payment" do
order.reload
- expect(order.payment_total).to_not eq 0
+ expect(order.payment_total).not_to eq 0
expect(order.outstanding_balance.to_f).to eq 0
spree_put :fire, params
expect(payment.reload.state).to eq 'void'
order.reload
expect(order.payment_total).to eq 0
- expect(order.outstanding_balance.to_f).to_not eq 0
+ expect(order.outstanding_balance.to_f).not_to eq 0
end
end
@@ -69,12 +69,12 @@ describe Spree::Admin::PaymentsController, type: :controller do
it "does not void the payment" do
order.reload
- expect(order.payment_total).to_not eq 0
+ expect(order.payment_total).not_to eq 0
expect(order.outstanding_balance.to_f).to eq 0
spree_put :fire, params
expect(payment.reload.state).to eq 'completed'
order.reload
- expect(order.payment_total).to_not eq 0
+ expect(order.payment_total).not_to eq 0
expect(order.outstanding_balance.to_f).to eq 0
expect(flash[:error]).to eq "Bup-bow!"
end
@@ -92,13 +92,13 @@ describe Spree::Admin::PaymentsController, type: :controller do
it "can still void the payment" do
order.reload
- expect(order.payment_total).to_not eq 0
+ expect(order.payment_total).not_to eq 0
expect(order.outstanding_balance.to_f).to eq 0
spree_put :fire, params
expect(payment.reload.state).to eq 'void'
order.reload
expect(order.payment_total).to eq 0
- expect(order.outstanding_balance.to_f).to_not eq 0
+ expect(order.outstanding_balance.to_f).not_to eq 0
end
end
end
@@ -115,13 +115,13 @@ describe Spree::Admin::PaymentsController, type: :controller do
it "voids the payment" do
order.reload
- expect(order.payment_total).to_not eq 0
+ expect(order.payment_total).not_to eq 0
expect(order.outstanding_balance.to_f).to eq 0
spree_put :fire, params
expect(payment.reload.state).to eq 'void'
order.reload
expect(order.payment_total).to eq 0
- expect(order.outstanding_balance.to_f).to_not eq 0
+ expect(order.outstanding_balance.to_f).not_to eq 0
end
end
end
diff --git a/spec/controllers/spree/admin/orders/payments/payments_controller_spec.rb b/spec/controllers/spree/admin/orders/payments/payments_controller_spec.rb
index a7a06816d5..6478629e48 100644
--- a/spec/controllers/spree/admin/orders/payments/payments_controller_spec.rb
+++ b/spec/controllers/spree/admin/orders/payments/payments_controller_spec.rb
@@ -258,7 +258,7 @@ describe Spree::Admin::PaymentsController, type: :controller do
it 'does not process the event' do
spree_put :fire, params
- expect(payment).to_not receive(:unrecognized_event)
+ expect(payment).not_to receive(:unrecognized_event)
expect(flash[:error]).to eq('Could not update the payment')
end
end
diff --git a/spec/controllers/spree/admin/orders_controller_spec.rb b/spec/controllers/spree/admin/orders_controller_spec.rb
index 0e27a9dc3c..0dc568430d 100644
--- a/spec/controllers/spree/admin/orders_controller_spec.rb
+++ b/spec/controllers/spree/admin/orders_controller_spec.rb
@@ -24,7 +24,7 @@ describe Spree::Admin::OrdersController, type: :controller do
spree_get :edit, id: order
- expect(response.body).to_not match adjustment.label
+ expect(response.body).not_to match adjustment.label
end
end
end
@@ -204,7 +204,7 @@ describe Spree::Admin::OrdersController, type: :controller do
order.reload
expect(order.all_adjustments.tax.count).to eq 2
- expect(order.all_adjustments.tax).to_not include legacy_tax_adjustment
+ expect(order.all_adjustments.tax).not_to include legacy_tax_adjustment
expect(order.additional_tax_total).to eq 0.5
end
end
diff --git a/spec/controllers/spree/admin/products_controller_spec.rb b/spec/controllers/spree/admin/products_controller_spec.rb
index bc02ae7217..9dbf146f53 100644
--- a/spec/controllers/spree/admin/products_controller_spec.rb
+++ b/spec/controllers/spree/admin/products_controller_spec.rb
@@ -93,6 +93,7 @@ describe Spree::Admin::ProductsController, type: :controller do
variant_unit_name: nil
)
end
+ let!(:taxon) { create(:taxon) }
before { controller_login_as_enterprise_user([producer]) }
@@ -111,7 +112,8 @@ describe Spree::Admin::ProductsController, type: :controller do
"price" => "5.0",
"unit_value" => 4,
"unit_description" => "",
- "display_name" => "name"
+ "display_name" => "name",
+ "primary_taxon_id" => taxon.id
}
]
}
@@ -190,7 +192,7 @@ describe Spree::Admin::ProductsController, type: :controller do
spree_put :update, id: product, product: { supplier_id: new_producer.id }
expect(product.reload.supplier.id).to eq new_producer.id
- expect(order_cycle.reload.distributed_variants).to_not include product.variants.first
+ expect(order_cycle.reload.distributed_variants).not_to include product.variants.first
end
end
@@ -227,7 +229,7 @@ describe Spree::Admin::ProductsController, type: :controller do
expect(Spree::Property.count).to be 1
expect(Spree::ProductProperty.count).to be 0
property_names = product.reload.properties.map(&:name)
- expect(property_names).to_not include 'a different name'
+ expect(property_names).not_to include 'a different name'
end
end
diff --git a/spec/controllers/spree/admin/search_controller_spec.rb b/spec/controllers/spree/admin/search_controller_spec.rb
index e34e553453..53313e5521 100644
--- a/spec/controllers/spree/admin/search_controller_spec.rb
+++ b/spec/controllers/spree/admin/search_controller_spec.rb
@@ -18,7 +18,7 @@ describe Spree::Admin::SearchController, type: :controller do
it "returns a list of users that I share management of enteprises with" do
expect(assigns(:users)).to include owner, manager
- expect(assigns(:users)).to_not include random
+ expect(assigns(:users)).not_to include random
end
end
diff --git a/spec/controllers/spree/admin/tax_rates_controller_spec.rb b/spec/controllers/spree/admin/tax_rates_controller_spec.rb
index 27d0c10464..3ce91d9ebf 100644
--- a/spec/controllers/spree/admin/tax_rates_controller_spec.rb
+++ b/spec/controllers/spree/admin/tax_rates_controller_spec.rb
@@ -27,7 +27,7 @@ module Spree
it "updates the record" do
expect {
spree_put :update, id: tax_rate.id, tax_rate: params
- }.to_not change{ Spree::TaxRate.with_deleted.count }
+ }.not_to change{ Spree::TaxRate.with_deleted.count }
expect(response).to redirect_to spree.admin_tax_rates_url
expect(tax_rate.reload.name).to eq "Updated Rate"
diff --git a/spec/controllers/spree/admin/variants_controller_spec.rb b/spec/controllers/spree/admin/variants_controller_spec.rb
index b3b05d8afc..7bdfc7bcbe 100644
--- a/spec/controllers/spree/admin/variants_controller_spec.rb
+++ b/spec/controllers/spree/admin/variants_controller_spec.rb
@@ -11,7 +11,9 @@ module Spree
describe "deleted variants" do
let(:product) { create(:product, name: 'Product A') }
let(:deleted_variant) do
- deleted_variant = product.variants.create(unit_value: "2", price: 1)
+ deleted_variant = product.variants.create(
+ unit_value: "2", price: 1, primary_taxon: create(:taxon)
+ )
deleted_variant.delete
deleted_variant
end
diff --git a/spec/controllers/spree/api_keys_controller_spec.rb b/spec/controllers/spree/api_keys_controller_spec.rb
index c39b46e821..99faf43964 100644
--- a/spec/controllers/spree/api_keys_controller_spec.rb
+++ b/spec/controllers/spree/api_keys_controller_spec.rb
@@ -26,7 +26,7 @@ describe Spree::ApiKeysController, type: :controller, performance: true do
expect {
spree_post :create, id: other_user.id
other_user.reload
- }.to_not change {
+ }.not_to change {
other_user.spree_api_key
}
end
diff --git a/spec/controllers/spree/credit_cards_controller_spec.rb b/spec/controllers/spree/credit_cards_controller_spec.rb
index 28b33fffab..41e87d975c 100644
--- a/spec/controllers/spree/credit_cards_controller_spec.rb
+++ b/spec/controllers/spree/credit_cards_controller_spec.rb
@@ -94,7 +94,7 @@ describe Spree::CreditCardsController, type: :controller do
{ status: 402, body: JSON.generate(error: { message: "Bup-bow..." }) }
}
it "doesn't save the card locally, and renders a flash error" do
- expect{ spree_post :new_from_token, params }.to_not change { Spree::CreditCard.count }
+ expect{ spree_post :new_from_token, params }.not_to change { Spree::CreditCard.count }
json_response = JSON.parse(response.body)
flash_message = "There was a problem with your payment information: %s" % 'Bup-bow...'
@@ -172,7 +172,7 @@ describe Spree::CreditCardsController, type: :controller do
let(:params) { { id: 123 } }
it "redirects to /account with a flash error, does not request deletion with Stripe" do
- expect(controller).to_not receive(:destroy_at_stripe)
+ expect(controller).not_to receive(:destroy_at_stripe)
spree_delete :destroy, params
expect(flash[:error]).to eq 'Sorry, the card could not be removed'
expect(response.status).to eq 200
@@ -205,7 +205,7 @@ describe Spree::CreditCardsController, type: :controller do
end
it "doesn't delete the card" do
- expect{ spree_delete :destroy, params }.to_not change { Spree::CreditCard.count }
+ expect{ spree_delete :destroy, params }.not_to change { Spree::CreditCard.count }
expect(flash[:error]).to eq 'Sorry, the card could not be removed'
expect(response.status).to eq 422
end
diff --git a/spec/controllers/spree/orders_controller_spec.rb b/spec/controllers/spree/orders_controller_spec.rb
index 5acb0f5aae..78ed96e16e 100644
--- a/spec/controllers/spree/orders_controller_spec.rb
+++ b/spec/controllers/spree/orders_controller_spec.rb
@@ -150,7 +150,7 @@ describe Spree::OrdersController, type: :controller do
spree_registration_path = '/signup'
ofn_registration_path = '/register'
get :edit
- expect(response.body).to_not match spree_registration_path
+ expect(response.body).not_to match spree_registration_path
expect(response.body).to match ofn_registration_path
end
end
diff --git a/spec/controllers/spree/users_controller_spec.rb b/spec/controllers/spree/users_controller_spec.rb
index 8f6455055c..ee8de1d00f 100644
--- a/spec/controllers/spree/users_controller_spec.rb
+++ b/spec/controllers/spree/users_controller_spec.rb
@@ -23,7 +23,7 @@ describe Spree::UsersController, type: :controller do
let(:orders) { assigns(:orders) }
let(:shops) { Enterprise.where(id: orders.pluck(:distributor_id)) }
- let(:outstanding_balance) { instance_double(OutstandingBalance) }
+ let(:outstanding_balance_query) { instance_double(OutstandingBalanceQuery) }
before do
allow(controller).to receive(:spree_current_user) { u1 }
@@ -33,7 +33,7 @@ describe Spree::UsersController, type: :controller do
get :show
expect(orders).to include d1o1, d1o2
- expect(orders).to_not include d1_order_for_u2, d1o3, d2o1
+ expect(orders).not_to include d1_order_for_u2, d1o3, d2o1
expect(shops).to include distributor1
# Doesn't return orders for irrelevant distributors" do
@@ -47,9 +47,9 @@ describe Spree::UsersController, type: :controller do
expect(orders).not_to include d1o3
end
- it 'calls OutstandingBalance' do
- allow(OutstandingBalance).to receive(:new).and_return(outstanding_balance)
- expect(outstanding_balance).to receive(:query) { Spree::Order.none }
+ it 'calls OutstandingBalanceQuery' do
+ allow(OutstandingBalanceQuery).to receive(:new).and_return(outstanding_balance_query)
+ expect(outstanding_balance_query).to receive(:call) { Spree::Order.none }
spree_get :show
end
diff --git a/spec/controllers/user_registrations_controller_spec.rb b/spec/controllers/user_registrations_controller_spec.rb
index 8d91a8d25f..d25b811d69 100644
--- a/spec/controllers/user_registrations_controller_spec.rb
+++ b/spec/controllers/user_registrations_controller_spec.rb
@@ -48,15 +48,9 @@ describe UserRegistrationsController, type: :controller do
end
it "sets user.locale from cookie on create" do
- original_i18n_locale = I18n.locale
- original_locale_cookie = cookies[:locale]
-
cookies[:locale] = "pt"
post :create, xhr: true, params: { spree_user: user_params, use_route: :spree }
expect(assigns[:user].locale).to eq("pt")
-
- I18n.locale = original_i18n_locale
- cookies[:locale] = original_locale_cookie
end
end
end
diff --git a/spec/controllers/webhook_endpoints_controller_spec.rb b/spec/controllers/webhook_endpoints_controller_spec.rb
index c36720edb8..e628710f72 100644
--- a/spec/controllers/webhook_endpoints_controller_spec.rb
+++ b/spec/controllers/webhook_endpoints_controller_spec.rb
@@ -24,7 +24,7 @@ describe WebhookEndpointsController, type: :controller do
it "shows error if parameters not specified" do
expect {
spree_post :create, { url: "" }
- }.to_not change {
+ }.not_to change {
user.webhook_endpoints.count
}
diff --git a/spec/factories/order_factory.rb b/spec/factories/order_factory.rb
index 096753389b..b9726a3614 100644
--- a/spec/factories/order_factory.rb
+++ b/spec/factories/order_factory.rb
@@ -28,7 +28,7 @@ FactoryBot.define do
after(:create) do |order, evaluator|
order.select_shipping_method evaluator.shipping_method.id
- OrderWorkflow.new(order).advance_to_payment
+ Orders::WorkflowService.new(order).advance_to_payment
end
factory :order_ready_for_confirmation do
diff --git a/spec/factories/product_factory.rb b/spec/factories/product_factory.rb
index 320060563f..8e1d5e64c7 100644
--- a/spec/factories/product_factory.rb
+++ b/spec/factories/product_factory.rb
@@ -3,13 +3,18 @@
FactoryBot.define do
factory :base_product, class: Spree::Product do
sequence(:name) { |n| "Product ##{n} - #{Kernel.rand(9999)}" }
+
+ transient do
+ primary_taxon { nil }
+ end
+
+ primary_taxon_id { |p| (p.primary_taxon || Spree::Taxon.first || create(:taxon)).id }
description { generate(:random_description) }
price { 19.99 }
sku { 'ABC' }
deleted_at { nil }
supplier { Enterprise.is_primary_producer.first || FactoryBot.create(:supplier_enterprise) }
- primary_taxon { Spree::Taxon.first || FactoryBot.create(:taxon) }
unit_value { 1 }
unit_description { '' }
@@ -48,6 +53,7 @@ FactoryBot.define do
on_demand { false }
on_hand { 5 }
end
+
after(:create) do |product, evaluator|
product.variants.first.on_demand = evaluator.on_demand
product.variants.first.on_hand = evaluator.on_hand
diff --git a/spec/factories/variant_factory.rb b/spec/factories/variant_factory.rb
index cd4b322a02..3cb44c6344 100644
--- a/spec/factories/variant_factory.rb
+++ b/spec/factories/variant_factory.rb
@@ -11,7 +11,8 @@ FactoryBot.define do
width { generate(:random_float) }
depth { generate(:random_float) }
- product { |p| p.association(:base_product) }
+ primary_taxon { Spree::Taxon.first || FactoryBot.create(:taxon) }
+ product { |p| p.association(:product) }
# ensure stock item will be created for this variant
before(:create) { create(:stock_location) if Spree::StockLocation.count.zero? }
@@ -22,7 +23,6 @@ FactoryBot.define do
on_hand { 5 }
end
- product { |p| p.association(:product) }
unit_value { 1 }
unit_description { '' }
diff --git a/spec/fixtures/vcr_cassettes/ConnectAppJob/stores_connection_data_on_the_app.yml b/spec/fixtures/vcr_cassettes/ConnectAppJob/stores_connection_data_on_the_app.yml
index 42a832a80b..8c4981bae7 100644
--- a/spec/fixtures/vcr_cassettes/ConnectAppJob/stores_connection_data_on_the_app.yml
+++ b/spec/fixtures/vcr_cassettes/ConnectAppJob/stores_connection_data_on_the_app.yml
@@ -2,11 +2,11 @@
http_interactions:
- request:
method: post
- uri: https://n8n.openfoodnetwork.org.uk/webhook/regen/connect-enterprise
+ uri: https://n8n.openfoodnetwork.org/webhook/regen/connect-enterprise
body:
encoding: UTF-8
- string: '{"id":"27bc9d0a-d95c-4a36-9b16-01fdd8a82b51","at":"2023-12-21 14:54:28
- +1100","event":"connect-app","data":{"@id":"http://test.host/api/dfc/enterprises/3","access_token":"12345"}}'
+ string: '{"id":"c9f0e82a-f200-4c1a-9aa2-3a3a63c7acba","at":"2024-04-05 15:30:57
+ +1100","event":"connect-app","data":{"@id":"http://test.host/api/dfc/enterprises/3","access_token":""}}'
headers:
User-Agent:
- openfoodnetwork_webhook/1.0
@@ -21,34 +21,24 @@ http_interactions:
code: 200
message: OK
headers:
- Server:
- - nginx
- Date:
- - Thu, 21 Dec 2023 03:54:33 GMT
- Content-Type:
- - application/json; charset=utf-8
Content-Length:
- '141'
- Connection:
- - keep-alive
+ Content-Type:
+ - application/json; charset=utf-8
+ Date:
+ - Fri, 05 Apr 2024 04:30:58 GMT
Etag:
- W/"8d-Lz10bce6zwT2C429xIkj52OBWyk"
+ Strict-Transport-Security:
+ - max-age=315360000; includeSubDomains; preload
Vary:
- Accept-Encoding
- Strict-Transport-Security:
- - max-age=63072000
- X-Xss-Protection:
- - 1; mode=block
- X-Download-Options:
- - noopen
X-Content-Type-Options:
- nosniff
- X-Permitted-Cross-Domain-Policies:
- - none
- Referrer-Policy:
- - same-origin
+ X-Xss-Protection:
+ - 1; mode=block
body:
encoding: UTF-8
- string: '{"link":"https://example.net/update","destroy":"https://n8n.openfoodnetwork.org.uk/webhook/remove-enterprise?id=recjBXXXXXXXXXXXX&key=12345"}'
- recorded_at: Thu, 21 Dec 2023 03:54:33 GMT
+ string: '{"link":"https://example.net/update","destroy":"https://n8n.openfoodnetwork.org.uk/webhook/remove-enterprise?id=recjBXXXXXXXXXXXX&key="}'
+ recorded_at: Fri, 05 Apr 2024 04:30:58 GMT
recorded_with: VCR 6.2.0
diff --git a/spec/fixtures/vcr_cassettes/Connected_Apps/can_be_enabled_and_disabled.yml b/spec/fixtures/vcr_cassettes/Connected_Apps/can_be_enabled_and_disabled.yml
index b968963b7b..c38e0d8fd4 100644
--- a/spec/fixtures/vcr_cassettes/Connected_Apps/can_be_enabled_and_disabled.yml
+++ b/spec/fixtures/vcr_cassettes/Connected_Apps/can_be_enabled_and_disabled.yml
@@ -2,7 +2,7 @@
http_interactions:
- request:
method: post
- uri: https://n8n.openfoodnetwork.org.uk/webhook/regen/connect-enterprise
+ uri: https://n8n.openfoodnetwork.org/webhook/regen/connect-enterprise
body:
encoding: UTF-8
string: '{"id":"4da377c8-0c8f-4aaa-8f85-f2a218a13d6e","at":"2023-12-14 12:52:53
diff --git a/spec/fixtures/vcr_cassettes/DfcRequest/refreshes_the_access_token_on_fail.yml b/spec/fixtures/vcr_cassettes/DfcRequest/refreshes_the_access_token_on_fail.yml
new file mode 100644
index 0000000000..9a14071f73
--- /dev/null
+++ b/spec/fixtures/vcr_cassettes/DfcRequest/refreshes_the_access_token_on_fail.yml
@@ -0,0 +1,105 @@
+---
+http_interactions:
+- request:
+ method: get
+ uri: https://login.lescommuns.org/auth/realms/data-food-consortium/.well-known/openid-configuration
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ User-Agent:
+ - SWD 2.0.3
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Date:
+ - Fri, 15 Mar 2024 05:44:06 GMT
+ Content-Type:
+ - application/json;charset=UTF-8
+ Transfer-Encoding:
+ - chunked
+ Connection:
+ - keep-alive
+ Vary:
+ - Accept-Encoding
+ Set-Cookie:
+ - AUTH_SESSION_ID=1710481447.162.5206.870756|6055218c9898cae39f8ffd531999e49a;
+ Path=/; Secure; HttpOnly
+ Cache-Control:
+ - no-cache, must-revalidate, no-transform, no-store
+ Referrer-Policy:
+ - no-referrer
+ Strict-Transport-Security:
+ - max-age=15724800; includeSubDomains
+ X-Content-Type-Options:
+ - nosniff
+ X-Frame-Options:
+ - SAMEORIGIN
+ X-Xss-Protection:
+ - 1; mode=block
+ body:
+ encoding: ASCII-8BIT
+ string: '{"issuer":"https://login.lescommuns.org/auth/realms/data-food-consortium","authorization_endpoint":"https://login.lescommuns.org/auth/realms/data-food-consortium/protocol/openid-connect/auth","token_endpoint":"https://login.lescommuns.org/auth/realms/data-food-consortium/protocol/openid-connect/token","introspection_endpoint":"https://login.lescommuns.org/auth/realms/data-food-consortium/protocol/openid-connect/token/introspect","userinfo_endpoint":"https://login.lescommuns.org/auth/realms/data-food-consortium/protocol/openid-connect/userinfo","end_session_endpoint":"https://login.lescommuns.org/auth/realms/data-food-consortium/protocol/openid-connect/logout","frontchannel_logout_session_supported":true,"frontchannel_logout_supported":true,"jwks_uri":"https://login.lescommuns.org/auth/realms/data-food-consortium/protocol/openid-connect/certs","check_session_iframe":"https://login.lescommuns.org/auth/realms/data-food-consortium/protocol/openid-connect/login-status-iframe.html","grant_types_supported":["authorization_code","implicit","refresh_token","password","client_credentials","urn:openid:params:grant-type:ciba","urn:ietf:params:oauth:grant-type:device_code"],"acr_values_supported":["0","1"],"response_types_supported":["code","none","id_token","token","id_token
+ token","code id_token","code token","code id_token token"],"subject_types_supported":["public","pairwise"],"id_token_signing_alg_values_supported":["PS384","ES384","RS384","HS256","HS512","ES256","RS256","HS384","ES512","PS256","PS512","RS512"],"id_token_encryption_alg_values_supported":["RSA-OAEP","RSA-OAEP-256","RSA1_5"],"id_token_encryption_enc_values_supported":["A256GCM","A192GCM","A128GCM","A128CBC-HS256","A192CBC-HS384","A256CBC-HS512"],"userinfo_signing_alg_values_supported":["PS384","ES384","RS384","HS256","HS512","ES256","RS256","HS384","ES512","PS256","PS512","RS512","none"],"userinfo_encryption_alg_values_supported":["RSA-OAEP","RSA-OAEP-256","RSA1_5"],"userinfo_encryption_enc_values_supported":["A256GCM","A192GCM","A128GCM","A128CBC-HS256","A192CBC-HS384","A256CBC-HS512"],"request_object_signing_alg_values_supported":["PS384","ES384","RS384","HS256","HS512","ES256","RS256","HS384","ES512","PS256","PS512","RS512","none"],"request_object_encryption_alg_values_supported":["RSA-OAEP","RSA-OAEP-256","RSA1_5"],"request_object_encryption_enc_values_supported":["A256GCM","A192GCM","A128GCM","A128CBC-HS256","A192CBC-HS384","A256CBC-HS512"],"response_modes_supported":["query","fragment","form_post","query.jwt","fragment.jwt","form_post.jwt","jwt"],"registration_endpoint":"https://login.lescommuns.org/auth/realms/data-food-consortium/clients-registrations/openid-connect","token_endpoint_auth_methods_supported":["private_key_jwt","client_secret_basic","client_secret_post","tls_client_auth","client_secret_jwt"],"token_endpoint_auth_signing_alg_values_supported":["PS384","ES384","RS384","HS256","HS512","ES256","RS256","HS384","ES512","PS256","PS512","RS512"],"introspection_endpoint_auth_methods_supported":["private_key_jwt","client_secret_basic","client_secret_post","tls_client_auth","client_secret_jwt"],"introspection_endpoint_auth_signing_alg_values_supported":["PS384","ES384","RS384","HS256","HS512","ES256","RS256","HS384","ES512","PS256","PS512","RS512"],"authorization_signing_alg_values_supported":["PS384","ES384","RS384","HS256","HS512","ES256","RS256","HS384","ES512","PS256","PS512","RS512"],"authorization_encryption_alg_values_supported":["RSA-OAEP","RSA-OAEP-256","RSA1_5"],"authorization_encryption_enc_values_supported":["A256GCM","A192GCM","A128GCM","A128CBC-HS256","A192CBC-HS384","A256CBC-HS512"],"claims_supported":["aud","sub","iss","auth_time","name","given_name","family_name","preferred_username","email","acr"],"claim_types_supported":["normal"],"claims_parameter_supported":true,"scopes_supported":["openid","microprofile-jwt","phone","roles","profile","email","address","web-origins","acr","offline_access"],"request_parameter_supported":true,"request_uri_parameter_supported":true,"require_request_uri_registration":true,"code_challenge_methods_supported":["plain","S256"],"tls_client_certificate_bound_access_tokens":true,"revocation_endpoint":"https://login.lescommuns.org/auth/realms/data-food-consortium/protocol/openid-connect/revoke","revocation_endpoint_auth_methods_supported":["private_key_jwt","client_secret_basic","client_secret_post","tls_client_auth","client_secret_jwt"],"revocation_endpoint_auth_signing_alg_values_supported":["PS384","ES384","RS384","HS256","HS512","ES256","RS256","HS384","ES512","PS256","PS512","RS512"],"backchannel_logout_supported":true,"backchannel_logout_session_supported":true,"device_authorization_endpoint":"https://login.lescommuns.org/auth/realms/data-food-consortium/protocol/openid-connect/auth/device","backchannel_token_delivery_modes_supported":["poll","ping"],"backchannel_authentication_endpoint":"https://login.lescommuns.org/auth/realms/data-food-consortium/protocol/openid-connect/ext/ciba/auth","backchannel_authentication_request_signing_alg_values_supported":["PS384","ES384","RS384","ES256","RS256","ES512","PS256","PS512","RS512"],"require_pushed_authorization_requests":false,"pushed_authorization_request_endpoint":"https://login.lescommuns.org/auth/realms/data-food-consortium/protocol/openid-connect/ext/par/request","mtls_endpoint_aliases":{"token_endpoint":"https://login.lescommuns.org/auth/realms/data-food-consortium/protocol/openid-connect/token","revocation_endpoint":"https://login.lescommuns.org/auth/realms/data-food-consortium/protocol/openid-connect/revoke","introspection_endpoint":"https://login.lescommuns.org/auth/realms/data-food-consortium/protocol/openid-connect/token/introspect","device_authorization_endpoint":"https://login.lescommuns.org/auth/realms/data-food-consortium/protocol/openid-connect/auth/device","registration_endpoint":"https://login.lescommuns.org/auth/realms/data-food-consortium/clients-registrations/openid-connect","userinfo_endpoint":"https://login.lescommuns.org/auth/realms/data-food-consortium/protocol/openid-connect/userinfo","pushed_authorization_request_endpoint":"https://login.lescommuns.org/auth/realms/data-food-consortium/protocol/openid-connect/ext/par/request","backchannel_authentication_endpoint":"https://login.lescommuns.org/auth/realms/data-food-consortium/protocol/openid-connect/ext/ciba/auth"},"authorization_response_iss_parameter_supported":true}'
+ recorded_at: Fri, 15 Mar 2024 05:44:05 GMT
+- request:
+ method: post
+ uri: https://login.lescommuns.org/auth/realms/data-food-consortium/protocol/openid-connect/token
+ body:
+ encoding: UTF-8
+ string: grant_type=refresh_token&refresh_token=
+ headers:
+ User-Agent:
+ - Rack::OAuth2 (2.2.1)
+ Authorization:
+ - ""
+ Content-Type:
+ - application/x-www-form-urlencoded
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Date:
+ - Fri, 15 Mar 2024 05:44:07 GMT
+ Content-Type:
+ - application/json
+ Transfer-Encoding:
+ - chunked
+ Connection:
+ - keep-alive
+ Vary:
+ - Accept-Encoding
+ Set-Cookie:
+ - AUTH_SESSION_ID=1710481448.492.2309.531618|6055218c9898cae39f8ffd531999e49a;
+ Path=/; Secure; HttpOnly
+ Cache-Control:
+ - no-store
+ Pragma:
+ - no-cache
+ Referrer-Policy:
+ - no-referrer
+ Strict-Transport-Security:
+ - max-age=15724800; includeSubDomains
+ X-Content-Type-Options:
+ - nosniff
+ X-Frame-Options:
+ - SAMEORIGIN
+ X-Xss-Protection:
+ - 1; mode=block
+ body:
+ encoding: ASCII-8BIT
+ string: '{"access_token":"","expires_in":1800,"refresh_expires_in":28510621,"refresh_token":"","token_type":"Bearer","id_token":"","not-before-policy":0,"session_state":"989db9a7-584c-4eeb-bff5-db77b53e8def","scope":"openid
+ profile email"}'
+ recorded_at: Fri, 15 Mar 2024 05:44:07 GMT
+recorded_with: VCR 6.2.0
diff --git a/spec/fixtures/vcr_cassettes/Stripe-v10.10.0/Spree_Gateway_StripeSCA/_error_message/when_payment_intent_state_is_not_in_requires_capture_state/does_not_succeed_if_payment_intent_state_is_not_requires_capture.yml b/spec/fixtures/vcr_cassettes/Stripe-v10.10.0/Spree_Gateway_StripeSCA/_error_message/when_payment_intent_state_is_not_in_requires_capture_state/does_not_succeed_if_payment_intent_state_is_not_requires_capture.yml
deleted file mode 100644
index 13c2a0be36..0000000000
--- a/spec/fixtures/vcr_cassettes/Stripe-v10.10.0/Spree_Gateway_StripeSCA/_error_message/when_payment_intent_state_is_not_in_requires_capture_state/does_not_succeed_if_payment_intent_state_is_not_requires_capture.yml
+++ /dev/null
@@ -1,381 +0,0 @@
----
-http_interactions:
-- request:
- method: get
- uri: https://api.stripe.com/v1/payment_methods/pm_card_mastercard
- body:
- encoding: US-ASCII
- string: ''
- headers:
- User-Agent:
- - Stripe/v1 RubyBindings/10.10.0
- Authorization:
- - Bearer
- Content-Type:
- - application/x-www-form-urlencoded
- X-Stripe-Client-Telemetry:
- - '{"last_request_metrics":{"request_id":"req_0zdTS2eXS52wv3","request_duration_ms":1375}}'
- Stripe-Version:
- - '2023-10-16'
- X-Stripe-Client-User-Agent:
- - '{"bindings_version":"10.10.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
- version 5.15.0-92-generic (buildd@lcy02-amd64-002) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2)
- 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #102~20.04.1-Ubuntu SMP Mon
- Jan 15 13:09:14 UTC 2024","hostname":"gaetan-Dell-G15"}'
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Server:
- - nginx
- Date:
- - Wed, 28 Feb 2024 04:23:13 GMT
- Content-Type:
- - application/json
- Content-Length:
- - '977'
- Connection:
- - keep-alive
- Access-Control-Allow-Credentials:
- - 'true'
- Access-Control-Allow-Methods:
- - GET,HEAD,PUT,PATCH,POST,DELETE
- Access-Control-Allow-Origin:
- - "*"
- Access-Control-Expose-Headers:
- - Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required,
- X-Stripe-Privileged-Session-Required
- Access-Control-Max-Age:
- - '300'
- Cache-Control:
- - no-cache, no-store
- Content-Security-Policy:
- - report-uri https://q.stripe.com/csp-report?p=v1%2Fpayment_methods%2F%3Apayment_method;
- block-all-mixed-content; default-src 'none'; base-uri 'none'; form-action
- 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample';
- style-src 'self'
- Request-Id:
- - req_TC671rsepSNnXC
- Stripe-Version:
- - '2023-10-16'
- Vary:
- - Origin
- X-Stripe-Routing-Context-Priority-Tier:
- - api-testmode
- Strict-Transport-Security:
- - max-age=63072000; includeSubDomains; preload
- body:
- encoding: UTF-8
- string: |-
- {
- "id": "pm_1OoeflKuuB1fWySn43Ej2zjy",
- "object": "payment_method",
- "billing_details": {
- "address": {
- "city": null,
- "country": null,
- "line1": null,
- "line2": null,
- "postal_code": null,
- "state": null
- },
- "email": null,
- "name": null,
- "phone": null
- },
- "card": {
- "brand": "mastercard",
- "checks": {
- "address_line1_check": null,
- "address_postal_code_check": null,
- "cvc_check": "unchecked"
- },
- "country": "US",
- "display_brand": "mastercard",
- "exp_month": 2,
- "exp_year": 2025,
- "fingerprint": "BL35fEFVcTTS5wpE",
- "funding": "credit",
- "generated_from": null,
- "last4": "4444",
- "networks": {
- "available": [
- "mastercard"
- ],
- "preferred": null
- },
- "three_d_secure_usage": {
- "supported": true
- },
- "wallet": null
- },
- "created": 1709094193,
- "customer": null,
- "livemode": false,
- "metadata": {},
- "type": "card"
- }
- recorded_at: Wed, 28 Feb 2024 04:23:13 GMT
-- request:
- method: post
- uri: https://api.stripe.com/v1/payment_intents
- body:
- encoding: UTF-8
- string: amount=1000¤cy=aud&payment_method=pm_1OoeflKuuB1fWySn43Ej2zjy&payment_method_types[0]=card&capture_method=manual
- headers:
- User-Agent:
- - Stripe/v1 RubyBindings/10.10.0
- Authorization:
- - Bearer
- Content-Type:
- - application/x-www-form-urlencoded
- X-Stripe-Client-Telemetry:
- - '{"last_request_metrics":{"request_id":"req_TC671rsepSNnXC","request_duration_ms":342}}'
- Stripe-Version:
- - '2023-10-16'
- X-Stripe-Client-User-Agent:
- - '{"bindings_version":"10.10.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
- version 5.15.0-92-generic (buildd@lcy02-amd64-002) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2)
- 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #102~20.04.1-Ubuntu SMP Mon
- Jan 15 13:09:14 UTC 2024","hostname":"gaetan-Dell-G15"}'
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Server:
- - nginx
- Date:
- - Wed, 28 Feb 2024 04:23:14 GMT
- Content-Type:
- - application/json
- Content-Length:
- - '1344'
- Connection:
- - keep-alive
- Access-Control-Allow-Credentials:
- - 'true'
- Access-Control-Allow-Methods:
- - GET,HEAD,PUT,PATCH,POST,DELETE
- Access-Control-Allow-Origin:
- - "*"
- Access-Control-Expose-Headers:
- - Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required,
- X-Stripe-Privileged-Session-Required
- Access-Control-Max-Age:
- - '300'
- Cache-Control:
- - no-cache, no-store
- Content-Security-Policy:
- - report-uri https://q.stripe.com/csp-report?p=v1%2Fpayment_intents; block-all-mixed-content;
- default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none';
- img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'
- Idempotency-Key:
- - e62b12fb-ca7d-4731-a40d-3ea1fe68ea4e
- Original-Request:
- - req_iELWfIGpVGFgJW
- Request-Id:
- - req_iELWfIGpVGFgJW
- Stripe-Should-Retry:
- - 'false'
- Stripe-Version:
- - '2023-10-16'
- Vary:
- - Origin
- X-Stripe-Routing-Context-Priority-Tier:
- - api-testmode
- Strict-Transport-Security:
- - max-age=63072000; includeSubDomains; preload
- body:
- encoding: UTF-8
- string: |-
- {
- "id": "pi_3OoeflKuuB1fWySn128KWMQF",
- "object": "payment_intent",
- "amount": 1000,
- "amount_capturable": 0,
- "amount_details": {
- "tip": {}
- },
- "amount_received": 0,
- "application": null,
- "application_fee_amount": null,
- "automatic_payment_methods": null,
- "canceled_at": null,
- "cancellation_reason": null,
- "capture_method": "manual",
- "client_secret": "pi_3OoeflKuuB1fWySn128KWMQF_secret_AFZlxzNaGKQhJwyoycEnNnXt9",
- "confirmation_method": "automatic",
- "created": 1709094193,
- "currency": "aud",
- "customer": null,
- "description": null,
- "invoice": null,
- "last_payment_error": null,
- "latest_charge": null,
- "livemode": false,
- "metadata": {},
- "next_action": null,
- "on_behalf_of": null,
- "payment_method": "pm_1OoeflKuuB1fWySn43Ej2zjy",
- "payment_method_configuration_details": null,
- "payment_method_options": {
- "card": {
- "installments": null,
- "mandate_options": null,
- "network": null,
- "request_three_d_secure": "automatic"
- }
- },
- "payment_method_types": [
- "card"
- ],
- "processing": null,
- "receipt_email": null,
- "review": null,
- "setup_future_usage": null,
- "shipping": null,
- "source": null,
- "statement_descriptor": null,
- "statement_descriptor_suffix": null,
- "status": "requires_confirmation",
- "transfer_data": null,
- "transfer_group": null
- }
- recorded_at: Wed, 28 Feb 2024 04:23:14 GMT
-- request:
- method: get
- uri: https://api.stripe.com/v1/payment_intents/pi_3OoeflKuuB1fWySn128KWMQF
- body:
- encoding: US-ASCII
- string: ''
- headers:
- User-Agent:
- - Stripe/v1 RubyBindings/10.10.0
- Authorization:
- - Bearer
- Content-Type:
- - application/x-www-form-urlencoded
- X-Stripe-Client-Telemetry:
- - '{"last_request_metrics":{"request_id":"req_iELWfIGpVGFgJW","request_duration_ms":471}}'
- Stripe-Version:
- - '2023-10-16'
- X-Stripe-Client-User-Agent:
- - '{"bindings_version":"10.10.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
- version 5.15.0-92-generic (buildd@lcy02-amd64-002) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2)
- 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #102~20.04.1-Ubuntu SMP Mon
- Jan 15 13:09:14 UTC 2024","hostname":"gaetan-Dell-G15"}'
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Server:
- - nginx
- Date:
- - Wed, 28 Feb 2024 04:23:14 GMT
- Content-Type:
- - application/json
- Content-Length:
- - '1344'
- Connection:
- - keep-alive
- Access-Control-Allow-Credentials:
- - 'true'
- Access-Control-Allow-Methods:
- - GET,HEAD,PUT,PATCH,POST,DELETE
- Access-Control-Allow-Origin:
- - "*"
- Access-Control-Expose-Headers:
- - Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required,
- X-Stripe-Privileged-Session-Required
- Access-Control-Max-Age:
- - '300'
- Cache-Control:
- - no-cache, no-store
- Content-Security-Policy:
- - report-uri https://q.stripe.com/csp-report?p=v1%2Fpayment_intents%2F%3Aintent;
- block-all-mixed-content; default-src 'none'; base-uri 'none'; form-action
- 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample';
- style-src 'self'
- Request-Id:
- - req_urrrJYueyeMAx7
- Stripe-Version:
- - '2023-10-16'
- Vary:
- - Origin
- X-Stripe-Routing-Context-Priority-Tier:
- - api-testmode
- Strict-Transport-Security:
- - max-age=63072000; includeSubDomains; preload
- body:
- encoding: UTF-8
- string: |-
- {
- "id": "pi_3OoeflKuuB1fWySn128KWMQF",
- "object": "payment_intent",
- "amount": 1000,
- "amount_capturable": 0,
- "amount_details": {
- "tip": {}
- },
- "amount_received": 0,
- "application": null,
- "application_fee_amount": null,
- "automatic_payment_methods": null,
- "canceled_at": null,
- "cancellation_reason": null,
- "capture_method": "manual",
- "client_secret": "pi_3OoeflKuuB1fWySn128KWMQF_secret_AFZlxzNaGKQhJwyoycEnNnXt9",
- "confirmation_method": "automatic",
- "created": 1709094193,
- "currency": "aud",
- "customer": null,
- "description": null,
- "invoice": null,
- "last_payment_error": null,
- "latest_charge": null,
- "livemode": false,
- "metadata": {},
- "next_action": null,
- "on_behalf_of": null,
- "payment_method": "pm_1OoeflKuuB1fWySn43Ej2zjy",
- "payment_method_configuration_details": null,
- "payment_method_options": {
- "card": {
- "installments": null,
- "mandate_options": null,
- "network": null,
- "request_three_d_secure": "automatic"
- }
- },
- "payment_method_types": [
- "card"
- ],
- "processing": null,
- "receipt_email": null,
- "review": null,
- "setup_future_usage": null,
- "shipping": null,
- "source": null,
- "statement_descriptor": null,
- "statement_descriptor_suffix": null,
- "status": "requires_confirmation",
- "transfer_data": null,
- "transfer_group": null
- }
- recorded_at: Wed, 28 Feb 2024 04:23:14 GMT
-recorded_with: VCR 6.2.0
diff --git a/spec/fixtures/vcr_cassettes/Stripe-v10.10.0/Spree_Gateway_StripeSCA/_purchase/provides_an_error_message_to_help_developer_debug.yml b/spec/fixtures/vcr_cassettes/Stripe-v10.10.0/Spree_Gateway_StripeSCA/_purchase/provides_an_error_message_to_help_developer_debug.yml
deleted file mode 100644
index 4a1cd05e68..0000000000
--- a/spec/fixtures/vcr_cassettes/Stripe-v10.10.0/Spree_Gateway_StripeSCA/_purchase/provides_an_error_message_to_help_developer_debug.yml
+++ /dev/null
@@ -1,387 +0,0 @@
----
-http_interactions:
-- request:
- method: get
- uri: https://api.stripe.com/v1/payment_methods/pm_card_mastercard
- body:
- encoding: US-ASCII
- string: ''
- headers:
- User-Agent:
- - Stripe/v1 RubyBindings/10.10.0
- Authorization:
- - Bearer
- Content-Type:
- - application/x-www-form-urlencoded
- X-Stripe-Client-Telemetry:
- - '{"last_request_metrics":{"request_id":"req_XPJt16n7nTK00g","request_duration_ms":340}}'
- Stripe-Version:
- - '2023-10-16'
- X-Stripe-Client-User-Agent:
- - '{"bindings_version":"10.10.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
- version 5.15.0-92-generic (buildd@lcy02-amd64-002) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2)
- 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #102~20.04.1-Ubuntu SMP Mon
- Jan 15 13:09:14 UTC 2024","hostname":"gaetan-Dell-G15"}'
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Server:
- - nginx
- Date:
- - Wed, 28 Feb 2024 04:22:55 GMT
- Content-Type:
- - application/json
- Content-Length:
- - '977'
- Connection:
- - keep-alive
- Access-Control-Allow-Credentials:
- - 'true'
- Access-Control-Allow-Methods:
- - GET,HEAD,PUT,PATCH,POST,DELETE
- Access-Control-Allow-Origin:
- - "*"
- Access-Control-Expose-Headers:
- - Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required,
- X-Stripe-Privileged-Session-Required
- Access-Control-Max-Age:
- - '300'
- Cache-Control:
- - no-cache, no-store
- Content-Security-Policy:
- - report-uri https://q.stripe.com/csp-report?p=v1%2Fpayment_methods%2F%3Apayment_method;
- block-all-mixed-content; default-src 'none'; base-uri 'none'; form-action
- 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample';
- style-src 'self'
- Request-Id:
- - req_PkEIZ0ytajfFi0
- Stripe-Version:
- - '2023-10-16'
- Vary:
- - Origin
- X-Stripe-Routing-Context-Priority-Tier:
- - api-testmode
- Strict-Transport-Security:
- - max-age=63072000; includeSubDomains; preload
- body:
- encoding: UTF-8
- string: |-
- {
- "id": "pm_1OoefTKuuB1fWySnZGdqP7aU",
- "object": "payment_method",
- "billing_details": {
- "address": {
- "city": null,
- "country": null,
- "line1": null,
- "line2": null,
- "postal_code": null,
- "state": null
- },
- "email": null,
- "name": null,
- "phone": null
- },
- "card": {
- "brand": "mastercard",
- "checks": {
- "address_line1_check": null,
- "address_postal_code_check": null,
- "cvc_check": "unchecked"
- },
- "country": "US",
- "display_brand": "mastercard",
- "exp_month": 2,
- "exp_year": 2025,
- "fingerprint": "BL35fEFVcTTS5wpE",
- "funding": "credit",
- "generated_from": null,
- "last4": "4444",
- "networks": {
- "available": [
- "mastercard"
- ],
- "preferred": null
- },
- "three_d_secure_usage": {
- "supported": true
- },
- "wallet": null
- },
- "created": 1709094175,
- "customer": null,
- "livemode": false,
- "metadata": {},
- "type": "card"
- }
- recorded_at: Wed, 28 Feb 2024 04:22:55 GMT
-- request:
- method: post
- uri: https://api.stripe.com/v1/payment_intents
- body:
- encoding: UTF-8
- string: amount=1000¤cy=aud&payment_method=pm_1OoefTKuuB1fWySnZGdqP7aU&payment_method_types[0]=card&capture_method=manual
- headers:
- User-Agent:
- - Stripe/v1 RubyBindings/10.10.0
- Authorization:
- - Bearer
- Content-Type:
- - application/x-www-form-urlencoded
- X-Stripe-Client-Telemetry:
- - '{"last_request_metrics":{"request_id":"req_PkEIZ0ytajfFi0","request_duration_ms":393}}'
- Stripe-Version:
- - '2023-10-16'
- X-Stripe-Client-User-Agent:
- - '{"bindings_version":"10.10.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
- version 5.15.0-92-generic (buildd@lcy02-amd64-002) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2)
- 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #102~20.04.1-Ubuntu SMP Mon
- Jan 15 13:09:14 UTC 2024","hostname":"gaetan-Dell-G15"}'
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Server:
- - nginx
- Date:
- - Wed, 28 Feb 2024 04:22:55 GMT
- Content-Type:
- - application/json
- Content-Length:
- - '1344'
- Connection:
- - keep-alive
- Access-Control-Allow-Credentials:
- - 'true'
- Access-Control-Allow-Methods:
- - GET,HEAD,PUT,PATCH,POST,DELETE
- Access-Control-Allow-Origin:
- - "*"
- Access-Control-Expose-Headers:
- - Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required,
- X-Stripe-Privileged-Session-Required
- Access-Control-Max-Age:
- - '300'
- Cache-Control:
- - no-cache, no-store
- Content-Security-Policy:
- - report-uri https://q.stripe.com/csp-report?p=v1%2Fpayment_intents; block-all-mixed-content;
- default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none';
- img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'
- Idempotency-Key:
- - 2483ffe7-b417-4399-aa5d-8e07a07f3c4a
- Original-Request:
- - req_8qPyCfGouYra9P
- Request-Id:
- - req_8qPyCfGouYra9P
- Stripe-Should-Retry:
- - 'false'
- Stripe-Version:
- - '2023-10-16'
- Vary:
- - Origin
- X-Stripe-Routing-Context-Priority-Tier:
- - api-testmode
- Strict-Transport-Security:
- - max-age=63072000; includeSubDomains; preload
- body:
- encoding: UTF-8
- string: |-
- {
- "id": "pi_3OoefTKuuB1fWySn1nUc8iAF",
- "object": "payment_intent",
- "amount": 1000,
- "amount_capturable": 0,
- "amount_details": {
- "tip": {}
- },
- "amount_received": 0,
- "application": null,
- "application_fee_amount": null,
- "automatic_payment_methods": null,
- "canceled_at": null,
- "cancellation_reason": null,
- "capture_method": "manual",
- "client_secret": "pi_3OoefTKuuB1fWySn1nUc8iAF_secret_P1PkiljJQA3bUt1qjafq1N30Y",
- "confirmation_method": "automatic",
- "created": 1709094175,
- "currency": "aud",
- "customer": null,
- "description": null,
- "invoice": null,
- "last_payment_error": null,
- "latest_charge": null,
- "livemode": false,
- "metadata": {},
- "next_action": null,
- "on_behalf_of": null,
- "payment_method": "pm_1OoefTKuuB1fWySnZGdqP7aU",
- "payment_method_configuration_details": null,
- "payment_method_options": {
- "card": {
- "installments": null,
- "mandate_options": null,
- "network": null,
- "request_three_d_secure": "automatic"
- }
- },
- "payment_method_types": [
- "card"
- ],
- "processing": null,
- "receipt_email": null,
- "review": null,
- "setup_future_usage": null,
- "shipping": null,
- "source": null,
- "statement_descriptor": null,
- "statement_descriptor_suffix": null,
- "status": "requires_confirmation",
- "transfer_data": null,
- "transfer_group": null
- }
- recorded_at: Wed, 28 Feb 2024 04:22:55 GMT
-- request:
- method: post
- uri: https://api.stripe.com/v1/payment_intents/pi_3OoefTKuuB1fWySn1nUc8iAF/confirm
- body:
- encoding: US-ASCII
- string: ''
- headers:
- User-Agent:
- - Stripe/v1 RubyBindings/10.10.0
- Authorization:
- - Bearer
- Content-Type:
- - application/x-www-form-urlencoded
- X-Stripe-Client-Telemetry:
- - '{"last_request_metrics":{"request_id":"req_8qPyCfGouYra9P","request_duration_ms":408}}'
- Stripe-Version:
- - '2023-10-16'
- X-Stripe-Client-User-Agent:
- - '{"bindings_version":"10.10.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
- version 5.15.0-92-generic (buildd@lcy02-amd64-002) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2)
- 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #102~20.04.1-Ubuntu SMP Mon
- Jan 15 13:09:14 UTC 2024","hostname":"gaetan-Dell-G15"}'
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Server:
- - nginx
- Date:
- - Wed, 28 Feb 2024 04:22:56 GMT
- Content-Type:
- - application/json
- Content-Length:
- - '1367'
- Connection:
- - keep-alive
- Access-Control-Allow-Credentials:
- - 'true'
- Access-Control-Allow-Methods:
- - GET,HEAD,PUT,PATCH,POST,DELETE
- Access-Control-Allow-Origin:
- - "*"
- Access-Control-Expose-Headers:
- - Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required,
- X-Stripe-Privileged-Session-Required
- Access-Control-Max-Age:
- - '300'
- Cache-Control:
- - no-cache, no-store
- Content-Security-Policy:
- - report-uri https://q.stripe.com/csp-report?p=v1%2Fpayment_intents%2F%3Aintent%2Fconfirm;
- block-all-mixed-content; default-src 'none'; base-uri 'none'; form-action
- 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample';
- style-src 'self'
- Idempotency-Key:
- - 680027e4-2ed8-4df3-9f5e-41477748d594
- Original-Request:
- - req_RZnI8d1lN97iCq
- Request-Id:
- - req_RZnI8d1lN97iCq
- Stripe-Should-Retry:
- - 'false'
- Stripe-Version:
- - '2023-10-16'
- Vary:
- - Origin
- X-Stripe-Routing-Context-Priority-Tier:
- - api-testmode
- Strict-Transport-Security:
- - max-age=63072000; includeSubDomains; preload
- body:
- encoding: UTF-8
- string: |-
- {
- "id": "pi_3OoefTKuuB1fWySn1nUc8iAF",
- "object": "payment_intent",
- "amount": 1000,
- "amount_capturable": 1000,
- "amount_details": {
- "tip": {}
- },
- "amount_received": 0,
- "application": null,
- "application_fee_amount": null,
- "automatic_payment_methods": null,
- "canceled_at": null,
- "cancellation_reason": null,
- "capture_method": "manual",
- "client_secret": "pi_3OoefTKuuB1fWySn1nUc8iAF_secret_P1PkiljJQA3bUt1qjafq1N30Y",
- "confirmation_method": "automatic",
- "created": 1709094175,
- "currency": "aud",
- "customer": null,
- "description": null,
- "invoice": null,
- "last_payment_error": null,
- "latest_charge": "ch_3OoefTKuuB1fWySn115Vyr1m",
- "livemode": false,
- "metadata": {},
- "next_action": null,
- "on_behalf_of": null,
- "payment_method": "pm_1OoefTKuuB1fWySnZGdqP7aU",
- "payment_method_configuration_details": null,
- "payment_method_options": {
- "card": {
- "installments": null,
- "mandate_options": null,
- "network": null,
- "request_three_d_secure": "automatic"
- }
- },
- "payment_method_types": [
- "card"
- ],
- "processing": null,
- "receipt_email": null,
- "review": null,
- "setup_future_usage": null,
- "shipping": null,
- "source": null,
- "statement_descriptor": null,
- "statement_descriptor_suffix": null,
- "status": "requires_capture",
- "transfer_data": null,
- "transfer_group": null
- }
- recorded_at: Wed, 28 Feb 2024 04:22:56 GMT
-recorded_with: VCR 6.2.0
diff --git a/spec/fixtures/vcr_cassettes/Stripe-v10.10.0/StripeAccount/deauthorize_and_destroy/when_the_Stripe_API_disconnect_fails/destroys_the_record_and_notifies_Bugsnag.yml b/spec/fixtures/vcr_cassettes/Stripe-v10.10.0/StripeAccount/deauthorize_and_destroy/when_the_Stripe_API_disconnect_fails/destroys_the_record_and_notifies_Bugsnag.yml
deleted file mode 100644
index ed1ae3c092..0000000000
--- a/spec/fixtures/vcr_cassettes/Stripe-v10.10.0/StripeAccount/deauthorize_and_destroy/when_the_Stripe_API_disconnect_fails/destroys_the_record_and_notifies_Bugsnag.yml
+++ /dev/null
@@ -1,94 +0,0 @@
----
-http_interactions:
-- request:
- method: post
- uri: https://connect.stripe.com/oauth/deauthorize
- body:
- encoding: UTF-8
- string: stripe_user_id=&client_id=bogus_client_id
- headers:
- User-Agent:
- - Stripe/v1 RubyBindings/10.10.0
- Authorization:
- - Bearer
- Content-Type:
- - application/x-www-form-urlencoded
- X-Stripe-Client-Telemetry:
- - '{"last_request_metrics":{"request_id":"req_4LwwjkiCeJTWny","request_duration_ms":281}}'
- Stripe-Version:
- - '2023-10-16'
- X-Stripe-Client-User-Agent:
- - '{"bindings_version":"10.10.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
- version 5.15.0-92-generic (buildd@lcy02-amd64-002) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2)
- 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #102~20.04.1-Ubuntu SMP Mon
- Jan 15 13:09:14 UTC 2024","hostname":"gaetan-Dell-G15"}'
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 401
- message: Unauthorized
- headers:
- Server:
- - nginx
- Date:
- - Mon, 26 Feb 2024 23:18:26 GMT
- Content-Type:
- - application/json; charset=utf-8
- Content-Length:
- - '96'
- Connection:
- - keep-alive
- Cache-Control:
- - max-age=0, no-cache, no-store, must-revalidate
- Content-Security-Policy:
- - report-uri /csp-report?p=%2Foauth%2Fdeauthorize;block-all-mixed-content;default-src
- 'none' 'report-sample';base-uri 'none';form-action 'none';style-src 'unsafe-inline';frame-ancestors
- 'self';connect-src 'self';img-src 'self' https://b.stripecdn.com
- Cross-Origin-Opener-Policy-Report-Only:
- - same-origin; report-to=https://q.stripe.com/coop-report
- Expires:
- - '0'
- Pragma:
- - no-cache
- Referrer-Policy:
- - strict-origin-when-cross-origin
- Request-Id:
- - req_7fO2Qr9kbyPu69
- Set-Cookie:
- - __Host-session=; path=/; max-age=0; expires=Thu, 01 Jan 1970 00:00:00 GMT;
- secure; SameSite=None
- - __stripe_orig_props=%7B%22referrer%22%3A%22%22%2C%22landing%22%3A%22https%3A%2F%2Fconnect.stripe.com%2Foauth%2Fdeauthorize%22%7D;
- domain=stripe.com; path=/; expires=Tue, 25 Feb 2025 23:18:26 GMT; secure;
- HttpOnly; SameSite=Lax
- - cid=ee664136-6838-4c86-a1f9-91a3b3fc5a41; domain=stripe.com; path=/; expires=Sun,
- 26 May 2024 23:18:26 GMT; secure; SameSite=Lax
- - machine_identifier=Gx4pHleLfZeFAutuct1xCkIgOmKgnG%2BLi1RTjGMAvIPH3d8fqGxaX9Q8JYPdYRWP2lQ%3D;
- domain=stripe.com; path=/; expires=Tue, 25 Feb 2025 23:18:26 GMT; secure;
- HttpOnly; SameSite=Lax
- - private_machine_identifier=KGppW1n2ABmK0lVDtoVuQv%2BxCs6ofNCGmRyH2EZwuBa9EWrRDG2m5TexKWodBWTsf5I%3D;
- domain=stripe.com; path=/; expires=Tue, 25 Feb 2025 23:18:26 GMT; secure;
- HttpOnly; SameSite=None
- - site-auth=; domain=stripe.com; path=/; max-age=0; expires=Thu, 01 Jan 1970
- 00:00:00 GMT; secure
- - stripe.csrf=_1RiSdotefTTRKOljC7SPCfweSwVa7kPrPSaruSRLeMaAGkLhHO4AtoI9Yf3yyFZ3jtVCXvCpYh1BaE6AcD9Ijw-AYTZVJxRk_zJWebqcTj3jja84oPHuqVHzVB488Oa49MoUU7TRQ%3D%3D;
- domain=stripe.com; path=/; secure; HttpOnly; SameSite=None
- Stripe-Kill-Route:
- - "[]"
- Www-Authenticate:
- - Bearer realm="Stripe"
- X-Stripe-Routing-Context-Priority-Tier:
- - api-testmode
- Strict-Transport-Security:
- - max-age=63072000; includeSubDomains; preload
- body:
- encoding: UTF-8
- string: |-
- {
- "error": "invalid_client",
- "error_description": "No such application: 'bogus_client_id'"
- }
- recorded_at: Mon, 26 Feb 2024 23:18:26 GMT
-recorded_with: VCR 6.2.0
diff --git a/spec/fixtures/vcr_cassettes/Stripe-v10.10.0/Stripe_CreditCardRemover/_remove/Stripe_customer_does_not_exist/raises_an_error.yml b/spec/fixtures/vcr_cassettes/Stripe-v10.10.0/Stripe_CreditCardRemover/_remove/Stripe_customer_does_not_exist/raises_an_error.yml
deleted file mode 100644
index 0030774da8..0000000000
--- a/spec/fixtures/vcr_cassettes/Stripe-v10.10.0/Stripe_CreditCardRemover/_remove/Stripe_customer_does_not_exist/raises_an_error.yml
+++ /dev/null
@@ -1,212 +0,0 @@
----
-http_interactions:
-- request:
- method: post
- uri: https://api.stripe.com/v1/payment_methods
- body:
- encoding: UTF-8
- string: type=card&card[number]=4242424242424242&card[exp_month]=8&card[exp_year]=2025&card[cvc]=314
- headers:
- User-Agent:
- - Stripe/v1 RubyBindings/10.10.0
- Authorization:
- - Bearer
- Content-Type:
- - application/x-www-form-urlencoded
- X-Stripe-Client-Telemetry:
- - '{"last_request_metrics":{"request_id":"req_B0FhYsp0bBTNRp","request_duration_ms":640}}'
- Stripe-Version:
- - '2023-10-16'
- X-Stripe-Client-User-Agent:
- - '{"bindings_version":"10.10.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
- version 5.15.0-92-generic (buildd@lcy02-amd64-002) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2)
- 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #102~20.04.1-Ubuntu SMP Mon
- Jan 15 13:09:14 UTC 2024","hostname":"gaetan-Dell-G15"}'
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Server:
- - nginx
- Date:
- - Mon, 26 Feb 2024 23:16:20 GMT
- Content-Type:
- - application/json
- Content-Length:
- - '959'
- Connection:
- - keep-alive
- Access-Control-Allow-Credentials:
- - 'true'
- Access-Control-Allow-Methods:
- - GET,HEAD,PUT,PATCH,POST,DELETE
- Access-Control-Allow-Origin:
- - "*"
- Access-Control-Expose-Headers:
- - Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required,
- X-Stripe-Privileged-Session-Required
- Access-Control-Max-Age:
- - '300'
- Cache-Control:
- - no-cache, no-store
- Content-Security-Policy:
- - report-uri https://q.stripe.com/csp-report?p=v1%2Fpayment_methods; block-all-mixed-content;
- default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none';
- img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'
- Idempotency-Key:
- - 39ab9bf7-aea4-4b8e-a577-5ddadd144e67
- Original-Request:
- - req_8AzdCIco8PUIix
- Request-Id:
- - req_8AzdCIco8PUIix
- Stripe-Should-Retry:
- - 'false'
- Stripe-Version:
- - '2023-10-16'
- Vary:
- - Origin
- X-Stripe-Routing-Context-Priority-Tier:
- - api-testmode
- Strict-Transport-Security:
- - max-age=63072000; includeSubDomains; preload
- body:
- encoding: UTF-8
- string: |-
- {
- "id": "pm_1OoDPEKuuB1fWySn9FVslQQ3",
- "object": "payment_method",
- "billing_details": {
- "address": {
- "city": null,
- "country": null,
- "line1": null,
- "line2": null,
- "postal_code": null,
- "state": null
- },
- "email": null,
- "name": null,
- "phone": null
- },
- "card": {
- "brand": "visa",
- "checks": {
- "address_line1_check": null,
- "address_postal_code_check": null,
- "cvc_check": "unchecked"
- },
- "country": "US",
- "display_brand": "visa",
- "exp_month": 8,
- "exp_year": 2025,
- "fingerprint": "6E6tgVjx6U65iHFV",
- "funding": "credit",
- "generated_from": null,
- "last4": "4242",
- "networks": {
- "available": [
- "visa"
- ],
- "preferred": null
- },
- "three_d_secure_usage": {
- "supported": true
- },
- "wallet": null
- },
- "created": 1708989380,
- "customer": null,
- "livemode": false,
- "metadata": {},
- "type": "card"
- }
- recorded_at: Mon, 26 Feb 2024 23:16:20 GMT
-- request:
- method: get
- uri: https://api.stripe.com/v1/customers/non_existing_customer_id
- body:
- encoding: US-ASCII
- string: ''
- headers:
- User-Agent:
- - Stripe/v1 RubyBindings/10.10.0
- Authorization:
- - Bearer
- Content-Type:
- - application/x-www-form-urlencoded
- X-Stripe-Client-Telemetry:
- - '{"last_request_metrics":{"request_id":"req_8AzdCIco8PUIix","request_duration_ms":505}}'
- Stripe-Version:
- - '2023-10-16'
- X-Stripe-Client-User-Agent:
- - '{"bindings_version":"10.10.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
- version 5.15.0-92-generic (buildd@lcy02-amd64-002) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2)
- 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #102~20.04.1-Ubuntu SMP Mon
- Jan 15 13:09:14 UTC 2024","hostname":"gaetan-Dell-G15"}'
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 404
- message: Not Found
- headers:
- Server:
- - nginx
- Date:
- - Mon, 26 Feb 2024 23:16:20 GMT
- Content-Type:
- - application/json
- Content-Length:
- - '339'
- Connection:
- - keep-alive
- Access-Control-Allow-Credentials:
- - 'true'
- Access-Control-Allow-Methods:
- - GET,HEAD,PUT,PATCH,POST,DELETE
- Access-Control-Allow-Origin:
- - "*"
- Access-Control-Expose-Headers:
- - Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required,
- X-Stripe-Privileged-Session-Required
- Access-Control-Max-Age:
- - '300'
- Cache-Control:
- - no-cache, no-store
- Content-Security-Policy:
- - report-uri https://q.stripe.com/csp-report?p=v1%2Fcustomers%2F%3Acustomer;
- block-all-mixed-content; default-src 'none'; base-uri 'none'; form-action
- 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample';
- style-src 'self'
- Request-Id:
- - req_O11rogBMRB0GA3
- Stripe-Version:
- - '2023-10-16'
- Vary:
- - Origin
- X-Stripe-Routing-Context-Priority-Tier:
- - api-testmode
- Strict-Transport-Security:
- - max-age=63072000; includeSubDomains; preload
- body:
- encoding: UTF-8
- string: |
- {
- "error": {
- "code": "resource_missing",
- "doc_url": "https://stripe.com/docs/error-codes/resource-missing",
- "message": "No such customer: 'non_existing_customer_id'",
- "param": "id",
- "request_log_url": "https://dashboard.stripe.com/test/logs/req_O11rogBMRB0GA3?t=1708989380",
- "type": "invalid_request_error"
- }
- }
- recorded_at: Mon, 26 Feb 2024 23:16:20 GMT
-recorded_with: VCR 6.2.0
diff --git a/spec/fixtures/vcr_cassettes/Stripe-v10.10.0/Stripe_CreditCardRemover/_remove/Stripe_customer_exists/and_is_deleted/deletes_the_credit_card_clone.yml b/spec/fixtures/vcr_cassettes/Stripe-v10.10.0/Stripe_CreditCardRemover/_remove/Stripe_customer_exists/and_is_deleted/deletes_the_credit_card_clone.yml
deleted file mode 100644
index c1e2d0188f..0000000000
--- a/spec/fixtures/vcr_cassettes/Stripe-v10.10.0/Stripe_CreditCardRemover/_remove/Stripe_customer_exists/and_is_deleted/deletes_the_credit_card_clone.yml
+++ /dev/null
@@ -1,363 +0,0 @@
----
-http_interactions:
-- request:
- method: post
- uri: https://api.stripe.com/v1/payment_methods
- body:
- encoding: UTF-8
- string: type=card&card[number]=4242424242424242&card[exp_month]=8&card[exp_year]=2025&card[cvc]=314
- headers:
- User-Agent:
- - Stripe/v1 RubyBindings/10.10.0
- Authorization:
- - Bearer
- Content-Type:
- - application/x-www-form-urlencoded
- X-Stripe-Client-Telemetry:
- - '{"last_request_metrics":{"request_id":"req_jagI9P8dKgmSWe","request_duration_ms":398}}'
- Stripe-Version:
- - '2023-10-16'
- X-Stripe-Client-User-Agent:
- - '{"bindings_version":"10.10.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
- version 5.15.0-92-generic (buildd@lcy02-amd64-002) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2)
- 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #102~20.04.1-Ubuntu SMP Mon
- Jan 15 13:09:14 UTC 2024","hostname":"gaetan-Dell-G15"}'
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Server:
- - nginx
- Date:
- - Mon, 26 Feb 2024 23:16:18 GMT
- Content-Type:
- - application/json
- Content-Length:
- - '959'
- Connection:
- - keep-alive
- Access-Control-Allow-Credentials:
- - 'true'
- Access-Control-Allow-Methods:
- - GET,HEAD,PUT,PATCH,POST,DELETE
- Access-Control-Allow-Origin:
- - "*"
- Access-Control-Expose-Headers:
- - Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required,
- X-Stripe-Privileged-Session-Required
- Access-Control-Max-Age:
- - '300'
- Cache-Control:
- - no-cache, no-store
- Content-Security-Policy:
- - report-uri https://q.stripe.com/csp-report?p=v1%2Fpayment_methods; block-all-mixed-content;
- default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none';
- img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'
- Idempotency-Key:
- - 0b91afe4-236d-4294-bf8d-93c912ff4988
- Original-Request:
- - req_UAGWuxx3yA5Vv4
- Request-Id:
- - req_UAGWuxx3yA5Vv4
- Stripe-Should-Retry:
- - 'false'
- Stripe-Version:
- - '2023-10-16'
- Vary:
- - Origin
- X-Stripe-Routing-Context-Priority-Tier:
- - api-testmode
- Strict-Transport-Security:
- - max-age=63072000; includeSubDomains; preload
- body:
- encoding: UTF-8
- string: |-
- {
- "id": "pm_1OoDPCKuuB1fWySndu16bikJ",
- "object": "payment_method",
- "billing_details": {
- "address": {
- "city": null,
- "country": null,
- "line1": null,
- "line2": null,
- "postal_code": null,
- "state": null
- },
- "email": null,
- "name": null,
- "phone": null
- },
- "card": {
- "brand": "visa",
- "checks": {
- "address_line1_check": null,
- "address_postal_code_check": null,
- "cvc_check": "unchecked"
- },
- "country": "US",
- "display_brand": "visa",
- "exp_month": 8,
- "exp_year": 2025,
- "fingerprint": "6E6tgVjx6U65iHFV",
- "funding": "credit",
- "generated_from": null,
- "last4": "4242",
- "networks": {
- "available": [
- "visa"
- ],
- "preferred": null
- },
- "three_d_secure_usage": {
- "supported": true
- },
- "wallet": null
- },
- "created": 1708989378,
- "customer": null,
- "livemode": false,
- "metadata": {},
- "type": "card"
- }
- recorded_at: Mon, 26 Feb 2024 23:16:18 GMT
-- request:
- method: post
- uri: https://api.stripe.com/v1/customers
- body:
- encoding: UTF-8
- string: name=Apple+Customer&email=applecustomer%40example.com
- headers:
- User-Agent:
- - Stripe/v1 RubyBindings/10.10.0
- Authorization:
- - Bearer
- Content-Type:
- - application/x-www-form-urlencoded
- X-Stripe-Client-Telemetry:
- - '{"last_request_metrics":{"request_id":"req_UAGWuxx3yA5Vv4","request_duration_ms":444}}'
- Stripe-Version:
- - '2023-10-16'
- X-Stripe-Client-User-Agent:
- - '{"bindings_version":"10.10.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
- version 5.15.0-92-generic (buildd@lcy02-amd64-002) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2)
- 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #102~20.04.1-Ubuntu SMP Mon
- Jan 15 13:09:14 UTC 2024","hostname":"gaetan-Dell-G15"}'
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Server:
- - nginx
- Date:
- - Mon, 26 Feb 2024 23:16:19 GMT
- Content-Type:
- - application/json
- Content-Length:
- - '649'
- Connection:
- - keep-alive
- Access-Control-Allow-Credentials:
- - 'true'
- Access-Control-Allow-Methods:
- - GET,HEAD,PUT,PATCH,POST,DELETE
- Access-Control-Allow-Origin:
- - "*"
- Access-Control-Expose-Headers:
- - Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required,
- X-Stripe-Privileged-Session-Required
- Access-Control-Max-Age:
- - '300'
- Cache-Control:
- - no-cache, no-store
- Content-Security-Policy:
- - report-uri https://q.stripe.com/csp-report?p=v1%2Fcustomers; block-all-mixed-content;
- default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none';
- img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'
- Idempotency-Key:
- - 6d27457a-76ef-46b5-a5c9-de32b1c27b49
- Original-Request:
- - req_0av87H3OplRDPq
- Request-Id:
- - req_0av87H3OplRDPq
- Stripe-Should-Retry:
- - 'false'
- Stripe-Version:
- - '2023-10-16'
- Vary:
- - Origin
- X-Stripe-Routing-Context-Priority-Tier:
- - api-testmode
- Strict-Transport-Security:
- - max-age=63072000; includeSubDomains; preload
- body:
- encoding: UTF-8
- string: |-
- {
- "id": "cus_PdUNmATwItHxBf",
- "object": "customer",
- "address": null,
- "balance": 0,
- "created": 1708989379,
- "currency": null,
- "default_source": null,
- "delinquent": false,
- "description": null,
- "discount": null,
- "email": "applecustomer@example.com",
- "invoice_prefix": "DDFA35D2",
- "invoice_settings": {
- "custom_fields": null,
- "default_payment_method": null,
- "footer": null,
- "rendering_options": null
- },
- "livemode": false,
- "metadata": {},
- "name": "Apple Customer",
- "next_invoice_sequence": 1,
- "phone": null,
- "preferred_locales": [],
- "shipping": null,
- "tax_exempt": "none",
- "test_clock": null
- }
- recorded_at: Mon, 26 Feb 2024 23:16:19 GMT
-- request:
- method: post
- uri: https://api.stripe.com/v1/payment_methods/pm_1OoDPCKuuB1fWySndu16bikJ/attach
- body:
- encoding: UTF-8
- string: customer=cus_PdUNmATwItHxBf
- headers:
- User-Agent:
- - Stripe/v1 RubyBindings/10.10.0
- Authorization:
- - Bearer
- Content-Type:
- - application/x-www-form-urlencoded
- X-Stripe-Client-Telemetry:
- - '{"last_request_metrics":{"request_id":"req_0av87H3OplRDPq","request_duration_ms":386}}'
- Stripe-Version:
- - '2023-10-16'
- X-Stripe-Client-User-Agent:
- - '{"bindings_version":"10.10.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
- version 5.15.0-92-generic (buildd@lcy02-amd64-002) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2)
- 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #102~20.04.1-Ubuntu SMP Mon
- Jan 15 13:09:14 UTC 2024","hostname":"gaetan-Dell-G15"}'
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Server:
- - nginx
- Date:
- - Mon, 26 Feb 2024 23:16:19 GMT
- Content-Type:
- - application/json
- Content-Length:
- - '970'
- Connection:
- - keep-alive
- Access-Control-Allow-Credentials:
- - 'true'
- Access-Control-Allow-Methods:
- - GET,HEAD,PUT,PATCH,POST,DELETE
- Access-Control-Allow-Origin:
- - "*"
- Access-Control-Expose-Headers:
- - Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required,
- X-Stripe-Privileged-Session-Required
- Access-Control-Max-Age:
- - '300'
- Cache-Control:
- - no-cache, no-store
- Content-Security-Policy:
- - report-uri https://q.stripe.com/csp-report?p=v1%2Fpayment_methods%2F%3Apayment_method%2Fattach;
- block-all-mixed-content; default-src 'none'; base-uri 'none'; form-action
- 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample';
- style-src 'self'
- Idempotency-Key:
- - 6b24e01a-4589-4ec7-80fa-e4bd5b3b9260
- Original-Request:
- - req_B0FhYsp0bBTNRp
- Request-Id:
- - req_B0FhYsp0bBTNRp
- Stripe-Should-Retry:
- - 'false'
- Stripe-Version:
- - '2023-10-16'
- Vary:
- - Origin
- X-Stripe-Routing-Context-Priority-Tier:
- - api-testmode
- Strict-Transport-Security:
- - max-age=63072000; includeSubDomains; preload
- body:
- encoding: UTF-8
- string: |-
- {
- "id": "pm_1OoDPCKuuB1fWySndu16bikJ",
- "object": "payment_method",
- "billing_details": {
- "address": {
- "city": null,
- "country": null,
- "line1": null,
- "line2": null,
- "postal_code": null,
- "state": null
- },
- "email": null,
- "name": null,
- "phone": null
- },
- "card": {
- "brand": "visa",
- "checks": {
- "address_line1_check": null,
- "address_postal_code_check": null,
- "cvc_check": "pass"
- },
- "country": "US",
- "display_brand": "visa",
- "exp_month": 8,
- "exp_year": 2025,
- "fingerprint": "6E6tgVjx6U65iHFV",
- "funding": "credit",
- "generated_from": null,
- "last4": "4242",
- "networks": {
- "available": [
- "visa"
- ],
- "preferred": null
- },
- "three_d_secure_usage": {
- "supported": true
- },
- "wallet": null
- },
- "created": 1708989378,
- "customer": "cus_PdUNmATwItHxBf",
- "livemode": false,
- "metadata": {},
- "type": "card"
- }
- recorded_at: Mon, 26 Feb 2024 23:16:19 GMT
-recorded_with: VCR 6.2.0
diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Admin_StripeAccountsController/_destroy/when_the_specified_stripe_account_exists/when_I_don_t_manage_the_enterprise_linked_to_the_stripe_account/redirects_to_unauthorized.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Admin_StripeAccountsController/_destroy/when_the_specified_stripe_account_exists/when_I_don_t_manage_the_enterprise_linked_to_the_stripe_account/redirects_to_unauthorized.yml
new file mode 100644
index 0000000000..3a196f6441
--- /dev/null
+++ b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Admin_StripeAccountsController/_destroy/when_the_specified_stripe_account_exists/when_I_don_t_manage_the_enterprise_linked_to_the_stripe_account/redirects_to_unauthorized.yml
@@ -0,0 +1,316 @@
+---
+http_interactions:
+- request:
+ method: post
+ uri: https://api.stripe.com/v1/accounts
+ body:
+ encoding: UTF-8
+ string: type=standard&country=AU&email=jumping.jack%40example.com&business_type=non_profit
+ headers:
+ User-Agent:
+ - Stripe/v1 RubyBindings/11.1.0
+ Authorization:
+ - ""
+ Content-Type:
+ - application/x-www-form-urlencoded
+ Stripe-Version:
+ - '2024-04-10'
+ X-Stripe-Client-User-Agent:
+ - ""
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Server:
+ - nginx
+ Date:
+ - Wed, 17 Apr 2024 22:37:33 GMT
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '3527'
+ Connection:
+ - keep-alive
+ Access-Control-Allow-Credentials:
+ - 'true'
+ Access-Control-Allow-Methods:
+ - GET,HEAD,PUT,PATCH,POST,DELETE
+ Access-Control-Allow-Origin:
+ - "*"
+ Access-Control-Expose-Headers:
+ - Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required,
+ X-Stripe-Privileged-Session-Required
+ Access-Control-Max-Age:
+ - '300'
+ Cache-Control:
+ - no-cache, no-store
+ Content-Security-Policy:
+ - report-uri https://q.stripe.com/csp-report?p=v1%2Faccounts; block-all-mixed-content;
+ default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none';
+ img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
+ Idempotency-Key:
+ - 6266cc7b-b56f-4446-8557-addbc346af95
+ Original-Request:
+ - req_uKZJaQKuSDhybO
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
+ Request-Id:
+ - req_uKZJaQKuSDhybO
+ Stripe-Should-Retry:
+ - 'false'
+ Stripe-Version:
+ - '2024-04-10'
+ Vary:
+ - Origin
+ X-Stripe-Routing-Context-Priority-Tier:
+ - api-testmode
+ Strict-Transport-Security:
+ - max-age=63072000; includeSubDomains; preload
+ body:
+ encoding: UTF-8
+ string: |-
+ {
+ "id": "acct_1P6h6dQOo80tSvJZ",
+ "object": "account",
+ "business_profile": {
+ "annual_revenue": null,
+ "estimated_worker_count": null,
+ "mcc": null,
+ "name": null,
+ "product_description": null,
+ "support_address": null,
+ "support_email": null,
+ "support_phone": null,
+ "support_url": null,
+ "url": null
+ },
+ "business_type": "non_profit",
+ "capabilities": {},
+ "charges_enabled": false,
+ "company": {
+ "address": {
+ "city": null,
+ "country": "AU",
+ "line1": null,
+ "line2": null,
+ "postal_code": null,
+ "state": null
+ },
+ "directors_provided": false,
+ "executives_provided": false,
+ "name": null,
+ "owners_provided": false,
+ "tax_id_provided": false,
+ "verification": {
+ "document": {
+ "back": null,
+ "details": null,
+ "details_code": null,
+ "front": null
+ }
+ }
+ },
+ "controller": {
+ "is_controller": true,
+ "type": "application"
+ },
+ "country": "AU",
+ "created": 1713393452,
+ "default_currency": "aud",
+ "details_submitted": false,
+ "email": "jumping.jack@example.com",
+ "external_accounts": {
+ "object": "list",
+ "data": [],
+ "has_more": false,
+ "total_count": 0,
+ "url": "/v1/accounts/acct_1P6h6dQOo80tSvJZ/external_accounts"
+ },
+ "future_requirements": {
+ "alternatives": [],
+ "current_deadline": null,
+ "currently_due": [],
+ "disabled_reason": null,
+ "errors": [],
+ "eventually_due": [],
+ "past_due": [],
+ "pending_verification": []
+ },
+ "metadata": {},
+ "payouts_enabled": false,
+ "requirements": {
+ "alternatives": [],
+ "current_deadline": null,
+ "currently_due": [
+ "business_profile.product_description",
+ "business_profile.support_phone",
+ "business_profile.url",
+ "external_account",
+ "tos_acceptance.date",
+ "tos_acceptance.ip"
+ ],
+ "disabled_reason": "requirements.past_due",
+ "errors": [],
+ "eventually_due": [
+ "business_profile.product_description",
+ "business_profile.support_phone",
+ "business_profile.url",
+ "external_account",
+ "tos_acceptance.date",
+ "tos_acceptance.ip"
+ ],
+ "past_due": [
+ "external_account",
+ "tos_acceptance.date",
+ "tos_acceptance.ip"
+ ],
+ "pending_verification": []
+ },
+ "settings": {
+ "bacs_debit_payments": {
+ "display_name": null,
+ "service_user_number": null
+ },
+ "branding": {
+ "icon": null,
+ "logo": null,
+ "primary_color": null,
+ "secondary_color": null
+ },
+ "card_issuing": {
+ "tos_acceptance": {
+ "date": null,
+ "ip": null
+ }
+ },
+ "card_payments": {
+ "decline_on": {
+ "avs_failure": false,
+ "cvc_failure": false
+ },
+ "statement_descriptor_prefix": null,
+ "statement_descriptor_prefix_kana": null,
+ "statement_descriptor_prefix_kanji": null
+ },
+ "dashboard": {
+ "display_name": null,
+ "timezone": "Etc/UTC"
+ },
+ "invoices": {
+ "default_account_tax_ids": null
+ },
+ "payments": {
+ "statement_descriptor": null,
+ "statement_descriptor_kana": null,
+ "statement_descriptor_kanji": null
+ },
+ "payouts": {
+ "debit_negative_balances": true,
+ "schedule": {
+ "delay_days": 2,
+ "interval": "daily"
+ },
+ "statement_descriptor": null
+ },
+ "sepa_debit_payments": {}
+ },
+ "tos_acceptance": {
+ "date": null,
+ "ip": null,
+ "user_agent": null
+ },
+ "type": "standard"
+ }
+ recorded_at: Wed, 17 Apr 2024 22:37:33 GMT
+- request:
+ method: delete
+ uri: https://api.stripe.com/v1/accounts/acct_1P6h6dQOo80tSvJZ
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ User-Agent:
+ - Stripe/v1 RubyBindings/11.1.0
+ Authorization:
+ - ""
+ Content-Type:
+ - application/x-www-form-urlencoded
+ X-Stripe-Client-Telemetry:
+ - '{"last_request_metrics":{"request_id":"req_uKZJaQKuSDhybO","request_duration_ms":2089}}'
+ Stripe-Version:
+ - '2024-04-10'
+ X-Stripe-Client-User-Agent:
+ - ""
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Server:
+ - nginx
+ Date:
+ - Wed, 17 Apr 2024 22:37:34 GMT
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '77'
+ Connection:
+ - keep-alive
+ Access-Control-Allow-Credentials:
+ - 'true'
+ Access-Control-Allow-Methods:
+ - GET,HEAD,PUT,PATCH,POST,DELETE
+ Access-Control-Allow-Origin:
+ - "*"
+ Access-Control-Expose-Headers:
+ - Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required,
+ X-Stripe-Privileged-Session-Required
+ Access-Control-Max-Age:
+ - '300'
+ Cache-Control:
+ - no-cache, no-store
+ Content-Security-Policy:
+ - report-uri https://q.stripe.com/csp-report?p=v1%2Faccounts%2F%3Aaccount; block-all-mixed-content;
+ default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none';
+ img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
+ Request-Id:
+ - req_T7eaRcd0E6Y161
+ Stripe-Account:
+ - acct_1P6h6dQOo80tSvJZ
+ Stripe-Version:
+ - '2024-04-10'
+ Vary:
+ - Origin
+ X-Stripe-Routing-Context-Priority-Tier:
+ - api-testmode
+ Strict-Transport-Security:
+ - max-age=63072000; includeSubDomains; preload
+ body:
+ encoding: UTF-8
+ string: |-
+ {
+ "id": "acct_1P6h6dQOo80tSvJZ",
+ "object": "account",
+ "deleted": true
+ }
+ recorded_at: Wed, 17 Apr 2024 22:37:34 GMT
+recorded_with: VCR 6.2.0
diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Admin_StripeAccountsController/_destroy/when_the_specified_stripe_account_exists/when_I_manage_the_enterprise_linked_to_the_stripe_account/and_the_attempt_to_deauthorize_and_destroy_fails/redirects_to_unauthorized.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Admin_StripeAccountsController/_destroy/when_the_specified_stripe_account_exists/when_I_manage_the_enterprise_linked_to_the_stripe_account/and_the_attempt_to_deauthorize_and_destroy_fails/redirects_to_unauthorized.yml
new file mode 100644
index 0000000000..86e4459b62
--- /dev/null
+++ b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Admin_StripeAccountsController/_destroy/when_the_specified_stripe_account_exists/when_I_manage_the_enterprise_linked_to_the_stripe_account/and_the_attempt_to_deauthorize_and_destroy_fails/redirects_to_unauthorized.yml
@@ -0,0 +1,318 @@
+---
+http_interactions:
+- request:
+ method: post
+ uri: https://api.stripe.com/v1/accounts
+ body:
+ encoding: UTF-8
+ string: type=standard&country=AU&email=jumping.jack%40example.com&business_type=non_profit
+ headers:
+ User-Agent:
+ - Stripe/v1 RubyBindings/11.1.0
+ Authorization:
+ - ""
+ Content-Type:
+ - application/x-www-form-urlencoded
+ X-Stripe-Client-Telemetry:
+ - '{"last_request_metrics":{"request_id":"req_ottmgqPZJsohY6","request_duration_ms":986}}'
+ Stripe-Version:
+ - '2024-04-10'
+ X-Stripe-Client-User-Agent:
+ - ""
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Server:
+ - nginx
+ Date:
+ - Wed, 17 Apr 2024 22:37:39 GMT
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '3527'
+ Connection:
+ - keep-alive
+ Access-Control-Allow-Credentials:
+ - 'true'
+ Access-Control-Allow-Methods:
+ - GET,HEAD,PUT,PATCH,POST,DELETE
+ Access-Control-Allow-Origin:
+ - "*"
+ Access-Control-Expose-Headers:
+ - Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required,
+ X-Stripe-Privileged-Session-Required
+ Access-Control-Max-Age:
+ - '300'
+ Cache-Control:
+ - no-cache, no-store
+ Content-Security-Policy:
+ - report-uri https://q.stripe.com/csp-report?p=v1%2Faccounts; block-all-mixed-content;
+ default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none';
+ img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
+ Idempotency-Key:
+ - 6c371391-04b0-4255-800c-5464d0b2cfbf
+ Original-Request:
+ - req_w6FTmr1LhXdru9
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
+ Request-Id:
+ - req_w6FTmr1LhXdru9
+ Stripe-Should-Retry:
+ - 'false'
+ Stripe-Version:
+ - '2024-04-10'
+ Vary:
+ - Origin
+ X-Stripe-Routing-Context-Priority-Tier:
+ - api-testmode
+ Strict-Transport-Security:
+ - max-age=63072000; includeSubDomains; preload
+ body:
+ encoding: UTF-8
+ string: |-
+ {
+ "id": "acct_1P6h6kQQtxT4DM9I",
+ "object": "account",
+ "business_profile": {
+ "annual_revenue": null,
+ "estimated_worker_count": null,
+ "mcc": null,
+ "name": null,
+ "product_description": null,
+ "support_address": null,
+ "support_email": null,
+ "support_phone": null,
+ "support_url": null,
+ "url": null
+ },
+ "business_type": "non_profit",
+ "capabilities": {},
+ "charges_enabled": false,
+ "company": {
+ "address": {
+ "city": null,
+ "country": "AU",
+ "line1": null,
+ "line2": null,
+ "postal_code": null,
+ "state": null
+ },
+ "directors_provided": false,
+ "executives_provided": false,
+ "name": null,
+ "owners_provided": false,
+ "tax_id_provided": false,
+ "verification": {
+ "document": {
+ "back": null,
+ "details": null,
+ "details_code": null,
+ "front": null
+ }
+ }
+ },
+ "controller": {
+ "is_controller": true,
+ "type": "application"
+ },
+ "country": "AU",
+ "created": 1713393458,
+ "default_currency": "aud",
+ "details_submitted": false,
+ "email": "jumping.jack@example.com",
+ "external_accounts": {
+ "object": "list",
+ "data": [],
+ "has_more": false,
+ "total_count": 0,
+ "url": "/v1/accounts/acct_1P6h6kQQtxT4DM9I/external_accounts"
+ },
+ "future_requirements": {
+ "alternatives": [],
+ "current_deadline": null,
+ "currently_due": [],
+ "disabled_reason": null,
+ "errors": [],
+ "eventually_due": [],
+ "past_due": [],
+ "pending_verification": []
+ },
+ "metadata": {},
+ "payouts_enabled": false,
+ "requirements": {
+ "alternatives": [],
+ "current_deadline": null,
+ "currently_due": [
+ "business_profile.product_description",
+ "business_profile.support_phone",
+ "business_profile.url",
+ "external_account",
+ "tos_acceptance.date",
+ "tos_acceptance.ip"
+ ],
+ "disabled_reason": "requirements.past_due",
+ "errors": [],
+ "eventually_due": [
+ "business_profile.product_description",
+ "business_profile.support_phone",
+ "business_profile.url",
+ "external_account",
+ "tos_acceptance.date",
+ "tos_acceptance.ip"
+ ],
+ "past_due": [
+ "external_account",
+ "tos_acceptance.date",
+ "tos_acceptance.ip"
+ ],
+ "pending_verification": []
+ },
+ "settings": {
+ "bacs_debit_payments": {
+ "display_name": null,
+ "service_user_number": null
+ },
+ "branding": {
+ "icon": null,
+ "logo": null,
+ "primary_color": null,
+ "secondary_color": null
+ },
+ "card_issuing": {
+ "tos_acceptance": {
+ "date": null,
+ "ip": null
+ }
+ },
+ "card_payments": {
+ "decline_on": {
+ "avs_failure": false,
+ "cvc_failure": false
+ },
+ "statement_descriptor_prefix": null,
+ "statement_descriptor_prefix_kana": null,
+ "statement_descriptor_prefix_kanji": null
+ },
+ "dashboard": {
+ "display_name": null,
+ "timezone": "Etc/UTC"
+ },
+ "invoices": {
+ "default_account_tax_ids": null
+ },
+ "payments": {
+ "statement_descriptor": null,
+ "statement_descriptor_kana": null,
+ "statement_descriptor_kanji": null
+ },
+ "payouts": {
+ "debit_negative_balances": true,
+ "schedule": {
+ "delay_days": 2,
+ "interval": "daily"
+ },
+ "statement_descriptor": null
+ },
+ "sepa_debit_payments": {}
+ },
+ "tos_acceptance": {
+ "date": null,
+ "ip": null,
+ "user_agent": null
+ },
+ "type": "standard"
+ }
+ recorded_at: Wed, 17 Apr 2024 22:37:39 GMT
+- request:
+ method: delete
+ uri: https://api.stripe.com/v1/accounts/acct_1P6h6kQQtxT4DM9I
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ User-Agent:
+ - Stripe/v1 RubyBindings/11.1.0
+ Authorization:
+ - ""
+ Content-Type:
+ - application/x-www-form-urlencoded
+ X-Stripe-Client-Telemetry:
+ - '{"last_request_metrics":{"request_id":"req_w6FTmr1LhXdru9","request_duration_ms":1868}}'
+ Stripe-Version:
+ - '2024-04-10'
+ X-Stripe-Client-User-Agent:
+ - ""
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Server:
+ - nginx
+ Date:
+ - Wed, 17 Apr 2024 22:37:40 GMT
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '77'
+ Connection:
+ - keep-alive
+ Access-Control-Allow-Credentials:
+ - 'true'
+ Access-Control-Allow-Methods:
+ - GET,HEAD,PUT,PATCH,POST,DELETE
+ Access-Control-Allow-Origin:
+ - "*"
+ Access-Control-Expose-Headers:
+ - Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required,
+ X-Stripe-Privileged-Session-Required
+ Access-Control-Max-Age:
+ - '300'
+ Cache-Control:
+ - no-cache, no-store
+ Content-Security-Policy:
+ - report-uri https://q.stripe.com/csp-report?p=v1%2Faccounts%2F%3Aaccount; block-all-mixed-content;
+ default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none';
+ img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
+ Request-Id:
+ - req_5DMoWYyBuGKko3
+ Stripe-Account:
+ - acct_1P6h6kQQtxT4DM9I
+ Stripe-Version:
+ - '2024-04-10'
+ Vary:
+ - Origin
+ X-Stripe-Routing-Context-Priority-Tier:
+ - api-testmode
+ Strict-Transport-Security:
+ - max-age=63072000; includeSubDomains; preload
+ body:
+ encoding: UTF-8
+ string: |-
+ {
+ "id": "acct_1P6h6kQQtxT4DM9I",
+ "object": "account",
+ "deleted": true
+ }
+ recorded_at: Wed, 17 Apr 2024 22:37:40 GMT
+recorded_with: VCR 6.2.0
diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Admin_StripeAccountsController/_destroy/when_the_specified_stripe_account_exists/when_I_manage_the_enterprise_linked_to_the_stripe_account/and_the_attempt_to_deauthorize_and_destroy_succeeds/redirects_to_unauthorized.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Admin_StripeAccountsController/_destroy/when_the_specified_stripe_account_exists/when_I_manage_the_enterprise_linked_to_the_stripe_account/and_the_attempt_to_deauthorize_and_destroy_succeeds/redirects_to_unauthorized.yml
new file mode 100644
index 0000000000..0053eb05bd
--- /dev/null
+++ b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Admin_StripeAccountsController/_destroy/when_the_specified_stripe_account_exists/when_I_manage_the_enterprise_linked_to_the_stripe_account/and_the_attempt_to_deauthorize_and_destroy_succeeds/redirects_to_unauthorized.yml
@@ -0,0 +1,318 @@
+---
+http_interactions:
+- request:
+ method: post
+ uri: https://api.stripe.com/v1/accounts
+ body:
+ encoding: UTF-8
+ string: type=standard&country=AU&email=jumping.jack%40example.com&business_type=non_profit
+ headers:
+ User-Agent:
+ - Stripe/v1 RubyBindings/11.1.0
+ Authorization:
+ - ""
+ Content-Type:
+ - application/x-www-form-urlencoded
+ X-Stripe-Client-Telemetry:
+ - '{"last_request_metrics":{"request_id":"req_T7eaRcd0E6Y161","request_duration_ms":1216}}'
+ Stripe-Version:
+ - '2024-04-10'
+ X-Stripe-Client-User-Agent:
+ - ""
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Server:
+ - nginx
+ Date:
+ - Wed, 17 Apr 2024 22:37:36 GMT
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '3527'
+ Connection:
+ - keep-alive
+ Access-Control-Allow-Credentials:
+ - 'true'
+ Access-Control-Allow-Methods:
+ - GET,HEAD,PUT,PATCH,POST,DELETE
+ Access-Control-Allow-Origin:
+ - "*"
+ Access-Control-Expose-Headers:
+ - Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required,
+ X-Stripe-Privileged-Session-Required
+ Access-Control-Max-Age:
+ - '300'
+ Cache-Control:
+ - no-cache, no-store
+ Content-Security-Policy:
+ - report-uri https://q.stripe.com/csp-report?p=v1%2Faccounts; block-all-mixed-content;
+ default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none';
+ img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
+ Idempotency-Key:
+ - 16d66af6-ad46-4adb-99ec-05752fad61aa
+ Original-Request:
+ - req_Yyz2weH5ozAFpu
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
+ Request-Id:
+ - req_Yyz2weH5ozAFpu
+ Stripe-Should-Retry:
+ - 'false'
+ Stripe-Version:
+ - '2024-04-10'
+ Vary:
+ - Origin
+ X-Stripe-Routing-Context-Priority-Tier:
+ - api-testmode
+ Strict-Transport-Security:
+ - max-age=63072000; includeSubDomains; preload
+ body:
+ encoding: UTF-8
+ string: |-
+ {
+ "id": "acct_1P6h6h4DyRLVxKpr",
+ "object": "account",
+ "business_profile": {
+ "annual_revenue": null,
+ "estimated_worker_count": null,
+ "mcc": null,
+ "name": null,
+ "product_description": null,
+ "support_address": null,
+ "support_email": null,
+ "support_phone": null,
+ "support_url": null,
+ "url": null
+ },
+ "business_type": "non_profit",
+ "capabilities": {},
+ "charges_enabled": false,
+ "company": {
+ "address": {
+ "city": null,
+ "country": "AU",
+ "line1": null,
+ "line2": null,
+ "postal_code": null,
+ "state": null
+ },
+ "directors_provided": false,
+ "executives_provided": false,
+ "name": null,
+ "owners_provided": false,
+ "tax_id_provided": false,
+ "verification": {
+ "document": {
+ "back": null,
+ "details": null,
+ "details_code": null,
+ "front": null
+ }
+ }
+ },
+ "controller": {
+ "is_controller": true,
+ "type": "application"
+ },
+ "country": "AU",
+ "created": 1713393456,
+ "default_currency": "aud",
+ "details_submitted": false,
+ "email": "jumping.jack@example.com",
+ "external_accounts": {
+ "object": "list",
+ "data": [],
+ "has_more": false,
+ "total_count": 0,
+ "url": "/v1/accounts/acct_1P6h6h4DyRLVxKpr/external_accounts"
+ },
+ "future_requirements": {
+ "alternatives": [],
+ "current_deadline": null,
+ "currently_due": [],
+ "disabled_reason": null,
+ "errors": [],
+ "eventually_due": [],
+ "past_due": [],
+ "pending_verification": []
+ },
+ "metadata": {},
+ "payouts_enabled": false,
+ "requirements": {
+ "alternatives": [],
+ "current_deadline": null,
+ "currently_due": [
+ "business_profile.product_description",
+ "business_profile.support_phone",
+ "business_profile.url",
+ "external_account",
+ "tos_acceptance.date",
+ "tos_acceptance.ip"
+ ],
+ "disabled_reason": "requirements.past_due",
+ "errors": [],
+ "eventually_due": [
+ "business_profile.product_description",
+ "business_profile.support_phone",
+ "business_profile.url",
+ "external_account",
+ "tos_acceptance.date",
+ "tos_acceptance.ip"
+ ],
+ "past_due": [
+ "external_account",
+ "tos_acceptance.date",
+ "tos_acceptance.ip"
+ ],
+ "pending_verification": []
+ },
+ "settings": {
+ "bacs_debit_payments": {
+ "display_name": null,
+ "service_user_number": null
+ },
+ "branding": {
+ "icon": null,
+ "logo": null,
+ "primary_color": null,
+ "secondary_color": null
+ },
+ "card_issuing": {
+ "tos_acceptance": {
+ "date": null,
+ "ip": null
+ }
+ },
+ "card_payments": {
+ "decline_on": {
+ "avs_failure": false,
+ "cvc_failure": false
+ },
+ "statement_descriptor_prefix": null,
+ "statement_descriptor_prefix_kana": null,
+ "statement_descriptor_prefix_kanji": null
+ },
+ "dashboard": {
+ "display_name": null,
+ "timezone": "Etc/UTC"
+ },
+ "invoices": {
+ "default_account_tax_ids": null
+ },
+ "payments": {
+ "statement_descriptor": null,
+ "statement_descriptor_kana": null,
+ "statement_descriptor_kanji": null
+ },
+ "payouts": {
+ "debit_negative_balances": true,
+ "schedule": {
+ "delay_days": 2,
+ "interval": "daily"
+ },
+ "statement_descriptor": null
+ },
+ "sepa_debit_payments": {}
+ },
+ "tos_acceptance": {
+ "date": null,
+ "ip": null,
+ "user_agent": null
+ },
+ "type": "standard"
+ }
+ recorded_at: Wed, 17 Apr 2024 22:37:36 GMT
+- request:
+ method: delete
+ uri: https://api.stripe.com/v1/accounts/acct_1P6h6h4DyRLVxKpr
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ User-Agent:
+ - Stripe/v1 RubyBindings/11.1.0
+ Authorization:
+ - ""
+ Content-Type:
+ - application/x-www-form-urlencoded
+ X-Stripe-Client-Telemetry:
+ - '{"last_request_metrics":{"request_id":"req_Yyz2weH5ozAFpu","request_duration_ms":1745}}'
+ Stripe-Version:
+ - '2024-04-10'
+ X-Stripe-Client-User-Agent:
+ - ""
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Server:
+ - nginx
+ Date:
+ - Wed, 17 Apr 2024 22:37:37 GMT
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '77'
+ Connection:
+ - keep-alive
+ Access-Control-Allow-Credentials:
+ - 'true'
+ Access-Control-Allow-Methods:
+ - GET,HEAD,PUT,PATCH,POST,DELETE
+ Access-Control-Allow-Origin:
+ - "*"
+ Access-Control-Expose-Headers:
+ - Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required,
+ X-Stripe-Privileged-Session-Required
+ Access-Control-Max-Age:
+ - '300'
+ Cache-Control:
+ - no-cache, no-store
+ Content-Security-Policy:
+ - report-uri https://q.stripe.com/csp-report?p=v1%2Faccounts%2F%3Aaccount; block-all-mixed-content;
+ default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none';
+ img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
+ Request-Id:
+ - req_ottmgqPZJsohY6
+ Stripe-Account:
+ - acct_1P6h6h4DyRLVxKpr
+ Stripe-Version:
+ - '2024-04-10'
+ Vary:
+ - Origin
+ X-Stripe-Routing-Context-Priority-Tier:
+ - api-testmode
+ Strict-Transport-Security:
+ - max-age=63072000; includeSubDomains; preload
+ body:
+ encoding: UTF-8
+ string: |-
+ {
+ "id": "acct_1P6h6h4DyRLVxKpr",
+ "object": "account",
+ "deleted": true
+ }
+ recorded_at: Wed, 17 Apr 2024 22:37:37 GMT
+recorded_with: VCR 6.2.0
diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Admin_StripeAccountsController/_status/when_I_manage_the_specified_enterprise/when_Stripe_is_enabled/when_a_stripe_account_is_associated_with_the_specified_enterprise/but_access_has_been_revoked_or_does_not_exist_on_stripe_s_servers/returns_with_a_status_of_access_revoked_.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Admin_StripeAccountsController/_status/when_I_manage_the_specified_enterprise/when_Stripe_is_enabled/when_a_stripe_account_is_associated_with_the_specified_enterprise/but_access_has_been_revoked_or_does_not_exist_on_stripe_s_servers/returns_with_a_status_of_access_revoked_.yml
new file mode 100644
index 0000000000..6e7777dcfa
--- /dev/null
+++ b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Admin_StripeAccountsController/_status/when_I_manage_the_specified_enterprise/when_Stripe_is_enabled/when_a_stripe_account_is_associated_with_the_specified_enterprise/but_access_has_been_revoked_or_does_not_exist_on_stripe_s_servers/returns_with_a_status_of_access_revoked_.yml
@@ -0,0 +1,385 @@
+---
+http_interactions:
+- request:
+ method: post
+ uri: https://api.stripe.com/v1/accounts
+ body:
+ encoding: UTF-8
+ string: type=standard&country=AU&email=jumping.jack%40example.com&business_type=non_profit
+ headers:
+ User-Agent:
+ - Stripe/v1 RubyBindings/11.1.0
+ Authorization:
+ - ""
+ Content-Type:
+ - application/x-www-form-urlencoded
+ X-Stripe-Client-Telemetry:
+ - '{"last_request_metrics":{"request_id":"req_5DMoWYyBuGKko3","request_duration_ms":1107}}'
+ Stripe-Version:
+ - '2024-04-10'
+ X-Stripe-Client-User-Agent:
+ - ""
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Server:
+ - nginx
+ Date:
+ - Wed, 17 Apr 2024 22:37:42 GMT
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '3527'
+ Connection:
+ - keep-alive
+ Access-Control-Allow-Credentials:
+ - 'true'
+ Access-Control-Allow-Methods:
+ - GET,HEAD,PUT,PATCH,POST,DELETE
+ Access-Control-Allow-Origin:
+ - "*"
+ Access-Control-Expose-Headers:
+ - Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required,
+ X-Stripe-Privileged-Session-Required
+ Access-Control-Max-Age:
+ - '300'
+ Cache-Control:
+ - no-cache, no-store
+ Content-Security-Policy:
+ - report-uri https://q.stripe.com/csp-report?p=v1%2Faccounts; block-all-mixed-content;
+ default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none';
+ img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
+ Idempotency-Key:
+ - f8ba1e63-f1ed-4496-a1cf-e91f5b070224
+ Original-Request:
+ - req_eup7iQgNj4TnQb
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
+ Request-Id:
+ - req_eup7iQgNj4TnQb
+ Stripe-Should-Retry:
+ - 'false'
+ Stripe-Version:
+ - '2024-04-10'
+ Vary:
+ - Origin
+ X-Stripe-Routing-Context-Priority-Tier:
+ - api-testmode
+ Strict-Transport-Security:
+ - max-age=63072000; includeSubDomains; preload
+ body:
+ encoding: UTF-8
+ string: |-
+ {
+ "id": "acct_1P6h6nQTJVHFbeTF",
+ "object": "account",
+ "business_profile": {
+ "annual_revenue": null,
+ "estimated_worker_count": null,
+ "mcc": null,
+ "name": null,
+ "product_description": null,
+ "support_address": null,
+ "support_email": null,
+ "support_phone": null,
+ "support_url": null,
+ "url": null
+ },
+ "business_type": "non_profit",
+ "capabilities": {},
+ "charges_enabled": false,
+ "company": {
+ "address": {
+ "city": null,
+ "country": "AU",
+ "line1": null,
+ "line2": null,
+ "postal_code": null,
+ "state": null
+ },
+ "directors_provided": false,
+ "executives_provided": false,
+ "name": null,
+ "owners_provided": false,
+ "tax_id_provided": false,
+ "verification": {
+ "document": {
+ "back": null,
+ "details": null,
+ "details_code": null,
+ "front": null
+ }
+ }
+ },
+ "controller": {
+ "is_controller": true,
+ "type": "application"
+ },
+ "country": "AU",
+ "created": 1713393461,
+ "default_currency": "aud",
+ "details_submitted": false,
+ "email": "jumping.jack@example.com",
+ "external_accounts": {
+ "object": "list",
+ "data": [],
+ "has_more": false,
+ "total_count": 0,
+ "url": "/v1/accounts/acct_1P6h6nQTJVHFbeTF/external_accounts"
+ },
+ "future_requirements": {
+ "alternatives": [],
+ "current_deadline": null,
+ "currently_due": [],
+ "disabled_reason": null,
+ "errors": [],
+ "eventually_due": [],
+ "past_due": [],
+ "pending_verification": []
+ },
+ "metadata": {},
+ "payouts_enabled": false,
+ "requirements": {
+ "alternatives": [],
+ "current_deadline": null,
+ "currently_due": [
+ "business_profile.product_description",
+ "business_profile.support_phone",
+ "business_profile.url",
+ "external_account",
+ "tos_acceptance.date",
+ "tos_acceptance.ip"
+ ],
+ "disabled_reason": "requirements.past_due",
+ "errors": [],
+ "eventually_due": [
+ "business_profile.product_description",
+ "business_profile.support_phone",
+ "business_profile.url",
+ "external_account",
+ "tos_acceptance.date",
+ "tos_acceptance.ip"
+ ],
+ "past_due": [
+ "external_account",
+ "tos_acceptance.date",
+ "tos_acceptance.ip"
+ ],
+ "pending_verification": []
+ },
+ "settings": {
+ "bacs_debit_payments": {
+ "display_name": null,
+ "service_user_number": null
+ },
+ "branding": {
+ "icon": null,
+ "logo": null,
+ "primary_color": null,
+ "secondary_color": null
+ },
+ "card_issuing": {
+ "tos_acceptance": {
+ "date": null,
+ "ip": null
+ }
+ },
+ "card_payments": {
+ "decline_on": {
+ "avs_failure": false,
+ "cvc_failure": false
+ },
+ "statement_descriptor_prefix": null,
+ "statement_descriptor_prefix_kana": null,
+ "statement_descriptor_prefix_kanji": null
+ },
+ "dashboard": {
+ "display_name": null,
+ "timezone": "Etc/UTC"
+ },
+ "invoices": {
+ "default_account_tax_ids": null
+ },
+ "payments": {
+ "statement_descriptor": null,
+ "statement_descriptor_kana": null,
+ "statement_descriptor_kanji": null
+ },
+ "payouts": {
+ "debit_negative_balances": true,
+ "schedule": {
+ "delay_days": 2,
+ "interval": "daily"
+ },
+ "statement_descriptor": null
+ },
+ "sepa_debit_payments": {}
+ },
+ "tos_acceptance": {
+ "date": null,
+ "ip": null,
+ "user_agent": null
+ },
+ "type": "standard"
+ }
+ recorded_at: Wed, 17 Apr 2024 22:37:42 GMT
+- request:
+ method: get
+ uri: https://api.stripe.com/v1/accounts/acct_fake_account
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ User-Agent:
+ - Stripe/v1 RubyBindings/11.1.0
+ Authorization:
+ - ""
+ Content-Type:
+ - application/x-www-form-urlencoded
+ X-Stripe-Client-Telemetry:
+ - '{"last_request_metrics":{"request_id":"req_eup7iQgNj4TnQb","request_duration_ms":1730}}'
+ Stripe-Version:
+ - '2024-04-10'
+ X-Stripe-Client-User-Agent:
+ - ""
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ response:
+ status:
+ code: 403
+ message: Forbidden
+ headers:
+ Server:
+ - nginx
+ Date:
+ - Wed, 17 Apr 2024 22:37:42 GMT
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '366'
+ Connection:
+ - keep-alive
+ Access-Control-Allow-Credentials:
+ - 'true'
+ Access-Control-Allow-Methods:
+ - GET,HEAD,PUT,PATCH,POST,DELETE
+ Access-Control-Allow-Origin:
+ - "*"
+ Access-Control-Expose-Headers:
+ - Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required,
+ X-Stripe-Privileged-Session-Required
+ Access-Control-Max-Age:
+ - '300'
+ Cache-Control:
+ - no-cache, no-store
+ Vary:
+ - Origin
+ Strict-Transport-Security:
+ - max-age=63072000; includeSubDomains; preload
+ body:
+ encoding: UTF-8
+ string: |
+ {
+ "error": {
+ "message": "The provided key 'sk_test_******************************uCJm' does not have access to account 'acct_fake_account' (or that account does not exist). Application access may have been revoked.",
+ "type": "invalid_request_error",
+ "code": "account_invalid",
+ "doc_url": "https://stripe.com/docs/error-codes/account-invalid"
+ }
+ }
+ recorded_at: Wed, 17 Apr 2024 22:37:42 GMT
+- request:
+ method: delete
+ uri: https://api.stripe.com/v1/accounts/acct_1P6h6nQTJVHFbeTF
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ User-Agent:
+ - Stripe/v1 RubyBindings/11.1.0
+ Authorization:
+ - ""
+ Content-Type:
+ - application/x-www-form-urlencoded
+ X-Stripe-Client-Telemetry:
+ - '{"last_request_metrics":{"request_id":"req_eup7iQgNj4TnQb","request_duration_ms":1730}}'
+ Stripe-Version:
+ - '2024-04-10'
+ X-Stripe-Client-User-Agent:
+ - ""
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Server:
+ - nginx
+ Date:
+ - Wed, 17 Apr 2024 22:37:43 GMT
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '77'
+ Connection:
+ - keep-alive
+ Access-Control-Allow-Credentials:
+ - 'true'
+ Access-Control-Allow-Methods:
+ - GET,HEAD,PUT,PATCH,POST,DELETE
+ Access-Control-Allow-Origin:
+ - "*"
+ Access-Control-Expose-Headers:
+ - Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required,
+ X-Stripe-Privileged-Session-Required
+ Access-Control-Max-Age:
+ - '300'
+ Cache-Control:
+ - no-cache, no-store
+ Content-Security-Policy:
+ - report-uri https://q.stripe.com/csp-report?p=v1%2Faccounts%2F%3Aaccount; block-all-mixed-content;
+ default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none';
+ img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
+ Request-Id:
+ - req_uQmePD7HhxAqfq
+ Stripe-Account:
+ - acct_1P6h6nQTJVHFbeTF
+ Stripe-Version:
+ - '2024-04-10'
+ Vary:
+ - Origin
+ X-Stripe-Routing-Context-Priority-Tier:
+ - api-testmode
+ Strict-Transport-Security:
+ - max-age=63072000; includeSubDomains; preload
+ body:
+ encoding: UTF-8
+ string: |-
+ {
+ "id": "acct_1P6h6nQTJVHFbeTF",
+ "object": "account",
+ "deleted": true
+ }
+ recorded_at: Wed, 17 Apr 2024 22:37:43 GMT
+recorded_with: VCR 6.2.0
diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Admin_StripeAccountsController/_status/when_I_manage_the_specified_enterprise/when_Stripe_is_enabled/when_a_stripe_account_is_associated_with_the_specified_enterprise/which_is_connected/returns_with_a_status_of_connected_.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Admin_StripeAccountsController/_status/when_I_manage_the_specified_enterprise/when_Stripe_is_enabled/when_a_stripe_account_is_associated_with_the_specified_enterprise/which_is_connected/returns_with_a_status_of_connected_.yml
new file mode 100644
index 0000000000..e03b7f10e1
--- /dev/null
+++ b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Admin_StripeAccountsController/_status/when_I_manage_the_specified_enterprise/when_Stripe_is_enabled/when_a_stripe_account_is_associated_with_the_specified_enterprise/which_is_connected/returns_with_a_status_of_connected_.yml
@@ -0,0 +1,547 @@
+---
+http_interactions:
+- request:
+ method: post
+ uri: https://api.stripe.com/v1/accounts
+ body:
+ encoding: UTF-8
+ string: type=standard&country=AU&email=jumping.jack%40example.com&business_type=non_profit
+ headers:
+ User-Agent:
+ - Stripe/v1 RubyBindings/11.1.0
+ Authorization:
+ - ""
+ Content-Type:
+ - application/x-www-form-urlencoded
+ X-Stripe-Client-Telemetry:
+ - '{"last_request_metrics":{"request_id":"req_uQmePD7HhxAqfq","request_duration_ms":1015}}'
+ Stripe-Version:
+ - '2024-04-10'
+ X-Stripe-Client-User-Agent:
+ - ""
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Server:
+ - nginx
+ Date:
+ - Wed, 17 Apr 2024 22:37:45 GMT
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '3527'
+ Connection:
+ - keep-alive
+ Access-Control-Allow-Credentials:
+ - 'true'
+ Access-Control-Allow-Methods:
+ - GET,HEAD,PUT,PATCH,POST,DELETE
+ Access-Control-Allow-Origin:
+ - "*"
+ Access-Control-Expose-Headers:
+ - Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required,
+ X-Stripe-Privileged-Session-Required
+ Access-Control-Max-Age:
+ - '300'
+ Cache-Control:
+ - no-cache, no-store
+ Content-Security-Policy:
+ - report-uri https://q.stripe.com/csp-report?p=v1%2Faccounts; block-all-mixed-content;
+ default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none';
+ img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
+ Idempotency-Key:
+ - 6e58444a-cd31-4d87-a7c8-bd92862e3f13
+ Original-Request:
+ - req_fVgom9Vx38Xifc
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
+ Request-Id:
+ - req_fVgom9Vx38Xifc
+ Stripe-Should-Retry:
+ - 'false'
+ Stripe-Version:
+ - '2024-04-10'
+ Vary:
+ - Origin
+ X-Stripe-Routing-Context-Priority-Tier:
+ - api-testmode
+ Strict-Transport-Security:
+ - max-age=63072000; includeSubDomains; preload
+ body:
+ encoding: UTF-8
+ string: |-
+ {
+ "id": "acct_1P6h6q4EUB0qRIux",
+ "object": "account",
+ "business_profile": {
+ "annual_revenue": null,
+ "estimated_worker_count": null,
+ "mcc": null,
+ "name": null,
+ "product_description": null,
+ "support_address": null,
+ "support_email": null,
+ "support_phone": null,
+ "support_url": null,
+ "url": null
+ },
+ "business_type": "non_profit",
+ "capabilities": {},
+ "charges_enabled": false,
+ "company": {
+ "address": {
+ "city": null,
+ "country": "AU",
+ "line1": null,
+ "line2": null,
+ "postal_code": null,
+ "state": null
+ },
+ "directors_provided": false,
+ "executives_provided": false,
+ "name": null,
+ "owners_provided": false,
+ "tax_id_provided": false,
+ "verification": {
+ "document": {
+ "back": null,
+ "details": null,
+ "details_code": null,
+ "front": null
+ }
+ }
+ },
+ "controller": {
+ "is_controller": true,
+ "type": "application"
+ },
+ "country": "AU",
+ "created": 1713393464,
+ "default_currency": "aud",
+ "details_submitted": false,
+ "email": "jumping.jack@example.com",
+ "external_accounts": {
+ "object": "list",
+ "data": [],
+ "has_more": false,
+ "total_count": 0,
+ "url": "/v1/accounts/acct_1P6h6q4EUB0qRIux/external_accounts"
+ },
+ "future_requirements": {
+ "alternatives": [],
+ "current_deadline": null,
+ "currently_due": [],
+ "disabled_reason": null,
+ "errors": [],
+ "eventually_due": [],
+ "past_due": [],
+ "pending_verification": []
+ },
+ "metadata": {},
+ "payouts_enabled": false,
+ "requirements": {
+ "alternatives": [],
+ "current_deadline": null,
+ "currently_due": [
+ "business_profile.product_description",
+ "business_profile.support_phone",
+ "business_profile.url",
+ "external_account",
+ "tos_acceptance.date",
+ "tos_acceptance.ip"
+ ],
+ "disabled_reason": "requirements.past_due",
+ "errors": [],
+ "eventually_due": [
+ "business_profile.product_description",
+ "business_profile.support_phone",
+ "business_profile.url",
+ "external_account",
+ "tos_acceptance.date",
+ "tos_acceptance.ip"
+ ],
+ "past_due": [
+ "external_account",
+ "tos_acceptance.date",
+ "tos_acceptance.ip"
+ ],
+ "pending_verification": []
+ },
+ "settings": {
+ "bacs_debit_payments": {
+ "display_name": null,
+ "service_user_number": null
+ },
+ "branding": {
+ "icon": null,
+ "logo": null,
+ "primary_color": null,
+ "secondary_color": null
+ },
+ "card_issuing": {
+ "tos_acceptance": {
+ "date": null,
+ "ip": null
+ }
+ },
+ "card_payments": {
+ "decline_on": {
+ "avs_failure": false,
+ "cvc_failure": false
+ },
+ "statement_descriptor_prefix": null,
+ "statement_descriptor_prefix_kana": null,
+ "statement_descriptor_prefix_kanji": null
+ },
+ "dashboard": {
+ "display_name": null,
+ "timezone": "Etc/UTC"
+ },
+ "invoices": {
+ "default_account_tax_ids": null
+ },
+ "payments": {
+ "statement_descriptor": null,
+ "statement_descriptor_kana": null,
+ "statement_descriptor_kanji": null
+ },
+ "payouts": {
+ "debit_negative_balances": true,
+ "schedule": {
+ "delay_days": 2,
+ "interval": "daily"
+ },
+ "statement_descriptor": null
+ },
+ "sepa_debit_payments": {}
+ },
+ "tos_acceptance": {
+ "date": null,
+ "ip": null,
+ "user_agent": null
+ },
+ "type": "standard"
+ }
+ recorded_at: Wed, 17 Apr 2024 22:37:45 GMT
+- request:
+ method: get
+ uri: https://api.stripe.com/v1/accounts/acct_1P6h6q4EUB0qRIux
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ User-Agent:
+ - Stripe/v1 RubyBindings/11.1.0
+ Authorization:
+ - ""
+ Content-Type:
+ - application/x-www-form-urlencoded
+ X-Stripe-Client-Telemetry:
+ - '{"last_request_metrics":{"request_id":"req_fVgom9Vx38Xifc","request_duration_ms":1937}}'
+ Stripe-Version:
+ - '2024-04-10'
+ X-Stripe-Client-User-Agent:
+ - ""
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Server:
+ - nginx
+ Date:
+ - Wed, 17 Apr 2024 22:37:46 GMT
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '3527'
+ Connection:
+ - keep-alive
+ Access-Control-Allow-Credentials:
+ - 'true'
+ Access-Control-Allow-Methods:
+ - GET,HEAD,PUT,PATCH,POST,DELETE
+ Access-Control-Allow-Origin:
+ - "*"
+ Access-Control-Expose-Headers:
+ - Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required,
+ X-Stripe-Privileged-Session-Required
+ Access-Control-Max-Age:
+ - '300'
+ Cache-Control:
+ - no-cache, no-store
+ Content-Security-Policy:
+ - report-uri https://q.stripe.com/csp-report?p=v1%2Faccounts%2F%3Aaccount; block-all-mixed-content;
+ default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none';
+ img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
+ Request-Id:
+ - req_Mt3HFeik0lC10y
+ Stripe-Account:
+ - acct_1P6h6q4EUB0qRIux
+ Stripe-Version:
+ - '2024-04-10'
+ Vary:
+ - Origin
+ X-Stripe-Routing-Context-Priority-Tier:
+ - api-testmode
+ Strict-Transport-Security:
+ - max-age=63072000; includeSubDomains; preload
+ body:
+ encoding: UTF-8
+ string: |-
+ {
+ "id": "acct_1P6h6q4EUB0qRIux",
+ "object": "account",
+ "business_profile": {
+ "annual_revenue": null,
+ "estimated_worker_count": null,
+ "mcc": null,
+ "name": null,
+ "product_description": null,
+ "support_address": null,
+ "support_email": null,
+ "support_phone": null,
+ "support_url": null,
+ "url": null
+ },
+ "business_type": "non_profit",
+ "capabilities": {},
+ "charges_enabled": false,
+ "company": {
+ "address": {
+ "city": null,
+ "country": "AU",
+ "line1": null,
+ "line2": null,
+ "postal_code": null,
+ "state": null
+ },
+ "directors_provided": false,
+ "executives_provided": false,
+ "name": null,
+ "owners_provided": false,
+ "tax_id_provided": false,
+ "verification": {
+ "document": {
+ "back": null,
+ "details": null,
+ "details_code": null,
+ "front": null
+ }
+ }
+ },
+ "controller": {
+ "is_controller": true,
+ "type": "application"
+ },
+ "country": "AU",
+ "created": 1713393464,
+ "default_currency": "aud",
+ "details_submitted": false,
+ "email": "jumping.jack@example.com",
+ "external_accounts": {
+ "object": "list",
+ "data": [],
+ "has_more": false,
+ "total_count": 0,
+ "url": "/v1/accounts/acct_1P6h6q4EUB0qRIux/external_accounts"
+ },
+ "future_requirements": {
+ "alternatives": [],
+ "current_deadline": null,
+ "currently_due": [],
+ "disabled_reason": null,
+ "errors": [],
+ "eventually_due": [],
+ "past_due": [],
+ "pending_verification": []
+ },
+ "metadata": {},
+ "payouts_enabled": false,
+ "requirements": {
+ "alternatives": [],
+ "current_deadline": null,
+ "currently_due": [
+ "business_profile.product_description",
+ "business_profile.support_phone",
+ "business_profile.url",
+ "external_account",
+ "tos_acceptance.date",
+ "tos_acceptance.ip"
+ ],
+ "disabled_reason": "requirements.past_due",
+ "errors": [],
+ "eventually_due": [
+ "business_profile.product_description",
+ "business_profile.support_phone",
+ "business_profile.url",
+ "external_account",
+ "tos_acceptance.date",
+ "tos_acceptance.ip"
+ ],
+ "past_due": [
+ "external_account",
+ "tos_acceptance.date",
+ "tos_acceptance.ip"
+ ],
+ "pending_verification": []
+ },
+ "settings": {
+ "bacs_debit_payments": {
+ "display_name": null,
+ "service_user_number": null
+ },
+ "branding": {
+ "icon": null,
+ "logo": null,
+ "primary_color": null,
+ "secondary_color": null
+ },
+ "card_issuing": {
+ "tos_acceptance": {
+ "date": null,
+ "ip": null
+ }
+ },
+ "card_payments": {
+ "decline_on": {
+ "avs_failure": false,
+ "cvc_failure": false
+ },
+ "statement_descriptor_prefix": null,
+ "statement_descriptor_prefix_kana": null,
+ "statement_descriptor_prefix_kanji": null
+ },
+ "dashboard": {
+ "display_name": null,
+ "timezone": "Etc/UTC"
+ },
+ "invoices": {
+ "default_account_tax_ids": null
+ },
+ "payments": {
+ "statement_descriptor": null,
+ "statement_descriptor_kana": null,
+ "statement_descriptor_kanji": null
+ },
+ "payouts": {
+ "debit_negative_balances": true,
+ "schedule": {
+ "delay_days": 2,
+ "interval": "daily"
+ },
+ "statement_descriptor": null
+ },
+ "sepa_debit_payments": {}
+ },
+ "tos_acceptance": {
+ "date": null,
+ "ip": null,
+ "user_agent": null
+ },
+ "type": "standard"
+ }
+ recorded_at: Wed, 17 Apr 2024 22:37:46 GMT
+- request:
+ method: delete
+ uri: https://api.stripe.com/v1/accounts/acct_1P6h6q4EUB0qRIux
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ User-Agent:
+ - Stripe/v1 RubyBindings/11.1.0
+ Authorization:
+ - ""
+ Content-Type:
+ - application/x-www-form-urlencoded
+ X-Stripe-Client-Telemetry:
+ - '{"last_request_metrics":{"request_id":"req_Mt3HFeik0lC10y","request_duration_ms":464}}'
+ Stripe-Version:
+ - '2024-04-10'
+ X-Stripe-Client-User-Agent:
+ - ""
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Server:
+ - nginx
+ Date:
+ - Wed, 17 Apr 2024 22:37:47 GMT
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '77'
+ Connection:
+ - keep-alive
+ Access-Control-Allow-Credentials:
+ - 'true'
+ Access-Control-Allow-Methods:
+ - GET,HEAD,PUT,PATCH,POST,DELETE
+ Access-Control-Allow-Origin:
+ - "*"
+ Access-Control-Expose-Headers:
+ - Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required,
+ X-Stripe-Privileged-Session-Required
+ Access-Control-Max-Age:
+ - '300'
+ Cache-Control:
+ - no-cache, no-store
+ Content-Security-Policy:
+ - report-uri https://q.stripe.com/csp-report?p=v1%2Faccounts%2F%3Aaccount; block-all-mixed-content;
+ default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none';
+ img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
+ Request-Id:
+ - req_8rH0FEVsdRhHGG
+ Stripe-Account:
+ - acct_1P6h6q4EUB0qRIux
+ Stripe-Version:
+ - '2024-04-10'
+ Vary:
+ - Origin
+ X-Stripe-Routing-Context-Priority-Tier:
+ - api-testmode
+ Strict-Transport-Security:
+ - max-age=63072000; includeSubDomains; preload
+ body:
+ encoding: UTF-8
+ string: |-
+ {
+ "id": "acct_1P6h6q4EUB0qRIux",
+ "object": "account",
+ "deleted": true
+ }
+ recorded_at: Wed, 17 Apr 2024 22:37:47 GMT
+recorded_with: VCR 6.2.0
diff --git a/spec/fixtures/vcr_cassettes/Stripe-v10.10.0/Spree_CreditCardsController/using_VCR/_new_from_token/when_the_request_to_store_the_customer/card_with_Stripe_is_successful/saves_the_card_locally.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Spree_CreditCardsController/using_VCR/_new_from_token/when_the_request_to_store_the_customer/card_with_Stripe_is_successful/saves_the_card_locally.yml
similarity index 71%
rename from spec/fixtures/vcr_cassettes/Stripe-v10.10.0/Spree_CreditCardsController/using_VCR/_new_from_token/when_the_request_to_store_the_customer/card_with_Stripe_is_successful/saves_the_card_locally.yml
rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Spree_CreditCardsController/using_VCR/_new_from_token/when_the_request_to_store_the_customer/card_with_Stripe_is_successful/saves_the_card_locally.yml
index 2b5bca5272..bba35246bc 100644
--- a/spec/fixtures/vcr_cassettes/Stripe-v10.10.0/Spree_CreditCardsController/using_VCR/_new_from_token/when_the_request_to_store_the_customer/card_with_Stripe_is_successful/saves_the_card_locally.yml
+++ b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Spree_CreditCardsController/using_VCR/_new_from_token/when_the_request_to_store_the_customer/card_with_Stripe_is_successful/saves_the_card_locally.yml
@@ -8,18 +8,17 @@ http_interactions:
string: card[number]=4242424242424242&card[exp_month]=9&card[exp_year]=2024&card[cvc]=314
headers:
User-Agent:
- - Stripe/v1 RubyBindings/10.10.0
+ - Stripe/v1 RubyBindings/11.1.0
Authorization:
- - Bearer
+ - ""
Content-Type:
- application/x-www-form-urlencoded
+ X-Stripe-Client-Telemetry:
+ - '{"last_request_metrics":{"request_id":"req_8rH0FEVsdRhHGG","request_duration_ms":1027}}'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
X-Stripe-Client-User-Agent:
- - '{"bindings_version":"10.10.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
- version 5.15.0-92-generic (buildd@lcy02-amd64-002) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2)
- 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #102~20.04.1-Ubuntu SMP Mon
- Jan 15 13:09:14 UTC 2024","hostname":"gaetan-Dell-G15"}'
+ - ""
Accept-Encoding:
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept:
@@ -32,11 +31,11 @@ http_interactions:
Server:
- nginx
Date:
- - Mon, 26 Feb 2024 23:16:05 GMT
+ - Wed, 17 Apr 2024 22:37:48 GMT
Content-Type:
- application/json
Content-Length:
- - '850'
+ - '848'
Connection:
- keep-alive
Access-Control-Allow-Credentials:
@@ -56,16 +55,22 @@ http_interactions:
- report-uri https://q.stripe.com/csp-report?p=v1%2Ftokens; block-all-mixed-content;
default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none';
img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
Idempotency-Key:
- - 606d6e97-76cd-4483-b3b6-80f03f3f68ec
+ - bb83e217-3608-4df7-add8-ae52eb34614c
Original-Request:
- - req_W0FTNkXUslyGbo
+ - req_prEMClalBG6c2Q
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
Request-Id:
- - req_W0FTNkXUslyGbo
+ - req_prEMClalBG6c2Q
Stripe-Should-Retry:
- 'false'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
Vary:
- Origin
X-Stripe-Routing-Context-Priority-Tier:
@@ -76,10 +81,10 @@ http_interactions:
encoding: UTF-8
string: |-
{
- "id": "tok_1OoDOzKuuB1fWySnkUeLfdE0",
+ "id": "tok_1P6h6uKuuB1fWySnZzdkqGYm",
"object": "token",
"card": {
- "id": "card_1OoDOzKuuB1fWySn26fKjH8z",
+ "id": "card_1P6h6uKuuB1fWySnJZfX2tRv",
"object": "card",
"address_city": null,
"address_country": null,
@@ -106,35 +111,32 @@ http_interactions:
"tokenization_method": null,
"wallet": null
},
- "client_ip": "124.188.129.192",
- "created": 1708989365,
+ "client_ip": "115.166.33.14",
+ "created": 1713393468,
"livemode": false,
"type": "card",
"used": false
}
- recorded_at: Mon, 26 Feb 2024 23:16:05 GMT
+ recorded_at: Wed, 17 Apr 2024 22:37:48 GMT
- request:
method: post
uri: https://api.stripe.com/v1/customers
body:
encoding: UTF-8
- string: email=karena_dickinson%40kuhlman.ca&source=tok_1OoDOzKuuB1fWySnkUeLfdE0
+ string: email=marc%40christiansen.name&source=tok_1P6h6uKuuB1fWySnZzdkqGYm
headers:
User-Agent:
- - Stripe/v1 RubyBindings/10.10.0
+ - Stripe/v1 RubyBindings/11.1.0
Authorization:
- - Bearer
+ - ""
Content-Type:
- application/x-www-form-urlencoded
X-Stripe-Client-Telemetry:
- - '{"last_request_metrics":{"request_id":"req_W0FTNkXUslyGbo","request_duration_ms":533}}'
+ - '{"last_request_metrics":{"request_id":"req_prEMClalBG6c2Q","request_duration_ms":559}}'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
X-Stripe-Client-User-Agent:
- - '{"bindings_version":"10.10.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
- version 5.15.0-92-generic (buildd@lcy02-amd64-002) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2)
- 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #102~20.04.1-Ubuntu SMP Mon
- Jan 15 13:09:14 UTC 2024","hostname":"gaetan-Dell-G15"}'
+ - ""
Accept-Encoding:
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept:
@@ -147,11 +149,11 @@ http_interactions:
Server:
- nginx
Date:
- - Mon, 26 Feb 2024 23:16:06 GMT
+ - Wed, 17 Apr 2024 22:37:49 GMT
Content-Type:
- application/json
Content-Length:
- - '666'
+ - '661'
Connection:
- keep-alive
Access-Control-Allow-Credentials:
@@ -171,16 +173,22 @@ http_interactions:
- report-uri https://q.stripe.com/csp-report?p=v1%2Fcustomers; block-all-mixed-content;
default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none';
img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
Idempotency-Key:
- - 1169b4a3-4493-48e0-96d0-24d1aaa965d2
+ - c554622b-1bb1-4a21-924e-10e2d89ee3c4
Original-Request:
- - req_DMHZU8xd2ShaRW
+ - req_9WRw9Wa3q4aW4L
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
Request-Id:
- - req_DMHZU8xd2ShaRW
+ - req_9WRw9Wa3q4aW4L
Stripe-Should-Retry:
- 'false'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
Vary:
- Origin
X-Stripe-Routing-Context-Priority-Tier:
@@ -191,18 +199,18 @@ http_interactions:
encoding: UTF-8
string: |-
{
- "id": "cus_PdUNukPAyUst7M",
+ "id": "cus_PwaH4jTn93rX49",
"object": "customer",
"address": null,
"balance": 0,
- "created": 1708989366,
+ "created": 1713393468,
"currency": null,
- "default_source": "card_1OoDOzKuuB1fWySn26fKjH8z",
+ "default_source": "card_1P6h6uKuuB1fWySnJZfX2tRv",
"delinquent": false,
"description": null,
"discount": null,
- "email": "karena_dickinson@kuhlman.ca",
- "invoice_prefix": "FC2002CD",
+ "email": "marc@christiansen.name",
+ "invoice_prefix": "C7DCDC14",
"invoice_settings": {
"custom_fields": null,
"default_payment_method": null,
@@ -219,29 +227,26 @@ http_interactions:
"tax_exempt": "none",
"test_clock": null
}
- recorded_at: Mon, 26 Feb 2024 23:16:06 GMT
+ recorded_at: Wed, 17 Apr 2024 22:37:49 GMT
- request:
method: get
- uri: https://api.stripe.com/v1/customers/cus_PdUNukPAyUst7M/sources?limit=1&object=card
+ uri: https://api.stripe.com/v1/customers/cus_PwaH4jTn93rX49/sources?limit=1&object=card
body:
encoding: US-ASCII
string: ''
headers:
User-Agent:
- - Stripe/v1 RubyBindings/10.10.0
+ - Stripe/v1 RubyBindings/11.1.0
Authorization:
- - Bearer
+ - ""
Content-Type:
- application/x-www-form-urlencoded
X-Stripe-Client-Telemetry:
- - '{"last_request_metrics":{"request_id":"req_DMHZU8xd2ShaRW","request_duration_ms":973}}'
+ - '{"last_request_metrics":{"request_id":"req_9WRw9Wa3q4aW4L","request_duration_ms":952}}'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
X-Stripe-Client-User-Agent:
- - '{"bindings_version":"10.10.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
- version 5.15.0-92-generic (buildd@lcy02-amd64-002) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2)
- 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #102~20.04.1-Ubuntu SMP Mon
- Jan 15 13:09:14 UTC 2024","hostname":"gaetan-Dell-G15"}'
+ - ""
Accept-Encoding:
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept:
@@ -254,7 +259,7 @@ http_interactions:
Server:
- nginx
Date:
- - Mon, 26 Feb 2024 23:16:07 GMT
+ - Wed, 17 Apr 2024 22:37:49 GMT
Content-Type:
- application/json
Content-Length:
@@ -279,10 +284,16 @@ http_interactions:
block-all-mixed-content; default-src 'none'; base-uri 'none'; form-action
'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample';
style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
Request-Id:
- - req_MZVWecwtG9mJav
+ - req_BHrjo9C9dXpZ55
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
Vary:
- Origin
X-Stripe-Routing-Context-Priority-Tier:
@@ -296,7 +307,7 @@ http_interactions:
"object": "list",
"data": [
{
- "id": "card_1OoDOzKuuB1fWySn26fKjH8z",
+ "id": "card_1P6h6uKuuB1fWySnJZfX2tRv",
"object": "card",
"address_city": null,
"address_country": null,
@@ -308,7 +319,7 @@ http_interactions:
"address_zip_check": null,
"brand": "Visa",
"country": "US",
- "customer": "cus_PdUNukPAyUst7M",
+ "customer": "cus_PwaH4jTn93rX49",
"cvc_check": "pass",
"dynamic_last4": null,
"exp_month": 9,
@@ -323,7 +334,7 @@ http_interactions:
}
],
"has_more": false,
- "url": "/v1/customers/cus_PdUNukPAyUst7M/sources"
+ "url": "/v1/customers/cus_PwaH4jTn93rX49/sources"
}
- recorded_at: Mon, 26 Feb 2024 23:16:07 GMT
+ recorded_at: Wed, 17 Apr 2024 22:37:50 GMT
recorded_with: VCR 6.2.0
diff --git a/spec/fixtures/vcr_cassettes/Stripe-v10.10.0/Spree_Gateway_StripeSCA/_credit/refunds_the_payment.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Spree_Gateway_StripeSCA/_credit/refunds_the_payment.yml
similarity index 75%
rename from spec/fixtures/vcr_cassettes/Stripe-v10.10.0/Spree_Gateway_StripeSCA/_credit/refunds_the_payment.yml
rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Spree_Gateway_StripeSCA/_credit/refunds_the_payment.yml
index 55f69d9eb6..0c028c3f77 100644
--- a/spec/fixtures/vcr_cassettes/Stripe-v10.10.0/Spree_Gateway_StripeSCA/_credit/refunds_the_payment.yml
+++ b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Spree_Gateway_StripeSCA/_credit/refunds_the_payment.yml
@@ -8,20 +8,17 @@ http_interactions:
string: type=standard&country=AU&email=carrot.producer%40example.com
headers:
User-Agent:
- - Stripe/v1 RubyBindings/10.10.0
+ - Stripe/v1 RubyBindings/11.1.0
Authorization:
- - Bearer
+ - ""
Content-Type:
- application/x-www-form-urlencoded
X-Stripe-Client-Telemetry:
- - '{"last_request_metrics":{"request_id":"req_o2i92svEF6wZ9X","request_duration_ms":396}}'
+ - '{"last_request_metrics":{"request_id":"req_B60iS3d4eUM92l","request_duration_ms":1125}}'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
X-Stripe-Client-User-Agent:
- - '{"bindings_version":"10.10.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
- version 5.15.0-92-generic (buildd@lcy02-amd64-002) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2)
- 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #102~20.04.1-Ubuntu SMP Mon
- Jan 15 13:09:14 UTC 2024","hostname":"gaetan-Dell-G15"}'
+ - ""
Accept-Encoding:
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept:
@@ -34,7 +31,7 @@ http_interactions:
Server:
- nginx
Date:
- - Wed, 28 Feb 2024 04:23:09 GMT
+ - Wed, 17 Apr 2024 22:40:44 GMT
Content-Type:
- application/json
Content-Length:
@@ -58,16 +55,22 @@ http_interactions:
- report-uri https://q.stripe.com/csp-report?p=v1%2Faccounts; block-all-mixed-content;
default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none';
img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
Idempotency-Key:
- - 3d3d1721-0516-4615-b6d1-dcf32c7fe0b2
+ - 5ff55d3e-081a-405c-833a-8f70c6abd27a
Original-Request:
- - req_FYW1iyKrExg9pI
+ - req_jm8Rl8sU7tI0UM
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
Request-Id:
- - req_FYW1iyKrExg9pI
+ - req_jm8Rl8sU7tI0UM
Stripe-Should-Retry:
- 'false'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
Vary:
- Origin
X-Stripe-Routing-Context-Priority-Tier:
@@ -78,7 +81,7 @@ http_interactions:
encoding: UTF-8
string: |-
{
- "id": "acct_1Ooeff4DenidF2LU",
+ "id": "acct_1P6h9i4KUmrjzdw6",
"object": "account",
"business_profile": {
"annual_revenue": null,
@@ -100,7 +103,7 @@ http_interactions:
"type": "application"
},
"country": "AU",
- "created": 1709094188,
+ "created": 1713393643,
"default_currency": "aud",
"details_submitted": false,
"email": "carrot.producer@example.com",
@@ -109,7 +112,7 @@ http_interactions:
"data": [],
"has_more": false,
"total_count": 0,
- "url": "/v1/accounts/acct_1Ooeff4DenidF2LU/external_accounts"
+ "url": "/v1/accounts/acct_1P6h9i4KUmrjzdw6/external_accounts"
},
"future_requirements": {
"alternatives": [],
@@ -206,7 +209,7 @@ http_interactions:
},
"type": "standard"
}
- recorded_at: Wed, 28 Feb 2024 04:23:09 GMT
+ recorded_at: Wed, 17 Apr 2024 22:40:44 GMT
- request:
method: post
uri: https://api.stripe.com/v1/payment_intents
@@ -215,22 +218,19 @@ http_interactions:
string: amount=1000¤cy=aud&payment_method=pm_card_mastercard&payment_method_types[0]=card&capture_method=automatic&confirm=true
headers:
User-Agent:
- - Stripe/v1 RubyBindings/10.10.0
+ - Stripe/v1 RubyBindings/11.1.0
Authorization:
- - Bearer
+ - ""
Content-Type:
- application/x-www-form-urlencoded
X-Stripe-Client-Telemetry:
- - '{"last_request_metrics":{"request_id":"req_FYW1iyKrExg9pI","request_duration_ms":1973}}'
+ - '{"last_request_metrics":{"request_id":"req_jm8Rl8sU7tI0UM","request_duration_ms":1865}}'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
X-Stripe-Client-User-Agent:
- - '{"bindings_version":"10.10.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
- version 5.15.0-92-generic (buildd@lcy02-amd64-002) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2)
- 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #102~20.04.1-Ubuntu SMP Mon
- Jan 15 13:09:14 UTC 2024","hostname":"gaetan-Dell-G15"}'
+ - ""
Stripe-Account:
- - acct_1Ooeff4DenidF2LU
+ - acct_1P6h9i4KUmrjzdw6
Accept-Encoding:
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept:
@@ -243,7 +243,7 @@ http_interactions:
Server:
- nginx
Date:
- - Wed, 28 Feb 2024 04:23:11 GMT
+ - Wed, 17 Apr 2024 22:40:45 GMT
Content-Type:
- application/json
Content-Length:
@@ -267,18 +267,24 @@ http_interactions:
- report-uri https://q.stripe.com/csp-report?p=v1%2Fpayment_intents; block-all-mixed-content;
default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none';
img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
Idempotency-Key:
- - ee331c2c-1b37-4a83-a81b-96388aa9da31
+ - 0302b496-8847-4fce-9d2c-7542a386e3e2
Original-Request:
- - req_0zdTS2eXS52wv3
+ - req_2Vw8RTjUU7nX2E
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
Request-Id:
- - req_0zdTS2eXS52wv3
+ - req_2Vw8RTjUU7nX2E
Stripe-Account:
- - acct_1Ooeff4DenidF2LU
+ - acct_1P6h9i4KUmrjzdw6
Stripe-Should-Retry:
- 'false'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
Vary:
- Origin
X-Stripe-Routing-Context-Priority-Tier:
@@ -289,7 +295,7 @@ http_interactions:
encoding: UTF-8
string: |-
{
- "id": "pi_3Ooefi4DenidF2LU1DyZ34Mm",
+ "id": "pi_3P6h9k4KUmrjzdw60CPJoVkR",
"object": "payment_intent",
"amount": 1000,
"amount_capturable": 0,
@@ -303,20 +309,20 @@ http_interactions:
"canceled_at": null,
"cancellation_reason": null,
"capture_method": "automatic",
- "client_secret": "pi_3Ooefi4DenidF2LU1DyZ34Mm_secret_w379gPpBGChVwBEUepP0qlRB0",
+ "client_secret": "",
"confirmation_method": "automatic",
- "created": 1709094190,
+ "created": 1713393644,
"currency": "aud",
"customer": null,
"description": null,
"invoice": null,
"last_payment_error": null,
- "latest_charge": "ch_3Ooefi4DenidF2LU1gG37Leq",
+ "latest_charge": "ch_3P6h9k4KUmrjzdw60Zc6MoUh",
"livemode": false,
"metadata": {},
"next_action": null,
"on_behalf_of": null,
- "payment_method": "pm_1Ooefh4DenidF2LU9tRCdeQl",
+ "payment_method": "pm_1P6h9k4KUmrjzdw67AgkRAyO",
"payment_method_configuration_details": null,
"payment_method_options": {
"card": {
@@ -341,26 +347,26 @@ http_interactions:
"transfer_data": null,
"transfer_group": null
}
- recorded_at: Wed, 28 Feb 2024 04:23:11 GMT
+ recorded_at: Wed, 17 Apr 2024 22:40:45 GMT
- request:
method: get
- uri: https://api.stripe.com/v1/payment_intents/pi_3Ooefi4DenidF2LU1DyZ34Mm
+ uri: https://api.stripe.com/v1/payment_intents/pi_3P6h9k4KUmrjzdw60CPJoVkR
body:
encoding: US-ASCII
string: ''
headers:
Authorization:
- - Basic c2tfdGVzdF94RmdKUU9sWHBNQUZzb3p0endGQlRGaFAwMEhHN0J1Q0ptOg==
+ - ""
User-Agent:
- Stripe/v1 ActiveMerchantBindings/1.133.0
Stripe-Version:
- '2020-08-27'
X-Stripe-Client-User-Agent:
- - '{"bindings_version":"1.133.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","publisher":"active_merchant"}'
+ - ""
X-Stripe-Client-User-Metadata:
- '{"ip":null}'
Stripe-Account:
- - acct_1Ooeff4DenidF2LU
+ - acct_1P6h9i4KUmrjzdw6
Connection:
- close
Accept-Encoding:
@@ -375,7 +381,7 @@ http_interactions:
Server:
- nginx
Date:
- - Wed, 28 Feb 2024 04:23:11 GMT
+ - Wed, 17 Apr 2024 22:40:46 GMT
Content-Type:
- application/json
Content-Length:
@@ -400,10 +406,16 @@ http_interactions:
block-all-mixed-content; default-src 'none'; base-uri 'none'; form-action
'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample';
style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
Request-Id:
- - req_dpwxzBlEqboYmG
+ - req_TeEZVgd91ME3OF
Stripe-Account:
- - acct_1Ooeff4DenidF2LU
+ - acct_1P6h9i4KUmrjzdw6
Stripe-Version:
- '2020-08-27'
Vary:
@@ -416,7 +428,7 @@ http_interactions:
encoding: UTF-8
string: |-
{
- "id": "pi_3Ooefi4DenidF2LU1DyZ34Mm",
+ "id": "pi_3P6h9k4KUmrjzdw60CPJoVkR",
"object": "payment_intent",
"amount": 1000,
"amount_capturable": 0,
@@ -434,7 +446,7 @@ http_interactions:
"object": "list",
"data": [
{
- "id": "ch_3Ooefi4DenidF2LU1gG37Leq",
+ "id": "ch_3P6h9k4KUmrjzdw60Zc6MoUh",
"object": "charge",
"amount": 1000,
"amount_captured": 1000,
@@ -442,7 +454,7 @@ http_interactions:
"application": "",
"application_fee": null,
"application_fee_amount": null,
- "balance_transaction": "txn_3Ooefi4DenidF2LU1A5YW6L5",
+ "balance_transaction": "txn_3P6h9k4KUmrjzdw60hfBVh5C",
"billing_details": {
"address": {
"city": null,
@@ -458,7 +470,7 @@ http_interactions:
},
"calculated_statement_descriptor": "OFNOFNOFN",
"captured": true,
- "created": 1709094190,
+ "created": 1713393644,
"currency": "aud",
"customer": null,
"description": null,
@@ -478,13 +490,13 @@ http_interactions:
"network_status": "approved_by_network",
"reason": null,
"risk_level": "normal",
- "risk_score": 60,
+ "risk_score": 24,
"seller_message": "Payment complete.",
"type": "authorized"
},
"paid": true,
- "payment_intent": "pi_3Ooefi4DenidF2LU1DyZ34Mm",
- "payment_method": "pm_1Ooefh4DenidF2LU9tRCdeQl",
+ "payment_intent": "pi_3P6h9k4KUmrjzdw60CPJoVkR",
+ "payment_method": "pm_1P6h9k4KUmrjzdw67AgkRAyO",
"payment_method_details": {
"card": {
"amount_authorized": 1000,
@@ -495,7 +507,7 @@ http_interactions:
"cvc_check": "pass"
},
"country": "US",
- "exp_month": 2,
+ "exp_month": 4,
"exp_year": 2025,
"extended_authorization": {
"status": "disabled"
@@ -527,14 +539,14 @@ http_interactions:
"radar_options": {},
"receipt_email": null,
"receipt_number": null,
- "receipt_url": "https://pay.stripe.com/receipts/payment/CAcaFwoVYWNjdF8xT29lZmY0RGVuaWRGMkxVKK_q-q4GMgZJ1VM-2OM6LBb4D48xGlDpdG-HkaSEFwnz19gNCEL6o7LPe7Gh8_xibxWVk8tEJTqByzNe",
+ "receipt_url": "https://pay.stripe.com/receipts/payment/CAcaFwoVYWNjdF8xUDZoOWk0S1Vtcmp6ZHc2KO2fgbEGMgYXHWf51Tg6LBaTF2-PxsryTNKbJD43Hje_lrCkxMwsPW5sjduh3CKlPt6O939TJMmIHbvj",
"refunded": false,
"refunds": {
"object": "list",
"data": [],
"has_more": false,
"total_count": 0,
- "url": "/v1/charges/ch_3Ooefi4DenidF2LU1gG37Leq/refunds"
+ "url": "/v1/charges/ch_3P6h9k4KUmrjzdw60Zc6MoUh/refunds"
},
"review": null,
"shipping": null,
@@ -549,22 +561,22 @@ http_interactions:
],
"has_more": false,
"total_count": 1,
- "url": "/v1/charges?payment_intent=pi_3Ooefi4DenidF2LU1DyZ34Mm"
+ "url": "/v1/charges?payment_intent=pi_3P6h9k4KUmrjzdw60CPJoVkR"
},
- "client_secret": "pi_3Ooefi4DenidF2LU1DyZ34Mm_secret_w379gPpBGChVwBEUepP0qlRB0",
+ "client_secret": "",
"confirmation_method": "automatic",
- "created": 1709094190,
+ "created": 1713393644,
"currency": "aud",
"customer": null,
"description": null,
"invoice": null,
"last_payment_error": null,
- "latest_charge": "ch_3Ooefi4DenidF2LU1gG37Leq",
+ "latest_charge": "ch_3P6h9k4KUmrjzdw60Zc6MoUh",
"livemode": false,
"metadata": {},
"next_action": null,
"on_behalf_of": null,
- "payment_method": "pm_1Ooefh4DenidF2LU9tRCdeQl",
+ "payment_method": "pm_1P6h9k4KUmrjzdw67AgkRAyO",
"payment_method_configuration_details": null,
"payment_method_options": {
"card": {
@@ -589,10 +601,10 @@ http_interactions:
"transfer_data": null,
"transfer_group": null
}
- recorded_at: Wed, 28 Feb 2024 04:23:11 GMT
+ recorded_at: Wed, 17 Apr 2024 22:40:46 GMT
- request:
method: post
- uri: https://api.stripe.com/v1/charges/ch_3Ooefi4DenidF2LU1gG37Leq/refunds
+ uri: https://api.stripe.com/v1/charges/ch_3P6h9k4KUmrjzdw60Zc6MoUh/refunds
body:
encoding: UTF-8
string: amount=1000&expand[0]=charge
@@ -600,17 +612,17 @@ http_interactions:
Content-Type:
- application/x-www-form-urlencoded
Authorization:
- - Basic c2tfdGVzdF94RmdKUU9sWHBNQUZzb3p0endGQlRGaFAwMEhHN0J1Q0ptOg==
+ - ""
User-Agent:
- Stripe/v1 ActiveMerchantBindings/1.133.0
Stripe-Version:
- '2020-08-27'
X-Stripe-Client-User-Agent:
- - '{"bindings_version":"1.133.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","publisher":"active_merchant"}'
+ - ""
X-Stripe-Client-User-Metadata:
- '{"ip":null}'
Stripe-Account:
- - acct_1Ooeff4DenidF2LU
+ - acct_1P6h9i4KUmrjzdw6
Connection:
- close
Accept-Encoding:
@@ -625,7 +637,7 @@ http_interactions:
Server:
- nginx
Date:
- - Wed, 28 Feb 2024 04:23:12 GMT
+ - Wed, 17 Apr 2024 22:40:47 GMT
Content-Type:
- application/json
Content-Length:
@@ -650,14 +662,20 @@ http_interactions:
block-all-mixed-content; default-src 'none'; base-uri 'none'; form-action
'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample';
style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
Idempotency-Key:
- - f967618e-2bff-4c64-8875-82306c718be6
+ - 0f9056e8-b4f2-4ab0-a33d-dbc830202e7e
Original-Request:
- - req_5Yjwd0ugW4geJy
+ - req_rgblqMAoxx1Dwh
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
Request-Id:
- - req_5Yjwd0ugW4geJy
+ - req_rgblqMAoxx1Dwh
Stripe-Account:
- - acct_1Ooeff4DenidF2LU
+ - acct_1P6h9i4KUmrjzdw6
Stripe-Should-Retry:
- 'false'
Stripe-Version:
@@ -672,12 +690,12 @@ http_interactions:
encoding: UTF-8
string: |-
{
- "id": "re_3Ooefi4DenidF2LU1hzSgbUz",
+ "id": "re_3P6h9k4KUmrjzdw60Xb35Uhh",
"object": "refund",
"amount": 1000,
- "balance_transaction": "txn_3Ooefi4DenidF2LU1oUen4EE",
+ "balance_transaction": "txn_3P6h9k4KUmrjzdw60SSRfXLn",
"charge": {
- "id": "ch_3Ooefi4DenidF2LU1gG37Leq",
+ "id": "ch_3P6h9k4KUmrjzdw60Zc6MoUh",
"object": "charge",
"amount": 1000,
"amount_captured": 1000,
@@ -685,7 +703,7 @@ http_interactions:
"application": "",
"application_fee": null,
"application_fee_amount": null,
- "balance_transaction": "txn_3Ooefi4DenidF2LU1A5YW6L5",
+ "balance_transaction": "txn_3P6h9k4KUmrjzdw60hfBVh5C",
"billing_details": {
"address": {
"city": null,
@@ -701,7 +719,7 @@ http_interactions:
},
"calculated_statement_descriptor": "OFNOFNOFN",
"captured": true,
- "created": 1709094190,
+ "created": 1713393644,
"currency": "aud",
"customer": null,
"description": null,
@@ -721,13 +739,13 @@ http_interactions:
"network_status": "approved_by_network",
"reason": null,
"risk_level": "normal",
- "risk_score": 60,
+ "risk_score": 24,
"seller_message": "Payment complete.",
"type": "authorized"
},
"paid": true,
- "payment_intent": "pi_3Ooefi4DenidF2LU1DyZ34Mm",
- "payment_method": "pm_1Ooefh4DenidF2LU9tRCdeQl",
+ "payment_intent": "pi_3P6h9k4KUmrjzdw60CPJoVkR",
+ "payment_method": "pm_1P6h9k4KUmrjzdw67AgkRAyO",
"payment_method_details": {
"card": {
"amount_authorized": 1000,
@@ -738,7 +756,7 @@ http_interactions:
"cvc_check": "pass"
},
"country": "US",
- "exp_month": 2,
+ "exp_month": 4,
"exp_year": 2025,
"extended_authorization": {
"status": "disabled"
@@ -770,18 +788,18 @@ http_interactions:
"radar_options": {},
"receipt_email": null,
"receipt_number": null,
- "receipt_url": "https://pay.stripe.com/receipts/payment/CAcaFwoVYWNjdF8xT29lZmY0RGVuaWRGMkxVKLDq-q4GMgYBQPWVApY6LBZIdxWS5NgOoXSKJhVtXOpcQmkL8UTt0n8vbxpQzooi76bsTotoW945k7-i",
+ "receipt_url": "https://pay.stripe.com/receipts/payment/CAcaFwoVYWNjdF8xUDZoOWk0S1Vtcmp6ZHc2KO-fgbEGMgbybEkv6m46LBbvb25ggeKpISWj7n0GyRHAMlsarDDqFtG1Xm048MXeWpfspNi-widZutuK",
"refunded": true,
"refunds": {
"object": "list",
"data": [
{
- "id": "re_3Ooefi4DenidF2LU1hzSgbUz",
+ "id": "re_3P6h9k4KUmrjzdw60Xb35Uhh",
"object": "refund",
"amount": 1000,
- "balance_transaction": "txn_3Ooefi4DenidF2LU1oUen4EE",
- "charge": "ch_3Ooefi4DenidF2LU1gG37Leq",
- "created": 1709094191,
+ "balance_transaction": "txn_3P6h9k4KUmrjzdw60SSRfXLn",
+ "charge": "ch_3P6h9k4KUmrjzdw60Zc6MoUh",
+ "created": 1713393646,
"currency": "aud",
"destination_details": {
"card": {
@@ -792,7 +810,7 @@ http_interactions:
"type": "card"
},
"metadata": {},
- "payment_intent": "pi_3Ooefi4DenidF2LU1DyZ34Mm",
+ "payment_intent": "pi_3P6h9k4KUmrjzdw60CPJoVkR",
"reason": null,
"receipt_number": null,
"source_transfer_reversal": null,
@@ -802,7 +820,7 @@ http_interactions:
],
"has_more": false,
"total_count": 1,
- "url": "/v1/charges/ch_3Ooefi4DenidF2LU1gG37Leq/refunds"
+ "url": "/v1/charges/ch_3P6h9k4KUmrjzdw60Zc6MoUh/refunds"
},
"review": null,
"shipping": null,
@@ -814,7 +832,7 @@ http_interactions:
"transfer_data": null,
"transfer_group": null
},
- "created": 1709094191,
+ "created": 1713393646,
"currency": "aud",
"destination_details": {
"card": {
@@ -825,12 +843,94 @@ http_interactions:
"type": "card"
},
"metadata": {},
- "payment_intent": "pi_3Ooefi4DenidF2LU1DyZ34Mm",
+ "payment_intent": "pi_3P6h9k4KUmrjzdw60CPJoVkR",
"reason": null,
"receipt_number": null,
"source_transfer_reversal": null,
"status": "succeeded",
"transfer_reversal": null
}
- recorded_at: Wed, 28 Feb 2024 04:23:12 GMT
+ recorded_at: Wed, 17 Apr 2024 22:40:47 GMT
+- request:
+ method: delete
+ uri: https://api.stripe.com/v1/accounts/acct_1P6h9i4KUmrjzdw6
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ User-Agent:
+ - Stripe/v1 RubyBindings/11.1.0
+ Authorization:
+ - ""
+ Content-Type:
+ - application/x-www-form-urlencoded
+ X-Stripe-Client-Telemetry:
+ - '{"last_request_metrics":{"request_id":"req_2Vw8RTjUU7nX2E","request_duration_ms":1414}}'
+ Stripe-Version:
+ - '2024-04-10'
+ X-Stripe-Client-User-Agent:
+ - ""
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Server:
+ - nginx
+ Date:
+ - Wed, 17 Apr 2024 22:40:48 GMT
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '77'
+ Connection:
+ - keep-alive
+ Access-Control-Allow-Credentials:
+ - 'true'
+ Access-Control-Allow-Methods:
+ - GET,HEAD,PUT,PATCH,POST,DELETE
+ Access-Control-Allow-Origin:
+ - "*"
+ Access-Control-Expose-Headers:
+ - Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required,
+ X-Stripe-Privileged-Session-Required
+ Access-Control-Max-Age:
+ - '300'
+ Cache-Control:
+ - no-cache, no-store
+ Content-Security-Policy:
+ - report-uri https://q.stripe.com/csp-report?p=v1%2Faccounts%2F%3Aaccount; block-all-mixed-content;
+ default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none';
+ img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
+ Request-Id:
+ - req_n7PLeqVcYA2aqU
+ Stripe-Account:
+ - acct_1P6h9i4KUmrjzdw6
+ Stripe-Version:
+ - '2024-04-10'
+ Vary:
+ - Origin
+ X-Stripe-Routing-Context-Priority-Tier:
+ - api-testmode
+ Strict-Transport-Security:
+ - max-age=63072000; includeSubDomains; preload
+ body:
+ encoding: UTF-8
+ string: |-
+ {
+ "id": "acct_1P6h9i4KUmrjzdw6",
+ "object": "account",
+ "deleted": true
+ }
+ recorded_at: Wed, 17 Apr 2024 22:40:48 GMT
recorded_with: VCR 6.2.0
diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Spree_Gateway_StripeSCA/_error_message/when_payment_intent_state_is_not_in_requires_capture_state/does_not_succeed_if_payment_intent_state_is_not_requires_capture.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Spree_Gateway_StripeSCA/_error_message/when_payment_intent_state_is_not_in_requires_capture_state/does_not_succeed_if_payment_intent_state_is_not_requires_capture.yml
new file mode 100644
index 0000000000..900270392a
--- /dev/null
+++ b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Spree_Gateway_StripeSCA/_error_message/when_payment_intent_state_is_not_in_requires_capture_state/does_not_succeed_if_payment_intent_state_is_not_requires_capture.yml
@@ -0,0 +1,683 @@
+---
+http_interactions:
+- request:
+ method: get
+ uri: https://api.stripe.com/v1/payment_methods/pm_card_mastercard
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ User-Agent:
+ - Stripe/v1 RubyBindings/11.1.0
+ Authorization:
+ - ""
+ Content-Type:
+ - application/x-www-form-urlencoded
+ X-Stripe-Client-Telemetry:
+ - '{"last_request_metrics":{"request_id":"req_n7PLeqVcYA2aqU","request_duration_ms":1058}}'
+ Stripe-Version:
+ - '2024-04-10'
+ X-Stripe-Client-User-Agent:
+ - ""
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Server:
+ - nginx
+ Date:
+ - Wed, 17 Apr 2024 22:40:49 GMT
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '1013'
+ Connection:
+ - keep-alive
+ Access-Control-Allow-Credentials:
+ - 'true'
+ Access-Control-Allow-Methods:
+ - GET,HEAD,PUT,PATCH,POST,DELETE
+ Access-Control-Allow-Origin:
+ - "*"
+ Access-Control-Expose-Headers:
+ - Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required,
+ X-Stripe-Privileged-Session-Required
+ Access-Control-Max-Age:
+ - '300'
+ Cache-Control:
+ - no-cache, no-store
+ Content-Security-Policy:
+ - report-uri https://q.stripe.com/csp-report?p=v1%2Fpayment_methods%2F%3Apayment_method;
+ block-all-mixed-content; default-src 'none'; base-uri 'none'; form-action
+ 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample';
+ style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
+ Request-Id:
+ - req_h1kUu8qlpgx3gt
+ Stripe-Version:
+ - '2024-04-10'
+ Vary:
+ - Origin
+ X-Stripe-Routing-Context-Priority-Tier:
+ - api-testmode
+ Strict-Transport-Security:
+ - max-age=63072000; includeSubDomains; preload
+ body:
+ encoding: UTF-8
+ string: |-
+ {
+ "id": "pm_1P6h9pKuuB1fWySnLHcMMJgf",
+ "object": "payment_method",
+ "allow_redisplay": "unspecified",
+ "billing_details": {
+ "address": {
+ "city": null,
+ "country": null,
+ "line1": null,
+ "line2": null,
+ "postal_code": null,
+ "state": null
+ },
+ "email": null,
+ "name": null,
+ "phone": null
+ },
+ "card": {
+ "brand": "mastercard",
+ "checks": {
+ "address_line1_check": null,
+ "address_postal_code_check": null,
+ "cvc_check": "unchecked"
+ },
+ "country": "US",
+ "display_brand": "mastercard",
+ "exp_month": 4,
+ "exp_year": 2025,
+ "fingerprint": "BL35fEFVcTTS5wpE",
+ "funding": "credit",
+ "generated_from": null,
+ "last4": "4444",
+ "networks": {
+ "available": [
+ "mastercard"
+ ],
+ "preferred": null
+ },
+ "three_d_secure_usage": {
+ "supported": true
+ },
+ "wallet": null
+ },
+ "created": 1713393649,
+ "customer": null,
+ "livemode": false,
+ "metadata": {},
+ "type": "card"
+ }
+ recorded_at: Wed, 17 Apr 2024 22:40:49 GMT
+- request:
+ method: post
+ uri: https://api.stripe.com/v1/payment_intents
+ body:
+ encoding: UTF-8
+ string: amount=1000¤cy=aud&payment_method=pm_1P6h9pKuuB1fWySnLHcMMJgf&payment_method_types[0]=card&capture_method=manual
+ headers:
+ User-Agent:
+ - Stripe/v1 RubyBindings/11.1.0
+ Authorization:
+ - ""
+ Content-Type:
+ - application/x-www-form-urlencoded
+ X-Stripe-Client-Telemetry:
+ - '{"last_request_metrics":{"request_id":"req_h1kUu8qlpgx3gt","request_duration_ms":399}}'
+ Stripe-Version:
+ - '2024-04-10'
+ X-Stripe-Client-User-Agent:
+ - ""
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Server:
+ - nginx
+ Date:
+ - Wed, 17 Apr 2024 22:40:50 GMT
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '1344'
+ Connection:
+ - keep-alive
+ Access-Control-Allow-Credentials:
+ - 'true'
+ Access-Control-Allow-Methods:
+ - GET,HEAD,PUT,PATCH,POST,DELETE
+ Access-Control-Allow-Origin:
+ - "*"
+ Access-Control-Expose-Headers:
+ - Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required,
+ X-Stripe-Privileged-Session-Required
+ Access-Control-Max-Age:
+ - '300'
+ Cache-Control:
+ - no-cache, no-store
+ Content-Security-Policy:
+ - report-uri https://q.stripe.com/csp-report?p=v1%2Fpayment_intents; block-all-mixed-content;
+ default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none';
+ img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
+ Idempotency-Key:
+ - a2896e8a-cf5c-4c28-ad57-8f0bc6c23872
+ Original-Request:
+ - req_UDOIqvw1SJ1kJE
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
+ Request-Id:
+ - req_UDOIqvw1SJ1kJE
+ Stripe-Should-Retry:
+ - 'false'
+ Stripe-Version:
+ - '2024-04-10'
+ Vary:
+ - Origin
+ X-Stripe-Routing-Context-Priority-Tier:
+ - api-testmode
+ Strict-Transport-Security:
+ - max-age=63072000; includeSubDomains; preload
+ body:
+ encoding: UTF-8
+ string: |-
+ {
+ "id": "pi_3P6h9pKuuB1fWySn0uOS8MDT",
+ "object": "payment_intent",
+ "amount": 1000,
+ "amount_capturable": 0,
+ "amount_details": {
+ "tip": {}
+ },
+ "amount_received": 0,
+ "application": null,
+ "application_fee_amount": null,
+ "automatic_payment_methods": null,
+ "canceled_at": null,
+ "cancellation_reason": null,
+ "capture_method": "manual",
+ "client_secret": "",
+ "confirmation_method": "automatic",
+ "created": 1713393649,
+ "currency": "aud",
+ "customer": null,
+ "description": null,
+ "invoice": null,
+ "last_payment_error": null,
+ "latest_charge": null,
+ "livemode": false,
+ "metadata": {},
+ "next_action": null,
+ "on_behalf_of": null,
+ "payment_method": "pm_1P6h9pKuuB1fWySnLHcMMJgf",
+ "payment_method_configuration_details": null,
+ "payment_method_options": {
+ "card": {
+ "installments": null,
+ "mandate_options": null,
+ "network": null,
+ "request_three_d_secure": "automatic"
+ }
+ },
+ "payment_method_types": [
+ "card"
+ ],
+ "processing": null,
+ "receipt_email": null,
+ "review": null,
+ "setup_future_usage": null,
+ "shipping": null,
+ "source": null,
+ "statement_descriptor": null,
+ "statement_descriptor_suffix": null,
+ "status": "requires_confirmation",
+ "transfer_data": null,
+ "transfer_group": null
+ }
+ recorded_at: Wed, 17 Apr 2024 22:40:50 GMT
+- request:
+ method: get
+ uri: https://api.stripe.com/v1/payment_intents/pi_3P6h9pKuuB1fWySn0uOS8MDT
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ User-Agent:
+ - Stripe/v1 RubyBindings/11.1.0
+ Authorization:
+ - ""
+ Content-Type:
+ - application/x-www-form-urlencoded
+ X-Stripe-Client-Telemetry:
+ - '{"last_request_metrics":{"request_id":"req_UDOIqvw1SJ1kJE","request_duration_ms":478}}'
+ Stripe-Version:
+ - '2024-04-10'
+ X-Stripe-Client-User-Agent:
+ - ""
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Server:
+ - nginx
+ Date:
+ - Wed, 17 Apr 2024 22:40:50 GMT
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '1344'
+ Connection:
+ - keep-alive
+ Access-Control-Allow-Credentials:
+ - 'true'
+ Access-Control-Allow-Methods:
+ - GET,HEAD,PUT,PATCH,POST,DELETE
+ Access-Control-Allow-Origin:
+ - "*"
+ Access-Control-Expose-Headers:
+ - Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required,
+ X-Stripe-Privileged-Session-Required
+ Access-Control-Max-Age:
+ - '300'
+ Cache-Control:
+ - no-cache, no-store
+ Content-Security-Policy:
+ - report-uri https://q.stripe.com/csp-report?p=v1%2Fpayment_intents%2F%3Aintent;
+ block-all-mixed-content; default-src 'none'; base-uri 'none'; form-action
+ 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample';
+ style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
+ Request-Id:
+ - req_md5EJAhfQz2tq8
+ Stripe-Version:
+ - '2024-04-10'
+ Vary:
+ - Origin
+ X-Stripe-Routing-Context-Priority-Tier:
+ - api-testmode
+ Strict-Transport-Security:
+ - max-age=63072000; includeSubDomains; preload
+ body:
+ encoding: UTF-8
+ string: |-
+ {
+ "id": "pi_3P6h9pKuuB1fWySn0uOS8MDT",
+ "object": "payment_intent",
+ "amount": 1000,
+ "amount_capturable": 0,
+ "amount_details": {
+ "tip": {}
+ },
+ "amount_received": 0,
+ "application": null,
+ "application_fee_amount": null,
+ "automatic_payment_methods": null,
+ "canceled_at": null,
+ "cancellation_reason": null,
+ "capture_method": "manual",
+ "client_secret": "",
+ "confirmation_method": "automatic",
+ "created": 1713393649,
+ "currency": "aud",
+ "customer": null,
+ "description": null,
+ "invoice": null,
+ "last_payment_error": null,
+ "latest_charge": null,
+ "livemode": false,
+ "metadata": {},
+ "next_action": null,
+ "on_behalf_of": null,
+ "payment_method": "pm_1P6h9pKuuB1fWySnLHcMMJgf",
+ "payment_method_configuration_details": null,
+ "payment_method_options": {
+ "card": {
+ "installments": null,
+ "mandate_options": null,
+ "network": null,
+ "request_three_d_secure": "automatic"
+ }
+ },
+ "payment_method_types": [
+ "card"
+ ],
+ "processing": null,
+ "receipt_email": null,
+ "review": null,
+ "setup_future_usage": null,
+ "shipping": null,
+ "source": null,
+ "statement_descriptor": null,
+ "statement_descriptor_suffix": null,
+ "status": "requires_confirmation",
+ "transfer_data": null,
+ "transfer_group": null
+ }
+ recorded_at: Wed, 17 Apr 2024 22:40:50 GMT
+- request:
+ method: post
+ uri: https://api.stripe.com/v1/accounts
+ body:
+ encoding: UTF-8
+ string: type=standard&country=AU&email=carrot.producer%40example.com
+ headers:
+ User-Agent:
+ - Stripe/v1 RubyBindings/11.1.0
+ Authorization:
+ - ""
+ Content-Type:
+ - application/x-www-form-urlencoded
+ X-Stripe-Client-Telemetry:
+ - '{"last_request_metrics":{"request_id":"req_md5EJAhfQz2tq8","request_duration_ms":422}}'
+ Stripe-Version:
+ - '2024-04-10'
+ X-Stripe-Client-User-Agent:
+ - ""
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Server:
+ - nginx
+ Date:
+ - Wed, 17 Apr 2024 22:40:52 GMT
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '3046'
+ Connection:
+ - keep-alive
+ Access-Control-Allow-Credentials:
+ - 'true'
+ Access-Control-Allow-Methods:
+ - GET,HEAD,PUT,PATCH,POST,DELETE
+ Access-Control-Allow-Origin:
+ - "*"
+ Access-Control-Expose-Headers:
+ - Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required,
+ X-Stripe-Privileged-Session-Required
+ Access-Control-Max-Age:
+ - '300'
+ Cache-Control:
+ - no-cache, no-store
+ Content-Security-Policy:
+ - report-uri https://q.stripe.com/csp-report?p=v1%2Faccounts; block-all-mixed-content;
+ default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none';
+ img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
+ Idempotency-Key:
+ - 5e707e9a-cf32-4515-acf2-cebbcc0f6dfe
+ Original-Request:
+ - req_cbPYvYJmY3fkfJ
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
+ Request-Id:
+ - req_cbPYvYJmY3fkfJ
+ Stripe-Should-Retry:
+ - 'false'
+ Stripe-Version:
+ - '2024-04-10'
+ Vary:
+ - Origin
+ X-Stripe-Routing-Context-Priority-Tier:
+ - api-testmode
+ Strict-Transport-Security:
+ - max-age=63072000; includeSubDomains; preload
+ body:
+ encoding: UTF-8
+ string: |-
+ {
+ "id": "acct_1P6h9q4CfczCwDwr",
+ "object": "account",
+ "business_profile": {
+ "annual_revenue": null,
+ "estimated_worker_count": null,
+ "mcc": null,
+ "name": null,
+ "product_description": null,
+ "support_address": null,
+ "support_email": null,
+ "support_phone": null,
+ "support_url": null,
+ "url": null
+ },
+ "business_type": null,
+ "capabilities": {},
+ "charges_enabled": false,
+ "controller": {
+ "is_controller": true,
+ "type": "application"
+ },
+ "country": "AU",
+ "created": 1713393651,
+ "default_currency": "aud",
+ "details_submitted": false,
+ "email": "carrot.producer@example.com",
+ "external_accounts": {
+ "object": "list",
+ "data": [],
+ "has_more": false,
+ "total_count": 0,
+ "url": "/v1/accounts/acct_1P6h9q4CfczCwDwr/external_accounts"
+ },
+ "future_requirements": {
+ "alternatives": [],
+ "current_deadline": null,
+ "currently_due": [],
+ "disabled_reason": null,
+ "errors": [],
+ "eventually_due": [],
+ "past_due": [],
+ "pending_verification": []
+ },
+ "metadata": {},
+ "payouts_enabled": false,
+ "requirements": {
+ "alternatives": [],
+ "current_deadline": null,
+ "currently_due": [
+ "business_profile.product_description",
+ "business_profile.support_phone",
+ "business_profile.url",
+ "external_account",
+ "tos_acceptance.date",
+ "tos_acceptance.ip"
+ ],
+ "disabled_reason": "requirements.past_due",
+ "errors": [],
+ "eventually_due": [
+ "business_profile.product_description",
+ "business_profile.support_phone",
+ "business_profile.url",
+ "external_account",
+ "tos_acceptance.date",
+ "tos_acceptance.ip"
+ ],
+ "past_due": [
+ "external_account",
+ "tos_acceptance.date",
+ "tos_acceptance.ip"
+ ],
+ "pending_verification": []
+ },
+ "settings": {
+ "bacs_debit_payments": {
+ "display_name": null,
+ "service_user_number": null
+ },
+ "branding": {
+ "icon": null,
+ "logo": null,
+ "primary_color": null,
+ "secondary_color": null
+ },
+ "card_issuing": {
+ "tos_acceptance": {
+ "date": null,
+ "ip": null
+ }
+ },
+ "card_payments": {
+ "decline_on": {
+ "avs_failure": false,
+ "cvc_failure": false
+ },
+ "statement_descriptor_prefix": null,
+ "statement_descriptor_prefix_kana": null,
+ "statement_descriptor_prefix_kanji": null
+ },
+ "dashboard": {
+ "display_name": null,
+ "timezone": "Etc/UTC"
+ },
+ "invoices": {
+ "default_account_tax_ids": null
+ },
+ "payments": {
+ "statement_descriptor": null,
+ "statement_descriptor_kana": null,
+ "statement_descriptor_kanji": null
+ },
+ "payouts": {
+ "debit_negative_balances": true,
+ "schedule": {
+ "delay_days": 2,
+ "interval": "daily"
+ },
+ "statement_descriptor": null
+ },
+ "sepa_debit_payments": {}
+ },
+ "tos_acceptance": {
+ "date": null,
+ "ip": null,
+ "user_agent": null
+ },
+ "type": "standard"
+ }
+ recorded_at: Wed, 17 Apr 2024 22:40:52 GMT
+- request:
+ method: delete
+ uri: https://api.stripe.com/v1/accounts/acct_1P6h9q4CfczCwDwr
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ User-Agent:
+ - Stripe/v1 RubyBindings/11.1.0
+ Authorization:
+ - ""
+ Content-Type:
+ - application/x-www-form-urlencoded
+ X-Stripe-Client-Telemetry:
+ - '{"last_request_metrics":{"request_id":"req_cbPYvYJmY3fkfJ","request_duration_ms":1736}}'
+ Stripe-Version:
+ - '2024-04-10'
+ X-Stripe-Client-User-Agent:
+ - ""
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Server:
+ - nginx
+ Date:
+ - Wed, 17 Apr 2024 22:40:53 GMT
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '77'
+ Connection:
+ - keep-alive
+ Access-Control-Allow-Credentials:
+ - 'true'
+ Access-Control-Allow-Methods:
+ - GET,HEAD,PUT,PATCH,POST,DELETE
+ Access-Control-Allow-Origin:
+ - "*"
+ Access-Control-Expose-Headers:
+ - Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required,
+ X-Stripe-Privileged-Session-Required
+ Access-Control-Max-Age:
+ - '300'
+ Cache-Control:
+ - no-cache, no-store
+ Content-Security-Policy:
+ - report-uri https://q.stripe.com/csp-report?p=v1%2Faccounts%2F%3Aaccount; block-all-mixed-content;
+ default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none';
+ img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
+ Request-Id:
+ - req_PeIqm3K4NmLcSX
+ Stripe-Account:
+ - acct_1P6h9q4CfczCwDwr
+ Stripe-Version:
+ - '2024-04-10'
+ Vary:
+ - Origin
+ X-Stripe-Routing-Context-Priority-Tier:
+ - api-testmode
+ Strict-Transport-Security:
+ - max-age=63072000; includeSubDomains; preload
+ body:
+ encoding: UTF-8
+ string: |-
+ {
+ "id": "acct_1P6h9q4CfczCwDwr",
+ "object": "account",
+ "deleted": true
+ }
+ recorded_at: Wed, 17 Apr 2024 22:40:53 GMT
+recorded_with: VCR 6.2.0
diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Spree_Gateway_StripeSCA/_external_payment_url/calls_Checkout_StripeRedirect.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Spree_Gateway_StripeSCA/_external_payment_url/calls_Checkout_StripeRedirect.yml
new file mode 100644
index 0000000000..cd93dc0762
--- /dev/null
+++ b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Spree_Gateway_StripeSCA/_external_payment_url/calls_Checkout_StripeRedirect.yml
@@ -0,0 +1,295 @@
+---
+http_interactions:
+- request:
+ method: post
+ uri: https://api.stripe.com/v1/accounts
+ body:
+ encoding: UTF-8
+ string: type=standard&country=AU&email=carrot.producer%40example.com
+ headers:
+ User-Agent:
+ - Stripe/v1 RubyBindings/11.1.0
+ Authorization:
+ - ""
+ Content-Type:
+ - application/x-www-form-urlencoded
+ X-Stripe-Client-Telemetry:
+ - '{"last_request_metrics":{"request_id":"req_1BLlFPIR0KR3cU","request_duration_ms":920}}'
+ Stripe-Version:
+ - '2024-04-10'
+ X-Stripe-Client-User-Agent:
+ - ""
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Server:
+ - nginx
+ Date:
+ - Wed, 17 Apr 2024 22:40:59 GMT
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '3046'
+ Connection:
+ - keep-alive
+ Access-Control-Allow-Credentials:
+ - 'true'
+ Access-Control-Allow-Methods:
+ - GET,HEAD,PUT,PATCH,POST,DELETE
+ Access-Control-Allow-Origin:
+ - "*"
+ Access-Control-Expose-Headers:
+ - Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required,
+ X-Stripe-Privileged-Session-Required
+ Access-Control-Max-Age:
+ - '300'
+ Cache-Control:
+ - no-cache, no-store
+ Content-Security-Policy:
+ - report-uri https://q.stripe.com/csp-report?p=v1%2Faccounts; block-all-mixed-content;
+ default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none';
+ img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
+ Idempotency-Key:
+ - 06cb1af2-7708-4a82-951a-4108bb21b383
+ Original-Request:
+ - req_WHoWij9lRj2DYF
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
+ Request-Id:
+ - req_WHoWij9lRj2DYF
+ Stripe-Should-Retry:
+ - 'false'
+ Stripe-Version:
+ - '2024-04-10'
+ Vary:
+ - Origin
+ X-Stripe-Routing-Context-Priority-Tier:
+ - api-testmode
+ Strict-Transport-Security:
+ - max-age=63072000; includeSubDomains; preload
+ body:
+ encoding: UTF-8
+ string: |-
+ {
+ "id": "acct_1P6h9x4DCO0qaA5y",
+ "object": "account",
+ "business_profile": {
+ "annual_revenue": null,
+ "estimated_worker_count": null,
+ "mcc": null,
+ "name": null,
+ "product_description": null,
+ "support_address": null,
+ "support_email": null,
+ "support_phone": null,
+ "support_url": null,
+ "url": null
+ },
+ "business_type": null,
+ "capabilities": {},
+ "charges_enabled": false,
+ "controller": {
+ "is_controller": true,
+ "type": "application"
+ },
+ "country": "AU",
+ "created": 1713393658,
+ "default_currency": "aud",
+ "details_submitted": false,
+ "email": "carrot.producer@example.com",
+ "external_accounts": {
+ "object": "list",
+ "data": [],
+ "has_more": false,
+ "total_count": 0,
+ "url": "/v1/accounts/acct_1P6h9x4DCO0qaA5y/external_accounts"
+ },
+ "future_requirements": {
+ "alternatives": [],
+ "current_deadline": null,
+ "currently_due": [],
+ "disabled_reason": null,
+ "errors": [],
+ "eventually_due": [],
+ "past_due": [],
+ "pending_verification": []
+ },
+ "metadata": {},
+ "payouts_enabled": false,
+ "requirements": {
+ "alternatives": [],
+ "current_deadline": null,
+ "currently_due": [
+ "business_profile.product_description",
+ "business_profile.support_phone",
+ "business_profile.url",
+ "external_account",
+ "tos_acceptance.date",
+ "tos_acceptance.ip"
+ ],
+ "disabled_reason": "requirements.past_due",
+ "errors": [],
+ "eventually_due": [
+ "business_profile.product_description",
+ "business_profile.support_phone",
+ "business_profile.url",
+ "external_account",
+ "tos_acceptance.date",
+ "tos_acceptance.ip"
+ ],
+ "past_due": [
+ "external_account",
+ "tos_acceptance.date",
+ "tos_acceptance.ip"
+ ],
+ "pending_verification": []
+ },
+ "settings": {
+ "bacs_debit_payments": {
+ "display_name": null,
+ "service_user_number": null
+ },
+ "branding": {
+ "icon": null,
+ "logo": null,
+ "primary_color": null,
+ "secondary_color": null
+ },
+ "card_issuing": {
+ "tos_acceptance": {
+ "date": null,
+ "ip": null
+ }
+ },
+ "card_payments": {
+ "decline_on": {
+ "avs_failure": false,
+ "cvc_failure": false
+ },
+ "statement_descriptor_prefix": null,
+ "statement_descriptor_prefix_kana": null,
+ "statement_descriptor_prefix_kanji": null
+ },
+ "dashboard": {
+ "display_name": null,
+ "timezone": "Etc/UTC"
+ },
+ "invoices": {
+ "default_account_tax_ids": null
+ },
+ "payments": {
+ "statement_descriptor": null,
+ "statement_descriptor_kana": null,
+ "statement_descriptor_kanji": null
+ },
+ "payouts": {
+ "debit_negative_balances": true,
+ "schedule": {
+ "delay_days": 2,
+ "interval": "daily"
+ },
+ "statement_descriptor": null
+ },
+ "sepa_debit_payments": {}
+ },
+ "tos_acceptance": {
+ "date": null,
+ "ip": null,
+ "user_agent": null
+ },
+ "type": "standard"
+ }
+ recorded_at: Wed, 17 Apr 2024 22:40:59 GMT
+- request:
+ method: delete
+ uri: https://api.stripe.com/v1/accounts/acct_1P6h9x4DCO0qaA5y
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ User-Agent:
+ - Stripe/v1 RubyBindings/11.1.0
+ Authorization:
+ - ""
+ Content-Type:
+ - application/x-www-form-urlencoded
+ X-Stripe-Client-Telemetry:
+ - '{"last_request_metrics":{"request_id":"req_WHoWij9lRj2DYF","request_duration_ms":1922}}'
+ Stripe-Version:
+ - '2024-04-10'
+ X-Stripe-Client-User-Agent:
+ - ""
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Server:
+ - nginx
+ Date:
+ - Wed, 17 Apr 2024 22:41:00 GMT
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '77'
+ Connection:
+ - keep-alive
+ Access-Control-Allow-Credentials:
+ - 'true'
+ Access-Control-Allow-Methods:
+ - GET,HEAD,PUT,PATCH,POST,DELETE
+ Access-Control-Allow-Origin:
+ - "*"
+ Access-Control-Expose-Headers:
+ - Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required,
+ X-Stripe-Privileged-Session-Required
+ Access-Control-Max-Age:
+ - '300'
+ Cache-Control:
+ - no-cache, no-store
+ Content-Security-Policy:
+ - report-uri https://q.stripe.com/csp-report?p=v1%2Faccounts%2F%3Aaccount; block-all-mixed-content;
+ default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none';
+ img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
+ Request-Id:
+ - req_zc8hvLjwOG6Dsw
+ Stripe-Account:
+ - acct_1P6h9x4DCO0qaA5y
+ Stripe-Version:
+ - '2024-04-10'
+ Vary:
+ - Origin
+ X-Stripe-Routing-Context-Priority-Tier:
+ - api-testmode
+ Strict-Transport-Security:
+ - max-age=63072000; includeSubDomains; preload
+ body:
+ encoding: UTF-8
+ string: |-
+ {
+ "id": "acct_1P6h9x4DCO0qaA5y",
+ "object": "account",
+ "deleted": true
+ }
+ recorded_at: Wed, 17 Apr 2024 22:41:00 GMT
+recorded_with: VCR 6.2.0
diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Spree_Gateway_StripeSCA/_external_payment_url/returns_nil_when_an_order_is_not_supplied.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Spree_Gateway_StripeSCA/_external_payment_url/returns_nil_when_an_order_is_not_supplied.yml
new file mode 100644
index 0000000000..bb0803997c
--- /dev/null
+++ b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Spree_Gateway_StripeSCA/_external_payment_url/returns_nil_when_an_order_is_not_supplied.yml
@@ -0,0 +1,295 @@
+---
+http_interactions:
+- request:
+ method: post
+ uri: https://api.stripe.com/v1/accounts
+ body:
+ encoding: UTF-8
+ string: type=standard&country=AU&email=carrot.producer%40example.com
+ headers:
+ User-Agent:
+ - Stripe/v1 RubyBindings/11.1.0
+ Authorization:
+ - ""
+ Content-Type:
+ - application/x-www-form-urlencoded
+ X-Stripe-Client-Telemetry:
+ - '{"last_request_metrics":{"request_id":"req_PeIqm3K4NmLcSX","request_duration_ms":1329}}'
+ Stripe-Version:
+ - '2024-04-10'
+ X-Stripe-Client-User-Agent:
+ - ""
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Server:
+ - nginx
+ Date:
+ - Wed, 17 Apr 2024 22:40:55 GMT
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '3046'
+ Connection:
+ - keep-alive
+ Access-Control-Allow-Credentials:
+ - 'true'
+ Access-Control-Allow-Methods:
+ - GET,HEAD,PUT,PATCH,POST,DELETE
+ Access-Control-Allow-Origin:
+ - "*"
+ Access-Control-Expose-Headers:
+ - Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required,
+ X-Stripe-Privileged-Session-Required
+ Access-Control-Max-Age:
+ - '300'
+ Cache-Control:
+ - no-cache, no-store
+ Content-Security-Policy:
+ - report-uri https://q.stripe.com/csp-report?p=v1%2Faccounts; block-all-mixed-content;
+ default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none';
+ img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
+ Idempotency-Key:
+ - 424e9683-d74d-4586-8c22-a634b09f0c62
+ Original-Request:
+ - req_YIVljRloNvDNcT
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
+ Request-Id:
+ - req_YIVljRloNvDNcT
+ Stripe-Should-Retry:
+ - 'false'
+ Stripe-Version:
+ - '2024-04-10'
+ Vary:
+ - Origin
+ X-Stripe-Routing-Context-Priority-Tier:
+ - api-testmode
+ Strict-Transport-Security:
+ - max-age=63072000; includeSubDomains; preload
+ body:
+ encoding: UTF-8
+ string: |-
+ {
+ "id": "acct_1P6h9uQTgAPMAm48",
+ "object": "account",
+ "business_profile": {
+ "annual_revenue": null,
+ "estimated_worker_count": null,
+ "mcc": null,
+ "name": null,
+ "product_description": null,
+ "support_address": null,
+ "support_email": null,
+ "support_phone": null,
+ "support_url": null,
+ "url": null
+ },
+ "business_type": null,
+ "capabilities": {},
+ "charges_enabled": false,
+ "controller": {
+ "is_controller": true,
+ "type": "application"
+ },
+ "country": "AU",
+ "created": 1713393654,
+ "default_currency": "aud",
+ "details_submitted": false,
+ "email": "carrot.producer@example.com",
+ "external_accounts": {
+ "object": "list",
+ "data": [],
+ "has_more": false,
+ "total_count": 0,
+ "url": "/v1/accounts/acct_1P6h9uQTgAPMAm48/external_accounts"
+ },
+ "future_requirements": {
+ "alternatives": [],
+ "current_deadline": null,
+ "currently_due": [],
+ "disabled_reason": null,
+ "errors": [],
+ "eventually_due": [],
+ "past_due": [],
+ "pending_verification": []
+ },
+ "metadata": {},
+ "payouts_enabled": false,
+ "requirements": {
+ "alternatives": [],
+ "current_deadline": null,
+ "currently_due": [
+ "business_profile.product_description",
+ "business_profile.support_phone",
+ "business_profile.url",
+ "external_account",
+ "tos_acceptance.date",
+ "tos_acceptance.ip"
+ ],
+ "disabled_reason": "requirements.past_due",
+ "errors": [],
+ "eventually_due": [
+ "business_profile.product_description",
+ "business_profile.support_phone",
+ "business_profile.url",
+ "external_account",
+ "tos_acceptance.date",
+ "tos_acceptance.ip"
+ ],
+ "past_due": [
+ "external_account",
+ "tos_acceptance.date",
+ "tos_acceptance.ip"
+ ],
+ "pending_verification": []
+ },
+ "settings": {
+ "bacs_debit_payments": {
+ "display_name": null,
+ "service_user_number": null
+ },
+ "branding": {
+ "icon": null,
+ "logo": null,
+ "primary_color": null,
+ "secondary_color": null
+ },
+ "card_issuing": {
+ "tos_acceptance": {
+ "date": null,
+ "ip": null
+ }
+ },
+ "card_payments": {
+ "decline_on": {
+ "avs_failure": false,
+ "cvc_failure": false
+ },
+ "statement_descriptor_prefix": null,
+ "statement_descriptor_prefix_kana": null,
+ "statement_descriptor_prefix_kanji": null
+ },
+ "dashboard": {
+ "display_name": null,
+ "timezone": "Etc/UTC"
+ },
+ "invoices": {
+ "default_account_tax_ids": null
+ },
+ "payments": {
+ "statement_descriptor": null,
+ "statement_descriptor_kana": null,
+ "statement_descriptor_kanji": null
+ },
+ "payouts": {
+ "debit_negative_balances": true,
+ "schedule": {
+ "delay_days": 2,
+ "interval": "daily"
+ },
+ "statement_descriptor": null
+ },
+ "sepa_debit_payments": {}
+ },
+ "tos_acceptance": {
+ "date": null,
+ "ip": null,
+ "user_agent": null
+ },
+ "type": "standard"
+ }
+ recorded_at: Wed, 17 Apr 2024 22:40:55 GMT
+- request:
+ method: delete
+ uri: https://api.stripe.com/v1/accounts/acct_1P6h9uQTgAPMAm48
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ User-Agent:
+ - Stripe/v1 RubyBindings/11.1.0
+ Authorization:
+ - ""
+ Content-Type:
+ - application/x-www-form-urlencoded
+ X-Stripe-Client-Telemetry:
+ - '{"last_request_metrics":{"request_id":"req_YIVljRloNvDNcT","request_duration_ms":2032}}'
+ Stripe-Version:
+ - '2024-04-10'
+ X-Stripe-Client-User-Agent:
+ - ""
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Server:
+ - nginx
+ Date:
+ - Wed, 17 Apr 2024 22:40:56 GMT
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '77'
+ Connection:
+ - keep-alive
+ Access-Control-Allow-Credentials:
+ - 'true'
+ Access-Control-Allow-Methods:
+ - GET,HEAD,PUT,PATCH,POST,DELETE
+ Access-Control-Allow-Origin:
+ - "*"
+ Access-Control-Expose-Headers:
+ - Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required,
+ X-Stripe-Privileged-Session-Required
+ Access-Control-Max-Age:
+ - '300'
+ Cache-Control:
+ - no-cache, no-store
+ Content-Security-Policy:
+ - report-uri https://q.stripe.com/csp-report?p=v1%2Faccounts%2F%3Aaccount; block-all-mixed-content;
+ default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none';
+ img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
+ Request-Id:
+ - req_1BLlFPIR0KR3cU
+ Stripe-Account:
+ - acct_1P6h9uQTgAPMAm48
+ Stripe-Version:
+ - '2024-04-10'
+ Vary:
+ - Origin
+ X-Stripe-Routing-Context-Priority-Tier:
+ - api-testmode
+ Strict-Transport-Security:
+ - max-age=63072000; includeSubDomains; preload
+ body:
+ encoding: UTF-8
+ string: |-
+ {
+ "id": "acct_1P6h9uQTgAPMAm48",
+ "object": "account",
+ "deleted": true
+ }
+ recorded_at: Wed, 17 Apr 2024 22:40:56 GMT
+recorded_with: VCR 6.2.0
diff --git a/spec/fixtures/vcr_cassettes/Stripe-v10.10.0/Spree_Gateway_StripeSCA/_purchase/completes_the_purchase.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Spree_Gateway_StripeSCA/_purchase/completes_the_purchase.yml
similarity index 57%
rename from spec/fixtures/vcr_cassettes/Stripe-v10.10.0/Spree_Gateway_StripeSCA/_purchase/completes_the_purchase.yml
rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Spree_Gateway_StripeSCA/_purchase/completes_the_purchase.yml
index 71b0d7ee4e..1648c6d679 100644
--- a/spec/fixtures/vcr_cassettes/Stripe-v10.10.0/Spree_Gateway_StripeSCA/_purchase/completes_the_purchase.yml
+++ b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Spree_Gateway_StripeSCA/_purchase/completes_the_purchase.yml
@@ -8,18 +8,17 @@ http_interactions:
string: ''
headers:
User-Agent:
- - Stripe/v1 RubyBindings/10.10.0
+ - Stripe/v1 RubyBindings/11.1.0
Authorization:
- - Bearer
+ - ""
Content-Type:
- application/x-www-form-urlencoded
+ X-Stripe-Client-Telemetry:
+ - '{"last_request_metrics":{"request_id":"req_XG8res7ijCpIgW","request_duration_ms":817}}'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
X-Stripe-Client-User-Agent:
- - '{"bindings_version":"10.10.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
- version 5.15.0-92-generic (buildd@lcy02-amd64-002) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2)
- 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #102~20.04.1-Ubuntu SMP Mon
- Jan 15 13:09:14 UTC 2024","hostname":"gaetan-Dell-G15"}'
+ - ""
Accept-Encoding:
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept:
@@ -32,11 +31,11 @@ http_interactions:
Server:
- nginx
Date:
- - Wed, 28 Feb 2024 04:22:50 GMT
+ - Wed, 17 Apr 2024 22:40:15 GMT
Content-Type:
- application/json
Content-Length:
- - '977'
+ - '1013'
Connection:
- keep-alive
Access-Control-Allow-Credentials:
@@ -57,10 +56,16 @@ http_interactions:
block-all-mixed-content; default-src 'none'; base-uri 'none'; form-action
'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample';
style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
Request-Id:
- - req_C80lOiQ174c6i0
+ - req_O2pHXZ0HmoJnt9
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
Vary:
- Origin
X-Stripe-Routing-Context-Priority-Tier:
@@ -71,8 +76,9 @@ http_interactions:
encoding: UTF-8
string: |-
{
- "id": "pm_1OoefOKuuB1fWySnRppMNGu2",
+ "id": "pm_1P6h9GKuuB1fWySnIaGI3GWN",
"object": "payment_method",
+ "allow_redisplay": "unspecified",
"billing_details": {
"address": {
"city": null,
@@ -95,7 +101,7 @@ http_interactions:
},
"country": "US",
"display_brand": "mastercard",
- "exp_month": 2,
+ "exp_month": 4,
"exp_year": 2025,
"fingerprint": "BL35fEFVcTTS5wpE",
"funding": "credit",
@@ -112,35 +118,32 @@ http_interactions:
},
"wallet": null
},
- "created": 1709094170,
+ "created": 1713393615,
"customer": null,
"livemode": false,
"metadata": {},
"type": "card"
}
- recorded_at: Wed, 28 Feb 2024 04:22:50 GMT
+ recorded_at: Wed, 17 Apr 2024 22:40:15 GMT
- request:
method: post
uri: https://api.stripe.com/v1/payment_intents
body:
encoding: UTF-8
- string: amount=1000¤cy=aud&payment_method=pm_1OoefOKuuB1fWySnRppMNGu2&payment_method_types[0]=card&capture_method=manual
+ string: amount=1000¤cy=aud&payment_method=pm_1P6h9GKuuB1fWySnIaGI3GWN&payment_method_types[0]=card&capture_method=manual
headers:
User-Agent:
- - Stripe/v1 RubyBindings/10.10.0
+ - Stripe/v1 RubyBindings/11.1.0
Authorization:
- - Bearer
+ - ""
Content-Type:
- application/x-www-form-urlencoded
X-Stripe-Client-Telemetry:
- - '{"last_request_metrics":{"request_id":"req_C80lOiQ174c6i0","request_duration_ms":534}}'
+ - '{"last_request_metrics":{"request_id":"req_O2pHXZ0HmoJnt9","request_duration_ms":489}}'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
X-Stripe-Client-User-Agent:
- - '{"bindings_version":"10.10.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
- version 5.15.0-92-generic (buildd@lcy02-amd64-002) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2)
- 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #102~20.04.1-Ubuntu SMP Mon
- Jan 15 13:09:14 UTC 2024","hostname":"gaetan-Dell-G15"}'
+ - ""
Accept-Encoding:
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept:
@@ -153,7 +156,7 @@ http_interactions:
Server:
- nginx
Date:
- - Wed, 28 Feb 2024 04:22:51 GMT
+ - Wed, 17 Apr 2024 22:40:15 GMT
Content-Type:
- application/json
Content-Length:
@@ -177,16 +180,22 @@ http_interactions:
- report-uri https://q.stripe.com/csp-report?p=v1%2Fpayment_intents; block-all-mixed-content;
default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none';
img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
Idempotency-Key:
- - b22256dd-6a6a-4d2f-8165-1ab4b95b7cce
+ - 1e87d5f2-0448-4a51-8a5e-b3f8aefcf226
Original-Request:
- - req_I48KhbL4d4cHh2
+ - req_pWQG2yG1Ax4jRk
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
Request-Id:
- - req_I48KhbL4d4cHh2
+ - req_pWQG2yG1Ax4jRk
Stripe-Should-Retry:
- 'false'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
Vary:
- Origin
X-Stripe-Routing-Context-Priority-Tier:
@@ -197,7 +206,7 @@ http_interactions:
encoding: UTF-8
string: |-
{
- "id": "pi_3OoefPKuuB1fWySn2a1CUhKr",
+ "id": "pi_3P6h9HKuuB1fWySn0GX7USzi",
"object": "payment_intent",
"amount": 1000,
"amount_capturable": 0,
@@ -211,9 +220,9 @@ http_interactions:
"canceled_at": null,
"cancellation_reason": null,
"capture_method": "manual",
- "client_secret": "pi_3OoefPKuuB1fWySn2a1CUhKr_secret_jrv3bAuw620fN4yEQ39dnpTkT",
+ "client_secret": "",
"confirmation_method": "automatic",
- "created": 1709094171,
+ "created": 1713393615,
"currency": "aud",
"customer": null,
"description": null,
@@ -224,7 +233,7 @@ http_interactions:
"metadata": {},
"next_action": null,
"on_behalf_of": null,
- "payment_method": "pm_1OoefOKuuB1fWySnRppMNGu2",
+ "payment_method": "pm_1P6h9GKuuB1fWySnIaGI3GWN",
"payment_method_configuration_details": null,
"payment_method_options": {
"card": {
@@ -249,29 +258,26 @@ http_interactions:
"transfer_data": null,
"transfer_group": null
}
- recorded_at: Wed, 28 Feb 2024 04:22:51 GMT
+ recorded_at: Wed, 17 Apr 2024 22:40:15 GMT
- request:
method: post
- uri: https://api.stripe.com/v1/payment_intents/pi_3OoefPKuuB1fWySn2a1CUhKr/confirm
+ uri: https://api.stripe.com/v1/payment_intents/pi_3P6h9HKuuB1fWySn0GX7USzi/confirm
body:
encoding: US-ASCII
string: ''
headers:
User-Agent:
- - Stripe/v1 RubyBindings/10.10.0
+ - Stripe/v1 RubyBindings/11.1.0
Authorization:
- - Bearer
+ - ""
Content-Type:
- application/x-www-form-urlencoded
X-Stripe-Client-Telemetry:
- - '{"last_request_metrics":{"request_id":"req_I48KhbL4d4cHh2","request_duration_ms":444}}'
+ - '{"last_request_metrics":{"request_id":"req_pWQG2yG1Ax4jRk","request_duration_ms":511}}'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
X-Stripe-Client-User-Agent:
- - '{"bindings_version":"10.10.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
- version 5.15.0-92-generic (buildd@lcy02-amd64-002) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2)
- 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #102~20.04.1-Ubuntu SMP Mon
- Jan 15 13:09:14 UTC 2024","hostname":"gaetan-Dell-G15"}'
+ - ""
Accept-Encoding:
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept:
@@ -284,7 +290,7 @@ http_interactions:
Server:
- nginx
Date:
- - Wed, 28 Feb 2024 04:22:52 GMT
+ - Wed, 17 Apr 2024 22:40:16 GMT
Content-Type:
- application/json
Content-Length:
@@ -309,16 +315,22 @@ http_interactions:
block-all-mixed-content; default-src 'none'; base-uri 'none'; form-action
'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample';
style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
Idempotency-Key:
- - 87c23353-1da7-4401-90d8-782133288905
+ - 6900a9b9-af42-4425-a398-7843acfef5a1
Original-Request:
- - req_3MS3zmJh2lqbIp
+ - req_etWiRHdjekM9MP
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
Request-Id:
- - req_3MS3zmJh2lqbIp
+ - req_etWiRHdjekM9MP
Stripe-Should-Retry:
- 'false'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
Vary:
- Origin
X-Stripe-Routing-Context-Priority-Tier:
@@ -329,7 +341,7 @@ http_interactions:
encoding: UTF-8
string: |-
{
- "id": "pi_3OoefPKuuB1fWySn2a1CUhKr",
+ "id": "pi_3P6h9HKuuB1fWySn0GX7USzi",
"object": "payment_intent",
"amount": 1000,
"amount_capturable": 1000,
@@ -343,20 +355,20 @@ http_interactions:
"canceled_at": null,
"cancellation_reason": null,
"capture_method": "manual",
- "client_secret": "pi_3OoefPKuuB1fWySn2a1CUhKr_secret_jrv3bAuw620fN4yEQ39dnpTkT",
+ "client_secret": "",
"confirmation_method": "automatic",
- "created": 1709094171,
+ "created": 1713393615,
"currency": "aud",
"customer": null,
"description": null,
"invoice": null,
"last_payment_error": null,
- "latest_charge": "ch_3OoefPKuuB1fWySn2XgChplD",
+ "latest_charge": "ch_3P6h9HKuuB1fWySn0ZlVda9w",
"livemode": false,
"metadata": {},
"next_action": null,
"on_behalf_of": null,
- "payment_method": "pm_1OoefOKuuB1fWySnRppMNGu2",
+ "payment_method": "pm_1P6h9GKuuB1fWySnIaGI3GWN",
"payment_method_configuration_details": null,
"payment_method_options": {
"card": {
@@ -381,29 +393,26 @@ http_interactions:
"transfer_data": null,
"transfer_group": null
}
- recorded_at: Wed, 28 Feb 2024 04:22:52 GMT
+ recorded_at: Wed, 17 Apr 2024 22:40:16 GMT
- request:
method: get
- uri: https://api.stripe.com/v1/payment_intents/pi_3OoefPKuuB1fWySn2a1CUhKr
+ uri: https://api.stripe.com/v1/payment_intents/pi_3P6h9HKuuB1fWySn0GX7USzi
body:
encoding: US-ASCII
string: ''
headers:
User-Agent:
- - Stripe/v1 RubyBindings/10.10.0
+ - Stripe/v1 RubyBindings/11.1.0
Authorization:
- - Bearer
+ - ""
Content-Type:
- application/x-www-form-urlencoded
X-Stripe-Client-Telemetry:
- - '{"last_request_metrics":{"request_id":"req_3MS3zmJh2lqbIp","request_duration_ms":985}}'
+ - '{"last_request_metrics":{"request_id":"req_etWiRHdjekM9MP","request_duration_ms":1123}}'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
X-Stripe-Client-User-Agent:
- - '{"bindings_version":"10.10.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
- version 5.15.0-92-generic (buildd@lcy02-amd64-002) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2)
- 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #102~20.04.1-Ubuntu SMP Mon
- Jan 15 13:09:14 UTC 2024","hostname":"gaetan-Dell-G15"}'
+ - ""
Accept-Encoding:
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept:
@@ -416,7 +425,7 @@ http_interactions:
Server:
- nginx
Date:
- - Wed, 28 Feb 2024 04:22:53 GMT
+ - Wed, 17 Apr 2024 22:40:18 GMT
Content-Type:
- application/json
Content-Length:
@@ -441,10 +450,16 @@ http_interactions:
block-all-mixed-content; default-src 'none'; base-uri 'none'; form-action
'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample';
style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
Request-Id:
- - req_XPJt16n7nTK00g
+ - req_4YLLSSEOs3AoNr
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
Vary:
- Origin
X-Stripe-Routing-Context-Priority-Tier:
@@ -455,7 +470,7 @@ http_interactions:
encoding: UTF-8
string: |-
{
- "id": "pi_3OoefPKuuB1fWySn2a1CUhKr",
+ "id": "pi_3P6h9HKuuB1fWySn0GX7USzi",
"object": "payment_intent",
"amount": 1000,
"amount_capturable": 1000,
@@ -469,20 +484,20 @@ http_interactions:
"canceled_at": null,
"cancellation_reason": null,
"capture_method": "manual",
- "client_secret": "pi_3OoefPKuuB1fWySn2a1CUhKr_secret_jrv3bAuw620fN4yEQ39dnpTkT",
+ "client_secret": "",
"confirmation_method": "automatic",
- "created": 1709094171,
+ "created": 1713393615,
"currency": "aud",
"customer": null,
"description": null,
"invoice": null,
"last_payment_error": null,
- "latest_charge": "ch_3OoefPKuuB1fWySn2XgChplD",
+ "latest_charge": "ch_3P6h9HKuuB1fWySn0ZlVda9w",
"livemode": false,
"metadata": {},
"next_action": null,
"on_behalf_of": null,
- "payment_method": "pm_1OoefOKuuB1fWySnRppMNGu2",
+ "payment_method": "pm_1P6h9GKuuB1fWySnIaGI3GWN",
"payment_method_configuration_details": null,
"payment_method_options": {
"card": {
@@ -507,10 +522,10 @@ http_interactions:
"transfer_data": null,
"transfer_group": null
}
- recorded_at: Wed, 28 Feb 2024 04:22:53 GMT
+ recorded_at: Wed, 17 Apr 2024 22:40:18 GMT
- request:
method: post
- uri: https://api.stripe.com/v1/payment_intents/pi_3OoefPKuuB1fWySn2a1CUhKr/capture
+ uri: https://api.stripe.com/v1/payment_intents/pi_3P6h9HKuuB1fWySn0GX7USzi/capture
body:
encoding: UTF-8
string: amount_to_capture=1000
@@ -518,13 +533,13 @@ http_interactions:
Content-Type:
- application/x-www-form-urlencoded
Authorization:
- - Basic c2tfdGVzdF94RmdKUU9sWHBNQUZzb3p0endGQlRGaFAwMEhHN0J1Q0ptOg==
+ - ""
User-Agent:
- Stripe/v1 ActiveMerchantBindings/1.133.0
Stripe-Version:
- '2020-08-27'
X-Stripe-Client-User-Agent:
- - '{"bindings_version":"1.133.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","publisher":"active_merchant"}'
+ - ""
X-Stripe-Client-User-Metadata:
- '{"ip":null}'
Connection:
@@ -541,11 +556,11 @@ http_interactions:
Server:
- nginx
Date:
- - Wed, 28 Feb 2024 04:22:54 GMT
+ - Wed, 17 Apr 2024 22:40:19 GMT
Content-Type:
- application/json
Content-Length:
- - '5163'
+ - '5162'
Connection:
- close
Access-Control-Allow-Credentials:
@@ -566,12 +581,18 @@ http_interactions:
block-all-mixed-content; default-src 'none'; base-uri 'none'; form-action
'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample';
style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
Idempotency-Key:
- - 924a5a52-a3b7-454d-9525-a4f745643bcc
+ - e8a4740c-4718-432d-8824-a71d0b172c29
Original-Request:
- - req_0mMZdvmaHu1xkb
+ - req_QJFfo9qsolrC9c
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
Request-Id:
- - req_0mMZdvmaHu1xkb
+ - req_QJFfo9qsolrC9c
Stripe-Should-Retry:
- 'false'
Stripe-Version:
@@ -586,7 +607,7 @@ http_interactions:
encoding: UTF-8
string: |-
{
- "id": "pi_3OoefPKuuB1fWySn2a1CUhKr",
+ "id": "pi_3P6h9HKuuB1fWySn0GX7USzi",
"object": "payment_intent",
"amount": 1000,
"amount_capturable": 0,
@@ -604,7 +625,7 @@ http_interactions:
"object": "list",
"data": [
{
- "id": "ch_3OoefPKuuB1fWySn2XgChplD",
+ "id": "ch_3P6h9HKuuB1fWySn0ZlVda9w",
"object": "charge",
"amount": 1000,
"amount_captured": 1000,
@@ -613,7 +634,7 @@ http_interactions:
"application": null,
"application_fee": null,
"application_fee_amount": null,
- "balance_transaction": "txn_3OoefPKuuB1fWySn2KbEy5KT",
+ "balance_transaction": "txn_3P6h9HKuuB1fWySn0z60JBQl",
"billing_details": {
"address": {
"city": null,
@@ -629,7 +650,7 @@ http_interactions:
},
"calculated_statement_descriptor": "OFNOFNOFN",
"captured": true,
- "created": 1709094171,
+ "created": 1713393616,
"currency": "aud",
"customer": null,
"description": null,
@@ -649,25 +670,25 @@ http_interactions:
"network_status": "approved_by_network",
"reason": null,
"risk_level": "normal",
- "risk_score": 24,
+ "risk_score": 8,
"seller_message": "Payment complete.",
"type": "authorized"
},
"paid": true,
- "payment_intent": "pi_3OoefPKuuB1fWySn2a1CUhKr",
- "payment_method": "pm_1OoefOKuuB1fWySnRppMNGu2",
+ "payment_intent": "pi_3P6h9HKuuB1fWySn0GX7USzi",
+ "payment_method": "pm_1P6h9GKuuB1fWySnIaGI3GWN",
"payment_method_details": {
"card": {
"amount_authorized": 1000,
"brand": "mastercard",
- "capture_before": 1709698971,
+ "capture_before": 1713998416,
"checks": {
"address_line1_check": null,
"address_postal_code_check": null,
"cvc_check": "pass"
},
"country": "US",
- "exp_month": 2,
+ "exp_month": 4,
"exp_year": 2025,
"extended_authorization": {
"status": "disabled"
@@ -699,14 +720,14 @@ http_interactions:
"radar_options": {},
"receipt_email": null,
"receipt_number": null,
- "receipt_url": "https://pay.stripe.com/receipts/payment/CAcaFwoVYWNjdF8xRmlxRXNLdXVCMWZXeVNuKJ7q-q4GMgbcaqyB9xQ6LBbyuqO6Pzq_DRbuPPU_3KgWARob19ouqfjqfTie9nYDPO4CNF1NF5JvJAg2",
+ "receipt_url": "https://pay.stripe.com/receipts/payment/CAcaFwoVYWNjdF8xRmlxRXNLdXVCMWZXeVNuKNOfgbEGMgZW-K9ZLyQ6LBa1WWsudaCUMFn4r4uwwKLy3tUo96EdnX7UMZrufRqKnME_ob6IQXFUNWQD",
"refunded": false,
"refunds": {
"object": "list",
"data": [],
"has_more": false,
"total_count": 0,
- "url": "/v1/charges/ch_3OoefPKuuB1fWySn2XgChplD/refunds"
+ "url": "/v1/charges/ch_3P6h9HKuuB1fWySn0ZlVda9w/refunds"
},
"review": null,
"shipping": null,
@@ -721,22 +742,22 @@ http_interactions:
],
"has_more": false,
"total_count": 1,
- "url": "/v1/charges?payment_intent=pi_3OoefPKuuB1fWySn2a1CUhKr"
+ "url": "/v1/charges?payment_intent=pi_3P6h9HKuuB1fWySn0GX7USzi"
},
- "client_secret": "pi_3OoefPKuuB1fWySn2a1CUhKr_secret_jrv3bAuw620fN4yEQ39dnpTkT",
+ "client_secret": "",
"confirmation_method": "automatic",
- "created": 1709094171,
+ "created": 1713393615,
"currency": "aud",
"customer": null,
"description": null,
"invoice": null,
"last_payment_error": null,
- "latest_charge": "ch_3OoefPKuuB1fWySn2XgChplD",
+ "latest_charge": "ch_3P6h9HKuuB1fWySn0ZlVda9w",
"livemode": false,
"metadata": {},
"next_action": null,
"on_behalf_of": null,
- "payment_method": "pm_1OoefOKuuB1fWySnRppMNGu2",
+ "payment_method": "pm_1P6h9GKuuB1fWySnIaGI3GWN",
"payment_method_configuration_details": null,
"payment_method_options": {
"card": {
@@ -761,5 +782,297 @@ http_interactions:
"transfer_data": null,
"transfer_group": null
}
- recorded_at: Wed, 28 Feb 2024 04:22:54 GMT
+ recorded_at: Wed, 17 Apr 2024 22:40:19 GMT
+- request:
+ method: post
+ uri: https://api.stripe.com/v1/accounts
+ body:
+ encoding: UTF-8
+ string: type=standard&country=AU&email=carrot.producer%40example.com
+ headers:
+ User-Agent:
+ - Stripe/v1 RubyBindings/11.1.0
+ Authorization:
+ - ""
+ Content-Type:
+ - application/x-www-form-urlencoded
+ X-Stripe-Client-Telemetry:
+ - '{"last_request_metrics":{"request_id":"req_4YLLSSEOs3AoNr","request_duration_ms":411}}'
+ Stripe-Version:
+ - '2024-04-10'
+ X-Stripe-Client-User-Agent:
+ - ""
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Server:
+ - nginx
+ Date:
+ - Wed, 17 Apr 2024 22:40:21 GMT
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '3046'
+ Connection:
+ - keep-alive
+ Access-Control-Allow-Credentials:
+ - 'true'
+ Access-Control-Allow-Methods:
+ - GET,HEAD,PUT,PATCH,POST,DELETE
+ Access-Control-Allow-Origin:
+ - "*"
+ Access-Control-Expose-Headers:
+ - Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required,
+ X-Stripe-Privileged-Session-Required
+ Access-Control-Max-Age:
+ - '300'
+ Cache-Control:
+ - no-cache, no-store
+ Content-Security-Policy:
+ - report-uri https://q.stripe.com/csp-report?p=v1%2Faccounts; block-all-mixed-content;
+ default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none';
+ img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
+ Idempotency-Key:
+ - f4c18e62-0428-4d9c-92f4-ce07663cd854
+ Original-Request:
+ - req_UWNXrzSmFKrfLJ
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
+ Request-Id:
+ - req_UWNXrzSmFKrfLJ
+ Stripe-Should-Retry:
+ - 'false'
+ Stripe-Version:
+ - '2024-04-10'
+ Vary:
+ - Origin
+ X-Stripe-Routing-Context-Priority-Tier:
+ - api-testmode
+ Strict-Transport-Security:
+ - max-age=63072000; includeSubDomains; preload
+ body:
+ encoding: UTF-8
+ string: |-
+ {
+ "id": "acct_1P6h9M4JJZUDYfa9",
+ "object": "account",
+ "business_profile": {
+ "annual_revenue": null,
+ "estimated_worker_count": null,
+ "mcc": null,
+ "name": null,
+ "product_description": null,
+ "support_address": null,
+ "support_email": null,
+ "support_phone": null,
+ "support_url": null,
+ "url": null
+ },
+ "business_type": null,
+ "capabilities": {},
+ "charges_enabled": false,
+ "controller": {
+ "is_controller": true,
+ "type": "application"
+ },
+ "country": "AU",
+ "created": 1713393620,
+ "default_currency": "aud",
+ "details_submitted": false,
+ "email": "carrot.producer@example.com",
+ "external_accounts": {
+ "object": "list",
+ "data": [],
+ "has_more": false,
+ "total_count": 0,
+ "url": "/v1/accounts/acct_1P6h9M4JJZUDYfa9/external_accounts"
+ },
+ "future_requirements": {
+ "alternatives": [],
+ "current_deadline": null,
+ "currently_due": [],
+ "disabled_reason": null,
+ "errors": [],
+ "eventually_due": [],
+ "past_due": [],
+ "pending_verification": []
+ },
+ "metadata": {},
+ "payouts_enabled": false,
+ "requirements": {
+ "alternatives": [],
+ "current_deadline": null,
+ "currently_due": [
+ "business_profile.product_description",
+ "business_profile.support_phone",
+ "business_profile.url",
+ "external_account",
+ "tos_acceptance.date",
+ "tos_acceptance.ip"
+ ],
+ "disabled_reason": "requirements.past_due",
+ "errors": [],
+ "eventually_due": [
+ "business_profile.product_description",
+ "business_profile.support_phone",
+ "business_profile.url",
+ "external_account",
+ "tos_acceptance.date",
+ "tos_acceptance.ip"
+ ],
+ "past_due": [
+ "external_account",
+ "tos_acceptance.date",
+ "tos_acceptance.ip"
+ ],
+ "pending_verification": []
+ },
+ "settings": {
+ "bacs_debit_payments": {
+ "display_name": null,
+ "service_user_number": null
+ },
+ "branding": {
+ "icon": null,
+ "logo": null,
+ "primary_color": null,
+ "secondary_color": null
+ },
+ "card_issuing": {
+ "tos_acceptance": {
+ "date": null,
+ "ip": null
+ }
+ },
+ "card_payments": {
+ "decline_on": {
+ "avs_failure": false,
+ "cvc_failure": false
+ },
+ "statement_descriptor_prefix": null,
+ "statement_descriptor_prefix_kana": null,
+ "statement_descriptor_prefix_kanji": null
+ },
+ "dashboard": {
+ "display_name": null,
+ "timezone": "Etc/UTC"
+ },
+ "invoices": {
+ "default_account_tax_ids": null
+ },
+ "payments": {
+ "statement_descriptor": null,
+ "statement_descriptor_kana": null,
+ "statement_descriptor_kanji": null
+ },
+ "payouts": {
+ "debit_negative_balances": true,
+ "schedule": {
+ "delay_days": 2,
+ "interval": "daily"
+ },
+ "statement_descriptor": null
+ },
+ "sepa_debit_payments": {}
+ },
+ "tos_acceptance": {
+ "date": null,
+ "ip": null,
+ "user_agent": null
+ },
+ "type": "standard"
+ }
+ recorded_at: Wed, 17 Apr 2024 22:40:21 GMT
+- request:
+ method: delete
+ uri: https://api.stripe.com/v1/accounts/acct_1P6h9M4JJZUDYfa9
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ User-Agent:
+ - Stripe/v1 RubyBindings/11.1.0
+ Authorization:
+ - ""
+ Content-Type:
+ - application/x-www-form-urlencoded
+ X-Stripe-Client-Telemetry:
+ - '{"last_request_metrics":{"request_id":"req_UWNXrzSmFKrfLJ","request_duration_ms":1870}}'
+ Stripe-Version:
+ - '2024-04-10'
+ X-Stripe-Client-User-Agent:
+ - ""
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Server:
+ - nginx
+ Date:
+ - Wed, 17 Apr 2024 22:40:22 GMT
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '77'
+ Connection:
+ - keep-alive
+ Access-Control-Allow-Credentials:
+ - 'true'
+ Access-Control-Allow-Methods:
+ - GET,HEAD,PUT,PATCH,POST,DELETE
+ Access-Control-Allow-Origin:
+ - "*"
+ Access-Control-Expose-Headers:
+ - Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required,
+ X-Stripe-Privileged-Session-Required
+ Access-Control-Max-Age:
+ - '300'
+ Cache-Control:
+ - no-cache, no-store
+ Content-Security-Policy:
+ - report-uri https://q.stripe.com/csp-report?p=v1%2Faccounts%2F%3Aaccount; block-all-mixed-content;
+ default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none';
+ img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
+ Request-Id:
+ - req_YcxRlceSDH1DK0
+ Stripe-Account:
+ - acct_1P6h9M4JJZUDYfa9
+ Stripe-Version:
+ - '2024-04-10'
+ Vary:
+ - Origin
+ X-Stripe-Routing-Context-Priority-Tier:
+ - api-testmode
+ Strict-Transport-Security:
+ - max-age=63072000; includeSubDomains; preload
+ body:
+ encoding: UTF-8
+ string: |-
+ {
+ "id": "acct_1P6h9M4JJZUDYfa9",
+ "object": "account",
+ "deleted": true
+ }
+ recorded_at: Wed, 17 Apr 2024 22:40:22 GMT
recorded_with: VCR 6.2.0
diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Spree_Gateway_StripeSCA/_purchase/provides_an_error_message_to_help_developer_debug.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Spree_Gateway_StripeSCA/_purchase/provides_an_error_message_to_help_developer_debug.yml
new file mode 100644
index 0000000000..30a1f796bb
--- /dev/null
+++ b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Spree_Gateway_StripeSCA/_purchase/provides_an_error_message_to_help_developer_debug.yml
@@ -0,0 +1,689 @@
+---
+http_interactions:
+- request:
+ method: get
+ uri: https://api.stripe.com/v1/payment_methods/pm_card_mastercard
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ User-Agent:
+ - Stripe/v1 RubyBindings/11.1.0
+ Authorization:
+ - ""
+ Content-Type:
+ - application/x-www-form-urlencoded
+ X-Stripe-Client-Telemetry:
+ - '{"last_request_metrics":{"request_id":"req_YcxRlceSDH1DK0","request_duration_ms":1014}}'
+ Stripe-Version:
+ - '2024-04-10'
+ X-Stripe-Client-User-Agent:
+ - ""
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Server:
+ - nginx
+ Date:
+ - Wed, 17 Apr 2024 22:40:23 GMT
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '1013'
+ Connection:
+ - keep-alive
+ Access-Control-Allow-Credentials:
+ - 'true'
+ Access-Control-Allow-Methods:
+ - GET,HEAD,PUT,PATCH,POST,DELETE
+ Access-Control-Allow-Origin:
+ - "*"
+ Access-Control-Expose-Headers:
+ - Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required,
+ X-Stripe-Privileged-Session-Required
+ Access-Control-Max-Age:
+ - '300'
+ Cache-Control:
+ - no-cache, no-store
+ Content-Security-Policy:
+ - report-uri https://q.stripe.com/csp-report?p=v1%2Fpayment_methods%2F%3Apayment_method;
+ block-all-mixed-content; default-src 'none'; base-uri 'none'; form-action
+ 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample';
+ style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
+ Request-Id:
+ - req_j7DLIIuuhURNC9
+ Stripe-Version:
+ - '2024-04-10'
+ Vary:
+ - Origin
+ X-Stripe-Routing-Context-Priority-Tier:
+ - api-testmode
+ Strict-Transport-Security:
+ - max-age=63072000; includeSubDomains; preload
+ body:
+ encoding: UTF-8
+ string: |-
+ {
+ "id": "pm_1P6h9OKuuB1fWySn36I1mtH7",
+ "object": "payment_method",
+ "allow_redisplay": "unspecified",
+ "billing_details": {
+ "address": {
+ "city": null,
+ "country": null,
+ "line1": null,
+ "line2": null,
+ "postal_code": null,
+ "state": null
+ },
+ "email": null,
+ "name": null,
+ "phone": null
+ },
+ "card": {
+ "brand": "mastercard",
+ "checks": {
+ "address_line1_check": null,
+ "address_postal_code_check": null,
+ "cvc_check": "unchecked"
+ },
+ "country": "US",
+ "display_brand": "mastercard",
+ "exp_month": 4,
+ "exp_year": 2025,
+ "fingerprint": "BL35fEFVcTTS5wpE",
+ "funding": "credit",
+ "generated_from": null,
+ "last4": "4444",
+ "networks": {
+ "available": [
+ "mastercard"
+ ],
+ "preferred": null
+ },
+ "three_d_secure_usage": {
+ "supported": true
+ },
+ "wallet": null
+ },
+ "created": 1713393622,
+ "customer": null,
+ "livemode": false,
+ "metadata": {},
+ "type": "card"
+ }
+ recorded_at: Wed, 17 Apr 2024 22:40:23 GMT
+- request:
+ method: post
+ uri: https://api.stripe.com/v1/payment_intents
+ body:
+ encoding: UTF-8
+ string: amount=1000¤cy=aud&payment_method=pm_1P6h9OKuuB1fWySn36I1mtH7&payment_method_types[0]=card&capture_method=manual
+ headers:
+ User-Agent:
+ - Stripe/v1 RubyBindings/11.1.0
+ Authorization:
+ - ""
+ Content-Type:
+ - application/x-www-form-urlencoded
+ X-Stripe-Client-Telemetry:
+ - '{"last_request_metrics":{"request_id":"req_j7DLIIuuhURNC9","request_duration_ms":431}}'
+ Stripe-Version:
+ - '2024-04-10'
+ X-Stripe-Client-User-Agent:
+ - ""
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Server:
+ - nginx
+ Date:
+ - Wed, 17 Apr 2024 22:40:23 GMT
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '1344'
+ Connection:
+ - keep-alive
+ Access-Control-Allow-Credentials:
+ - 'true'
+ Access-Control-Allow-Methods:
+ - GET,HEAD,PUT,PATCH,POST,DELETE
+ Access-Control-Allow-Origin:
+ - "*"
+ Access-Control-Expose-Headers:
+ - Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required,
+ X-Stripe-Privileged-Session-Required
+ Access-Control-Max-Age:
+ - '300'
+ Cache-Control:
+ - no-cache, no-store
+ Content-Security-Policy:
+ - report-uri https://q.stripe.com/csp-report?p=v1%2Fpayment_intents; block-all-mixed-content;
+ default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none';
+ img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
+ Idempotency-Key:
+ - 87ca1f94-71d6-4eec-995c-087f6b4408cb
+ Original-Request:
+ - req_UQ7IiEc3ReGp38
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
+ Request-Id:
+ - req_UQ7IiEc3ReGp38
+ Stripe-Should-Retry:
+ - 'false'
+ Stripe-Version:
+ - '2024-04-10'
+ Vary:
+ - Origin
+ X-Stripe-Routing-Context-Priority-Tier:
+ - api-testmode
+ Strict-Transport-Security:
+ - max-age=63072000; includeSubDomains; preload
+ body:
+ encoding: UTF-8
+ string: |-
+ {
+ "id": "pi_3P6h9PKuuB1fWySn0qF0wV9W",
+ "object": "payment_intent",
+ "amount": 1000,
+ "amount_capturable": 0,
+ "amount_details": {
+ "tip": {}
+ },
+ "amount_received": 0,
+ "application": null,
+ "application_fee_amount": null,
+ "automatic_payment_methods": null,
+ "canceled_at": null,
+ "cancellation_reason": null,
+ "capture_method": "manual",
+ "client_secret": "",
+ "confirmation_method": "automatic",
+ "created": 1713393623,
+ "currency": "aud",
+ "customer": null,
+ "description": null,
+ "invoice": null,
+ "last_payment_error": null,
+ "latest_charge": null,
+ "livemode": false,
+ "metadata": {},
+ "next_action": null,
+ "on_behalf_of": null,
+ "payment_method": "pm_1P6h9OKuuB1fWySn36I1mtH7",
+ "payment_method_configuration_details": null,
+ "payment_method_options": {
+ "card": {
+ "installments": null,
+ "mandate_options": null,
+ "network": null,
+ "request_three_d_secure": "automatic"
+ }
+ },
+ "payment_method_types": [
+ "card"
+ ],
+ "processing": null,
+ "receipt_email": null,
+ "review": null,
+ "setup_future_usage": null,
+ "shipping": null,
+ "source": null,
+ "statement_descriptor": null,
+ "statement_descriptor_suffix": null,
+ "status": "requires_confirmation",
+ "transfer_data": null,
+ "transfer_group": null
+ }
+ recorded_at: Wed, 17 Apr 2024 22:40:23 GMT
+- request:
+ method: post
+ uri: https://api.stripe.com/v1/payment_intents/pi_3P6h9PKuuB1fWySn0qF0wV9W/confirm
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ User-Agent:
+ - Stripe/v1 RubyBindings/11.1.0
+ Authorization:
+ - ""
+ Content-Type:
+ - application/x-www-form-urlencoded
+ X-Stripe-Client-Telemetry:
+ - '{"last_request_metrics":{"request_id":"req_UQ7IiEc3ReGp38","request_duration_ms":444}}'
+ Stripe-Version:
+ - '2024-04-10'
+ X-Stripe-Client-User-Agent:
+ - ""
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Server:
+ - nginx
+ Date:
+ - Wed, 17 Apr 2024 22:40:24 GMT
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '1367'
+ Connection:
+ - keep-alive
+ Access-Control-Allow-Credentials:
+ - 'true'
+ Access-Control-Allow-Methods:
+ - GET,HEAD,PUT,PATCH,POST,DELETE
+ Access-Control-Allow-Origin:
+ - "*"
+ Access-Control-Expose-Headers:
+ - Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required,
+ X-Stripe-Privileged-Session-Required
+ Access-Control-Max-Age:
+ - '300'
+ Cache-Control:
+ - no-cache, no-store
+ Content-Security-Policy:
+ - report-uri https://q.stripe.com/csp-report?p=v1%2Fpayment_intents%2F%3Aintent%2Fconfirm;
+ block-all-mixed-content; default-src 'none'; base-uri 'none'; form-action
+ 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample';
+ style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
+ Idempotency-Key:
+ - 1d4f4716-9b01-4f8a-a467-61656a62f35e
+ Original-Request:
+ - req_ix8R2kZj087MSe
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
+ Request-Id:
+ - req_ix8R2kZj087MSe
+ Stripe-Should-Retry:
+ - 'false'
+ Stripe-Version:
+ - '2024-04-10'
+ Vary:
+ - Origin
+ X-Stripe-Routing-Context-Priority-Tier:
+ - api-testmode
+ Strict-Transport-Security:
+ - max-age=63072000; includeSubDomains; preload
+ body:
+ encoding: UTF-8
+ string: |-
+ {
+ "id": "pi_3P6h9PKuuB1fWySn0qF0wV9W",
+ "object": "payment_intent",
+ "amount": 1000,
+ "amount_capturable": 1000,
+ "amount_details": {
+ "tip": {}
+ },
+ "amount_received": 0,
+ "application": null,
+ "application_fee_amount": null,
+ "automatic_payment_methods": null,
+ "canceled_at": null,
+ "cancellation_reason": null,
+ "capture_method": "manual",
+ "client_secret": "",
+ "confirmation_method": "automatic",
+ "created": 1713393623,
+ "currency": "aud",
+ "customer": null,
+ "description": null,
+ "invoice": null,
+ "last_payment_error": null,
+ "latest_charge": "ch_3P6h9PKuuB1fWySn0pPG4M92",
+ "livemode": false,
+ "metadata": {},
+ "next_action": null,
+ "on_behalf_of": null,
+ "payment_method": "pm_1P6h9OKuuB1fWySn36I1mtH7",
+ "payment_method_configuration_details": null,
+ "payment_method_options": {
+ "card": {
+ "installments": null,
+ "mandate_options": null,
+ "network": null,
+ "request_three_d_secure": "automatic"
+ }
+ },
+ "payment_method_types": [
+ "card"
+ ],
+ "processing": null,
+ "receipt_email": null,
+ "review": null,
+ "setup_future_usage": null,
+ "shipping": null,
+ "source": null,
+ "statement_descriptor": null,
+ "statement_descriptor_suffix": null,
+ "status": "requires_capture",
+ "transfer_data": null,
+ "transfer_group": null
+ }
+ recorded_at: Wed, 17 Apr 2024 22:40:24 GMT
+- request:
+ method: post
+ uri: https://api.stripe.com/v1/accounts
+ body:
+ encoding: UTF-8
+ string: type=standard&country=AU&email=carrot.producer%40example.com
+ headers:
+ User-Agent:
+ - Stripe/v1 RubyBindings/11.1.0
+ Authorization:
+ - ""
+ Content-Type:
+ - application/x-www-form-urlencoded
+ X-Stripe-Client-Telemetry:
+ - '{"last_request_metrics":{"request_id":"req_ix8R2kZj087MSe","request_duration_ms":1025}}'
+ Stripe-Version:
+ - '2024-04-10'
+ X-Stripe-Client-User-Agent:
+ - ""
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Server:
+ - nginx
+ Date:
+ - Wed, 17 Apr 2024 22:40:26 GMT
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '3046'
+ Connection:
+ - keep-alive
+ Access-Control-Allow-Credentials:
+ - 'true'
+ Access-Control-Allow-Methods:
+ - GET,HEAD,PUT,PATCH,POST,DELETE
+ Access-Control-Allow-Origin:
+ - "*"
+ Access-Control-Expose-Headers:
+ - Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required,
+ X-Stripe-Privileged-Session-Required
+ Access-Control-Max-Age:
+ - '300'
+ Cache-Control:
+ - no-cache, no-store
+ Content-Security-Policy:
+ - report-uri https://q.stripe.com/csp-report?p=v1%2Faccounts; block-all-mixed-content;
+ default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none';
+ img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
+ Idempotency-Key:
+ - 5d49d0bd-1024-4c27-aec0-db6138a26672
+ Original-Request:
+ - req_aZu7Ip7h6hMWEw
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
+ Request-Id:
+ - req_aZu7Ip7h6hMWEw
+ Stripe-Should-Retry:
+ - 'false'
+ Stripe-Version:
+ - '2024-04-10'
+ Vary:
+ - Origin
+ X-Stripe-Routing-Context-Priority-Tier:
+ - api-testmode
+ Strict-Transport-Security:
+ - max-age=63072000; includeSubDomains; preload
+ body:
+ encoding: UTF-8
+ string: |-
+ {
+ "id": "acct_1P6h9RQTKNivUWku",
+ "object": "account",
+ "business_profile": {
+ "annual_revenue": null,
+ "estimated_worker_count": null,
+ "mcc": null,
+ "name": null,
+ "product_description": null,
+ "support_address": null,
+ "support_email": null,
+ "support_phone": null,
+ "support_url": null,
+ "url": null
+ },
+ "business_type": null,
+ "capabilities": {},
+ "charges_enabled": false,
+ "controller": {
+ "is_controller": true,
+ "type": "application"
+ },
+ "country": "AU",
+ "created": 1713393626,
+ "default_currency": "aud",
+ "details_submitted": false,
+ "email": "carrot.producer@example.com",
+ "external_accounts": {
+ "object": "list",
+ "data": [],
+ "has_more": false,
+ "total_count": 0,
+ "url": "/v1/accounts/acct_1P6h9RQTKNivUWku/external_accounts"
+ },
+ "future_requirements": {
+ "alternatives": [],
+ "current_deadline": null,
+ "currently_due": [],
+ "disabled_reason": null,
+ "errors": [],
+ "eventually_due": [],
+ "past_due": [],
+ "pending_verification": []
+ },
+ "metadata": {},
+ "payouts_enabled": false,
+ "requirements": {
+ "alternatives": [],
+ "current_deadline": null,
+ "currently_due": [
+ "business_profile.product_description",
+ "business_profile.support_phone",
+ "business_profile.url",
+ "external_account",
+ "tos_acceptance.date",
+ "tos_acceptance.ip"
+ ],
+ "disabled_reason": "requirements.past_due",
+ "errors": [],
+ "eventually_due": [
+ "business_profile.product_description",
+ "business_profile.support_phone",
+ "business_profile.url",
+ "external_account",
+ "tos_acceptance.date",
+ "tos_acceptance.ip"
+ ],
+ "past_due": [
+ "external_account",
+ "tos_acceptance.date",
+ "tos_acceptance.ip"
+ ],
+ "pending_verification": []
+ },
+ "settings": {
+ "bacs_debit_payments": {
+ "display_name": null,
+ "service_user_number": null
+ },
+ "branding": {
+ "icon": null,
+ "logo": null,
+ "primary_color": null,
+ "secondary_color": null
+ },
+ "card_issuing": {
+ "tos_acceptance": {
+ "date": null,
+ "ip": null
+ }
+ },
+ "card_payments": {
+ "decline_on": {
+ "avs_failure": false,
+ "cvc_failure": false
+ },
+ "statement_descriptor_prefix": null,
+ "statement_descriptor_prefix_kana": null,
+ "statement_descriptor_prefix_kanji": null
+ },
+ "dashboard": {
+ "display_name": null,
+ "timezone": "Etc/UTC"
+ },
+ "invoices": {
+ "default_account_tax_ids": null
+ },
+ "payments": {
+ "statement_descriptor": null,
+ "statement_descriptor_kana": null,
+ "statement_descriptor_kanji": null
+ },
+ "payouts": {
+ "debit_negative_balances": true,
+ "schedule": {
+ "delay_days": 2,
+ "interval": "daily"
+ },
+ "statement_descriptor": null
+ },
+ "sepa_debit_payments": {}
+ },
+ "tos_acceptance": {
+ "date": null,
+ "ip": null,
+ "user_agent": null
+ },
+ "type": "standard"
+ }
+ recorded_at: Wed, 17 Apr 2024 22:40:27 GMT
+- request:
+ method: delete
+ uri: https://api.stripe.com/v1/accounts/acct_1P6h9RQTKNivUWku
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ User-Agent:
+ - Stripe/v1 RubyBindings/11.1.0
+ Authorization:
+ - ""
+ Content-Type:
+ - application/x-www-form-urlencoded
+ X-Stripe-Client-Telemetry:
+ - '{"last_request_metrics":{"request_id":"req_aZu7Ip7h6hMWEw","request_duration_ms":1707}}'
+ Stripe-Version:
+ - '2024-04-10'
+ X-Stripe-Client-User-Agent:
+ - ""
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Server:
+ - nginx
+ Date:
+ - Wed, 17 Apr 2024 22:40:28 GMT
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '77'
+ Connection:
+ - keep-alive
+ Access-Control-Allow-Credentials:
+ - 'true'
+ Access-Control-Allow-Methods:
+ - GET,HEAD,PUT,PATCH,POST,DELETE
+ Access-Control-Allow-Origin:
+ - "*"
+ Access-Control-Expose-Headers:
+ - Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required,
+ X-Stripe-Privileged-Session-Required
+ Access-Control-Max-Age:
+ - '300'
+ Cache-Control:
+ - no-cache, no-store
+ Content-Security-Policy:
+ - report-uri https://q.stripe.com/csp-report?p=v1%2Faccounts%2F%3Aaccount; block-all-mixed-content;
+ default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none';
+ img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
+ Request-Id:
+ - req_Hc6RJleCBVQrji
+ Stripe-Account:
+ - acct_1P6h9RQTKNivUWku
+ Stripe-Version:
+ - '2024-04-10'
+ Vary:
+ - Origin
+ X-Stripe-Routing-Context-Priority-Tier:
+ - api-testmode
+ Strict-Transport-Security:
+ - max-age=63072000; includeSubDomains; preload
+ body:
+ encoding: UTF-8
+ string: |-
+ {
+ "id": "acct_1P6h9RQTKNivUWku",
+ "object": "account",
+ "deleted": true
+ }
+ recorded_at: Wed, 17 Apr 2024 22:40:28 GMT
+recorded_with: VCR 6.2.0
diff --git a/spec/fixtures/vcr_cassettes/Stripe-v10.10.0/Spree_Gateway_StripeSCA/_void/with_a_confirmed_payment/refunds_the_payment.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Spree_Gateway_StripeSCA/_void/with_a_confirmed_payment/refunds_the_payment.yml
similarity index 75%
rename from spec/fixtures/vcr_cassettes/Stripe-v10.10.0/Spree_Gateway_StripeSCA/_void/with_a_confirmed_payment/refunds_the_payment.yml
rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Spree_Gateway_StripeSCA/_void/with_a_confirmed_payment/refunds_the_payment.yml
index e5130bd32f..3d2bcbc9c7 100644
--- a/spec/fixtures/vcr_cassettes/Stripe-v10.10.0/Spree_Gateway_StripeSCA/_void/with_a_confirmed_payment/refunds_the_payment.yml
+++ b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Spree_Gateway_StripeSCA/_void/with_a_confirmed_payment/refunds_the_payment.yml
@@ -8,20 +8,17 @@ http_interactions:
string: type=standard&country=AU&email=carrot.producer%40example.com
headers:
User-Agent:
- - Stripe/v1 RubyBindings/10.10.0
+ - Stripe/v1 RubyBindings/11.1.0
Authorization:
- - Bearer
+ - ""
Content-Type:
- application/x-www-form-urlencoded
X-Stripe-Client-Telemetry:
- - '{"last_request_metrics":{"request_id":"req_RZnI8d1lN97iCq","request_duration_ms":986}}'
+ - '{"last_request_metrics":{"request_id":"req_Hc6RJleCBVQrji","request_duration_ms":1120}}'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
X-Stripe-Client-User-Agent:
- - '{"bindings_version":"10.10.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
- version 5.15.0-92-generic (buildd@lcy02-amd64-002) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2)
- 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #102~20.04.1-Ubuntu SMP Mon
- Jan 15 13:09:14 UTC 2024","hostname":"gaetan-Dell-G15"}'
+ - ""
Accept-Encoding:
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept:
@@ -34,7 +31,7 @@ http_interactions:
Server:
- nginx
Date:
- - Wed, 28 Feb 2024 04:22:58 GMT
+ - Wed, 17 Apr 2024 22:40:30 GMT
Content-Type:
- application/json
Content-Length:
@@ -58,16 +55,22 @@ http_interactions:
- report-uri https://q.stripe.com/csp-report?p=v1%2Faccounts; block-all-mixed-content;
default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none';
img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
Idempotency-Key:
- - 54580d6e-e359-4cb8-bd6f-19755b32a54b
+ - 92dec14b-edaa-4248-aa04-9e403571116e
Original-Request:
- - req_tvTBJjnxpf5qXy
+ - req_NGp4nup5Hy409f
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
Request-Id:
- - req_tvTBJjnxpf5qXy
+ - req_NGp4nup5Hy409f
Stripe-Should-Retry:
- 'false'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
Vary:
- Origin
X-Stripe-Routing-Context-Priority-Tier:
@@ -78,7 +81,7 @@ http_interactions:
encoding: UTF-8
string: |-
{
- "id": "acct_1OoefV4C2tKH5dGL",
+ "id": "acct_1P6h9U4J9zQRH3My",
"object": "account",
"business_profile": {
"annual_revenue": null,
@@ -100,7 +103,7 @@ http_interactions:
"type": "application"
},
"country": "AU",
- "created": 1709094178,
+ "created": 1713393629,
"default_currency": "aud",
"details_submitted": false,
"email": "carrot.producer@example.com",
@@ -109,7 +112,7 @@ http_interactions:
"data": [],
"has_more": false,
"total_count": 0,
- "url": "/v1/accounts/acct_1OoefV4C2tKH5dGL/external_accounts"
+ "url": "/v1/accounts/acct_1P6h9U4J9zQRH3My/external_accounts"
},
"future_requirements": {
"alternatives": [],
@@ -206,7 +209,7 @@ http_interactions:
},
"type": "standard"
}
- recorded_at: Wed, 28 Feb 2024 04:22:58 GMT
+ recorded_at: Wed, 17 Apr 2024 22:40:30 GMT
- request:
method: get
uri: https://api.stripe.com/v1/payment_methods/pm_card_mastercard
@@ -215,20 +218,17 @@ http_interactions:
string: ''
headers:
User-Agent:
- - Stripe/v1 RubyBindings/10.10.0
+ - Stripe/v1 RubyBindings/11.1.0
Authorization:
- - Bearer
+ - ""
Content-Type:
- application/x-www-form-urlencoded
X-Stripe-Client-Telemetry:
- - '{"last_request_metrics":{"request_id":"req_tvTBJjnxpf5qXy","request_duration_ms":1696}}'
+ - '{"last_request_metrics":{"request_id":"req_NGp4nup5Hy409f","request_duration_ms":2034}}'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
X-Stripe-Client-User-Agent:
- - '{"bindings_version":"10.10.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
- version 5.15.0-92-generic (buildd@lcy02-amd64-002) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2)
- 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #102~20.04.1-Ubuntu SMP Mon
- Jan 15 13:09:14 UTC 2024","hostname":"gaetan-Dell-G15"}'
+ - ""
Accept-Encoding:
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept:
@@ -241,11 +241,11 @@ http_interactions:
Server:
- nginx
Date:
- - Wed, 28 Feb 2024 04:23:00 GMT
+ - Wed, 17 Apr 2024 22:40:31 GMT
Content-Type:
- application/json
Content-Length:
- - '977'
+ - '1013'
Connection:
- keep-alive
Access-Control-Allow-Credentials:
@@ -266,10 +266,16 @@ http_interactions:
block-all-mixed-content; default-src 'none'; base-uri 'none'; form-action
'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample';
style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
Request-Id:
- - req_vV7bfcGNN6GDXn
+ - req_5nEx5aRlvAqSnI
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
Vary:
- Origin
X-Stripe-Routing-Context-Priority-Tier:
@@ -280,8 +286,9 @@ http_interactions:
encoding: UTF-8
string: |-
{
- "id": "pm_1OoefXKuuB1fWySn407A6STW",
+ "id": "pm_1P6h9XKuuB1fWySnxUKsZ4Rc",
"object": "payment_method",
+ "allow_redisplay": "unspecified",
"billing_details": {
"address": {
"city": null,
@@ -304,7 +311,7 @@ http_interactions:
},
"country": "US",
"display_brand": "mastercard",
- "exp_month": 2,
+ "exp_month": 4,
"exp_year": 2025,
"fingerprint": "BL35fEFVcTTS5wpE",
"funding": "credit",
@@ -321,13 +328,13 @@ http_interactions:
},
"wallet": null
},
- "created": 1709094179,
+ "created": 1713393631,
"customer": null,
"livemode": false,
"metadata": {},
"type": "card"
}
- recorded_at: Wed, 28 Feb 2024 04:23:00 GMT
+ recorded_at: Wed, 17 Apr 2024 22:40:31 GMT
- request:
method: post
uri: https://api.stripe.com/v1/payment_intents
@@ -336,22 +343,19 @@ http_interactions:
string: amount=1000¤cy=aud&payment_method=pm_card_mastercard&payment_method_types[0]=card&capture_method=automatic&confirm=true
headers:
User-Agent:
- - Stripe/v1 RubyBindings/10.10.0
+ - Stripe/v1 RubyBindings/11.1.0
Authorization:
- - Bearer
+ - ""
Content-Type:
- application/x-www-form-urlencoded
X-Stripe-Client-Telemetry:
- - '{"last_request_metrics":{"request_id":"req_vV7bfcGNN6GDXn","request_duration_ms":381}}'
+ - '{"last_request_metrics":{"request_id":"req_5nEx5aRlvAqSnI","request_duration_ms":432}}'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
X-Stripe-Client-User-Agent:
- - '{"bindings_version":"10.10.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
- version 5.15.0-92-generic (buildd@lcy02-amd64-002) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2)
- 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #102~20.04.1-Ubuntu SMP Mon
- Jan 15 13:09:14 UTC 2024","hostname":"gaetan-Dell-G15"}'
+ - ""
Stripe-Account:
- - acct_1OoefV4C2tKH5dGL
+ - acct_1P6h9U4J9zQRH3My
Accept-Encoding:
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept:
@@ -364,7 +368,7 @@ http_interactions:
Server:
- nginx
Date:
- - Wed, 28 Feb 2024 04:23:01 GMT
+ - Wed, 17 Apr 2024 22:40:32 GMT
Content-Type:
- application/json
Content-Length:
@@ -388,18 +392,24 @@ http_interactions:
- report-uri https://q.stripe.com/csp-report?p=v1%2Fpayment_intents; block-all-mixed-content;
default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none';
img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
Idempotency-Key:
- - 2989f409-6a08-4cfa-a4fa-dd10e361ed8c
+ - d508fb8d-38d8-4a0b-811a-9bb831203e0d
Original-Request:
- - req_t1G1fXjle87ldK
+ - req_n8JawX3qxyVWiw
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
Request-Id:
- - req_t1G1fXjle87ldK
+ - req_n8JawX3qxyVWiw
Stripe-Account:
- - acct_1OoefV4C2tKH5dGL
+ - acct_1P6h9U4J9zQRH3My
Stripe-Should-Retry:
- 'false'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
Vary:
- Origin
X-Stripe-Routing-Context-Priority-Tier:
@@ -410,7 +420,7 @@ http_interactions:
encoding: UTF-8
string: |-
{
- "id": "pi_3OoefY4C2tKH5dGL1GZJ9p6K",
+ "id": "pi_3P6h9X4J9zQRH3My1lrN8v5w",
"object": "payment_intent",
"amount": 1000,
"amount_capturable": 0,
@@ -424,20 +434,20 @@ http_interactions:
"canceled_at": null,
"cancellation_reason": null,
"capture_method": "automatic",
- "client_secret": "pi_3OoefY4C2tKH5dGL1GZJ9p6K_secret_yTGvOEMPhBORAgEQagwJpXTPI",
+ "client_secret": "",
"confirmation_method": "automatic",
- "created": 1709094180,
+ "created": 1713393631,
"currency": "aud",
"customer": null,
"description": null,
"invoice": null,
"last_payment_error": null,
- "latest_charge": "ch_3OoefY4C2tKH5dGL1VlO0lYA",
+ "latest_charge": "ch_3P6h9X4J9zQRH3My1zpsSRbK",
"livemode": false,
"metadata": {},
"next_action": null,
"on_behalf_of": null,
- "payment_method": "pm_1OoefY4C2tKH5dGL4j5cFhFa",
+ "payment_method": "pm_1P6h9X4J9zQRH3MydDNs5uI5",
"payment_method_configuration_details": null,
"payment_method_options": {
"card": {
@@ -462,31 +472,28 @@ http_interactions:
"transfer_data": null,
"transfer_group": null
}
- recorded_at: Wed, 28 Feb 2024 04:23:01 GMT
+ recorded_at: Wed, 17 Apr 2024 22:40:32 GMT
- request:
method: get
- uri: https://api.stripe.com/v1/payment_intents/pi_3OoefY4C2tKH5dGL1GZJ9p6K
+ uri: https://api.stripe.com/v1/payment_intents/pi_3P6h9X4J9zQRH3My1lrN8v5w
body:
encoding: US-ASCII
string: ''
headers:
User-Agent:
- - Stripe/v1 RubyBindings/10.10.0
+ - Stripe/v1 RubyBindings/11.1.0
Authorization:
- - Bearer
+ - ""
Content-Type:
- application/x-www-form-urlencoded
X-Stripe-Client-Telemetry:
- - '{"last_request_metrics":{"request_id":"req_t1G1fXjle87ldK","request_duration_ms":1504}}'
+ - '{"last_request_metrics":{"request_id":"req_n8JawX3qxyVWiw","request_duration_ms":1428}}'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
X-Stripe-Client-User-Agent:
- - '{"bindings_version":"10.10.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
- version 5.15.0-92-generic (buildd@lcy02-amd64-002) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2)
- 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #102~20.04.1-Ubuntu SMP Mon
- Jan 15 13:09:14 UTC 2024","hostname":"gaetan-Dell-G15"}'
+ - ""
Stripe-Account:
- - acct_1OoefV4C2tKH5dGL
+ - acct_1P6h9U4J9zQRH3My
Accept-Encoding:
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept:
@@ -499,7 +506,7 @@ http_interactions:
Server:
- nginx
Date:
- - Wed, 28 Feb 2024 04:23:01 GMT
+ - Wed, 17 Apr 2024 22:40:33 GMT
Content-Type:
- application/json
Content-Length:
@@ -524,12 +531,18 @@ http_interactions:
block-all-mixed-content; default-src 'none'; base-uri 'none'; form-action
'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample';
style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
Request-Id:
- - req_lZyw7j5pG8K6Cv
+ - req_trWQLXd1iOtBPW
Stripe-Account:
- - acct_1OoefV4C2tKH5dGL
+ - acct_1P6h9U4J9zQRH3My
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
Vary:
- Origin
X-Stripe-Routing-Context-Priority-Tier:
@@ -540,7 +553,7 @@ http_interactions:
encoding: UTF-8
string: |-
{
- "id": "pi_3OoefY4C2tKH5dGL1GZJ9p6K",
+ "id": "pi_3P6h9X4J9zQRH3My1lrN8v5w",
"object": "payment_intent",
"amount": 1000,
"amount_capturable": 0,
@@ -554,20 +567,20 @@ http_interactions:
"canceled_at": null,
"cancellation_reason": null,
"capture_method": "automatic",
- "client_secret": "pi_3OoefY4C2tKH5dGL1GZJ9p6K_secret_yTGvOEMPhBORAgEQagwJpXTPI",
+ "client_secret": "",
"confirmation_method": "automatic",
- "created": 1709094180,
+ "created": 1713393631,
"currency": "aud",
"customer": null,
"description": null,
"invoice": null,
"last_payment_error": null,
- "latest_charge": "ch_3OoefY4C2tKH5dGL1VlO0lYA",
+ "latest_charge": "ch_3P6h9X4J9zQRH3My1zpsSRbK",
"livemode": false,
"metadata": {},
"next_action": null,
"on_behalf_of": null,
- "payment_method": "pm_1OoefY4C2tKH5dGL4j5cFhFa",
+ "payment_method": "pm_1P6h9X4J9zQRH3MydDNs5uI5",
"payment_method_configuration_details": null,
"payment_method_options": {
"card": {
@@ -592,26 +605,26 @@ http_interactions:
"transfer_data": null,
"transfer_group": null
}
- recorded_at: Wed, 28 Feb 2024 04:23:01 GMT
+ recorded_at: Wed, 17 Apr 2024 22:40:33 GMT
- request:
method: get
- uri: https://api.stripe.com/v1/payment_intents/pi_3OoefY4C2tKH5dGL1GZJ9p6K
+ uri: https://api.stripe.com/v1/payment_intents/pi_3P6h9X4J9zQRH3My1lrN8v5w
body:
encoding: US-ASCII
string: ''
headers:
Authorization:
- - Basic c2tfdGVzdF94RmdKUU9sWHBNQUZzb3p0endGQlRGaFAwMEhHN0J1Q0ptOg==
+ - ""
User-Agent:
- Stripe/v1 ActiveMerchantBindings/1.133.0
Stripe-Version:
- '2020-08-27'
X-Stripe-Client-User-Agent:
- - '{"bindings_version":"1.133.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","publisher":"active_merchant"}'
+ - ""
X-Stripe-Client-User-Metadata:
- '{"ip":null}'
Stripe-Account:
- - acct_1OoefV4C2tKH5dGL
+ - acct_1P6h9U4J9zQRH3My
Connection:
- close
Accept-Encoding:
@@ -626,11 +639,11 @@ http_interactions:
Server:
- nginx
Date:
- - Wed, 28 Feb 2024 04:23:02 GMT
+ - Wed, 17 Apr 2024 22:40:33 GMT
Content-Type:
- application/json
Content-Length:
- - '5159'
+ - '5160'
Connection:
- close
Access-Control-Allow-Credentials:
@@ -651,10 +664,16 @@ http_interactions:
block-all-mixed-content; default-src 'none'; base-uri 'none'; form-action
'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample';
style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
Request-Id:
- - req_FH8bGixsjbByLa
+ - req_56qLfIgLmecudN
Stripe-Account:
- - acct_1OoefV4C2tKH5dGL
+ - acct_1P6h9U4J9zQRH3My
Stripe-Version:
- '2020-08-27'
Vary:
@@ -667,7 +686,7 @@ http_interactions:
encoding: UTF-8
string: |-
{
- "id": "pi_3OoefY4C2tKH5dGL1GZJ9p6K",
+ "id": "pi_3P6h9X4J9zQRH3My1lrN8v5w",
"object": "payment_intent",
"amount": 1000,
"amount_capturable": 0,
@@ -685,7 +704,7 @@ http_interactions:
"object": "list",
"data": [
{
- "id": "ch_3OoefY4C2tKH5dGL1VlO0lYA",
+ "id": "ch_3P6h9X4J9zQRH3My1zpsSRbK",
"object": "charge",
"amount": 1000,
"amount_captured": 1000,
@@ -693,7 +712,7 @@ http_interactions:
"application": "",
"application_fee": null,
"application_fee_amount": null,
- "balance_transaction": "txn_3OoefY4C2tKH5dGL13dcK4j1",
+ "balance_transaction": "txn_3P6h9X4J9zQRH3My19TMsgUl",
"billing_details": {
"address": {
"city": null,
@@ -709,7 +728,7 @@ http_interactions:
},
"calculated_statement_descriptor": "OFNOFNOFN",
"captured": true,
- "created": 1709094180,
+ "created": 1713393631,
"currency": "aud",
"customer": null,
"description": null,
@@ -729,13 +748,13 @@ http_interactions:
"network_status": "approved_by_network",
"reason": null,
"risk_level": "normal",
- "risk_score": 7,
+ "risk_score": 25,
"seller_message": "Payment complete.",
"type": "authorized"
},
"paid": true,
- "payment_intent": "pi_3OoefY4C2tKH5dGL1GZJ9p6K",
- "payment_method": "pm_1OoefY4C2tKH5dGL4j5cFhFa",
+ "payment_intent": "pi_3P6h9X4J9zQRH3My1lrN8v5w",
+ "payment_method": "pm_1P6h9X4J9zQRH3MydDNs5uI5",
"payment_method_details": {
"card": {
"amount_authorized": 1000,
@@ -746,7 +765,7 @@ http_interactions:
"cvc_check": "pass"
},
"country": "US",
- "exp_month": 2,
+ "exp_month": 4,
"exp_year": 2025,
"extended_authorization": {
"status": "disabled"
@@ -778,14 +797,14 @@ http_interactions:
"radar_options": {},
"receipt_email": null,
"receipt_number": null,
- "receipt_url": "https://pay.stripe.com/receipts/payment/CAcaFwoVYWNjdF8xT29lZlY0QzJ0S0g1ZEdMKKbq-q4GMgaRkN_RRNQ6LBZz6CQXHZCrsn25QS9Jm5gbb44sYBgtlhvBnbTpsJMQXRa5GaNsE626dU5n",
+ "receipt_url": "https://pay.stripe.com/receipts/payment/CAcaFwoVYWNjdF8xUDZoOVU0Sjl6UVJIM015KOGfgbEGMgaJ38Vstsk6LBZqZ4EqA_Jb1nXwx7qoa52FEauKV8E9KD9JKvi9eVJz0rjBaa9Gn_Hxu-mB",
"refunded": false,
"refunds": {
"object": "list",
"data": [],
"has_more": false,
"total_count": 0,
- "url": "/v1/charges/ch_3OoefY4C2tKH5dGL1VlO0lYA/refunds"
+ "url": "/v1/charges/ch_3P6h9X4J9zQRH3My1zpsSRbK/refunds"
},
"review": null,
"shipping": null,
@@ -800,22 +819,22 @@ http_interactions:
],
"has_more": false,
"total_count": 1,
- "url": "/v1/charges?payment_intent=pi_3OoefY4C2tKH5dGL1GZJ9p6K"
+ "url": "/v1/charges?payment_intent=pi_3P6h9X4J9zQRH3My1lrN8v5w"
},
- "client_secret": "pi_3OoefY4C2tKH5dGL1GZJ9p6K_secret_yTGvOEMPhBORAgEQagwJpXTPI",
+ "client_secret": "",
"confirmation_method": "automatic",
- "created": 1709094180,
+ "created": 1713393631,
"currency": "aud",
"customer": null,
"description": null,
"invoice": null,
"last_payment_error": null,
- "latest_charge": "ch_3OoefY4C2tKH5dGL1VlO0lYA",
+ "latest_charge": "ch_3P6h9X4J9zQRH3My1zpsSRbK",
"livemode": false,
"metadata": {},
"next_action": null,
"on_behalf_of": null,
- "payment_method": "pm_1OoefY4C2tKH5dGL4j5cFhFa",
+ "payment_method": "pm_1P6h9X4J9zQRH3MydDNs5uI5",
"payment_method_configuration_details": null,
"payment_method_options": {
"card": {
@@ -840,10 +859,10 @@ http_interactions:
"transfer_data": null,
"transfer_group": null
}
- recorded_at: Wed, 28 Feb 2024 04:23:02 GMT
+ recorded_at: Wed, 17 Apr 2024 22:40:33 GMT
- request:
method: post
- uri: https://api.stripe.com/v1/charges/ch_3OoefY4C2tKH5dGL1VlO0lYA/refunds
+ uri: https://api.stripe.com/v1/charges/ch_3P6h9X4J9zQRH3My1zpsSRbK/refunds
body:
encoding: UTF-8
string: amount=1000&expand[0]=charge
@@ -851,17 +870,17 @@ http_interactions:
Content-Type:
- application/x-www-form-urlencoded
Authorization:
- - Basic c2tfdGVzdF94RmdKUU9sWHBNQUZzb3p0endGQlRGaFAwMEhHN0J1Q0ptOg==
+ - ""
User-Agent:
- Stripe/v1 ActiveMerchantBindings/1.133.0
Stripe-Version:
- '2020-08-27'
X-Stripe-Client-User-Agent:
- - '{"bindings_version":"1.133.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","publisher":"active_merchant"}'
+ - ""
X-Stripe-Client-User-Metadata:
- '{"ip":null}'
Stripe-Account:
- - acct_1OoefV4C2tKH5dGL
+ - acct_1P6h9U4J9zQRH3My
Connection:
- close
Accept-Encoding:
@@ -876,11 +895,11 @@ http_interactions:
Server:
- nginx
Date:
- - Wed, 28 Feb 2024 04:23:03 GMT
+ - Wed, 17 Apr 2024 22:40:35 GMT
Content-Type:
- application/json
Content-Length:
- - '4535'
+ - '4536'
Connection:
- close
Access-Control-Allow-Credentials:
@@ -901,14 +920,20 @@ http_interactions:
block-all-mixed-content; default-src 'none'; base-uri 'none'; form-action
'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample';
style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
Idempotency-Key:
- - e3b5a699-fd66-4438-acf5-dbcdd0c0cd8f
+ - 9d127053-8fbc-47b8-af3c-33154315c0f9
Original-Request:
- - req_gnYblTnZmxelLp
+ - req_q1VaJ3ZV8IX30r
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
Request-Id:
- - req_gnYblTnZmxelLp
+ - req_q1VaJ3ZV8IX30r
Stripe-Account:
- - acct_1OoefV4C2tKH5dGL
+ - acct_1P6h9U4J9zQRH3My
Stripe-Should-Retry:
- 'false'
Stripe-Version:
@@ -923,12 +948,12 @@ http_interactions:
encoding: UTF-8
string: |-
{
- "id": "re_3OoefY4C2tKH5dGL13F5cUVM",
+ "id": "re_3P6h9X4J9zQRH3My1kW0Cu0Q",
"object": "refund",
"amount": 1000,
- "balance_transaction": "txn_3OoefY4C2tKH5dGL1DQGbKPm",
+ "balance_transaction": "txn_3P6h9X4J9zQRH3My1sUbTVx5",
"charge": {
- "id": "ch_3OoefY4C2tKH5dGL1VlO0lYA",
+ "id": "ch_3P6h9X4J9zQRH3My1zpsSRbK",
"object": "charge",
"amount": 1000,
"amount_captured": 1000,
@@ -936,7 +961,7 @@ http_interactions:
"application": "",
"application_fee": null,
"application_fee_amount": null,
- "balance_transaction": "txn_3OoefY4C2tKH5dGL13dcK4j1",
+ "balance_transaction": "txn_3P6h9X4J9zQRH3My19TMsgUl",
"billing_details": {
"address": {
"city": null,
@@ -952,7 +977,7 @@ http_interactions:
},
"calculated_statement_descriptor": "OFNOFNOFN",
"captured": true,
- "created": 1709094180,
+ "created": 1713393631,
"currency": "aud",
"customer": null,
"description": null,
@@ -972,13 +997,13 @@ http_interactions:
"network_status": "approved_by_network",
"reason": null,
"risk_level": "normal",
- "risk_score": 7,
+ "risk_score": 25,
"seller_message": "Payment complete.",
"type": "authorized"
},
"paid": true,
- "payment_intent": "pi_3OoefY4C2tKH5dGL1GZJ9p6K",
- "payment_method": "pm_1OoefY4C2tKH5dGL4j5cFhFa",
+ "payment_intent": "pi_3P6h9X4J9zQRH3My1lrN8v5w",
+ "payment_method": "pm_1P6h9X4J9zQRH3MydDNs5uI5",
"payment_method_details": {
"card": {
"amount_authorized": 1000,
@@ -989,7 +1014,7 @@ http_interactions:
"cvc_check": "pass"
},
"country": "US",
- "exp_month": 2,
+ "exp_month": 4,
"exp_year": 2025,
"extended_authorization": {
"status": "disabled"
@@ -1021,18 +1046,18 @@ http_interactions:
"radar_options": {},
"receipt_email": null,
"receipt_number": null,
- "receipt_url": "https://pay.stripe.com/receipts/payment/CAcaFwoVYWNjdF8xT29lZlY0QzJ0S0g1ZEdMKKfq-q4GMgaZksVQP2U6LBbzMTFesAxG2bPJiPJrrQg4rFEMLvIeOgyWS0m6-vJl8TTT-s9srkaZHmxm",
+ "receipt_url": "https://pay.stripe.com/receipts/payment/CAcaFwoVYWNjdF8xUDZoOVU0Sjl6UVJIM015KOOfgbEGMga7crcak446LBZV8k3AdZ7kcO6J93E0lqOsRbVAkzRhffx3G6xc_Xn9HEH4rs_wV9FwBuv_",
"refunded": true,
"refunds": {
"object": "list",
"data": [
{
- "id": "re_3OoefY4C2tKH5dGL13F5cUVM",
+ "id": "re_3P6h9X4J9zQRH3My1kW0Cu0Q",
"object": "refund",
"amount": 1000,
- "balance_transaction": "txn_3OoefY4C2tKH5dGL1DQGbKPm",
- "charge": "ch_3OoefY4C2tKH5dGL1VlO0lYA",
- "created": 1709094182,
+ "balance_transaction": "txn_3P6h9X4J9zQRH3My1sUbTVx5",
+ "charge": "ch_3P6h9X4J9zQRH3My1zpsSRbK",
+ "created": 1713393634,
"currency": "aud",
"destination_details": {
"card": {
@@ -1043,7 +1068,7 @@ http_interactions:
"type": "card"
},
"metadata": {},
- "payment_intent": "pi_3OoefY4C2tKH5dGL1GZJ9p6K",
+ "payment_intent": "pi_3P6h9X4J9zQRH3My1lrN8v5w",
"reason": null,
"receipt_number": null,
"source_transfer_reversal": null,
@@ -1053,7 +1078,7 @@ http_interactions:
],
"has_more": false,
"total_count": 1,
- "url": "/v1/charges/ch_3OoefY4C2tKH5dGL1VlO0lYA/refunds"
+ "url": "/v1/charges/ch_3P6h9X4J9zQRH3My1zpsSRbK/refunds"
},
"review": null,
"shipping": null,
@@ -1065,7 +1090,7 @@ http_interactions:
"transfer_data": null,
"transfer_group": null
},
- "created": 1709094182,
+ "created": 1713393634,
"currency": "aud",
"destination_details": {
"card": {
@@ -1076,12 +1101,94 @@ http_interactions:
"type": "card"
},
"metadata": {},
- "payment_intent": "pi_3OoefY4C2tKH5dGL1GZJ9p6K",
+ "payment_intent": "pi_3P6h9X4J9zQRH3My1lrN8v5w",
"reason": null,
"receipt_number": null,
"source_transfer_reversal": null,
"status": "succeeded",
"transfer_reversal": null
}
- recorded_at: Wed, 28 Feb 2024 04:23:03 GMT
+ recorded_at: Wed, 17 Apr 2024 22:40:35 GMT
+- request:
+ method: delete
+ uri: https://api.stripe.com/v1/accounts/acct_1P6h9U4J9zQRH3My
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ User-Agent:
+ - Stripe/v1 RubyBindings/11.1.0
+ Authorization:
+ - ""
+ Content-Type:
+ - application/x-www-form-urlencoded
+ X-Stripe-Client-Telemetry:
+ - '{"last_request_metrics":{"request_id":"req_trWQLXd1iOtBPW","request_duration_ms":394}}'
+ Stripe-Version:
+ - '2024-04-10'
+ X-Stripe-Client-User-Agent:
+ - ""
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Server:
+ - nginx
+ Date:
+ - Wed, 17 Apr 2024 22:40:36 GMT
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '77'
+ Connection:
+ - keep-alive
+ Access-Control-Allow-Credentials:
+ - 'true'
+ Access-Control-Allow-Methods:
+ - GET,HEAD,PUT,PATCH,POST,DELETE
+ Access-Control-Allow-Origin:
+ - "*"
+ Access-Control-Expose-Headers:
+ - Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required,
+ X-Stripe-Privileged-Session-Required
+ Access-Control-Max-Age:
+ - '300'
+ Cache-Control:
+ - no-cache, no-store
+ Content-Security-Policy:
+ - report-uri https://q.stripe.com/csp-report?p=v1%2Faccounts%2F%3Aaccount; block-all-mixed-content;
+ default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none';
+ img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
+ Request-Id:
+ - req_fv2gjlLRUsoRVA
+ Stripe-Account:
+ - acct_1P6h9U4J9zQRH3My
+ Stripe-Version:
+ - '2024-04-10'
+ Vary:
+ - Origin
+ X-Stripe-Routing-Context-Priority-Tier:
+ - api-testmode
+ Strict-Transport-Security:
+ - max-age=63072000; includeSubDomains; preload
+ body:
+ encoding: UTF-8
+ string: |-
+ {
+ "id": "acct_1P6h9U4J9zQRH3My",
+ "object": "account",
+ "deleted": true
+ }
+ recorded_at: Wed, 17 Apr 2024 22:40:36 GMT
recorded_with: VCR 6.2.0
diff --git a/spec/fixtures/vcr_cassettes/Stripe-v10.10.0/Spree_Gateway_StripeSCA/_void/with_a_voidable_payment/void_the_payment.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Spree_Gateway_StripeSCA/_void/with_a_voidable_payment/void_the_payment.yml
similarity index 72%
rename from spec/fixtures/vcr_cassettes/Stripe-v10.10.0/Spree_Gateway_StripeSCA/_void/with_a_voidable_payment/void_the_payment.yml
rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Spree_Gateway_StripeSCA/_void/with_a_voidable_payment/void_the_payment.yml
index ce315fb2b1..51223a0dd6 100644
--- a/spec/fixtures/vcr_cassettes/Stripe-v10.10.0/Spree_Gateway_StripeSCA/_void/with_a_voidable_payment/void_the_payment.yml
+++ b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Spree_Gateway_StripeSCA/_void/with_a_voidable_payment/void_the_payment.yml
@@ -8,20 +8,17 @@ http_interactions:
string: type=standard&country=AU&email=carrot.producer%40example.com
headers:
User-Agent:
- - Stripe/v1 RubyBindings/10.10.0
+ - Stripe/v1 RubyBindings/11.1.0
Authorization:
- - Bearer
+ - ""
Content-Type:
- application/x-www-form-urlencoded
X-Stripe-Client-Telemetry:
- - '{"last_request_metrics":{"request_id":"req_lZyw7j5pG8K6Cv","request_duration_ms":296}}'
+ - '{"last_request_metrics":{"request_id":"req_fv2gjlLRUsoRVA","request_duration_ms":1024}}'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
X-Stripe-Client-User-Agent:
- - '{"bindings_version":"10.10.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
- version 5.15.0-92-generic (buildd@lcy02-amd64-002) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2)
- 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #102~20.04.1-Ubuntu SMP Mon
- Jan 15 13:09:14 UTC 2024","hostname":"gaetan-Dell-G15"}'
+ - ""
Accept-Encoding:
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept:
@@ -34,7 +31,7 @@ http_interactions:
Server:
- nginx
Date:
- - Wed, 28 Feb 2024 04:23:05 GMT
+ - Wed, 17 Apr 2024 22:40:38 GMT
Content-Type:
- application/json
Content-Length:
@@ -58,16 +55,22 @@ http_interactions:
- report-uri https://q.stripe.com/csp-report?p=v1%2Faccounts; block-all-mixed-content;
default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none';
img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
Idempotency-Key:
- - 1ef2201e-0e24-4640-982d-6568c4052527
+ - 3c3bece9-daff-4fb1-9ce0-425023ae7683
Original-Request:
- - req_s4ofxXP0G2Y783
+ - req_sEpazGkTWBhiqv
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
Request-Id:
- - req_s4ofxXP0G2Y783
+ - req_sEpazGkTWBhiqv
Stripe-Should-Retry:
- 'false'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
Vary:
- Origin
X-Stripe-Routing-Context-Priority-Tier:
@@ -78,7 +81,7 @@ http_interactions:
encoding: UTF-8
string: |-
{
- "id": "acct_1Ooefb4DjmilFkgB",
+ "id": "acct_1P6h9c3PPJnQM4Nb",
"object": "account",
"business_profile": {
"annual_revenue": null,
@@ -100,7 +103,7 @@ http_interactions:
"type": "application"
},
"country": "AU",
- "created": 1709094184,
+ "created": 1713393637,
"default_currency": "aud",
"details_submitted": false,
"email": "carrot.producer@example.com",
@@ -109,7 +112,7 @@ http_interactions:
"data": [],
"has_more": false,
"total_count": 0,
- "url": "/v1/accounts/acct_1Ooefb4DjmilFkgB/external_accounts"
+ "url": "/v1/accounts/acct_1P6h9c3PPJnQM4Nb/external_accounts"
},
"future_requirements": {
"alternatives": [],
@@ -206,7 +209,7 @@ http_interactions:
},
"type": "standard"
}
- recorded_at: Wed, 28 Feb 2024 04:23:05 GMT
+ recorded_at: Wed, 17 Apr 2024 22:40:38 GMT
- request:
method: get
uri: https://api.stripe.com/v1/payment_methods/pm_card_mastercard
@@ -215,20 +218,17 @@ http_interactions:
string: ''
headers:
User-Agent:
- - Stripe/v1 RubyBindings/10.10.0
+ - Stripe/v1 RubyBindings/11.1.0
Authorization:
- - Bearer
+ - ""
Content-Type:
- application/x-www-form-urlencoded
X-Stripe-Client-Telemetry:
- - '{"last_request_metrics":{"request_id":"req_s4ofxXP0G2Y783","request_duration_ms":1698}}'
+ - '{"last_request_metrics":{"request_id":"req_sEpazGkTWBhiqv","request_duration_ms":1696}}'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
X-Stripe-Client-User-Agent:
- - '{"bindings_version":"10.10.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
- version 5.15.0-92-generic (buildd@lcy02-amd64-002) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2)
- 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #102~20.04.1-Ubuntu SMP Mon
- Jan 15 13:09:14 UTC 2024","hostname":"gaetan-Dell-G15"}'
+ - ""
Accept-Encoding:
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept:
@@ -241,11 +241,11 @@ http_interactions:
Server:
- nginx
Date:
- - Wed, 28 Feb 2024 04:23:06 GMT
+ - Wed, 17 Apr 2024 22:40:39 GMT
Content-Type:
- application/json
Content-Length:
- - '977'
+ - '1013'
Connection:
- keep-alive
Access-Control-Allow-Credentials:
@@ -266,10 +266,16 @@ http_interactions:
block-all-mixed-content; default-src 'none'; base-uri 'none'; form-action
'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample';
style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
Request-Id:
- - req_YRYMRdfcJyCfpc
+ - req_C4Mv9CPrpMkRrT
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
Vary:
- Origin
X-Stripe-Routing-Context-Priority-Tier:
@@ -280,8 +286,9 @@ http_interactions:
encoding: UTF-8
string: |-
{
- "id": "pm_1OoefeKuuB1fWySn4sV0w7me",
+ "id": "pm_1P6h9fKuuB1fWySn5z3LyCFT",
"object": "payment_method",
+ "allow_redisplay": "unspecified",
"billing_details": {
"address": {
"city": null,
@@ -304,7 +311,7 @@ http_interactions:
},
"country": "US",
"display_brand": "mastercard",
- "exp_month": 2,
+ "exp_month": 4,
"exp_year": 2025,
"fingerprint": "BL35fEFVcTTS5wpE",
"funding": "credit",
@@ -321,13 +328,13 @@ http_interactions:
},
"wallet": null
},
- "created": 1709094186,
+ "created": 1713393639,
"customer": null,
"livemode": false,
"metadata": {},
"type": "card"
}
- recorded_at: Wed, 28 Feb 2024 04:23:06 GMT
+ recorded_at: Wed, 17 Apr 2024 22:40:39 GMT
- request:
method: post
uri: https://api.stripe.com/v1/payment_intents
@@ -336,22 +343,19 @@ http_interactions:
string: amount=1000¤cy=aud&payment_method=pm_card_mastercard&payment_method_types[0]=card&capture_method=manual
headers:
User-Agent:
- - Stripe/v1 RubyBindings/10.10.0
+ - Stripe/v1 RubyBindings/11.1.0
Authorization:
- - Bearer
+ - ""
Content-Type:
- application/x-www-form-urlencoded
X-Stripe-Client-Telemetry:
- - '{"last_request_metrics":{"request_id":"req_YRYMRdfcJyCfpc","request_duration_ms":414}}'
+ - '{"last_request_metrics":{"request_id":"req_C4Mv9CPrpMkRrT","request_duration_ms":539}}'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
X-Stripe-Client-User-Agent:
- - '{"bindings_version":"10.10.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
- version 5.15.0-92-generic (buildd@lcy02-amd64-002) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2)
- 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #102~20.04.1-Ubuntu SMP Mon
- Jan 15 13:09:14 UTC 2024","hostname":"gaetan-Dell-G15"}'
+ - ""
Stripe-Account:
- - acct_1Ooefb4DjmilFkgB
+ - acct_1P6h9c3PPJnQM4Nb
Accept-Encoding:
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept:
@@ -364,7 +368,7 @@ http_interactions:
Server:
- nginx
Date:
- - Wed, 28 Feb 2024 04:23:06 GMT
+ - Wed, 17 Apr 2024 22:40:39 GMT
Content-Type:
- application/json
Content-Length:
@@ -388,18 +392,24 @@ http_interactions:
- report-uri https://q.stripe.com/csp-report?p=v1%2Fpayment_intents; block-all-mixed-content;
default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none';
img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
Idempotency-Key:
- - 4709c865-413b-4f63-92de-88ea134ca3fc
+ - ef909d12-ae9d-4c10-98eb-70181d39f195
Original-Request:
- - req_924xRbbZ96ZSGs
+ - req_NKSYSayqFPaZmQ
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
Request-Id:
- - req_924xRbbZ96ZSGs
+ - req_NKSYSayqFPaZmQ
Stripe-Account:
- - acct_1Ooefb4DjmilFkgB
+ - acct_1P6h9c3PPJnQM4Nb
Stripe-Should-Retry:
- 'false'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
Vary:
- Origin
X-Stripe-Routing-Context-Priority-Tier:
@@ -410,7 +420,7 @@ http_interactions:
encoding: UTF-8
string: |-
{
- "id": "pi_3Ooefe4DjmilFkgB0MRGxtD7",
+ "id": "pi_3P6h9f3PPJnQM4Nb1soYNeEx",
"object": "payment_intent",
"amount": 1000,
"amount_capturable": 0,
@@ -424,9 +434,9 @@ http_interactions:
"canceled_at": null,
"cancellation_reason": null,
"capture_method": "manual",
- "client_secret": "pi_3Ooefe4DjmilFkgB0MRGxtD7_secret_m61Cyi5MpCkThDwF1HOTfVtTh",
+ "client_secret": "",
"confirmation_method": "automatic",
- "created": 1709094186,
+ "created": 1713393639,
"currency": "aud",
"customer": null,
"description": null,
@@ -437,7 +447,7 @@ http_interactions:
"metadata": {},
"next_action": null,
"on_behalf_of": null,
- "payment_method": "pm_1Ooefe4DjmilFkgBPSiob94t",
+ "payment_method": "pm_1P6h9f3PPJnQM4NbdZWYb7Mn",
"payment_method_configuration_details": null,
"payment_method_options": {
"card": {
@@ -462,31 +472,28 @@ http_interactions:
"transfer_data": null,
"transfer_group": null
}
- recorded_at: Wed, 28 Feb 2024 04:23:06 GMT
+ recorded_at: Wed, 17 Apr 2024 22:40:39 GMT
- request:
method: get
- uri: https://api.stripe.com/v1/payment_intents/pi_3Ooefe4DjmilFkgB0MRGxtD7
+ uri: https://api.stripe.com/v1/payment_intents/pi_3P6h9f3PPJnQM4Nb1soYNeEx
body:
encoding: US-ASCII
string: ''
headers:
User-Agent:
- - Stripe/v1 RubyBindings/10.10.0
+ - Stripe/v1 RubyBindings/11.1.0
Authorization:
- - Bearer
+ - ""
Content-Type:
- application/x-www-form-urlencoded
X-Stripe-Client-Telemetry:
- - '{"last_request_metrics":{"request_id":"req_924xRbbZ96ZSGs","request_duration_ms":508}}'
+ - '{"last_request_metrics":{"request_id":"req_NKSYSayqFPaZmQ","request_duration_ms":537}}'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
X-Stripe-Client-User-Agent:
- - '{"bindings_version":"10.10.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
- version 5.15.0-92-generic (buildd@lcy02-amd64-002) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2)
- 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #102~20.04.1-Ubuntu SMP Mon
- Jan 15 13:09:14 UTC 2024","hostname":"gaetan-Dell-G15"}'
+ - ""
Stripe-Account:
- - acct_1Ooefb4DjmilFkgB
+ - acct_1P6h9c3PPJnQM4Nb
Accept-Encoding:
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept:
@@ -499,7 +506,7 @@ http_interactions:
Server:
- nginx
Date:
- - Wed, 28 Feb 2024 04:23:07 GMT
+ - Wed, 17 Apr 2024 22:40:40 GMT
Content-Type:
- application/json
Content-Length:
@@ -524,12 +531,18 @@ http_interactions:
block-all-mixed-content; default-src 'none'; base-uri 'none'; form-action
'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample';
style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
Request-Id:
- - req_o2i92svEF6wZ9X
+ - req_y5YXRAeQMZrIzE
Stripe-Account:
- - acct_1Ooefb4DjmilFkgB
+ - acct_1P6h9c3PPJnQM4Nb
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
Vary:
- Origin
X-Stripe-Routing-Context-Priority-Tier:
@@ -540,7 +553,7 @@ http_interactions:
encoding: UTF-8
string: |-
{
- "id": "pi_3Ooefe4DjmilFkgB0MRGxtD7",
+ "id": "pi_3P6h9f3PPJnQM4Nb1soYNeEx",
"object": "payment_intent",
"amount": 1000,
"amount_capturable": 0,
@@ -554,9 +567,9 @@ http_interactions:
"canceled_at": null,
"cancellation_reason": null,
"capture_method": "manual",
- "client_secret": "pi_3Ooefe4DjmilFkgB0MRGxtD7_secret_m61Cyi5MpCkThDwF1HOTfVtTh",
+ "client_secret": "",
"confirmation_method": "automatic",
- "created": 1709094186,
+ "created": 1713393639,
"currency": "aud",
"customer": null,
"description": null,
@@ -567,7 +580,7 @@ http_interactions:
"metadata": {},
"next_action": null,
"on_behalf_of": null,
- "payment_method": "pm_1Ooefe4DjmilFkgBPSiob94t",
+ "payment_method": "pm_1P6h9f3PPJnQM4NbdZWYb7Mn",
"payment_method_configuration_details": null,
"payment_method_options": {
"card": {
@@ -592,10 +605,10 @@ http_interactions:
"transfer_data": null,
"transfer_group": null
}
- recorded_at: Wed, 28 Feb 2024 04:23:07 GMT
+ recorded_at: Wed, 17 Apr 2024 22:40:40 GMT
- request:
method: post
- uri: https://api.stripe.com/v1/payment_intents/pi_3Ooefe4DjmilFkgB0MRGxtD7/cancel
+ uri: https://api.stripe.com/v1/payment_intents/pi_3P6h9f3PPJnQM4Nb1soYNeEx/cancel
body:
encoding: US-ASCII
string: ''
@@ -603,17 +616,17 @@ http_interactions:
Content-Type:
- application/x-www-form-urlencoded
Authorization:
- - Basic c2tfdGVzdF94RmdKUU9sWHBNQUZzb3p0endGQlRGaFAwMEhHN0J1Q0ptOg==
+ - ""
User-Agent:
- Stripe/v1 ActiveMerchantBindings/1.133.0
Stripe-Version:
- '2020-08-27'
X-Stripe-Client-User-Agent:
- - '{"bindings_version":"1.133.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","publisher":"active_merchant"}'
+ - ""
X-Stripe-Client-User-Metadata:
- '{"ip":null}'
Stripe-Account:
- - acct_1Ooefb4DjmilFkgB
+ - acct_1P6h9c3PPJnQM4Nb
Connection:
- close
Accept-Encoding:
@@ -628,7 +641,7 @@ http_interactions:
Server:
- nginx
Date:
- - Wed, 28 Feb 2024 04:23:07 GMT
+ - Wed, 17 Apr 2024 22:40:40 GMT
Content-Type:
- application/json
Content-Length:
@@ -653,14 +666,20 @@ http_interactions:
block-all-mixed-content; default-src 'none'; base-uri 'none'; form-action
'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample';
style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
Idempotency-Key:
- - a75b58f8-d2f4-43b6-aff2-21023fcc77f2
+ - 6cb49bb9-8d9b-49c3-b9ef-50d86e81ed5a
Original-Request:
- - req_WU2ReDoGdQvhVb
+ - req_RSjiYLCTAQHsEs
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
Request-Id:
- - req_WU2ReDoGdQvhVb
+ - req_RSjiYLCTAQHsEs
Stripe-Account:
- - acct_1Ooefb4DjmilFkgB
+ - acct_1P6h9c3PPJnQM4Nb
Stripe-Should-Retry:
- 'false'
Stripe-Version:
@@ -675,7 +694,7 @@ http_interactions:
encoding: UTF-8
string: |-
{
- "id": "pi_3Ooefe4DjmilFkgB0MRGxtD7",
+ "id": "pi_3P6h9f3PPJnQM4Nb1soYNeEx",
"object": "payment_intent",
"amount": 1000,
"amount_capturable": 0,
@@ -686,7 +705,7 @@ http_interactions:
"application": "",
"application_fee_amount": null,
"automatic_payment_methods": null,
- "canceled_at": 1709094187,
+ "canceled_at": 1713393640,
"cancellation_reason": null,
"capture_method": "manual",
"charges": {
@@ -694,11 +713,11 @@ http_interactions:
"data": [],
"has_more": false,
"total_count": 0,
- "url": "/v1/charges?payment_intent=pi_3Ooefe4DjmilFkgB0MRGxtD7"
+ "url": "/v1/charges?payment_intent=pi_3P6h9f3PPJnQM4Nb1soYNeEx"
},
- "client_secret": "pi_3Ooefe4DjmilFkgB0MRGxtD7_secret_m61Cyi5MpCkThDwF1HOTfVtTh",
+ "client_secret": "",
"confirmation_method": "automatic",
- "created": 1709094186,
+ "created": 1713393639,
"currency": "aud",
"customer": null,
"description": null,
@@ -709,7 +728,7 @@ http_interactions:
"metadata": {},
"next_action": null,
"on_behalf_of": null,
- "payment_method": "pm_1Ooefe4DjmilFkgBPSiob94t",
+ "payment_method": "pm_1P6h9f3PPJnQM4NbdZWYb7Mn",
"payment_method_configuration_details": null,
"payment_method_options": {
"card": {
@@ -734,5 +753,87 @@ http_interactions:
"transfer_data": null,
"transfer_group": null
}
- recorded_at: Wed, 28 Feb 2024 04:23:07 GMT
+ recorded_at: Wed, 17 Apr 2024 22:40:41 GMT
+- request:
+ method: delete
+ uri: https://api.stripe.com/v1/accounts/acct_1P6h9c3PPJnQM4Nb
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ User-Agent:
+ - Stripe/v1 RubyBindings/11.1.0
+ Authorization:
+ - ""
+ Content-Type:
+ - application/x-www-form-urlencoded
+ X-Stripe-Client-Telemetry:
+ - '{"last_request_metrics":{"request_id":"req_y5YXRAeQMZrIzE","request_duration_ms":359}}'
+ Stripe-Version:
+ - '2024-04-10'
+ X-Stripe-Client-User-Agent:
+ - ""
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Server:
+ - nginx
+ Date:
+ - Wed, 17 Apr 2024 22:40:42 GMT
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '77'
+ Connection:
+ - keep-alive
+ Access-Control-Allow-Credentials:
+ - 'true'
+ Access-Control-Allow-Methods:
+ - GET,HEAD,PUT,PATCH,POST,DELETE
+ Access-Control-Allow-Origin:
+ - "*"
+ Access-Control-Expose-Headers:
+ - Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required,
+ X-Stripe-Privileged-Session-Required
+ Access-Control-Max-Age:
+ - '300'
+ Cache-Control:
+ - no-cache, no-store
+ Content-Security-Policy:
+ - report-uri https://q.stripe.com/csp-report?p=v1%2Faccounts%2F%3Aaccount; block-all-mixed-content;
+ default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none';
+ img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
+ Request-Id:
+ - req_B60iS3d4eUM92l
+ Stripe-Account:
+ - acct_1P6h9c3PPJnQM4Nb
+ Stripe-Version:
+ - '2024-04-10'
+ Vary:
+ - Origin
+ X-Stripe-Routing-Context-Priority-Tier:
+ - api-testmode
+ Strict-Transport-Security:
+ - max-age=63072000; includeSubDomains; preload
+ body:
+ encoding: UTF-8
+ string: |-
+ {
+ "id": "acct_1P6h9c3PPJnQM4Nb",
+ "object": "account",
+ "deleted": true
+ }
+ recorded_at: Wed, 17 Apr 2024 22:40:42 GMT
recorded_with: VCR 6.2.0
diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/StripeAccount/deauthorize_and_destroy/when_the_Stripe_API_disconnect_fails/destroys_the_record_and_notifies_Bugsnag.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/StripeAccount/deauthorize_and_destroy/when_the_Stripe_API_disconnect_fails/destroys_the_record_and_notifies_Bugsnag.yml
new file mode 100644
index 0000000000..a44adc3684
--- /dev/null
+++ b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/StripeAccount/deauthorize_and_destroy/when_the_Stripe_API_disconnect_fails/destroys_the_record_and_notifies_Bugsnag.yml
@@ -0,0 +1,92 @@
+---
+http_interactions:
+- request:
+ method: post
+ uri: https://connect.stripe.com/oauth/deauthorize
+ body:
+ encoding: UTF-8
+ string: stripe_user_id=&client_id=bogus_client_id
+ headers:
+ User-Agent:
+ - Stripe/v1 RubyBindings/11.1.0
+ Authorization:
+ - ""
+ Content-Type:
+ - application/x-www-form-urlencoded
+ X-Stripe-Client-Telemetry:
+ - '{"last_request_metrics":{"request_id":"req_zc8hvLjwOG6Dsw","request_duration_ms":1019}}'
+ Stripe-Version:
+ - '2024-04-10'
+ X-Stripe-Client-User-Agent:
+ - ""
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ response:
+ status:
+ code: 401
+ message: Unauthorized
+ headers:
+ Server:
+ - nginx
+ Date:
+ - Wed, 17 Apr 2024 22:41:00 GMT
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '110'
+ Connection:
+ - keep-alive
+ Cache-Control:
+ - max-age=0, no-cache, no-store, must-revalidate
+ Content-Security-Policy:
+ - report-uri /csp-report?p=%2Foauth%2Fdeauthorize;block-all-mixed-content;default-src
+ 'none' 'report-sample';base-uri 'none';form-action 'none';style-src 'unsafe-inline';frame-ancestors
+ 'self';connect-src 'self';img-src 'self' https://b.stripecdn.com
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin-allow-popups; report-to="coop"
+ Expires:
+ - '0'
+ Pragma:
+ - no-cache
+ Referrer-Policy:
+ - strict-origin-when-cross-origin
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
+ Request-Id:
+ - req_NSGSltGyJ7L7cj
+ Set-Cookie:
+ - __stripe_orig_props=%7B%22referrer%22%3A%22%22%2C%22landing%22%3A%22https%3A%2F%2Fconnect.stripe.com%2Foauth%2Fdeauthorize%22%7D;
+ domain=stripe.com; path=/; expires=Thu, 17 Apr 2025 22:41:00 GMT; secure;
+ HttpOnly; SameSite=Lax
+ - cid=5145cfc5-24a6-40e3-abb8-90bfe57bad32; domain=stripe.com; path=/; expires=Tue,
+ 16 Jul 2024 22:41:00 GMT; secure; SameSite=Lax
+ - machine_identifier=BCqb3iQpc%2FaqdFTVTawu6mbVZbkeldjYEgeOKCps5Hj7cLsLdzK8GGhBvJ2a6imtb0U%3D;
+ domain=stripe.com; path=/; expires=Thu, 17 Apr 2025 22:41:00 GMT; secure;
+ HttpOnly; SameSite=Lax
+ - private_machine_identifier=7YF7smRjWUw8eD17qPxfSf2k5rE7OXma5BrYsJQF0b%2FAcfLtuciB8wVuVUcFdQHSFIU%3D;
+ domain=stripe.com; path=/; expires=Thu, 17 Apr 2025 22:41:00 GMT; secure;
+ HttpOnly; SameSite=None
+ - stripe.csrf=QsoKbV0fwPYXcMT4Y87keEJgYX0F6EmDzYbKqjlGBNiO7fw9AhXQ_uB5f2NNsl-zScHN2J7YxmbbatQpJKZ1cjw-AYTZVJyNhnBKgQZbBXeSlsF-lgGOfzsFYUgeV-mUUrkFUEfweg%3D%3D;
+ domain=stripe.com; path=/; secure; HttpOnly; SameSite=None
+ Stripe-Kill-Route:
+ - "[]"
+ Stripe-Version:
+ - '2024-04-10'
+ Www-Authenticate:
+ - Bearer realm="Stripe"
+ X-Stripe-Routing-Context-Priority-Tier:
+ - api-testmode
+ Strict-Transport-Security:
+ - max-age=63072000; includeSubDomains; preload
+ body:
+ encoding: UTF-8
+ string: '{"error":"invalid_client","error_description":"No such application:
+ ''bogus_client_id''","stripe_user_id":null}
+
+ '
+ recorded_at: Wed, 17 Apr 2024 22:41:00 GMT
+recorded_with: VCR 6.2.0
diff --git a/spec/fixtures/vcr_cassettes/Stripe-v10.10.0/StripeAccount/deauthorize_and_destroy/when_the_Stripe_API_disconnect_succeeds/destroys_the_record.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/StripeAccount/deauthorize_and_destroy/when_the_Stripe_API_disconnect_succeeds/destroys_the_record.yml
similarity index 72%
rename from spec/fixtures/vcr_cassettes/Stripe-v10.10.0/StripeAccount/deauthorize_and_destroy/when_the_Stripe_API_disconnect_succeeds/destroys_the_record.yml
rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/StripeAccount/deauthorize_and_destroy/when_the_Stripe_API_disconnect_succeeds/destroys_the_record.yml
index 6ef0bdc77c..c8aa1ce714 100644
--- a/spec/fixtures/vcr_cassettes/Stripe-v10.10.0/StripeAccount/deauthorize_and_destroy/when_the_Stripe_API_disconnect_succeeds/destroys_the_record.yml
+++ b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/StripeAccount/deauthorize_and_destroy/when_the_Stripe_API_disconnect_succeeds/destroys_the_record.yml
@@ -8,20 +8,17 @@ http_interactions:
string: type=standard&country=AU&email=jumping.jack%40example.com
headers:
User-Agent:
- - Stripe/v1 RubyBindings/10.10.0
+ - Stripe/v1 RubyBindings/11.1.0
Authorization:
- - Bearer
+ - ""
Content-Type:
- application/x-www-form-urlencoded
X-Stripe-Client-Telemetry:
- - '{"last_request_metrics":{"request_id":"req_4LwwjkiCeJTWny","request_duration_ms":281}}'
+ - '{"last_request_metrics":{"request_id":"req_zc8hvLjwOG6Dsw","request_duration_ms":1019}}'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
X-Stripe-Client-User-Agent:
- - '{"bindings_version":"10.10.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
- version 5.15.0-92-generic (buildd@lcy02-amd64-002) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2)
- 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #102~20.04.1-Ubuntu SMP Mon
- Jan 15 13:09:14 UTC 2024","hostname":"gaetan-Dell-G15"}'
+ - ""
Accept-Encoding:
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept:
@@ -34,7 +31,7 @@ http_interactions:
Server:
- nginx
Date:
- - Mon, 26 Feb 2024 23:18:28 GMT
+ - Wed, 17 Apr 2024 22:41:02 GMT
Content-Type:
- application/json
Content-Length:
@@ -58,16 +55,22 @@ http_interactions:
- report-uri https://q.stripe.com/csp-report?p=v1%2Faccounts; block-all-mixed-content;
default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none';
img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
Idempotency-Key:
- - 2ec3d890-51fb-4bef-8edc-8a0280fc4d6f
+ - e3a2c76a-3783-4d5b-8bd1-0b059c7cc17b
Original-Request:
- - req_MhARQZfcxlupB0
+ - req_y4sp0UmrRilWdn
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
Request-Id:
- - req_MhARQZfcxlupB0
+ - req_y4sp0UmrRilWdn
Stripe-Should-Retry:
- 'false'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
Vary:
- Origin
X-Stripe-Routing-Context-Priority-Tier:
@@ -78,7 +81,7 @@ http_interactions:
encoding: UTF-8
string: |-
{
- "id": "acct_1OoDRHQRupqKVzqU",
+ "id": "acct_1P6hA14CyWKcBaxF",
"object": "account",
"business_profile": {
"annual_revenue": null,
@@ -100,7 +103,7 @@ http_interactions:
"type": "application"
},
"country": "AU",
- "created": 1708989507,
+ "created": 1713393662,
"default_currency": "aud",
"details_submitted": false,
"email": "jumping.jack@example.com",
@@ -109,7 +112,7 @@ http_interactions:
"data": [],
"has_more": false,
"total_count": 0,
- "url": "/v1/accounts/acct_1OoDRHQRupqKVzqU/external_accounts"
+ "url": "/v1/accounts/acct_1P6hA14CyWKcBaxF/external_accounts"
},
"future_requirements": {
"alternatives": [],
@@ -206,29 +209,26 @@ http_interactions:
},
"type": "standard"
}
- recorded_at: Mon, 26 Feb 2024 23:18:28 GMT
+ recorded_at: Wed, 17 Apr 2024 22:41:03 GMT
- request:
method: post
uri: https://connect.stripe.com/oauth/deauthorize
body:
encoding: UTF-8
- string: stripe_user_id=acct_1OoDRHQRupqKVzqU&client_id=
+ string: stripe_user_id=acct_1P6hA14CyWKcBaxF&client_id=
headers:
User-Agent:
- - Stripe/v1 RubyBindings/10.10.0
+ - Stripe/v1 RubyBindings/11.1.0
Authorization:
- - Bearer
+ - ""
Content-Type:
- application/x-www-form-urlencoded
X-Stripe-Client-Telemetry:
- - '{"last_request_metrics":{"request_id":"req_MhARQZfcxlupB0","request_duration_ms":1638}}'
+ - '{"last_request_metrics":{"request_id":"req_y4sp0UmrRilWdn","request_duration_ms":2030}}'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
X-Stripe-Client-User-Agent:
- - '{"bindings_version":"10.10.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
- version 5.15.0-92-generic (buildd@lcy02-amd64-002) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2)
- 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #102~20.04.1-Ubuntu SMP Mon
- Jan 15 13:09:14 UTC 2024","hostname":"gaetan-Dell-G15"}'
+ - ""
Accept-Encoding:
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept:
@@ -241,11 +241,11 @@ http_interactions:
Server:
- nginx
Date:
- - Mon, 26 Feb 2024 23:18:29 GMT
+ - Wed, 17 Apr 2024 22:41:03 GMT
Content-Type:
- application/json
Content-Length:
- - '47'
+ - '81'
Connection:
- keep-alive
Cache-Control:
@@ -255,44 +255,45 @@ http_interactions:
'none' 'report-sample';base-uri 'none';form-action 'none';style-src 'unsafe-inline';frame-ancestors
'self';connect-src 'self';img-src 'self' https://b.stripecdn.com
Cross-Origin-Opener-Policy-Report-Only:
- - same-origin; report-to=https://q.stripe.com/coop-report
+ - same-origin-allow-popups; report-to="coop"
Expires:
- '0'
Pragma:
- no-cache
Referrer-Policy:
- strict-origin-when-cross-origin
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
Request-Id:
- - req_KzegHddQIdmvfb
+ - req_tuOGRA5fMeWcGd
Set-Cookie:
- - __Host-session=; path=/; max-age=0; expires=Thu, 01 Jan 1970 00:00:00 GMT;
- secure; SameSite=None
- __stripe_orig_props=%7B%22referrer%22%3A%22%22%2C%22landing%22%3A%22https%3A%2F%2Fconnect.stripe.com%2Foauth%2Fdeauthorize%22%7D;
- domain=stripe.com; path=/; expires=Tue, 25 Feb 2025 23:18:29 GMT; secure;
+ domain=stripe.com; path=/; expires=Thu, 17 Apr 2025 22:41:03 GMT; secure;
HttpOnly; SameSite=Lax
- - cid=55982463-3b25-4408-93b2-27bec85dfcfc; domain=stripe.com; path=/; expires=Sun,
- 26 May 2024 23:18:29 GMT; secure; SameSite=Lax
- - machine_identifier=w54MzMN5c6Eiz4eEDC8wa7rkzspJn4yvGQZMotkt76iaPFhsSLKXI0PWu%2F2P%2BmRTDqU%3D;
- domain=stripe.com; path=/; expires=Tue, 25 Feb 2025 23:18:29 GMT; secure;
+ - cid=bf73f2f1-2730-4bfe-b876-eb2a52e4962b; domain=stripe.com; path=/; expires=Tue,
+ 16 Jul 2024 22:41:03 GMT; secure; SameSite=Lax
+ - machine_identifier=PlXTX3M37xnhrzfE%2FTYiF1zopgjPNwB%2BbIhFkFQGbea1hcnRQd%2Bnc69or4YgFhmh4kk%3D;
+ domain=stripe.com; path=/; expires=Thu, 17 Apr 2025 22:41:03 GMT; secure;
HttpOnly; SameSite=Lax
- - private_machine_identifier=8CTJtExCiBX06tvQfQHq3SpwiRP08AVl8vjeuqf8SugPBHIcHu7KZ0Bdl8SyqyqdoO4%3D;
- domain=stripe.com; path=/; expires=Tue, 25 Feb 2025 23:18:29 GMT; secure;
+ - private_machine_identifier=dnLBg3Z4kBckQs94fSyCCFWmWRjRbJlO5detDWo3Kpbysho0cR%2B%2BEm7sk4bzCTmuTqQ%3D;
+ domain=stripe.com; path=/; expires=Thu, 17 Apr 2025 22:41:03 GMT; secure;
HttpOnly; SameSite=None
- - site-auth=; domain=stripe.com; path=/; max-age=0; expires=Thu, 01 Jan 1970
- 00:00:00 GMT; secure
- - stripe.csrf=WWGSDArstUczHDfLq2EbInmbStxGgwxwqsr1SFMfWhQU8oWACZCaedj_xk64p0Qy5ZBtd62ivStoMuUHXRspETw-AYTZVJwuGdncr-p6Z3s2Kp7CqE4cqE8Jy4zw7q7dSD5XzTnalw%3D%3D;
+ - stripe.csrf=ZVM3UQ2vutPuntBqAZtAvnXXWxcVydPwAZ9KWGkoqXqSIzPNAhcjwh-JqCiVIs9GUx3FOyEHaW4WmhAix-M9Ujw-AYTZVJw3wFcX1VecoxDMwYHHg7CC2d5XmPzDtYpnBy0C0_jQkw%3D%3D;
domain=stripe.com; path=/; secure; HttpOnly; SameSite=None
Stripe-Kill-Route:
- "[]"
+ Stripe-Version:
+ - '2024-04-10'
X-Stripe-Routing-Context-Priority-Tier:
- api-testmode
Strict-Transport-Security:
- max-age=63072000; includeSubDomains; preload
body:
encoding: UTF-8
- string: |-
- {
- "stripe_user_id": "acct_1OoDRHQRupqKVzqU"
- }
- recorded_at: Mon, 26 Feb 2024 23:18:29 GMT
+ string: '{"error":null,"error_description":null,"stripe_user_id":"acct_1P6hA14CyWKcBaxF"}
+
+ '
+ recorded_at: Wed, 17 Apr 2024 22:41:03 GMT
recorded_with: VCR 6.2.0
diff --git a/spec/fixtures/vcr_cassettes/Stripe-v10.10.0/StripePaymentStatus/_stripe_captured_/when_the_Stripe_payment_has_been_captured/returns_true.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/StripePaymentStatus/_stripe_captured_/when_the_Stripe_payment_has_been_captured/returns_true.yml
similarity index 74%
rename from spec/fixtures/vcr_cassettes/Stripe-v10.10.0/StripePaymentStatus/_stripe_captured_/when_the_Stripe_payment_has_been_captured/returns_true.yml
rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/StripePaymentStatus/_stripe_captured_/when_the_Stripe_payment_has_been_captured/returns_true.yml
index d340cf0078..250abd8df5 100644
--- a/spec/fixtures/vcr_cassettes/Stripe-v10.10.0/StripePaymentStatus/_stripe_captured_/when_the_Stripe_payment_has_been_captured/returns_true.yml
+++ b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/StripePaymentStatus/_stripe_captured_/when_the_Stripe_payment_has_been_captured/returns_true.yml
@@ -8,20 +8,17 @@ http_interactions:
string: type=card&card[number]=4242424242424242&card[exp_month]=12&card[exp_year]=2025&card[cvc]=314
headers:
User-Agent:
- - Stripe/v1 RubyBindings/10.10.0
+ - Stripe/v1 RubyBindings/11.1.0
Authorization:
- - Bearer
+ - ""
Content-Type:
- application/x-www-form-urlencoded
X-Stripe-Client-Telemetry:
- - '{"last_request_metrics":{"request_id":"req_S5vWMffhsD2jZ1","request_duration_ms":1330}}'
+ - '{"last_request_metrics":{"request_id":"req_N9r6YNyPTBTY9H","request_duration_ms":1297}}'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
X-Stripe-Client-User-Agent:
- - '{"bindings_version":"10.10.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
- version 5.15.0-92-generic (buildd@lcy02-amd64-002) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2)
- 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #102~20.04.1-Ubuntu SMP Mon
- Jan 15 13:09:14 UTC 2024","hostname":"gaetan-Dell-G15"}'
+ - ""
Accept-Encoding:
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept:
@@ -34,11 +31,11 @@ http_interactions:
Server:
- nginx
Date:
- - Mon, 26 Feb 2024 23:18:36 GMT
+ - Wed, 17 Apr 2024 22:41:11 GMT
Content-Type:
- application/json
Content-Length:
- - '960'
+ - '996'
Connection:
- keep-alive
Access-Control-Allow-Credentials:
@@ -58,16 +55,22 @@ http_interactions:
- report-uri https://q.stripe.com/csp-report?p=v1%2Fpayment_methods; block-all-mixed-content;
default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none';
img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
Idempotency-Key:
- - 7544d038-fad8-43ee-86f9-caddc486fecd
+ - 26396e04-a63b-42de-8e4d-14a2c1bffb08
Original-Request:
- - req_oFzey3OGumMfZV
+ - req_hapdhSFa9oklw7
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
Request-Id:
- - req_oFzey3OGumMfZV
+ - req_hapdhSFa9oklw7
Stripe-Should-Retry:
- 'false'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
Vary:
- Origin
X-Stripe-Routing-Context-Priority-Tier:
@@ -78,8 +81,9 @@ http_interactions:
encoding: UTF-8
string: |-
{
- "id": "pm_1OoDRQKuuB1fWySn4AM42kc4",
+ "id": "pm_1P6hABKuuB1fWySnAN7nHeKK",
"object": "payment_method",
+ "allow_redisplay": "unspecified",
"billing_details": {
"address": {
"city": null,
@@ -119,35 +123,32 @@ http_interactions:
},
"wallet": null
},
- "created": 1708989516,
+ "created": 1713393671,
"customer": null,
"livemode": false,
"metadata": {},
"type": "card"
}
- recorded_at: Mon, 26 Feb 2024 23:18:36 GMT
+ recorded_at: Wed, 17 Apr 2024 22:41:11 GMT
- request:
method: post
uri: https://api.stripe.com/v1/payment_intents
body:
encoding: UTF-8
- string: amount=100¤cy=aud&payment_method=pm_1OoDRQKuuB1fWySn4AM42kc4&payment_method_types[0]=card&capture_method=manual
+ string: amount=100¤cy=aud&payment_method=pm_1P6hABKuuB1fWySnAN7nHeKK&payment_method_types[0]=card&capture_method=manual
headers:
User-Agent:
- - Stripe/v1 RubyBindings/10.10.0
+ - Stripe/v1 RubyBindings/11.1.0
Authorization:
- - Bearer
+ - ""
Content-Type:
- application/x-www-form-urlencoded
X-Stripe-Client-Telemetry:
- - '{"last_request_metrics":{"request_id":"req_oFzey3OGumMfZV","request_duration_ms":426}}'
+ - '{"last_request_metrics":{"request_id":"req_hapdhSFa9oklw7","request_duration_ms":551}}'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
X-Stripe-Client-User-Agent:
- - '{"bindings_version":"10.10.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
- version 5.15.0-92-generic (buildd@lcy02-amd64-002) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2)
- 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #102~20.04.1-Ubuntu SMP Mon
- Jan 15 13:09:14 UTC 2024","hostname":"gaetan-Dell-G15"}'
+ - ""
Accept-Encoding:
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept:
@@ -160,7 +161,7 @@ http_interactions:
Server:
- nginx
Date:
- - Mon, 26 Feb 2024 23:18:36 GMT
+ - Wed, 17 Apr 2024 22:41:12 GMT
Content-Type:
- application/json
Content-Length:
@@ -184,16 +185,22 @@ http_interactions:
- report-uri https://q.stripe.com/csp-report?p=v1%2Fpayment_intents; block-all-mixed-content;
default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none';
img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
Idempotency-Key:
- - b1a94c75-0f61-4435-9b46-18d579948dd9
+ - e475cdc8-4c3f-420c-9f5e-498af7f45c66
Original-Request:
- - req_CcG8mNLWRGDXDr
+ - req_MmWJ8o9z3LAZrf
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
Request-Id:
- - req_CcG8mNLWRGDXDr
+ - req_MmWJ8o9z3LAZrf
Stripe-Should-Retry:
- 'false'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
Vary:
- Origin
X-Stripe-Routing-Context-Priority-Tier:
@@ -204,7 +211,7 @@ http_interactions:
encoding: UTF-8
string: |-
{
- "id": "pi_3OoDRQKuuB1fWySn01FSE5yV",
+ "id": "pi_3P6hABKuuB1fWySn1DUCSQ4r",
"object": "payment_intent",
"amount": 100,
"amount_capturable": 0,
@@ -218,9 +225,9 @@ http_interactions:
"canceled_at": null,
"cancellation_reason": null,
"capture_method": "manual",
- "client_secret": "pi_3OoDRQKuuB1fWySn01FSE5yV_secret_WEQfT3kIi9xm0Z61CLSOOkfnw",
+ "client_secret": "",
"confirmation_method": "automatic",
- "created": 1708989516,
+ "created": 1713393671,
"currency": "aud",
"customer": null,
"description": null,
@@ -231,7 +238,7 @@ http_interactions:
"metadata": {},
"next_action": null,
"on_behalf_of": null,
- "payment_method": "pm_1OoDRQKuuB1fWySn4AM42kc4",
+ "payment_method": "pm_1P6hABKuuB1fWySnAN7nHeKK",
"payment_method_configuration_details": null,
"payment_method_options": {
"card": {
@@ -256,29 +263,26 @@ http_interactions:
"transfer_data": null,
"transfer_group": null
}
- recorded_at: Mon, 26 Feb 2024 23:18:36 GMT
+ recorded_at: Wed, 17 Apr 2024 22:41:12 GMT
- request:
method: post
- uri: https://api.stripe.com/v1/payment_intents/pi_3OoDRQKuuB1fWySn01FSE5yV/confirm
+ uri: https://api.stripe.com/v1/payment_intents/pi_3P6hABKuuB1fWySn1DUCSQ4r/confirm
body:
encoding: US-ASCII
string: ''
headers:
User-Agent:
- - Stripe/v1 RubyBindings/10.10.0
+ - Stripe/v1 RubyBindings/11.1.0
Authorization:
- - Bearer
+ - ""
Content-Type:
- application/x-www-form-urlencoded
X-Stripe-Client-Telemetry:
- - '{"last_request_metrics":{"request_id":"req_CcG8mNLWRGDXDr","request_duration_ms":384}}'
+ - '{"last_request_metrics":{"request_id":"req_MmWJ8o9z3LAZrf","request_duration_ms":509}}'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
X-Stripe-Client-User-Agent:
- - '{"bindings_version":"10.10.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
- version 5.15.0-92-generic (buildd@lcy02-amd64-002) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2)
- 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #102~20.04.1-Ubuntu SMP Mon
- Jan 15 13:09:14 UTC 2024","hostname":"gaetan-Dell-G15"}'
+ - ""
Accept-Encoding:
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept:
@@ -291,7 +295,7 @@ http_interactions:
Server:
- nginx
Date:
- - Mon, 26 Feb 2024 23:18:37 GMT
+ - Wed, 17 Apr 2024 22:41:13 GMT
Content-Type:
- application/json
Content-Length:
@@ -316,16 +320,22 @@ http_interactions:
block-all-mixed-content; default-src 'none'; base-uri 'none'; form-action
'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample';
style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
Idempotency-Key:
- - 57f9bfb7-bed5-4590-a4e5-ff02c3b54457
+ - 477a4847-5315-440a-b513-9699b8f8e6b7
Original-Request:
- - req_2yo7AM38rcYqU3
+ - req_aW9KyGjMWnuRW6
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
Request-Id:
- - req_2yo7AM38rcYqU3
+ - req_aW9KyGjMWnuRW6
Stripe-Should-Retry:
- 'false'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
Vary:
- Origin
X-Stripe-Routing-Context-Priority-Tier:
@@ -336,7 +346,7 @@ http_interactions:
encoding: UTF-8
string: |-
{
- "id": "pi_3OoDRQKuuB1fWySn01FSE5yV",
+ "id": "pi_3P6hABKuuB1fWySn1DUCSQ4r",
"object": "payment_intent",
"amount": 100,
"amount_capturable": 100,
@@ -350,20 +360,20 @@ http_interactions:
"canceled_at": null,
"cancellation_reason": null,
"capture_method": "manual",
- "client_secret": "pi_3OoDRQKuuB1fWySn01FSE5yV_secret_WEQfT3kIi9xm0Z61CLSOOkfnw",
+ "client_secret": "",
"confirmation_method": "automatic",
- "created": 1708989516,
+ "created": 1713393671,
"currency": "aud",
"customer": null,
"description": null,
"invoice": null,
"last_payment_error": null,
- "latest_charge": "ch_3OoDRQKuuB1fWySn0dPeuvdJ",
+ "latest_charge": "ch_3P6hABKuuB1fWySn1odNJCg9",
"livemode": false,
"metadata": {},
"next_action": null,
"on_behalf_of": null,
- "payment_method": "pm_1OoDRQKuuB1fWySn4AM42kc4",
+ "payment_method": "pm_1P6hABKuuB1fWySnAN7nHeKK",
"payment_method_configuration_details": null,
"payment_method_options": {
"card": {
@@ -388,29 +398,26 @@ http_interactions:
"transfer_data": null,
"transfer_group": null
}
- recorded_at: Mon, 26 Feb 2024 23:18:38 GMT
+ recorded_at: Wed, 17 Apr 2024 22:41:13 GMT
- request:
method: post
- uri: https://api.stripe.com/v1/payment_intents/pi_3OoDRQKuuB1fWySn01FSE5yV/capture
+ uri: https://api.stripe.com/v1/payment_intents/pi_3P6hABKuuB1fWySn1DUCSQ4r/capture
body:
encoding: US-ASCII
string: ''
headers:
User-Agent:
- - Stripe/v1 RubyBindings/10.10.0
+ - Stripe/v1 RubyBindings/11.1.0
Authorization:
- - Bearer
+ - ""
Content-Type:
- application/x-www-form-urlencoded
X-Stripe-Client-Telemetry:
- - '{"last_request_metrics":{"request_id":"req_2yo7AM38rcYqU3","request_duration_ms":1028}}'
+ - '{"last_request_metrics":{"request_id":"req_aW9KyGjMWnuRW6","request_duration_ms":1124}}'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
X-Stripe-Client-User-Agent:
- - '{"bindings_version":"10.10.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
- version 5.15.0-92-generic (buildd@lcy02-amd64-002) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2)
- 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #102~20.04.1-Ubuntu SMP Mon
- Jan 15 13:09:14 UTC 2024","hostname":"gaetan-Dell-G15"}'
+ - ""
Accept-Encoding:
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept:
@@ -423,7 +430,7 @@ http_interactions:
Server:
- nginx
Date:
- - Mon, 26 Feb 2024 23:18:39 GMT
+ - Wed, 17 Apr 2024 22:41:14 GMT
Content-Type:
- application/json
Content-Length:
@@ -448,16 +455,22 @@ http_interactions:
block-all-mixed-content; default-src 'none'; base-uri 'none'; form-action
'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample';
style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
Idempotency-Key:
- - aef103c3-ca69-41fc-9250-8594f754a320
+ - 4da9cbf3-5f37-46a2-818e-4415bcade748
Original-Request:
- - req_yGL8lkFrtz4YGt
+ - req_uqFRchNX2gvVd6
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
Request-Id:
- - req_yGL8lkFrtz4YGt
+ - req_uqFRchNX2gvVd6
Stripe-Should-Retry:
- 'false'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
Vary:
- Origin
X-Stripe-Routing-Context-Priority-Tier:
@@ -468,7 +481,7 @@ http_interactions:
encoding: UTF-8
string: |-
{
- "id": "pi_3OoDRQKuuB1fWySn01FSE5yV",
+ "id": "pi_3P6hABKuuB1fWySn1DUCSQ4r",
"object": "payment_intent",
"amount": 100,
"amount_capturable": 0,
@@ -482,20 +495,20 @@ http_interactions:
"canceled_at": null,
"cancellation_reason": null,
"capture_method": "manual",
- "client_secret": "pi_3OoDRQKuuB1fWySn01FSE5yV_secret_WEQfT3kIi9xm0Z61CLSOOkfnw",
+ "client_secret": "",
"confirmation_method": "automatic",
- "created": 1708989516,
+ "created": 1713393671,
"currency": "aud",
"customer": null,
"description": null,
"invoice": null,
"last_payment_error": null,
- "latest_charge": "ch_3OoDRQKuuB1fWySn0dPeuvdJ",
+ "latest_charge": "ch_3P6hABKuuB1fWySn1odNJCg9",
"livemode": false,
"metadata": {},
"next_action": null,
"on_behalf_of": null,
- "payment_method": "pm_1OoDRQKuuB1fWySn4AM42kc4",
+ "payment_method": "pm_1P6hABKuuB1fWySnAN7nHeKK",
"payment_method_configuration_details": null,
"payment_method_options": {
"card": {
@@ -520,29 +533,26 @@ http_interactions:
"transfer_data": null,
"transfer_group": null
}
- recorded_at: Mon, 26 Feb 2024 23:18:39 GMT
+ recorded_at: Wed, 17 Apr 2024 22:41:14 GMT
- request:
method: get
- uri: https://api.stripe.com/v1/payment_intents/pi_3OoDRQKuuB1fWySn01FSE5yV
+ uri: https://api.stripe.com/v1/payment_intents/pi_3P6hABKuuB1fWySn1DUCSQ4r
body:
encoding: US-ASCII
string: ''
headers:
User-Agent:
- - Stripe/v1 RubyBindings/10.10.0
+ - Stripe/v1 RubyBindings/11.1.0
Authorization:
- - Bearer
+ - ""
Content-Type:
- application/x-www-form-urlencoded
X-Stripe-Client-Telemetry:
- - '{"last_request_metrics":{"request_id":"req_yGL8lkFrtz4YGt","request_duration_ms":1520}}'
+ - '{"last_request_metrics":{"request_id":"req_uqFRchNX2gvVd6","request_duration_ms":1227}}'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
X-Stripe-Client-User-Agent:
- - '{"bindings_version":"10.10.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
- version 5.15.0-92-generic (buildd@lcy02-amd64-002) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2)
- 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #102~20.04.1-Ubuntu SMP Mon
- Jan 15 13:09:14 UTC 2024","hostname":"gaetan-Dell-G15"}'
+ - ""
Accept-Encoding:
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept:
@@ -555,7 +565,7 @@ http_interactions:
Server:
- nginx
Date:
- - Mon, 26 Feb 2024 23:18:39 GMT
+ - Wed, 17 Apr 2024 22:41:15 GMT
Content-Type:
- application/json
Content-Length:
@@ -580,10 +590,16 @@ http_interactions:
block-all-mixed-content; default-src 'none'; base-uri 'none'; form-action
'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample';
style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
Request-Id:
- - req_BvR0PpVZI1wbmF
+ - req_ujKgcbLv0jphd1
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
Vary:
- Origin
X-Stripe-Routing-Context-Priority-Tier:
@@ -594,7 +610,7 @@ http_interactions:
encoding: UTF-8
string: |-
{
- "id": "pi_3OoDRQKuuB1fWySn01FSE5yV",
+ "id": "pi_3P6hABKuuB1fWySn1DUCSQ4r",
"object": "payment_intent",
"amount": 100,
"amount_capturable": 0,
@@ -608,20 +624,20 @@ http_interactions:
"canceled_at": null,
"cancellation_reason": null,
"capture_method": "manual",
- "client_secret": "pi_3OoDRQKuuB1fWySn01FSE5yV_secret_WEQfT3kIi9xm0Z61CLSOOkfnw",
+ "client_secret": "",
"confirmation_method": "automatic",
- "created": 1708989516,
+ "created": 1713393671,
"currency": "aud",
"customer": null,
"description": null,
"invoice": null,
"last_payment_error": null,
- "latest_charge": "ch_3OoDRQKuuB1fWySn0dPeuvdJ",
+ "latest_charge": "ch_3P6hABKuuB1fWySn1odNJCg9",
"livemode": false,
"metadata": {},
"next_action": null,
"on_behalf_of": null,
- "payment_method": "pm_1OoDRQKuuB1fWySn4AM42kc4",
+ "payment_method": "pm_1P6hABKuuB1fWySnAN7nHeKK",
"payment_method_configuration_details": null,
"payment_method_options": {
"card": {
@@ -646,5 +662,5 @@ http_interactions:
"transfer_data": null,
"transfer_group": null
}
- recorded_at: Mon, 26 Feb 2024 23:18:40 GMT
+ recorded_at: Wed, 17 Apr 2024 22:41:15 GMT
recorded_with: VCR 6.2.0
diff --git a/spec/fixtures/vcr_cassettes/Stripe-v10.10.0/StripePaymentStatus/_stripe_captured_/when_the_payment_is_not_a_Stripe_payment_or_does_not_have_a_payment_intent/returns_false.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/StripePaymentStatus/_stripe_captured_/when_the_payment_is_not_a_Stripe_payment_or_does_not_have_a_payment_intent/returns_false.yml
similarity index 74%
rename from spec/fixtures/vcr_cassettes/Stripe-v10.10.0/StripePaymentStatus/_stripe_captured_/when_the_payment_is_not_a_Stripe_payment_or_does_not_have_a_payment_intent/returns_false.yml
rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/StripePaymentStatus/_stripe_captured_/when_the_payment_is_not_a_Stripe_payment_or_does_not_have_a_payment_intent/returns_false.yml
index e20d0fc2cd..58cf51155c 100644
--- a/spec/fixtures/vcr_cassettes/Stripe-v10.10.0/StripePaymentStatus/_stripe_captured_/when_the_payment_is_not_a_Stripe_payment_or_does_not_have_a_payment_intent/returns_false.yml
+++ b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/StripePaymentStatus/_stripe_captured_/when_the_payment_is_not_a_Stripe_payment_or_does_not_have_a_payment_intent/returns_false.yml
@@ -8,20 +8,17 @@ http_interactions:
string: type=card&card[number]=4242424242424242&card[exp_month]=12&card[exp_year]=2025&card[cvc]=314
headers:
User-Agent:
- - Stripe/v1 RubyBindings/10.10.0
+ - Stripe/v1 RubyBindings/11.1.0
Authorization:
- - Bearer
+ - ""
Content-Type:
- application/x-www-form-urlencoded
X-Stripe-Client-Telemetry:
- - '{"last_request_metrics":{"request_id":"req_3ENCAVgSNLEU8u","request_duration_ms":405}}'
+ - '{"last_request_metrics":{"request_id":"req_QvJSfTMIm7JeuJ","request_duration_ms":603}}'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
X-Stripe-Client-User-Agent:
- - '{"bindings_version":"10.10.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
- version 5.15.0-92-generic (buildd@lcy02-amd64-002) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2)
- 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #102~20.04.1-Ubuntu SMP Mon
- Jan 15 13:09:14 UTC 2024","hostname":"gaetan-Dell-G15"}'
+ - ""
Accept-Encoding:
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept:
@@ -34,11 +31,11 @@ http_interactions:
Server:
- nginx
Date:
- - Mon, 26 Feb 2024 23:18:33 GMT
+ - Wed, 17 Apr 2024 22:41:08 GMT
Content-Type:
- application/json
Content-Length:
- - '960'
+ - '996'
Connection:
- keep-alive
Access-Control-Allow-Credentials:
@@ -58,16 +55,22 @@ http_interactions:
- report-uri https://q.stripe.com/csp-report?p=v1%2Fpayment_methods; block-all-mixed-content;
default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none';
img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
Idempotency-Key:
- - 67e3bf04-e17c-4f31-bb33-78920895cf3a
+ - f57ce768-268b-4f0d-a6b1-eef93704de10
Original-Request:
- - req_DaTatZTGGmYDLw
+ - req_DncMJMBbT2DNTW
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
Request-Id:
- - req_DaTatZTGGmYDLw
+ - req_DncMJMBbT2DNTW
Stripe-Should-Retry:
- 'false'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
Vary:
- Origin
X-Stripe-Routing-Context-Priority-Tier:
@@ -78,8 +81,9 @@ http_interactions:
encoding: UTF-8
string: |-
{
- "id": "pm_1OoDRMKuuB1fWySnPyCI08ej",
+ "id": "pm_1P6hA7KuuB1fWySnwaPwdSUt",
"object": "payment_method",
+ "allow_redisplay": "unspecified",
"billing_details": {
"address": {
"city": null,
@@ -119,35 +123,32 @@ http_interactions:
},
"wallet": null
},
- "created": 1708989513,
+ "created": 1713393667,
"customer": null,
"livemode": false,
"metadata": {},
"type": "card"
}
- recorded_at: Mon, 26 Feb 2024 23:18:33 GMT
+ recorded_at: Wed, 17 Apr 2024 22:41:08 GMT
- request:
method: post
uri: https://api.stripe.com/v1/payment_intents
body:
encoding: UTF-8
- string: amount=100¤cy=aud&payment_method=pm_1OoDRMKuuB1fWySnPyCI08ej&payment_method_types[0]=card&capture_method=manual
+ string: amount=100¤cy=aud&payment_method=pm_1P6hA7KuuB1fWySnwaPwdSUt&payment_method_types[0]=card&capture_method=manual
headers:
User-Agent:
- - Stripe/v1 RubyBindings/10.10.0
+ - Stripe/v1 RubyBindings/11.1.0
Authorization:
- - Bearer
+ - ""
Content-Type:
- application/x-www-form-urlencoded
X-Stripe-Client-Telemetry:
- - '{"last_request_metrics":{"request_id":"req_DaTatZTGGmYDLw","request_duration_ms":397}}'
+ - '{"last_request_metrics":{"request_id":"req_DncMJMBbT2DNTW","request_duration_ms":562}}'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
X-Stripe-Client-User-Agent:
- - '{"bindings_version":"10.10.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
- version 5.15.0-92-generic (buildd@lcy02-amd64-002) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2)
- 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #102~20.04.1-Ubuntu SMP Mon
- Jan 15 13:09:14 UTC 2024","hostname":"gaetan-Dell-G15"}'
+ - ""
Accept-Encoding:
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept:
@@ -160,7 +161,7 @@ http_interactions:
Server:
- nginx
Date:
- - Mon, 26 Feb 2024 23:18:33 GMT
+ - Wed, 17 Apr 2024 22:41:08 GMT
Content-Type:
- application/json
Content-Length:
@@ -184,16 +185,22 @@ http_interactions:
- report-uri https://q.stripe.com/csp-report?p=v1%2Fpayment_intents; block-all-mixed-content;
default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none';
img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
Idempotency-Key:
- - f5a3a049-8ecb-49ba-877c-498da9a2d613
+ - 786961a2-32d7-4970-89cc-ca91ccdb3b40
Original-Request:
- - req_diqAsQaMOTGX7U
+ - req_HGftEu3PUpgLU3
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
Request-Id:
- - req_diqAsQaMOTGX7U
+ - req_HGftEu3PUpgLU3
Stripe-Should-Retry:
- 'false'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
Vary:
- Origin
X-Stripe-Routing-Context-Priority-Tier:
@@ -204,7 +211,7 @@ http_interactions:
encoding: UTF-8
string: |-
{
- "id": "pi_3OoDRNKuuB1fWySn2aHY3j3K",
+ "id": "pi_3P6hA8KuuB1fWySn2Q9nbu4a",
"object": "payment_intent",
"amount": 100,
"amount_capturable": 0,
@@ -218,9 +225,9 @@ http_interactions:
"canceled_at": null,
"cancellation_reason": null,
"capture_method": "manual",
- "client_secret": "pi_3OoDRNKuuB1fWySn2aHY3j3K_secret_gPr7pHMirBoc1WyLD0ZbgyzDr",
+ "client_secret": "",
"confirmation_method": "automatic",
- "created": 1708989513,
+ "created": 1713393668,
"currency": "aud",
"customer": null,
"description": null,
@@ -231,7 +238,7 @@ http_interactions:
"metadata": {},
"next_action": null,
"on_behalf_of": null,
- "payment_method": "pm_1OoDRMKuuB1fWySnPyCI08ej",
+ "payment_method": "pm_1P6hA7KuuB1fWySnwaPwdSUt",
"payment_method_configuration_details": null,
"payment_method_options": {
"card": {
@@ -256,29 +263,26 @@ http_interactions:
"transfer_data": null,
"transfer_group": null
}
- recorded_at: Mon, 26 Feb 2024 23:18:33 GMT
+ recorded_at: Wed, 17 Apr 2024 22:41:08 GMT
- request:
method: post
- uri: https://api.stripe.com/v1/payment_intents/pi_3OoDRNKuuB1fWySn2aHY3j3K/confirm
+ uri: https://api.stripe.com/v1/payment_intents/pi_3P6hA8KuuB1fWySn2Q9nbu4a/confirm
body:
encoding: US-ASCII
string: ''
headers:
User-Agent:
- - Stripe/v1 RubyBindings/10.10.0
+ - Stripe/v1 RubyBindings/11.1.0
Authorization:
- - Bearer
+ - ""
Content-Type:
- application/x-www-form-urlencoded
X-Stripe-Client-Telemetry:
- - '{"last_request_metrics":{"request_id":"req_diqAsQaMOTGX7U","request_duration_ms":495}}'
+ - '{"last_request_metrics":{"request_id":"req_HGftEu3PUpgLU3","request_duration_ms":509}}'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
X-Stripe-Client-User-Agent:
- - '{"bindings_version":"10.10.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
- version 5.15.0-92-generic (buildd@lcy02-amd64-002) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2)
- 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #102~20.04.1-Ubuntu SMP Mon
- Jan 15 13:09:14 UTC 2024","hostname":"gaetan-Dell-G15"}'
+ - ""
Accept-Encoding:
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept:
@@ -291,7 +295,7 @@ http_interactions:
Server:
- nginx
Date:
- - Mon, 26 Feb 2024 23:18:34 GMT
+ - Wed, 17 Apr 2024 22:41:09 GMT
Content-Type:
- application/json
Content-Length:
@@ -316,16 +320,22 @@ http_interactions:
block-all-mixed-content; default-src 'none'; base-uri 'none'; form-action
'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample';
style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
Idempotency-Key:
- - 51346a93-ee03-4317-96e4-aecf97c2c06a
+ - 80df136b-4d7e-4f83-9261-2d986c9a01a9
Original-Request:
- - req_lyGde7ZHBIrjUM
+ - req_K5wxwLJ4VRCgKC
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
Request-Id:
- - req_lyGde7ZHBIrjUM
+ - req_K5wxwLJ4VRCgKC
Stripe-Should-Retry:
- 'false'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
Vary:
- Origin
X-Stripe-Routing-Context-Priority-Tier:
@@ -336,7 +346,7 @@ http_interactions:
encoding: UTF-8
string: |-
{
- "id": "pi_3OoDRNKuuB1fWySn2aHY3j3K",
+ "id": "pi_3P6hA8KuuB1fWySn2Q9nbu4a",
"object": "payment_intent",
"amount": 100,
"amount_capturable": 100,
@@ -350,20 +360,20 @@ http_interactions:
"canceled_at": null,
"cancellation_reason": null,
"capture_method": "manual",
- "client_secret": "pi_3OoDRNKuuB1fWySn2aHY3j3K_secret_gPr7pHMirBoc1WyLD0ZbgyzDr",
+ "client_secret": "",
"confirmation_method": "automatic",
- "created": 1708989513,
+ "created": 1713393668,
"currency": "aud",
"customer": null,
"description": null,
"invoice": null,
"last_payment_error": null,
- "latest_charge": "ch_3OoDRNKuuB1fWySn2g3MZFSI",
+ "latest_charge": "ch_3P6hA8KuuB1fWySn2quGri3T",
"livemode": false,
"metadata": {},
"next_action": null,
"on_behalf_of": null,
- "payment_method": "pm_1OoDRMKuuB1fWySnPyCI08ej",
+ "payment_method": "pm_1P6hA7KuuB1fWySnwaPwdSUt",
"payment_method_configuration_details": null,
"payment_method_options": {
"card": {
@@ -388,29 +398,26 @@ http_interactions:
"transfer_data": null,
"transfer_group": null
}
- recorded_at: Mon, 26 Feb 2024 23:18:34 GMT
+ recorded_at: Wed, 17 Apr 2024 22:41:09 GMT
- request:
method: post
- uri: https://api.stripe.com/v1/payment_intents/pi_3OoDRNKuuB1fWySn2aHY3j3K/capture
+ uri: https://api.stripe.com/v1/payment_intents/pi_3P6hA8KuuB1fWySn2Q9nbu4a/capture
body:
encoding: US-ASCII
string: ''
headers:
User-Agent:
- - Stripe/v1 RubyBindings/10.10.0
+ - Stripe/v1 RubyBindings/11.1.0
Authorization:
- - Bearer
+ - ""
Content-Type:
- application/x-www-form-urlencoded
X-Stripe-Client-Telemetry:
- - '{"last_request_metrics":{"request_id":"req_lyGde7ZHBIrjUM","request_duration_ms":1021}}'
+ - '{"last_request_metrics":{"request_id":"req_K5wxwLJ4VRCgKC","request_duration_ms":950}}'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
X-Stripe-Client-User-Agent:
- - '{"bindings_version":"10.10.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
- version 5.15.0-92-generic (buildd@lcy02-amd64-002) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2)
- 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #102~20.04.1-Ubuntu SMP Mon
- Jan 15 13:09:14 UTC 2024","hostname":"gaetan-Dell-G15"}'
+ - ""
Accept-Encoding:
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept:
@@ -423,7 +430,7 @@ http_interactions:
Server:
- nginx
Date:
- - Mon, 26 Feb 2024 23:18:36 GMT
+ - Wed, 17 Apr 2024 22:41:10 GMT
Content-Type:
- application/json
Content-Length:
@@ -448,16 +455,22 @@ http_interactions:
block-all-mixed-content; default-src 'none'; base-uri 'none'; form-action
'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample';
style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
Idempotency-Key:
- - 35d0fb13-5a0b-4053-bbef-152d6f589a3d
+ - ed0243b4-4673-41dd-92a2-2444d6068a00
Original-Request:
- - req_S5vWMffhsD2jZ1
+ - req_N9r6YNyPTBTY9H
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
Request-Id:
- - req_S5vWMffhsD2jZ1
+ - req_N9r6YNyPTBTY9H
Stripe-Should-Retry:
- 'false'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
Vary:
- Origin
X-Stripe-Routing-Context-Priority-Tier:
@@ -468,7 +481,7 @@ http_interactions:
encoding: UTF-8
string: |-
{
- "id": "pi_3OoDRNKuuB1fWySn2aHY3j3K",
+ "id": "pi_3P6hA8KuuB1fWySn2Q9nbu4a",
"object": "payment_intent",
"amount": 100,
"amount_capturable": 0,
@@ -482,20 +495,20 @@ http_interactions:
"canceled_at": null,
"cancellation_reason": null,
"capture_method": "manual",
- "client_secret": "pi_3OoDRNKuuB1fWySn2aHY3j3K_secret_gPr7pHMirBoc1WyLD0ZbgyzDr",
+ "client_secret": "",
"confirmation_method": "automatic",
- "created": 1708989513,
+ "created": 1713393668,
"currency": "aud",
"customer": null,
"description": null,
"invoice": null,
"last_payment_error": null,
- "latest_charge": "ch_3OoDRNKuuB1fWySn2g3MZFSI",
+ "latest_charge": "ch_3P6hA8KuuB1fWySn2quGri3T",
"livemode": false,
"metadata": {},
"next_action": null,
"on_behalf_of": null,
- "payment_method": "pm_1OoDRMKuuB1fWySnPyCI08ej",
+ "payment_method": "pm_1P6hA7KuuB1fWySnwaPwdSUt",
"payment_method_configuration_details": null,
"payment_method_options": {
"card": {
@@ -520,5 +533,5 @@ http_interactions:
"transfer_data": null,
"transfer_group": null
}
- recorded_at: Mon, 26 Feb 2024 23:18:36 GMT
+ recorded_at: Wed, 17 Apr 2024 22:41:10 GMT
recorded_with: VCR 6.2.0
diff --git a/spec/fixtures/vcr_cassettes/Stripe-v10.10.0/StripePaymentStatus/_stripe_status/when_the_payment_has_a_payment_intent/and_the_last_action_on_the_Stripe_payment_failed/returns_failed_response.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/StripePaymentStatus/_stripe_status/when_the_payment_has_a_payment_intent/and_the_last_action_on_the_Stripe_payment_failed/returns_failed_response.yml
similarity index 75%
rename from spec/fixtures/vcr_cassettes/Stripe-v10.10.0/StripePaymentStatus/_stripe_status/when_the_payment_has_a_payment_intent/and_the_last_action_on_the_Stripe_payment_failed/returns_failed_response.yml
rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/StripePaymentStatus/_stripe_status/when_the_payment_has_a_payment_intent/and_the_last_action_on_the_Stripe_payment_failed/returns_failed_response.yml
index 7242e998af..5c801a7783 100644
--- a/spec/fixtures/vcr_cassettes/Stripe-v10.10.0/StripePaymentStatus/_stripe_status/when_the_payment_has_a_payment_intent/and_the_last_action_on_the_Stripe_payment_failed/returns_failed_response.yml
+++ b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/StripePaymentStatus/_stripe_status/when_the_payment_has_a_payment_intent/and_the_last_action_on_the_Stripe_payment_failed/returns_failed_response.yml
@@ -8,20 +8,17 @@ http_interactions:
string: type=card&card[number]=4242424242424242&card[exp_month]=12&card[exp_year]=2025&card[cvc]=314
headers:
User-Agent:
- - Stripe/v1 RubyBindings/10.10.0
+ - Stripe/v1 RubyBindings/11.1.0
Authorization:
- - Bearer
+ - ""
Content-Type:
- application/x-www-form-urlencoded
X-Stripe-Client-Telemetry:
- - '{"last_request_metrics":{"request_id":"req_l95jpFal7tpCXh","request_duration_ms":381}}'
+ - '{"last_request_metrics":{"request_id":"req_ps1V3QDUfb1bDT","request_duration_ms":337}}'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
X-Stripe-Client-User-Agent:
- - '{"bindings_version":"10.10.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
- version 5.15.0-92-generic (buildd@lcy02-amd64-002) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2)
- 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #102~20.04.1-Ubuntu SMP Mon
- Jan 15 13:09:14 UTC 2024","hostname":"gaetan-Dell-G15"}'
+ - ""
Accept-Encoding:
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept:
@@ -34,11 +31,11 @@ http_interactions:
Server:
- nginx
Date:
- - Mon, 26 Feb 2024 23:18:32 GMT
+ - Wed, 17 Apr 2024 22:41:06 GMT
Content-Type:
- application/json
Content-Length:
- - '960'
+ - '996'
Connection:
- keep-alive
Access-Control-Allow-Credentials:
@@ -58,16 +55,22 @@ http_interactions:
- report-uri https://q.stripe.com/csp-report?p=v1%2Fpayment_methods; block-all-mixed-content;
default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none';
img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
Idempotency-Key:
- - 6c29d490-1aa7-4645-9dc2-9b928e6a2d21
+ - 065c9008-97c7-48eb-a878-586faa3481f1
Original-Request:
- - req_A0YMPOSD3dL6Ol
+ - req_sAU94bsNaeDGEN
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
Request-Id:
- - req_A0YMPOSD3dL6Ol
+ - req_sAU94bsNaeDGEN
Stripe-Should-Retry:
- 'false'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
Vary:
- Origin
X-Stripe-Routing-Context-Priority-Tier:
@@ -78,8 +81,9 @@ http_interactions:
encoding: UTF-8
string: |-
{
- "id": "pm_1OoDRLKuuB1fWySnk7w5UxCE",
+ "id": "pm_1P6hA6KuuB1fWySny9DoLWz3",
"object": "payment_method",
+ "allow_redisplay": "unspecified",
"billing_details": {
"address": {
"city": null,
@@ -119,35 +123,32 @@ http_interactions:
},
"wallet": null
},
- "created": 1708989512,
+ "created": 1713393666,
"customer": null,
"livemode": false,
"metadata": {},
"type": "card"
}
- recorded_at: Mon, 26 Feb 2024 23:18:32 GMT
+ recorded_at: Wed, 17 Apr 2024 22:41:06 GMT
- request:
method: post
uri: https://api.stripe.com/v1/payment_intents
body:
encoding: UTF-8
- string: amount=100¤cy=aud&payment_method=pm_1OoDRLKuuB1fWySnk7w5UxCE&payment_method_types[0]=card&capture_method=manual
+ string: amount=100¤cy=aud&payment_method=pm_1P6hA6KuuB1fWySny9DoLWz3&payment_method_types[0]=card&capture_method=manual
headers:
User-Agent:
- - Stripe/v1 RubyBindings/10.10.0
+ - Stripe/v1 RubyBindings/11.1.0
Authorization:
- - Bearer
+ - ""
Content-Type:
- application/x-www-form-urlencoded
X-Stripe-Client-Telemetry:
- - '{"last_request_metrics":{"request_id":"req_A0YMPOSD3dL6Ol","request_duration_ms":521}}'
+ - '{"last_request_metrics":{"request_id":"req_sAU94bsNaeDGEN","request_duration_ms":442}}'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
X-Stripe-Client-User-Agent:
- - '{"bindings_version":"10.10.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
- version 5.15.0-92-generic (buildd@lcy02-amd64-002) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2)
- 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #102~20.04.1-Ubuntu SMP Mon
- Jan 15 13:09:14 UTC 2024","hostname":"gaetan-Dell-G15"}'
+ - ""
Accept-Encoding:
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept:
@@ -160,7 +161,7 @@ http_interactions:
Server:
- nginx
Date:
- - Mon, 26 Feb 2024 23:18:32 GMT
+ - Wed, 17 Apr 2024 22:41:07 GMT
Content-Type:
- application/json
Content-Length:
@@ -184,16 +185,22 @@ http_interactions:
- report-uri https://q.stripe.com/csp-report?p=v1%2Fpayment_intents; block-all-mixed-content;
default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none';
img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
Idempotency-Key:
- - 1eb5e180-a632-4537-b4d9-c3cf509862fd
+ - 2c1af106-1cef-4835-971a-420f6d300b4a
Original-Request:
- - req_3ENCAVgSNLEU8u
+ - req_QvJSfTMIm7JeuJ
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
Request-Id:
- - req_3ENCAVgSNLEU8u
+ - req_QvJSfTMIm7JeuJ
Stripe-Should-Retry:
- 'false'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
Vary:
- Origin
X-Stripe-Routing-Context-Priority-Tier:
@@ -204,7 +211,7 @@ http_interactions:
encoding: UTF-8
string: |-
{
- "id": "pi_3OoDRMKuuB1fWySn0Z7GBkCb",
+ "id": "pi_3P6hA7KuuB1fWySn2Oq11BYe",
"object": "payment_intent",
"amount": 100,
"amount_capturable": 0,
@@ -218,9 +225,9 @@ http_interactions:
"canceled_at": null,
"cancellation_reason": null,
"capture_method": "manual",
- "client_secret": "pi_3OoDRMKuuB1fWySn0Z7GBkCb_secret_lqJvYKENvmNtKKzFbW5TCLr6C",
+ "client_secret": "",
"confirmation_method": "automatic",
- "created": 1708989512,
+ "created": 1713393667,
"currency": "aud",
"customer": null,
"description": null,
@@ -231,7 +238,7 @@ http_interactions:
"metadata": {},
"next_action": null,
"on_behalf_of": null,
- "payment_method": "pm_1OoDRLKuuB1fWySnk7w5UxCE",
+ "payment_method": "pm_1P6hA6KuuB1fWySny9DoLWz3",
"payment_method_configuration_details": null,
"payment_method_options": {
"card": {
@@ -256,5 +263,5 @@ http_interactions:
"transfer_data": null,
"transfer_group": null
}
- recorded_at: Mon, 26 Feb 2024 23:18:32 GMT
+ recorded_at: Wed, 17 Apr 2024 22:41:07 GMT
recorded_with: VCR 6.2.0
diff --git a/spec/fixtures/vcr_cassettes/Stripe-v10.10.0/StripePaymentStatus/_stripe_status/when_the_payment_has_a_payment_intent/fetches_the_status_with_Stripe_PaymentIntentValidator.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/StripePaymentStatus/_stripe_status/when_the_payment_has_a_payment_intent/fetches_the_status_with_Stripe_PaymentIntentValidator.yml
similarity index 75%
rename from spec/fixtures/vcr_cassettes/Stripe-v10.10.0/StripePaymentStatus/_stripe_status/when_the_payment_has_a_payment_intent/fetches_the_status_with_Stripe_PaymentIntentValidator.yml
rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/StripePaymentStatus/_stripe_status/when_the_payment_has_a_payment_intent/fetches_the_status_with_Stripe_PaymentIntentValidator.yml
index d6aed7a90c..6aa71bce08 100644
--- a/spec/fixtures/vcr_cassettes/Stripe-v10.10.0/StripePaymentStatus/_stripe_status/when_the_payment_has_a_payment_intent/fetches_the_status_with_Stripe_PaymentIntentValidator.yml
+++ b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/StripePaymentStatus/_stripe_status/when_the_payment_has_a_payment_intent/fetches_the_status_with_Stripe_PaymentIntentValidator.yml
@@ -8,20 +8,17 @@ http_interactions:
string: type=card&card[number]=4242424242424242&card[exp_month]=12&card[exp_year]=2025&card[cvc]=314
headers:
User-Agent:
- - Stripe/v1 RubyBindings/10.10.0
+ - Stripe/v1 RubyBindings/11.1.0
Authorization:
- - Bearer
+ - ""
Content-Type:
- application/x-www-form-urlencoded
X-Stripe-Client-Telemetry:
- - '{"last_request_metrics":{"request_id":"req_Ud3GvkZwrHn7hr","request_duration_ms":407}}'
+ - '{"last_request_metrics":{"request_id":"req_02Nb5gHl50fjAA","request_duration_ms":415}}'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
X-Stripe-Client-User-Agent:
- - '{"bindings_version":"10.10.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
- version 5.15.0-92-generic (buildd@lcy02-amd64-002) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2)
- 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #102~20.04.1-Ubuntu SMP Mon
- Jan 15 13:09:14 UTC 2024","hostname":"gaetan-Dell-G15"}'
+ - ""
Accept-Encoding:
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept:
@@ -34,11 +31,11 @@ http_interactions:
Server:
- nginx
Date:
- - Mon, 26 Feb 2024 23:18:30 GMT
+ - Wed, 17 Apr 2024 22:41:05 GMT
Content-Type:
- application/json
Content-Length:
- - '960'
+ - '996'
Connection:
- keep-alive
Access-Control-Allow-Credentials:
@@ -58,16 +55,22 @@ http_interactions:
- report-uri https://q.stripe.com/csp-report?p=v1%2Fpayment_methods; block-all-mixed-content;
default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none';
img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
Idempotency-Key:
- - df5ca5c9-dfbd-4662-b345-0117fb0c27e0
+ - 007a2eb1-7b77-4657-8775-e3aba9bfdb53
Original-Request:
- - req_HdBvPUyvjHC10F
+ - req_Y3gX21v7ld8VY4
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
Request-Id:
- - req_HdBvPUyvjHC10F
+ - req_Y3gX21v7ld8VY4
Stripe-Should-Retry:
- 'false'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
Vary:
- Origin
X-Stripe-Routing-Context-Priority-Tier:
@@ -78,8 +81,9 @@ http_interactions:
encoding: UTF-8
string: |-
{
- "id": "pm_1OoDRKKuuB1fWySnEh1IcuMp",
+ "id": "pm_1P6hA5KuuB1fWySnlRmVNC4N",
"object": "payment_method",
+ "allow_redisplay": "unspecified",
"billing_details": {
"address": {
"city": null,
@@ -119,35 +123,32 @@ http_interactions:
},
"wallet": null
},
- "created": 1708989510,
+ "created": 1713393665,
"customer": null,
"livemode": false,
"metadata": {},
"type": "card"
}
- recorded_at: Mon, 26 Feb 2024 23:18:30 GMT
+ recorded_at: Wed, 17 Apr 2024 22:41:05 GMT
- request:
method: post
uri: https://api.stripe.com/v1/payment_intents
body:
encoding: UTF-8
- string: amount=100¤cy=aud&payment_method=pm_1OoDRKKuuB1fWySnEh1IcuMp&payment_method_types[0]=card&capture_method=manual
+ string: amount=100¤cy=aud&payment_method=pm_1P6hA5KuuB1fWySnlRmVNC4N&payment_method_types[0]=card&capture_method=manual
headers:
User-Agent:
- - Stripe/v1 RubyBindings/10.10.0
+ - Stripe/v1 RubyBindings/11.1.0
Authorization:
- - Bearer
+ - ""
Content-Type:
- application/x-www-form-urlencoded
X-Stripe-Client-Telemetry:
- - '{"last_request_metrics":{"request_id":"req_HdBvPUyvjHC10F","request_duration_ms":441}}'
+ - '{"last_request_metrics":{"request_id":"req_Y3gX21v7ld8VY4","request_duration_ms":536}}'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
X-Stripe-Client-User-Agent:
- - '{"bindings_version":"10.10.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
- version 5.15.0-92-generic (buildd@lcy02-amd64-002) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2)
- 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #102~20.04.1-Ubuntu SMP Mon
- Jan 15 13:09:14 UTC 2024","hostname":"gaetan-Dell-G15"}'
+ - ""
Accept-Encoding:
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept:
@@ -160,7 +161,7 @@ http_interactions:
Server:
- nginx
Date:
- - Mon, 26 Feb 2024 23:18:31 GMT
+ - Wed, 17 Apr 2024 22:41:05 GMT
Content-Type:
- application/json
Content-Length:
@@ -184,16 +185,22 @@ http_interactions:
- report-uri https://q.stripe.com/csp-report?p=v1%2Fpayment_intents; block-all-mixed-content;
default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none';
img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
Idempotency-Key:
- - 6260a6d8-22ef-4108-8343-07cde35a054b
+ - 1dfb7bfe-8a45-428b-8ecc-2f55782ed3f7
Original-Request:
- - req_sFwoqoFnMRcKoS
+ - req_CIV79hZFWbdloN
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
Request-Id:
- - req_sFwoqoFnMRcKoS
+ - req_CIV79hZFWbdloN
Stripe-Should-Retry:
- 'false'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
Vary:
- Origin
X-Stripe-Routing-Context-Priority-Tier:
@@ -204,7 +211,7 @@ http_interactions:
encoding: UTF-8
string: |-
{
- "id": "pi_3OoDRLKuuB1fWySn1hFcJ8w2",
+ "id": "pi_3P6hA5KuuB1fWySn1isKoCdb",
"object": "payment_intent",
"amount": 100,
"amount_capturable": 0,
@@ -218,9 +225,9 @@ http_interactions:
"canceled_at": null,
"cancellation_reason": null,
"capture_method": "manual",
- "client_secret": "pi_3OoDRLKuuB1fWySn1hFcJ8w2_secret_q6RoUdzpod2WIcu28ehN1ZdlV",
+ "client_secret": "",
"confirmation_method": "automatic",
- "created": 1708989511,
+ "created": 1713393665,
"currency": "aud",
"customer": null,
"description": null,
@@ -231,7 +238,7 @@ http_interactions:
"metadata": {},
"next_action": null,
"on_behalf_of": null,
- "payment_method": "pm_1OoDRKKuuB1fWySnEh1IcuMp",
+ "payment_method": "pm_1P6hA5KuuB1fWySnlRmVNC4N",
"payment_method_configuration_details": null,
"payment_method_options": {
"card": {
@@ -256,29 +263,26 @@ http_interactions:
"transfer_data": null,
"transfer_group": null
}
- recorded_at: Mon, 26 Feb 2024 23:18:31 GMT
+ recorded_at: Wed, 17 Apr 2024 22:41:05 GMT
- request:
method: get
- uri: https://api.stripe.com/v1/payment_intents/pi_3OoDRLKuuB1fWySn1hFcJ8w2
+ uri: https://api.stripe.com/v1/payment_intents/pi_3P6hA5KuuB1fWySn1isKoCdb
body:
encoding: US-ASCII
string: ''
headers:
User-Agent:
- - Stripe/v1 RubyBindings/10.10.0
+ - Stripe/v1 RubyBindings/11.1.0
Authorization:
- - Bearer
+ - ""
Content-Type:
- application/x-www-form-urlencoded
X-Stripe-Client-Telemetry:
- - '{"last_request_metrics":{"request_id":"req_sFwoqoFnMRcKoS","request_duration_ms":447}}'
+ - '{"last_request_metrics":{"request_id":"req_CIV79hZFWbdloN","request_duration_ms":400}}'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
X-Stripe-Client-User-Agent:
- - '{"bindings_version":"10.10.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
- version 5.15.0-92-generic (buildd@lcy02-amd64-002) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2)
- 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #102~20.04.1-Ubuntu SMP Mon
- Jan 15 13:09:14 UTC 2024","hostname":"gaetan-Dell-G15"}'
+ - ""
Accept-Encoding:
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept:
@@ -291,7 +295,7 @@ http_interactions:
Server:
- nginx
Date:
- - Mon, 26 Feb 2024 23:18:31 GMT
+ - Wed, 17 Apr 2024 22:41:06 GMT
Content-Type:
- application/json
Content-Length:
@@ -316,10 +320,16 @@ http_interactions:
block-all-mixed-content; default-src 'none'; base-uri 'none'; form-action
'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample';
style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
Request-Id:
- - req_l95jpFal7tpCXh
+ - req_ps1V3QDUfb1bDT
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
Vary:
- Origin
X-Stripe-Routing-Context-Priority-Tier:
@@ -330,7 +340,7 @@ http_interactions:
encoding: UTF-8
string: |-
{
- "id": "pi_3OoDRLKuuB1fWySn1hFcJ8w2",
+ "id": "pi_3P6hA5KuuB1fWySn1isKoCdb",
"object": "payment_intent",
"amount": 100,
"amount_capturable": 0,
@@ -344,9 +354,9 @@ http_interactions:
"canceled_at": null,
"cancellation_reason": null,
"capture_method": "manual",
- "client_secret": "pi_3OoDRLKuuB1fWySn1hFcJ8w2_secret_q6RoUdzpod2WIcu28ehN1ZdlV",
+ "client_secret": "",
"confirmation_method": "automatic",
- "created": 1708989511,
+ "created": 1713393665,
"currency": "aud",
"customer": null,
"description": null,
@@ -357,7 +367,7 @@ http_interactions:
"metadata": {},
"next_action": null,
"on_behalf_of": null,
- "payment_method": "pm_1OoDRKKuuB1fWySnEh1IcuMp",
+ "payment_method": "pm_1P6hA5KuuB1fWySnlRmVNC4N",
"payment_method_configuration_details": null,
"payment_method_options": {
"card": {
@@ -382,5 +392,5 @@ http_interactions:
"transfer_data": null,
"transfer_group": null
}
- recorded_at: Mon, 26 Feb 2024 23:18:31 GMT
+ recorded_at: Wed, 17 Apr 2024 22:41:06 GMT
recorded_with: VCR 6.2.0
diff --git a/spec/fixtures/vcr_cassettes/Stripe-v10.10.0/StripePaymentStatus/_stripe_status/when_the_payment_is_not_a_Stripe_payment_or_does_not_have_a_payment_intent/returns_nil.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/StripePaymentStatus/_stripe_status/when_the_payment_is_not_a_Stripe_payment_or_does_not_have_a_payment_intent/returns_nil.yml
similarity index 75%
rename from spec/fixtures/vcr_cassettes/Stripe-v10.10.0/StripePaymentStatus/_stripe_status/when_the_payment_is_not_a_Stripe_payment_or_does_not_have_a_payment_intent/returns_nil.yml
rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/StripePaymentStatus/_stripe_status/when_the_payment_is_not_a_Stripe_payment_or_does_not_have_a_payment_intent/returns_nil.yml
index 495ec548f5..ced209fbf1 100644
--- a/spec/fixtures/vcr_cassettes/Stripe-v10.10.0/StripePaymentStatus/_stripe_status/when_the_payment_is_not_a_Stripe_payment_or_does_not_have_a_payment_intent/returns_nil.yml
+++ b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/StripePaymentStatus/_stripe_status/when_the_payment_is_not_a_Stripe_payment_or_does_not_have_a_payment_intent/returns_nil.yml
@@ -8,20 +8,17 @@ http_interactions:
string: type=card&card[number]=4242424242424242&card[exp_month]=12&card[exp_year]=2025&card[cvc]=314
headers:
User-Agent:
- - Stripe/v1 RubyBindings/10.10.0
+ - Stripe/v1 RubyBindings/11.1.0
Authorization:
- - Bearer
+ - ""
Content-Type:
- application/x-www-form-urlencoded
X-Stripe-Client-Telemetry:
- - '{"last_request_metrics":{"request_id":"req_KzegHddQIdmvfb","request_duration_ms":606}}'
+ - '{"last_request_metrics":{"request_id":"req_tuOGRA5fMeWcGd","request_duration_ms":502}}'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
X-Stripe-Client-User-Agent:
- - '{"bindings_version":"10.10.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
- version 5.15.0-92-generic (buildd@lcy02-amd64-002) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2)
- 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #102~20.04.1-Ubuntu SMP Mon
- Jan 15 13:09:14 UTC 2024","hostname":"gaetan-Dell-G15"}'
+ - ""
Accept-Encoding:
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept:
@@ -34,11 +31,11 @@ http_interactions:
Server:
- nginx
Date:
- - Mon, 26 Feb 2024 23:18:29 GMT
+ - Wed, 17 Apr 2024 22:41:04 GMT
Content-Type:
- application/json
Content-Length:
- - '960'
+ - '996'
Connection:
- keep-alive
Access-Control-Allow-Credentials:
@@ -58,16 +55,22 @@ http_interactions:
- report-uri https://q.stripe.com/csp-report?p=v1%2Fpayment_methods; block-all-mixed-content;
default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none';
img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
Idempotency-Key:
- - 69031e0e-5fa5-4b61-b0f2-36c9eeb70cf8
+ - 0e4003f5-cfa9-45c1-b28f-61db03179a1b
Original-Request:
- - req_1YFxL61FVM0ylG
+ - req_yaZAESQjszRb8P
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
Request-Id:
- - req_1YFxL61FVM0ylG
+ - req_yaZAESQjszRb8P
Stripe-Should-Retry:
- 'false'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
Vary:
- Origin
X-Stripe-Routing-Context-Priority-Tier:
@@ -78,8 +81,9 @@ http_interactions:
encoding: UTF-8
string: |-
{
- "id": "pm_1OoDRJKuuB1fWySn9WZqskdy",
+ "id": "pm_1P6hA4KuuB1fWySnLXFYlYnm",
"object": "payment_method",
+ "allow_redisplay": "unspecified",
"billing_details": {
"address": {
"city": null,
@@ -119,35 +123,32 @@ http_interactions:
},
"wallet": null
},
- "created": 1708989509,
+ "created": 1713393664,
"customer": null,
"livemode": false,
"metadata": {},
"type": "card"
}
- recorded_at: Mon, 26 Feb 2024 23:18:29 GMT
+ recorded_at: Wed, 17 Apr 2024 22:41:04 GMT
- request:
method: post
uri: https://api.stripe.com/v1/payment_intents
body:
encoding: UTF-8
- string: amount=100¤cy=aud&payment_method=pm_1OoDRJKuuB1fWySn9WZqskdy&payment_method_types[0]=card&capture_method=manual
+ string: amount=100¤cy=aud&payment_method=pm_1P6hA4KuuB1fWySnLXFYlYnm&payment_method_types[0]=card&capture_method=manual
headers:
User-Agent:
- - Stripe/v1 RubyBindings/10.10.0
+ - Stripe/v1 RubyBindings/11.1.0
Authorization:
- - Bearer
+ - ""
Content-Type:
- application/x-www-form-urlencoded
X-Stripe-Client-Telemetry:
- - '{"last_request_metrics":{"request_id":"req_1YFxL61FVM0ylG","request_duration_ms":433}}'
+ - '{"last_request_metrics":{"request_id":"req_yaZAESQjszRb8P","request_duration_ms":531}}'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
X-Stripe-Client-User-Agent:
- - '{"bindings_version":"10.10.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
- version 5.15.0-92-generic (buildd@lcy02-amd64-002) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2)
- 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #102~20.04.1-Ubuntu SMP Mon
- Jan 15 13:09:14 UTC 2024","hostname":"gaetan-Dell-G15"}'
+ - ""
Accept-Encoding:
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept:
@@ -160,7 +161,7 @@ http_interactions:
Server:
- nginx
Date:
- - Mon, 26 Feb 2024 23:18:30 GMT
+ - Wed, 17 Apr 2024 22:41:04 GMT
Content-Type:
- application/json
Content-Length:
@@ -184,16 +185,22 @@ http_interactions:
- report-uri https://q.stripe.com/csp-report?p=v1%2Fpayment_intents; block-all-mixed-content;
default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none';
img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
Idempotency-Key:
- - a77ee7b9-5892-4322-b33c-6c934f72dfbd
+ - 92fb7cc0-f8c0-4014-868d-db8086c49695
Original-Request:
- - req_Ud3GvkZwrHn7hr
+ - req_02Nb5gHl50fjAA
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
Request-Id:
- - req_Ud3GvkZwrHn7hr
+ - req_02Nb5gHl50fjAA
Stripe-Should-Retry:
- 'false'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
Vary:
- Origin
X-Stripe-Routing-Context-Priority-Tier:
@@ -204,7 +211,7 @@ http_interactions:
encoding: UTF-8
string: |-
{
- "id": "pi_3OoDRKKuuB1fWySn2rxLNNEZ",
+ "id": "pi_3P6hA4KuuB1fWySn1QPPDvHu",
"object": "payment_intent",
"amount": 100,
"amount_capturable": 0,
@@ -218,9 +225,9 @@ http_interactions:
"canceled_at": null,
"cancellation_reason": null,
"capture_method": "manual",
- "client_secret": "pi_3OoDRKKuuB1fWySn2rxLNNEZ_secret_XU5hRrvBxgnexwsidz9uGQmZf",
+ "client_secret": "",
"confirmation_method": "automatic",
- "created": 1708989510,
+ "created": 1713393664,
"currency": "aud",
"customer": null,
"description": null,
@@ -231,7 +238,7 @@ http_interactions:
"metadata": {},
"next_action": null,
"on_behalf_of": null,
- "payment_method": "pm_1OoDRJKuuB1fWySn9WZqskdy",
+ "payment_method": "pm_1P6hA4KuuB1fWySnLXFYlYnm",
"payment_method_configuration_details": null,
"payment_method_options": {
"card": {
@@ -256,5 +263,5 @@ http_interactions:
"transfer_data": null,
"transfer_group": null
}
- recorded_at: Mon, 26 Feb 2024 23:18:30 GMT
+ recorded_at: Wed, 17 Apr 2024 22:41:04 GMT
recorded_with: VCR 6.2.0
diff --git a/spec/fixtures/vcr_cassettes/Stripe-v10.10.0/Stripe_CreditCardCloner/_find_or_clone/when_called_with_a_card_without_a_customer_one_time_usage_card_/clones_the_payment_method_only.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_CreditCardCloner/_find_or_clone/when_called_with_a_card_without_a_customer_one_time_usage_card_/clones_the_payment_method_only.yml
similarity index 70%
rename from spec/fixtures/vcr_cassettes/Stripe-v10.10.0/Stripe_CreditCardCloner/_find_or_clone/when_called_with_a_card_without_a_customer_one_time_usage_card_/clones_the_payment_method_only.yml
rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_CreditCardCloner/_find_or_clone/when_called_with_a_card_without_a_customer_one_time_usage_card_/clones_the_payment_method_only.yml
index 19cd539979..183ff13fc7 100644
--- a/spec/fixtures/vcr_cassettes/Stripe-v10.10.0/Stripe_CreditCardCloner/_find_or_clone/when_called_with_a_card_without_a_customer_one_time_usage_card_/clones_the_payment_method_only.yml
+++ b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_CreditCardCloner/_find_or_clone/when_called_with_a_card_without_a_customer_one_time_usage_card_/clones_the_payment_method_only.yml
@@ -8,20 +8,17 @@ http_interactions:
string: type=card&card[number]=4242424242424242&card[exp_month]=8&card[exp_year]=2025&card[cvc]=314
headers:
User-Agent:
- - Stripe/v1 RubyBindings/10.10.0
+ - Stripe/v1 RubyBindings/11.1.0
Authorization:
- - Bearer
+ - ""
Content-Type:
- application/x-www-form-urlencoded
X-Stripe-Client-Telemetry:
- - '{"last_request_metrics":{"request_id":"req_MZVWecwtG9mJav","request_duration_ms":385}}'
+ - '{"last_request_metrics":{"request_id":"req_BHrjo9C9dXpZ55","request_duration_ms":711}}'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
X-Stripe-Client-User-Agent:
- - '{"bindings_version":"10.10.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
- version 5.15.0-92-generic (buildd@lcy02-amd64-002) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2)
- 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #102~20.04.1-Ubuntu SMP Mon
- Jan 15 13:09:14 UTC 2024","hostname":"gaetan-Dell-G15"}'
+ - ""
Accept-Encoding:
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept:
@@ -34,11 +31,11 @@ http_interactions:
Server:
- nginx
Date:
- - Mon, 26 Feb 2024 23:16:07 GMT
+ - Wed, 17 Apr 2024 22:37:50 GMT
Content-Type:
- application/json
Content-Length:
- - '959'
+ - '995'
Connection:
- keep-alive
Access-Control-Allow-Credentials:
@@ -58,16 +55,22 @@ http_interactions:
- report-uri https://q.stripe.com/csp-report?p=v1%2Fpayment_methods; block-all-mixed-content;
default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none';
img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
Idempotency-Key:
- - d42600f9-7142-4b5c-89a7-2bf77c0cdb91
+ - a27ea2bc-5029-4881-ae9a-daef21c06ce6
Original-Request:
- - req_yqckvbWzoXBGP5
+ - req_hgMR8K0DpYEzxW
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
Request-Id:
- - req_yqckvbWzoXBGP5
+ - req_hgMR8K0DpYEzxW
Stripe-Should-Retry:
- 'false'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
Vary:
- Origin
X-Stripe-Routing-Context-Priority-Tier:
@@ -78,8 +81,9 @@ http_interactions:
encoding: UTF-8
string: |-
{
- "id": "pm_1OoDP1KuuB1fWySn4TnExuUO",
+ "id": "pm_1P6h6wKuuB1fWySn88ABa5q1",
"object": "payment_method",
+ "allow_redisplay": "unspecified",
"billing_details": {
"address": {
"city": null,
@@ -119,13 +123,13 @@ http_interactions:
},
"wallet": null
},
- "created": 1708989367,
+ "created": 1713393470,
"customer": null,
"livemode": false,
"metadata": {},
"type": "card"
}
- recorded_at: Mon, 26 Feb 2024 23:16:07 GMT
+ recorded_at: Wed, 17 Apr 2024 22:37:50 GMT
- request:
method: post
uri: https://api.stripe.com/v1/accounts
@@ -134,20 +138,17 @@ http_interactions:
string: type=standard&country=AU&email=apple.producer%40example.com
headers:
User-Agent:
- - Stripe/v1 RubyBindings/10.10.0
+ - Stripe/v1 RubyBindings/11.1.0
Authorization:
- - Bearer
+ - ""
Content-Type:
- application/x-www-form-urlencoded
X-Stripe-Client-Telemetry:
- - '{"last_request_metrics":{"request_id":"req_yqckvbWzoXBGP5","request_duration_ms":407}}'
+ - '{"last_request_metrics":{"request_id":"req_hgMR8K0DpYEzxW","request_duration_ms":550}}'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
X-Stripe-Client-User-Agent:
- - '{"bindings_version":"10.10.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
- version 5.15.0-92-generic (buildd@lcy02-amd64-002) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2)
- 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #102~20.04.1-Ubuntu SMP Mon
- Jan 15 13:09:14 UTC 2024","hostname":"gaetan-Dell-G15"}'
+ - ""
Accept-Encoding:
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept:
@@ -160,7 +161,7 @@ http_interactions:
Server:
- nginx
Date:
- - Mon, 26 Feb 2024 23:16:09 GMT
+ - Wed, 17 Apr 2024 22:37:52 GMT
Content-Type:
- application/json
Content-Length:
@@ -184,16 +185,22 @@ http_interactions:
- report-uri https://q.stripe.com/csp-report?p=v1%2Faccounts; block-all-mixed-content;
default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none';
img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
Idempotency-Key:
- - df9b90f9-3ce2-4546-b340-8c8ce5509db7
+ - 1c46df6a-d266-4fda-8a44-95d275eb2b88
Original-Request:
- - req_ByJHh6CkWvjRnF
+ - req_mfzCZD5X8Ot9MF
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
Request-Id:
- - req_ByJHh6CkWvjRnF
+ - req_mfzCZD5X8Ot9MF
Stripe-Should-Retry:
- 'false'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
Vary:
- Origin
X-Stripe-Routing-Context-Priority-Tier:
@@ -204,7 +211,7 @@ http_interactions:
encoding: UTF-8
string: |-
{
- "id": "acct_1OoDP1QRmd4V01E9",
+ "id": "acct_1P6h6xQPNAORwPNv",
"object": "account",
"business_profile": {
"annual_revenue": null,
@@ -226,7 +233,7 @@ http_interactions:
"type": "application"
},
"country": "AU",
- "created": 1708989368,
+ "created": 1713393471,
"default_currency": "aud",
"details_submitted": false,
"email": "apple.producer@example.com",
@@ -235,7 +242,7 @@ http_interactions:
"data": [],
"has_more": false,
"total_count": 0,
- "url": "/v1/accounts/acct_1OoDP1QRmd4V01E9/external_accounts"
+ "url": "/v1/accounts/acct_1P6h6xQPNAORwPNv/external_accounts"
},
"future_requirements": {
"alternatives": [],
@@ -332,29 +339,26 @@ http_interactions:
},
"type": "standard"
}
- recorded_at: Mon, 26 Feb 2024 23:16:09 GMT
+ recorded_at: Wed, 17 Apr 2024 22:37:52 GMT
- request:
method: get
- uri: https://api.stripe.com/v1/payment_methods/pm_1OoDP1KuuB1fWySn4TnExuUO
+ uri: https://api.stripe.com/v1/payment_methods/pm_1P6h6wKuuB1fWySn88ABa5q1
body:
encoding: US-ASCII
string: ''
headers:
User-Agent:
- - Stripe/v1 RubyBindings/10.10.0
+ - Stripe/v1 RubyBindings/11.1.0
Authorization:
- - Bearer
+ - ""
Content-Type:
- application/x-www-form-urlencoded
X-Stripe-Client-Telemetry:
- - '{"last_request_metrics":{"request_id":"req_ByJHh6CkWvjRnF","request_duration_ms":1728}}'
+ - '{"last_request_metrics":{"request_id":"req_mfzCZD5X8Ot9MF","request_duration_ms":1714}}'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
X-Stripe-Client-User-Agent:
- - '{"bindings_version":"10.10.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
- version 5.15.0-92-generic (buildd@lcy02-amd64-002) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2)
- 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #102~20.04.1-Ubuntu SMP Mon
- Jan 15 13:09:14 UTC 2024","hostname":"gaetan-Dell-G15"}'
+ - ""
Accept-Encoding:
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept:
@@ -367,11 +371,11 @@ http_interactions:
Server:
- nginx
Date:
- - Mon, 26 Feb 2024 23:16:09 GMT
+ - Wed, 17 Apr 2024 22:37:52 GMT
Content-Type:
- application/json
Content-Length:
- - '959'
+ - '995'
Connection:
- keep-alive
Access-Control-Allow-Credentials:
@@ -392,10 +396,16 @@ http_interactions:
block-all-mixed-content; default-src 'none'; base-uri 'none'; form-action
'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample';
style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
Request-Id:
- - req_DonQPjc5BjRzmG
+ - req_unSlSEY8qgECJb
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
Vary:
- Origin
X-Stripe-Routing-Context-Priority-Tier:
@@ -406,8 +416,9 @@ http_interactions:
encoding: UTF-8
string: |-
{
- "id": "pm_1OoDP1KuuB1fWySn4TnExuUO",
+ "id": "pm_1P6h6wKuuB1fWySn88ABa5q1",
"object": "payment_method",
+ "allow_redisplay": "unspecified",
"billing_details": {
"address": {
"city": null,
@@ -447,13 +458,13 @@ http_interactions:
},
"wallet": null
},
- "created": 1708989367,
+ "created": 1713393470,
"customer": null,
"livemode": false,
"metadata": {},
"type": "card"
}
- recorded_at: Mon, 26 Feb 2024 23:16:09 GMT
+ recorded_at: Wed, 17 Apr 2024 22:37:53 GMT
- request:
method: get
uri: https://api.stripe.com/v1/customers?email=apple.customer@example.com&limit=100
@@ -462,22 +473,19 @@ http_interactions:
string: ''
headers:
User-Agent:
- - Stripe/v1 RubyBindings/10.10.0
+ - Stripe/v1 RubyBindings/11.1.0
Authorization:
- - Bearer
+ - ""
Content-Type:
- application/x-www-form-urlencoded
X-Stripe-Client-Telemetry:
- - '{"last_request_metrics":{"request_id":"req_DonQPjc5BjRzmG","request_duration_ms":304}}'
+ - '{"last_request_metrics":{"request_id":"req_unSlSEY8qgECJb","request_duration_ms":402}}'
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
X-Stripe-Client-User-Agent:
- - '{"bindings_version":"10.10.0","lang":"ruby","lang_version":"3.1.4 p223 (2023-03-30)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
- version 5.15.0-92-generic (buildd@lcy02-amd64-002) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2)
- 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #102~20.04.1-Ubuntu SMP Mon
- Jan 15 13:09:14 UTC 2024","hostname":"gaetan-Dell-G15"}'
+ - ""
Stripe-Account:
- - acct_1OoDP1QRmd4V01E9
+ - acct_1P6h6xQPNAORwPNv
Accept-Encoding:
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept:
@@ -490,7 +498,7 @@ http_interactions:
Server:
- nginx
Date:
- - Mon, 26 Feb 2024 23:16:10 GMT
+ - Wed, 17 Apr 2024 22:37:53 GMT
Content-Type:
- application/json
Content-Length:
@@ -514,12 +522,18 @@ http_interactions:
- report-uri https://q.stripe.com/csp-report?p=v1%2Fcustomers; block-all-mixed-content;
default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none';
img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'
+ Cross-Origin-Opener-Policy-Report-Only:
+ - same-origin; report-to="coop"
+ Report-To:
+ - '{"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}'
+ Reporting-Endpoints:
+ - coop="https://q.stripe.com/coop-report"
Request-Id:
- - req_qo4s5qhtNpP4BE
+ - req_1DxTRdjbmg7rwk
Stripe-Account:
- - acct_1OoDP1QRmd4V01E9
+ - acct_1P6h6xQPNAORwPNv
Stripe-Version:
- - '2023-10-16'
+ - '2024-04-10'
Vary:
- Origin
X-Stripe-Routing-Context-Priority-Tier:
@@ -535,31 +549,28 @@ http_interactions:
"has_more": false,
"url": "/v1/customers"
}
- recorded_at: Mon, 26 Feb 2024 23:16:10 GMT
+ recorded_at: Wed, 17 Apr 2024 22:37:53 GMT
- request:
method: post
uri: https://api.stripe.com/v1/payment_methods
body:
encoding: UTF-8
- string: payment_method=pm_1OoDP1KuuB1fWySn4TnExuUO
+ string: payment_method=pm_1P6h6wKuuB1fWySn88ABa5q1
headers:
User-Agent:
- - Stripe/v1 RubyBindings/10.10.0
+ - Stripe/v1 RubyBindings/11.1.0
Authorization:
- - Bearer
+ - "