velocity-python 0.0.221__tar.gz → 0.0.222__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {velocity_python-0.0.221/src/velocity_python.egg-info → velocity_python-0.0.222}/PKG-INFO +1 -1
- {velocity_python-0.0.221 → velocity_python-0.0.222}/pyproject.toml +1 -1
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/__init__.py +1 -1
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/payment/stripe_adapter.py +33 -24
- {velocity_python-0.0.221 → velocity_python-0.0.222/src/velocity_python.egg-info}/PKG-INFO +1 -1
- {velocity_python-0.0.221 → velocity_python-0.0.222}/LICENSE +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/README.md +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/setup.cfg +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/app/__init__.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/app/invoices.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/app/orders.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/app/payments.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/app/purchase_orders.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/app/tests/__init__.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/app/tests/test_email_processing.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/app/tests/test_payment_profile_sorting.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/app/tests/test_spreadsheet_functions.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/aws/__init__.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/aws/amplify.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/aws/amplify_build.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/aws/handlers/__init__.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/aws/handlers/base_handler.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/aws/handlers/context.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/aws/handlers/context_factory.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/aws/handlers/exceptions.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/aws/handlers/lambda_handler.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/aws/handlers/mixins/__init__.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/aws/handlers/mixins/data_service.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/aws/handlers/mixins/web_handler.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/aws/handlers/perf.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/aws/handlers/response.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/aws/handlers/sqs_handler.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/aws/tests/__init__.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/aws/tests/test_base_handler_error_response.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/aws/tests/test_lambda_handler_json_serialization.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/aws/tests/test_response.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/__init__.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/core/__init__.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/core/column.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/core/database.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/core/decorators.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/core/engine.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/core/result.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/core/row.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/core/sequence.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/core/table.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/core/transaction.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/core/view.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/exceptions.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/servers/__init__.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/servers/base/__init__.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/servers/base/initializer.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/servers/base/operators.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/servers/base/sql.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/servers/base/types.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/servers/mysql/__init__.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/servers/mysql/operators.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/servers/mysql/reserved.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/servers/mysql/sql.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/servers/mysql/types.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/servers/postgres/__init__.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/servers/postgres/operators.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/servers/postgres/reserved.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/servers/postgres/sql.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/servers/postgres/types.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/servers/sqlite/__init__.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/servers/sqlite/operators.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/servers/sqlite/reserved.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/servers/sqlite/sql.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/servers/sqlite/types.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/servers/sqlserver/__init__.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/servers/sqlserver/operators.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/servers/sqlserver/reserved.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/servers/sqlserver/sql.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/servers/sqlserver/types.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/servers/tablehelper.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/tests/__init__.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/tests/common_db_test.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/tests/postgres/__init__.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/tests/postgres/common.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/tests/postgres/test_column.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/tests/postgres/test_connections.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/tests/postgres/test_database.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/tests/postgres/test_engine.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/tests/postgres/test_general_usage.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/tests/postgres/test_imports.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/tests/postgres/test_result.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/tests/postgres/test_row.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/tests/postgres/test_row_comprehensive.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/tests/postgres/test_schema_locking.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/tests/postgres/test_schema_locking_unit.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/tests/postgres/test_sequence.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/tests/postgres/test_sql_comprehensive.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/tests/postgres/test_table.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/tests/postgres/test_table_comprehensive.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/tests/postgres/test_transaction.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/tests/sql/__init__.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/tests/sql/common.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/tests/sql/test_postgres_select_advanced.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/tests/sql/test_postgres_select_variances.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/tests/test_cursor_rowcount_fix.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/tests/test_db_utils.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/tests/test_postgres.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/tests/test_postgres_unchanged.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/tests/test_process_error_robustness.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/tests/test_result_caching.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/tests/test_result_sql_aware.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/tests/test_row_get_missing_column.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/tests/test_schema_locking_initializers.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/tests/test_schema_locking_simple.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/tests/test_sql_builder.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/tests/test_tablehelper.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/tests/test_view_helper.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/utils.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/logging.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/misc/__init__.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/misc/conv/__init__.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/misc/conv/iconv.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/misc/conv/oconv.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/misc/db.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/misc/export.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/misc/format.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/misc/mail.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/misc/merge.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/misc/tests/__init__.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/misc/tests/test_db.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/misc/tests/test_fix.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/misc/tests/test_format.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/misc/tests/test_iconv.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/misc/tests/test_merge.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/misc/tests/test_oconv.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/misc/tests/test_original_error.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/misc/tests/test_timer.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/misc/timer.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/misc/tools.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/payment/__init__.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/payment/base_adapter.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/payment/braintree_adapter.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/payment/profiles.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/payment/router.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity_python.egg-info/SOURCES.txt +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity_python.egg-info/dependency_links.txt +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity_python.egg-info/requires.txt +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity_python.egg-info/top_level.txt +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/tests/test_amplify_build.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/tests/test_decorators.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/tests/test_iconv_money_to_cents.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/tests/test_lambda_handler.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/tests/test_lambda_handler_auth.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/tests/test_mixins_import.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/tests/test_payment_braintree_adapter.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/tests/test_payment_profiles.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/tests/test_payment_router.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/tests/test_payment_stripe_adapter.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/tests/test_sys_modified_count_postgres_demo.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/tests/test_table_alter.py +0 -0
- {velocity_python-0.0.221 → velocity_python-0.0.222}/tests/test_where_clause_validation.py +0 -0
|
@@ -37,9 +37,9 @@ class StripeAdapter(PaymentProcessorAdapter):
|
|
|
37
37
|
"""
|
|
38
38
|
super().__init__(config)
|
|
39
39
|
|
|
40
|
-
#
|
|
41
|
-
|
|
42
|
-
if not
|
|
40
|
+
# Store API key per-instance instead of setting global stripe.api_key
|
|
41
|
+
self._api_key = config.get("api_key")
|
|
42
|
+
if not self._api_key:
|
|
43
43
|
raise ValueError("Stripe API key is required in config")
|
|
44
44
|
|
|
45
45
|
self.publishable_key = config.get("publishable_key")
|
|
@@ -88,6 +88,7 @@ class StripeAdapter(PaymentProcessorAdapter):
|
|
|
88
88
|
"email_address": email_address,
|
|
89
89
|
**(customer_data.get("metadata") or {}),
|
|
90
90
|
},
|
|
91
|
+
api_key=self._api_key,
|
|
91
92
|
)
|
|
92
93
|
return {
|
|
93
94
|
"customer_profile_id": customer.id,
|
|
@@ -112,7 +113,7 @@ class StripeAdapter(PaymentProcessorAdapter):
|
|
|
112
113
|
"""Attach a Stripe payment method to a customer and optionally make it default."""
|
|
113
114
|
payment_data = payment_data or {}
|
|
114
115
|
try:
|
|
115
|
-
payment_method = stripe.PaymentMethod.retrieve(payment_method_id)
|
|
116
|
+
payment_method = stripe.PaymentMethod.retrieve(payment_method_id, api_key=self._api_key)
|
|
116
117
|
attached_customer = getattr(payment_method, "customer", None)
|
|
117
118
|
if attached_customer and str(attached_customer) != str(customer_profile_id):
|
|
118
119
|
raise ProcessorError(
|
|
@@ -123,7 +124,7 @@ class StripeAdapter(PaymentProcessorAdapter):
|
|
|
123
124
|
|
|
124
125
|
if not attached_customer:
|
|
125
126
|
payment_method = stripe.PaymentMethod.attach(
|
|
126
|
-
payment_method_id, customer=customer_profile_id
|
|
127
|
+
payment_method_id, customer=customer_profile_id, api_key=self._api_key
|
|
127
128
|
)
|
|
128
129
|
|
|
129
130
|
if payment_data.get("set_default", True):
|
|
@@ -132,6 +133,7 @@ class StripeAdapter(PaymentProcessorAdapter):
|
|
|
132
133
|
email=payment_data.get("email_address"),
|
|
133
134
|
name=payment_data.get("name") or payment_data.get("email_address"),
|
|
134
135
|
invoice_settings={"default_payment_method": payment_method.id},
|
|
136
|
+
api_key=self._api_key,
|
|
135
137
|
)
|
|
136
138
|
|
|
137
139
|
return {
|
|
@@ -157,9 +159,9 @@ class StripeAdapter(PaymentProcessorAdapter):
|
|
|
157
159
|
) -> Dict[str, Any]:
|
|
158
160
|
"""Detach a Stripe payment method from any attached customer."""
|
|
159
161
|
try:
|
|
160
|
-
payment_method = stripe.PaymentMethod.retrieve(payment_method_id)
|
|
162
|
+
payment_method = stripe.PaymentMethod.retrieve(payment_method_id, api_key=self._api_key)
|
|
161
163
|
if getattr(payment_method, "customer", None):
|
|
162
|
-
payment_method = stripe.PaymentMethod.detach(payment_method_id)
|
|
164
|
+
payment_method = stripe.PaymentMethod.detach(payment_method_id, api_key=self._api_key)
|
|
163
165
|
return {
|
|
164
166
|
"payment_profile_id": payment_method_id,
|
|
165
167
|
"detached": True,
|
|
@@ -176,7 +178,7 @@ class StripeAdapter(PaymentProcessorAdapter):
|
|
|
176
178
|
def delete_customer_profile(self, tx, customer_profile_id: str) -> Dict[str, Any]:
|
|
177
179
|
"""Delete a Stripe vaulted customer."""
|
|
178
180
|
try:
|
|
179
|
-
result = stripe.Customer.delete(customer_profile_id)
|
|
181
|
+
result = stripe.Customer.delete(customer_profile_id, api_key=self._api_key)
|
|
180
182
|
return {
|
|
181
183
|
"customer_profile_id": customer_profile_id,
|
|
182
184
|
"deleted": bool(getattr(result, "deleted", False)),
|
|
@@ -229,6 +231,7 @@ class StripeAdapter(PaymentProcessorAdapter):
|
|
|
229
231
|
"platform": "caringcent",
|
|
230
232
|
"environment": self.environment,
|
|
231
233
|
},
|
|
234
|
+
api_key=self._api_key,
|
|
232
235
|
)
|
|
233
236
|
|
|
234
237
|
# Store in client_payment_accounts table
|
|
@@ -295,7 +298,7 @@ class StripeAdapter(PaymentProcessorAdapter):
|
|
|
295
298
|
Retrieve current status of a Stripe Connected Account.
|
|
296
299
|
"""
|
|
297
300
|
try:
|
|
298
|
-
account = stripe.Account.retrieve(processor_account_id)
|
|
301
|
+
account = stripe.Account.retrieve(processor_account_id, api_key=self._api_key)
|
|
299
302
|
|
|
300
303
|
# Update database record
|
|
301
304
|
payment_account = tx.table("client_payment_accounts").find_one(
|
|
@@ -360,6 +363,7 @@ class StripeAdapter(PaymentProcessorAdapter):
|
|
|
360
363
|
refresh_url=refresh_url,
|
|
361
364
|
return_url=return_url,
|
|
362
365
|
type="account_onboarding",
|
|
366
|
+
api_key=self._api_key,
|
|
363
367
|
)
|
|
364
368
|
|
|
365
369
|
return account_link.url
|
|
@@ -389,19 +393,20 @@ class StripeAdapter(PaymentProcessorAdapter):
|
|
|
389
393
|
payment_method = payment_data["payment_method"]
|
|
390
394
|
processor_account_id = payment_data["processor_account_id"]
|
|
391
395
|
revenue_split_percentage = payment_data["revenue_split_percentage"]
|
|
396
|
+
capture_method = payment_data.get("capture_method", "manual")
|
|
392
397
|
|
|
393
398
|
# Calculate platform fee
|
|
394
399
|
platform_fee_cents = self.calculate_platform_fee(
|
|
395
400
|
amount_cents, revenue_split_percentage
|
|
396
401
|
)
|
|
397
402
|
|
|
398
|
-
# Create PaymentIntent
|
|
403
|
+
# Create PaymentIntent
|
|
399
404
|
payment_intent = stripe.PaymentIntent.create(
|
|
400
405
|
amount=amount_cents,
|
|
401
406
|
currency=currency,
|
|
402
407
|
payment_method=payment_method,
|
|
403
408
|
payment_method_types=["card"],
|
|
404
|
-
capture_method=
|
|
409
|
+
capture_method=capture_method,
|
|
405
410
|
confirm=True, # Confirm immediately (authorize)
|
|
406
411
|
application_fee_amount=platform_fee_cents, # Platform fee
|
|
407
412
|
transfer_data={
|
|
@@ -415,18 +420,21 @@ class StripeAdapter(PaymentProcessorAdapter):
|
|
|
415
420
|
"platform": "caringcent",
|
|
416
421
|
"environment": self.environment,
|
|
417
422
|
},
|
|
423
|
+
api_key=self._api_key,
|
|
418
424
|
)
|
|
419
425
|
|
|
420
|
-
# Calculate expiration (Stripe holds for 7 days)
|
|
426
|
+
# Calculate expiration (Stripe holds for 7 days for manual capture)
|
|
421
427
|
expires_at = datetime.now(timezone.utc) + timedelta(days=7)
|
|
422
428
|
|
|
429
|
+
# Determine status based on capture method
|
|
430
|
+
if capture_method == "automatic":
|
|
431
|
+
status = "captured" if payment_intent.status == "succeeded" else "failed"
|
|
432
|
+
else:
|
|
433
|
+
status = "authorized" if payment_intent.status == "requires_capture" else "failed"
|
|
434
|
+
|
|
423
435
|
return {
|
|
424
436
|
"processor_transaction_id": payment_intent.id,
|
|
425
|
-
"status":
|
|
426
|
-
"authorized"
|
|
427
|
-
if payment_intent.status == "requires_capture"
|
|
428
|
-
else "failed"
|
|
429
|
-
),
|
|
437
|
+
"status": status,
|
|
430
438
|
"amount": payment_intent.amount,
|
|
431
439
|
"currency": payment_intent.currency,
|
|
432
440
|
"authorization_code": payment_intent.id, # Stripe uses PaymentIntent ID
|
|
@@ -499,6 +507,7 @@ class StripeAdapter(PaymentProcessorAdapter):
|
|
|
499
507
|
"environment": self.environment,
|
|
500
508
|
**(payment_data.get("metadata") or {}),
|
|
501
509
|
},
|
|
510
|
+
api_key=self._api_key,
|
|
502
511
|
)
|
|
503
512
|
|
|
504
513
|
charge_id = getattr(payment_intent, "latest_charge", None)
|
|
@@ -555,10 +564,10 @@ class StripeAdapter(PaymentProcessorAdapter):
|
|
|
555
564
|
# Capture the PaymentIntent
|
|
556
565
|
if amount:
|
|
557
566
|
payment_intent = stripe.PaymentIntent.capture(
|
|
558
|
-
processor_transaction_id, amount_to_capture=amount
|
|
567
|
+
processor_transaction_id, amount_to_capture=amount, api_key=self._api_key
|
|
559
568
|
)
|
|
560
569
|
else:
|
|
561
|
-
payment_intent = stripe.PaymentIntent.capture(processor_transaction_id)
|
|
570
|
+
payment_intent = stripe.PaymentIntent.capture(processor_transaction_id, api_key=self._api_key)
|
|
562
571
|
|
|
563
572
|
# Get charge details (for charge ID)
|
|
564
573
|
charge = (
|
|
@@ -606,7 +615,7 @@ class StripeAdapter(PaymentProcessorAdapter):
|
|
|
606
615
|
"""
|
|
607
616
|
try:
|
|
608
617
|
payment_intent = stripe.PaymentIntent.cancel(
|
|
609
|
-
processor_transaction_id, cancellation_reason=reason
|
|
618
|
+
processor_transaction_id, cancellation_reason=reason, api_key=self._api_key
|
|
610
619
|
)
|
|
611
620
|
|
|
612
621
|
return {
|
|
@@ -654,10 +663,10 @@ class StripeAdapter(PaymentProcessorAdapter):
|
|
|
654
663
|
if reason:
|
|
655
664
|
refund_params["reason"] = reason
|
|
656
665
|
|
|
657
|
-
refund = stripe.Refund.create(**refund_params)
|
|
666
|
+
refund = stripe.Refund.create(**refund_params, api_key=self._api_key)
|
|
658
667
|
|
|
659
668
|
# Calculate proportional fee refund
|
|
660
|
-
original_charge = stripe.Charge.retrieve(processor_charge_id)
|
|
669
|
+
original_charge = stripe.Charge.retrieve(processor_charge_id, api_key=self._api_key)
|
|
661
670
|
original_amount = original_charge.amount
|
|
662
671
|
original_fee = original_charge.application_fee_amount or 0
|
|
663
672
|
|
|
@@ -694,12 +703,12 @@ class StripeAdapter(PaymentProcessorAdapter):
|
|
|
694
703
|
"""
|
|
695
704
|
Validate that Stripe configuration is complete.
|
|
696
705
|
"""
|
|
697
|
-
if not
|
|
706
|
+
if not self._api_key:
|
|
698
707
|
return False
|
|
699
708
|
|
|
700
709
|
try:
|
|
701
710
|
# Test API key by retrieving account
|
|
702
|
-
stripe.Account.retrieve()
|
|
711
|
+
stripe.Account.retrieve(api_key=self._api_key)
|
|
703
712
|
return True
|
|
704
713
|
except stripe.error.StripeError:
|
|
705
714
|
return False
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/app/tests/test_email_processing.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/aws/handlers/base_handler.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/aws/handlers/context_factory.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/aws/handlers/lambda_handler.py
RENAMED
|
File without changes
|
{velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/aws/handlers/mixins/__init__.py
RENAMED
|
File without changes
|
{velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/aws/handlers/mixins/data_service.py
RENAMED
|
File without changes
|
{velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/aws/handlers/mixins/web_handler.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/aws/handlers/sqs_handler.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/servers/base/__init__.py
RENAMED
|
File without changes
|
{velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/servers/base/initializer.py
RENAMED
|
File without changes
|
{velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/servers/base/operators.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/servers/mysql/__init__.py
RENAMED
|
File without changes
|
{velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/servers/mysql/operators.py
RENAMED
|
File without changes
|
{velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/servers/mysql/reserved.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/servers/postgres/__init__.py
RENAMED
|
File without changes
|
{velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/servers/postgres/operators.py
RENAMED
|
File without changes
|
{velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/servers/postgres/reserved.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/servers/postgres/types.py
RENAMED
|
File without changes
|
{velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/servers/sqlite/__init__.py
RENAMED
|
File without changes
|
{velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/servers/sqlite/operators.py
RENAMED
|
File without changes
|
{velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/servers/sqlite/reserved.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/servers/sqlserver/__init__.py
RENAMED
|
File without changes
|
{velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/servers/sqlserver/operators.py
RENAMED
|
File without changes
|
{velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/servers/sqlserver/reserved.py
RENAMED
|
File without changes
|
{velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/servers/sqlserver/sql.py
RENAMED
|
File without changes
|
{velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/servers/sqlserver/types.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/tests/postgres/__init__.py
RENAMED
|
File without changes
|
{velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/tests/postgres/common.py
RENAMED
|
File without changes
|
{velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/tests/postgres/test_column.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/tests/postgres/test_database.py
RENAMED
|
File without changes
|
{velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/tests/postgres/test_engine.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/tests/postgres/test_imports.py
RENAMED
|
File without changes
|
{velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/tests/postgres/test_result.py
RENAMED
|
File without changes
|
{velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/tests/postgres/test_row.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/tests/postgres/test_sequence.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/tests/postgres/test_table.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/tests/test_postgres_unchanged.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/tests/test_result_caching.py
RENAMED
|
File without changes
|
{velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/tests/test_result_sql_aware.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/tests/test_sql_builder.py
RENAMED
|
File without changes
|
{velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/tests/test_tablehelper.py
RENAMED
|
File without changes
|
{velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/db/tests/test_view_helper.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/misc/tests/test_original_error.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity/payment/braintree_adapter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity_python.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity_python.egg-info/requires.txt
RENAMED
|
File without changes
|
{velocity_python-0.0.221 → velocity_python-0.0.222}/src/velocity_python.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.0.221 → velocity_python-0.0.222}/tests/test_sys_modified_count_postgres_demo.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|