Stripe issueshttps://lab.civicrm.org/extensions/stripe/-/issues2023-10-02T14:27:23Zhttps://lab.civicrm.org/extensions/stripe/-/issues/402Stripe does not appear in list of Payment Processor Types2023-10-02T14:27:23ZcbpqStripe does not appear in list of Payment Processor TypesI am trying to configure Stripe in CiviCRM (using WordPress). I installed it through the extensions page along with MJWShared. However, when I try to create a new Payment Processor, Stripe does not appear in the first drop-down as a Paym...I am trying to configure Stripe in CiviCRM (using WordPress). I installed it through the extensions page along with MJWShared. However, when I try to create a new Payment Processor, Stripe does not appear in the first drop-down as a Payment Processor Type. I checked the database and don't see any entries for Stripe in `civicrm_payment_processor_type`. I tried reinstalling both extensions which did not change anything. Am I doing something wrong? Is it possible that something went wrong during the installation?https://lab.civicrm.org/extensions/stripe/-/issues/409CiviCRM URL in Stripe Dashboard does not work2023-10-02T14:26:53Zben_fairlessCiviCRM URL in Stripe Dashboard does not workCiviCRM 5.57.0
Stripe Plug-in 6.7.14
API 2022-11-15
When a new customer is created the URL is configured as https://www.example.com/wp-admin/admin.php?page=CiviCRM&q=civicrm%2Fcontact%2Fview&reset=1&cid=13673
When you clic...CiviCRM 5.57.0
Stripe Plug-in 6.7.14
API 2022-11-15
When a new customer is created the URL is configured as https://www.example.com/wp-admin/admin.php?page=CiviCRM&q=civicrm%2Fcontact%2Fview&reset=1&cid=13673
When you click on this URL it doesn’t take you to the contact, just to the homepage of CiviCRM.https://lab.civicrm.org/extensions/stripe/-/issues/407Suggestion: warn if multiple webhooks2023-10-02T14:26:30Zaydunsaidan.saunders@squiffle.ukSuggestion: warn if multiple webhooksA system check warns if the expected webhook is not found but does not warn if unexpected webhooks are found.
On a system I recently looked at, it had 5 webhooks including one to the test processor - caused by changes in hostname, enabl...A system check warns if the expected webhook is not found but does not warn if unexpected webhooks are found.
On a system I recently looked at, it had 5 webhooks including one to the test processor - caused by changes in hostname, enabling clean-urls etc. This caused confusion in the logs and may explain other failures being experienced.
So the suggestion is to add another system check job warning if there webhooks configured other than the expected one. The system check can be hidden on any system that actually wants multiple webhooks.https://lab.civicrm.org/extensions/stripe/-/issues/415Drupal 10: Payment Submission fails with a 500 service unavailable2023-10-02T14:25:28ZjitendraDrupal 10: Payment Submission fails with a 500 service unavailableNoticed this while executing Stripe test for Drupal 10.
To replicate -
- Install Stripe extension on Drupal 10
- Configure it on a webform (Also replicates on civi forms)
- Submit the webform with Stripe chosen as the payment processor...Noticed this while executing Stripe test for Drupal 10.
To replicate -
- Install Stripe extension on Drupal 10
- Configure it on a webform (Also replicates on civi forms)
- Submit the webform with Stripe chosen as the payment processor.
![image](/uploads/25f52bf99ff811090d8daca30fa20ad8/image.png)
Log displays the following error -
```
The website encountered an unexpected error. Please try again later.
<em class="placeholder">Error</em>: Class "Symfony\Component\EventDispatcher\Event" not found in <em class="placeholder">include()</em> (line <em class="placeholder">27</em> of <em class="placeholder">sites/default/files/civicrm/ext/com.drastikbydesign.stripe/Civi/Stripe/Event/AuthorizeEvent.php</em>).
<pre class="backtrace">Composer\Autoload\includeFile('/Users/jitendra/www/drupal10/web/sites/default/files/civicrm/ext/com.drastikbydesign.stripe/Civi/Stripe/Event/AuthorizeEvent.php') (Line: 428)
Composer\Autoload\ClassLoader->loadClass('Civi\Stripe\Event\AuthorizeEvent') (Line: 165)
civicrm_api3_stripe_paymentintent_process(Array) (Line: 89)
Civi\API\Provider\MagicFunctionProvider->invoke(Array) (Line: 158)
Civi\API\Kernel->runRequest(Array) (Line: 81)
Civi\API\Kernel->runSafe('StripePaymentintent', 'process', Array) (Line: 22)
civicrm_api('StripePaymentintent', 'process', Array) (Line: 289)
CRM_Utils_REST::process(Array, Array) (Line: 534)
CRM_Utils_REST::ajax() (Line: 285)
CRM_Core_Invoke::runItem(Array) (Line: 69)
CRM_Core_Invoke::_invoke(Array) (Line: 36)
CRM_Core_Invoke::invoke(Array) (Line: 88)
Drupal\civicrm\Civicrm->invoke(Array) (Line: 80)
Drupal\civicrm\Controller\CivicrmController->main(Array, '')
call_user_func_array(Array, Array) (Line: 123)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 124)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->wrapControllerExecutionInRenderContext(Array, Array) (Line: 97)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() (Line: 163)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 74)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 106)
Drupal\page_cache\StackMiddleware\PageCache->pass(Object, 1, 1) (Line: 85)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\StackedHttpKernel->handle(Object, 1, 1) (Line: 681)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
</pre>
```
Seems like this is due to `Symfony\Component\EventDispatcher\Event` being replaced by `Symfony\Contracts\EventDispatcher\Event` - https://www.drupal.org/node/3159012
So I think we just need to replace the usage of the above with the following?
use Drupal\Component\EventDispatcher\Event;https://lab.civicrm.org/extensions/stripe/-/issues/436Stripe 6.9 - PHP Fatal error: Uncaught Error: Class "Stripe\SKU" not found2023-10-02T14:24:56ZChiplehStripe 6.9 - PHP Fatal error: Uncaught Error: Class "Stripe\SKU" not foundWhile testing out the latest release on a contribution page with the following installation:
Wordpress 6.2.2
CiviCRM 5.58.1
we are seeing this error:
PHP Fatal error: Uncaught Error: Class "Stripe\SKU" not found in /wp-content/upload...While testing out the latest release on a contribution page with the following installation:
Wordpress 6.2.2
CiviCRM 5.58.1
we are seeing this error:
PHP Fatal error: Uncaught Error: Class "Stripe\SKU" not found in /wp-content/uploads/civicrm/ext/com.drastikbydesign.stripe/vendor/stripe/stripe-php/lib/Util/Util.php:46
Stack trace:
#0 /wp-content/uploads/civicrm/ext/com.drastikbydesign.stripe/vendor/stripe/stripe-php/lib/BaseStripeClient.php(136): Stripe\Util\Util::convertToStripeObject(Array, Object(Stripe\Util\RequestOptions))
#1 /wp-content/uploads/civicrm/ext/com.drastikbydesign.stripe/vendor/stripe/stripe-php/lib/BaseStripeClient.php(173): Stripe\BaseStripeClient->request('get', '/v1/webhook_end...', Array, Object(Stripe\Util\RequestOptions))
#2 /wp-content/uploads/civicrm/ext/com.drastikbydesign.stripe/vendor/stripe/stripe-php/lib/Service/AbstractService.php(85): Stripe\BaseStripeClient->requestCollection('get', '/v1/webhook_end...', Array, NULL)
#3 /wp-content/uploads/civicrm/ext/com.drastikbydesign.stripe/vendor/stripe/stripe-php/lib/Service/WebhookEndpointService.php(21): Stripe\Service\AbstractService->requestCollection('get', '/v1/webhook_end...', Array, NULL)
#4 /wp-content/uploads/civicrm/ext/com.drastikbydesign.stripe/CRM/Stripe/Webhook.php(53): Stripe\Service\WebhookEndpointService->all(Array)
#5 /wp-content/uploads/civicrm/ext/com.drastikbydesign.stripe/CRM/Stripe/Check.php(174): CRM_Stripe_Webhook->check(Array)
#6 /wp-content/uploads/civicrm/ext/com.drastikbydesign.stripe/CRM/Stripe/Check.php(52): CRM_Stripe_Check->checkWebhooks()
#7 /wp-content/uploads/civicrm/ext/com.drastikbydesign.stripe/stripe.php(175): CRM_Stripe_Check->checkRequirements()
#8 /wp-content/plugins/civicrm/civicrm/CRM/Utils/Hook.php(279): stripe_civicrm_check(Array, Array, false)
#9 /wp-content/plugins/civicrm/civicrm/CRM/Utils/Hook/WordPress.php(136): CRM_Utils_Hook->runHooks(Array, 'civicrm_check', 3, Array, Array, false, NULL, NULL, NULL)
#10 /wp-content/plugins/civicrm/civicrm/Civi/Core/CiviEventDispatcher.php(314): CRM_Utils_Hook_WordPress->invokeViaUF(3, Array, Array, false, NULL, NULL, NULL, 'civicrm_check')
#11 /wp-content/plugins/civicrm/civicrm/vendor/symfony/event-dispatcher/EventDispatcher.php(251): Civi\Core\CiviEventDispatcher::delegateToUF(Object(Civi\Core\Event\GenericHookEvent), 'hook_civicrm_ch...', Object(Civi\Core\UnoptimizedEventDispatcher))
#12 /wp-content/plugins/civicrm/civicrm/vendor/symfony/event-dispatcher/EventDispatcher.php(73): Symfony\Component\EventDispatcher\EventDispatcher->callListeners(Array, 'hook_civicrm_ch...', Object(Civi\Core\Event\GenericHookEvent))
#13 /wp-content/plugins/civicrm/civicrm/Civi/Core/CiviEventDispatcher.php(260): Symfony\Component\EventDispatcher\EventDispatcher->dispatch(Object(Civi\Core\Event\GenericHookEvent), 'hook_civicrm_ch...')
#14 /wp-content/plugins/civicrm/civicrm/CRM/Utils/Hook.php(167): Civi\Core\CiviEventDispatcher->dispatch('hook_civicrm_ch...', Object(Civi\Core\Event\GenericHookEvent))
#15 /wp-content/plugins/civicrm/civicrm/CRM/Utils/Hook.php(2637): CRM_Utils_Hook->invoke(Array, Array, Array, false, NULL, NULL, NULL, 'civicrm_check')
#16 /wp-content/plugins/civicrm/civicrm/CRM/Utils/Check.php(226): CRM_Utils_Hook::check(Array, Array, false)
#17 /wp-content/plugins/civicrm/civicrm/CRM/Utils/Check.php(185): CRM_Utils_Check::checkStatus()
#18 /wp-content/plugins/civicrm/civicrm/api/v3/System.php(137): CRM_Utils_Check::checkAll()
#19 /wp-content/plugins/civicrm/civicrm/Civi/API/Provider/MagicFunctionProvider.php(89): civicrm_api3_system_check(Array)
#20 /wp-content/plugins/civicrm/civicrm/Civi/API/Kernel.php(158): Civi\API\Provider\MagicFunctionProvider->invoke(Array)
#21 /wp-content/plugins/civicrm/civicrm/Civi/API/Kernel.php(81): Civi\API\Kernel->runRequest(Array)
#22 /wp-content/plugins/civicrm/civicrm/api/api.php(22): Civi\API\Kernel->runSafe('System', 'check', Array)
#23 /wp-content/plugins/civicrm/civicrm/CRM/Utils/REST.php(290): civicrm_api('System', 'check', Array)
#24 /wp-content/plugins/civicrm/civicrm/CRM/Utils/REST.php(535): CRM_Utils_REST::process(Array, Array)
#25 /wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(285): CRM_Utils_REST::ajax()
#26 /wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(69): CRM_Core_Invoke::runItem(Array)
#27 /wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(36): CRM_Core_Invoke::_invoke(Array)
#28 /wp-content/plugins/civicrm/civicrm.php(1199): CRM_Core_Invoke::invoke(Array)
#29 /wp-includes/class-wp-hook.php(308): CiviCRM_For_WordPress->invoke('')
#30 /wp-includes/class-wp-hook.php(332): WP_Hook->apply_filters('', Array)
#31 /wp-includes/plugin.php(517): WP_Hook->do_action(Array)
#32 /wp-admin/admin.php(259): do_action('toplevel_page_C...')
#33 {main}
thrown in /wp-content/uploads/civicrm/ext/com.drastikbydesign.stripe/vendor/stripe/stripe-php/lib/Util/Util.php on line 46https://lab.civicrm.org/extensions/stripe/-/issues/296Stripe doRecurPayment: Missing mandatory parameter: recurFrequencyUnit2023-10-02T14:24:42ZandyburnsStripe doRecurPayment: Missing mandatory parameter: recurFrequencyUnitA small amount of time, we are seeing this error:
`Payment Processor Error message :Stripe doRecurPayment: Missing mandatory parameter: recurFrequencyUnit`
I am unable to find the full error log. We are using https://lab.civicrm.org/e...A small amount of time, we are seeing this error:
`Payment Processor Error message :Stripe doRecurPayment: Missing mandatory parameter: recurFrequencyUnit`
I am unable to find the full error log. We are using https://lab.civicrm.org/extensions/recurringbuttons my gut says it could be a load order issue? We have monthly frequency unit defaulting.https://lab.civicrm.org/extensions/stripe/-/issues/417Database deadlock leaves transaction in pending state2023-10-02T14:24:08ZaxaakDatabase deadlock leaves transaction in pending stateMany thanks for your work on this extension.
CiviCRM 5.45.6
Payment Shared: Version 1.2.2
Stripe Payment Processor: Version 6.7.1
Variable Recur Payments: Version 1.0
Wordpress 5.9.5
A user successfully pays for a recurring membershi...Many thanks for your work on this extension.
CiviCRM 5.45.6
Payment Shared: Version 1.2.2
Stripe Payment Processor: Version 6.7.1
Variable Recur Payments: Version 1.0
Wordpress 5.9.5
A user successfully pays for a recurring membership, all webhooks fire OK and get a 200 but the contribution remains in Pending state.
ConfigAndLog shows a DB deadlock at the same timestamp followed by an error `[error] MJWIPNTrait call to repeattransaction failed: Expected one Contribution but found 0; params:`.
Log file excerpt:
```
Array
(
[civi.tag] => deprecated
)
Feb 14 21:45:09 [error] $Fatal Error Details = Array
(
[callback] => Array
(
[0] => CRM_Core_Error
[1] => exceptionHandler
)
[code] => -31
[message] => DB Error: deadlock
[mode] => 16
[debug_info] => INSERT INTO `civicrm_activity` (`source_record_id` , `activity_type_id` , `subject` , `activity_date_time` , `status_id` , `priority_id` , `is_test` ) VALUES ( 137930 , 6 , '£ 52.00 - Online
Contribution: Join the XXX' , 20230214214500 , 2 , 2 , 0 ) [nativecode=1213 ** Deadlock found when trying to get lock; try restarting transaction]
[type] => DB_Error
[user_info] => INSERT INTO `civicrm_activity` (`source_record_id` , `activity_type_id` , `subject` , `activity_date_time` , `status_id` , `priority_id` , `is_test` ) VALUES ( 137930 , 6 , '£ 52.00 - Online
Contribution: Join the XXX' , 20230214214500 , 2 , 2 , 0 ) [nativecode=1213 ** Deadlock found when trying to get lock; try restarting transaction]
[to_string] => [db_error: message="DB Error: deadlock" code=-31 mode=callback callback=CRM_Core_Error::exceptionHandler prefix="" info="INSERT INTO `civicrm_activity` (`source_record_id` , `activity_type_id`
, `subject` , `activity_date_time` , `status_id` , `priority_id` , `is_test` ) VALUES ( 137930 , 6 , '£ 52.00 - Online Contribution: Join the XXX' , 20230214214500 , 2 , 2 , 0 ) [nativecode=1213 ** Deadlo
ck found when trying to get lock; try restarting transaction]"]
)
Feb 14 21:45:09 [debug] $backTrace = #0 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/CRM/Core/Error.php(942): CRM_Core_Error::backtrace("backTrace", TRUE)
#1 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/vendor/pear/pear-core-minimal/src/PEAR.php(922): CRM_Core_Error::exceptionHandler(Object(DB_Error))
#2 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/vendor/pear/db/DB.php(997): PEAR_Error->__construct("DB Error: deadlock", -31, 16, (Array:2), "INSERT INTO `civicrm_activity` (`sour
ce_record_id` , `activity_type_id` , `su...")
#3 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/vendor/pear/pear-core-minimal/src/PEAR.php(575): DB_Error->__construct(-31, 16, (Array:2), "INSERT INTO `civicrm_activity` (`source_
record_id` , `activity_type_id` , `su...")
#4 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/vendor/pear/pear-core-minimal/src/PEAR.php(223): PEAR::_raiseError(Object(DB_mysqli), NULL, -31, 16, (Array:2), "INSERT INTO `civicr
m_activity` (`source_record_id` , `activity_type_id` , `su...", "DB_Error", TRUE)
#5 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/vendor/pear/db/DB/common.php(1928): PEAR->__call("raiseError", (Array:7))
#6 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/vendor/pear/db/DB/mysqli.php(936): DB_common->raiseError(-31, NULL, NULL, "INSERT INTO `civicrm_activity` (`source_record_id` , `act
ivity_type_id` , `su...", "1213 ** Deadlock found when trying to get lock; try restarting transaction")
#7 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/vendor/pear/db/DB/mysqli.php(406): DB_mysqli->mysqliRaiseError()
#8 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/vendor/pear/db/DB/common.php(1234): DB_mysqli->simpleQuery("INSERT INTO `civicrm_activity` (`source_record_id` , `activity_type_id`
, `su...")
#9 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/packages/DB/DataObject.php(2696): DB_common->query("INSERT INTO `civicrm_activity` (`source_record_id` , `activity_type_id` , `su...
")
#10 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/packages/DB/DataObject.php(1245): DB_DataObject->_query("INSERT INTO `civicrm_activity` (`source_record_id` , `activity_type_id` ,
`su...")
#11 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/CRM/Core/DAO.php(656): DB_DataObject->insert()
#12 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/CRM/Activity/BAO/Activity.php(321): CRM_Core_DAO->save()
#13 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/Civi/Api4/Generic/Traits/DAOActionTrait.php(163): CRM_Activity_BAO_Activity::create((Array:14))
#14 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/Civi/Api4/Generic/DAOSaveAction.php(35): Civi\Api4\Generic\DAOSaveAction->writeObjects((Array:1))
#15 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/Civi/Api4/Provider/ActionObjectProvider.php(68): Civi\Api4\Generic\DAOSaveAction->_run(Object(Civi\Api4\Generic\Result))
#16 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/Civi/API/Kernel.php(149): Civi\Api4\Provider\ActionObjectProvider->invoke(Object(Civi\Api4\Generic\DAOSaveAction))
#17 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/Civi/Api4/Generic/AbstractAction.php(234): Civi\API\Kernel->runRequest(Object(Civi\Api4\Generic\DAOSaveAction))
#18 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/CRM/Contribute/BAO/Contribution.php(562): Civi\Api4\Generic\AbstractAction->execute()
#19 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/api/v3/utils.php(1314): CRM_Contribute_BAO_Contribution::create((Array:24), (Array:1))
#20 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/api/v3/Contribution.php(87): _civicrm_api3_basic_create("CRM_Contribute_BAO_Contribution", (Array:24), "Contribution")
#21 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/Civi/API/Provider/MagicFunctionProvider.php(89): civicrm_api3_contribution_create((Array:24))
#22 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/Civi/API/Kernel.php(149): Civi\API\Provider\MagicFunctionProvider->invoke((Array:8))
#23 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/Civi/API/Kernel.php(81): Civi\API\Kernel->runRequest((Array:8))
#24 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/api/api.php(132): Civi\API\Kernel->runSafe("Contribution", "create", (Array:12))
#25 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/CRM/Contribute/BAO/Contribution.php(4015): civicrm_api3("Contribution", "create", (Array:12))
#26 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/api/v3/Contribution.php(687): CRM_Contribute_BAO_Contribution::completeOrder((Array:8), "7381", "137930", NULL)
#27 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/api/v3/Contribution.php(503): _ipn_process_transaction((Array:9), Object(CRM_Contribute_BAO_Contribution), (Array:8), (Array:11))
#28 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/Civi/API/Provider/MagicFunctionProvider.php(89): civicrm_api3_contribution_completetransaction((Array:9))
#29 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/Civi/API/Kernel.php(149): Civi\API\Provider\MagicFunctionProvider->invoke((Array:8))
#30 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/Civi/API/Kernel.php(81): Civi\API\Kernel->runRequest((Array:8))
#31 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/api/api.php(132): Civi\API\Kernel->runSafe("contribution", "completetransaction", (Array:9))
#32 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/CRM/Contribute/Form/Contribution/Confirm.php(2566): civicrm_api3("contribution", "completetransaction", (Array:9))
#33 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/CRM/Contribute/Form/Contribution/Confirm.php(1730): CRM_Contribute_Form_Contribution_Confirm->completeTransaction((Array:4), 137930
)
#34 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/CRM/Contribute/Form/Contribution/Confirm.php(1466): CRM_Contribute_Form_Contribution_Confirm->postProcessMembership((Array:57), "16
7422", Object(CRM_Contribute_Form_Contribution_Confirm), (Array:43), (Array:0), (Array:0), (Array:34), (Array:1), TRUE, NULL, FALSE, "2", (Array:1))
#35 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/CRM/Contribute/Form/Contribution/Confirm.php(2524): CRM_Contribute_Form_Contribution_Confirm->processMembership((Array:46), "167422
", (Array:0), (Array:0), (Array:43), (Array:1))
#36 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/CRM/Contribute/Form/Contribution/Confirm.php(2369): CRM_Contribute_Form_Contribution_Confirm->doMembershipProcessing("167422", (Arr
ay:46), (Array:43), (Array:1))
#37 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/CRM/Contribute/Form/Contribution/Confirm.php(856): CRM_Contribute_Form_Contribution_Confirm->processFormSubmission("167422")
#38 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/CRM/Core/Form.php(565): CRM_Contribute_Form_Contribution_Confirm->postProcess()
#39 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/CRM/Core/StateMachine.php(144): CRM_Core_Form->mainProcess()
#40 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/CRM/Core/QuickForm/Action/Next.php(43): CRM_Core_StateMachine->perform(Object(CRM_Contribute_Form_Contribution_Confirm), "next", "N
ext")
#41 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/packages/HTML/QuickForm/Controller.php(203): CRM_Core_QuickForm_Action_Next->perform(Object(CRM_Contribute_Form_Contribution_Confir
m), "next")
#42 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/packages/HTML/QuickForm/Page.php(103): HTML_QuickForm_Controller->handle(Object(CRM_Contribute_Form_Contribution_Confirm), "next")
#43 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/CRM/Core/Controller.php(353): HTML_QuickForm_Page->handle("next")
#44 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(319): CRM_Core_Controller->run((Array:3), NULL)
#45 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(69): CRM_Core_Invoke::runItem((Array:15))
#46 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(36): CRM_Core_Invoke::_invoke((Array:3))
#47 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm.php(1169): CRM_Core_Invoke::invoke((Array:3))
#48 /home/path/to/wordpress/wp-content/plugins/civicrm/includes/civicrm.basepage.php(366): CiviCRM_For_WordPress->invoke()
#49 /home/path/to/wordpress/wp-includes/class-wp-hook.php(307): CiviCRM_For_WordPress_Basepage->basepage_handler(Object(WP))
#50 /home/path/to/wordpress/wp-includes/class-wp-hook.php(331): WP_Hook->apply_filters(NULL, (Array:1))
#51 /home/path/to/wordpress/wp-includes/plugin.php(522): WP_Hook->do_action((Array:1))
#52 /home/path/to/wordpress/wp-includes/class-wp.php(771): do_action_ref_array("wp", (Array:1))
#53 /home/path/to/wordpress/wp-includes/functions.php(1310): WP->main("")
#54 /home/path/to/wordpress/wp-blog-header.php(16): wp()
#55 /home/path/to/wordpress/index.php(17): require("/home/path/to/wordpress/wp-blog-header.php")
#56 {main}
Feb 14 21:45:09 [info] Retrying after Database deadlock encountered hit on attempt 1 at query : INSERT INTO `civicrm_activity` (`source_record_id` , `activity_type_id` , `subject` , `activity_date_time` , `stat
us_id` , `priority_id` , `is_test` ) VALUES ( 137930 , 6 , '£ 52.00 - Online Contribution: Join the XXX' , 20230214214500 , 2 , 2 , 0 )
Feb 14 21:45:09 [info] Contribution 137930 updated successfully
Feb 14 21:45:10 [info] Contribution 137930 Receipt sent
Feb 14 21:45:11 [debug] Credit/Debit cardsNo matching contributions for event evt_3MbWJADIWplkgKtP07psenWL
Feb 14 21:45:11 [debug] Credit/Debit cardsNo matching contributions for event evt_1MbWJEDIWplkgKtPbko2MedY
Feb 14 21:45:11 [error] MJWIPNTrait call to repeattransaction failed: Expected one Contribution but found 0; params: Array
(
[contribution_recur_id] => 7381
[contribution_status_id] => 2
[receive_date] => 20230214214504
[order_reference] => in_1MbWJADIWplkgKtP9AevkaXXGS
[trxn_id] => in_1MbWJADIWplkgKtP9AevkaXXGS
[total_amount] => 52
[fee_amount] => 0.93
[is_email_receipt] =>
)
Feb 14 21:45:11 [error] StripeIPN: processWebhookEvent failed. EventID: evt_1MbWJEDIWplkgKtPbko2MedY : MJWIPNTrait call to repeattransaction failed: Expected one Contribution but found 0; params: Array
(
[contribution_recur_id] => 7381
[contribution_status_id] => 2
[receive_date] => 20230214214504
[order_reference] => in_1MbWJADIWplkgKtP9AevkaXXGS
[trxn_id] => in_1MbWJADIWplkgKtP9AevkaXXGS
[total_amount] => 52
[fee_amount] => 0.93
[is_email_receipt] =>
)
#0 /home/path/to/wordpress/wp-content/plugins/files/civicrm/extensions/com.drastikbydesign.stripe/CRM/Core/Payment/StripeIPN.php(654): CRM_Core_Payment_StripeIPN->repeatContribution()
#1 /home/path/to/wordpress/wp-content/plugins/files/civicrm/extensions/com.drastikbydesign.stripe/CRM/Core/Payment/StripeIPN.php(462): CRM_Core_Payment_StripeIPN->createNextContributionForRecur(
)
#2 /home/path/to/wordpress/wp-content/plugins/files/civicrm/extensions/com.drastikbydesign.stripe/CRM/Core/Payment/StripeIPN.php(358): CRM_Core_Payment_StripeIPN->processEventType()
#3 /home/path/to/wordpress/wp-content/plugins/files/civicrm/extensions/com.drastikbydesign.stripe/CRM/Core/Payment/StripeIPN.php(320): CRM_Core_Payment_StripeIPN->processWebhookEvent()
#4 /home/path/to/wordpress/wp-content/plugins/files/civicrm/extensions/com.drastikbydesign.stripe/CRM/Core/Payment/Stripe.php(1247): CRM_Core_Payment_StripeIPN->onReceiveWebhook()
#5 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/CRM/Core/Payment.php(1628): CRM_Core_Payment_Stripe->handlePaymentNotification()
#6 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/CRM/Core/Payment.php(1521): CRM_Core_Payment::handlePaymentMethod()
#7 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(285): CRM_Core_Payment::handleIPN()
#8 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(69): CRM_Core_Invoke::runItem()
#9 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(36): CRM_Core_Invoke::_invoke()
#10 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm.php(1169): CRM_Core_Invoke::invoke()
#11 /home/path/to/wordpress/wp-content/plugins/civicrm/includes/civicrm.basepage.php(366): CiviCRM_For_WordPress->invoke()
#12 /home/path/to/wordpress/wp-includes/class-wp-hook.php(307): CiviCRM_For_WordPress_Basepage->basepage_handler()
#13 /home/path/to/wordpress/wp-includes/class-wp-hook.php(331): WP_Hook->apply_filters()
#14 /home/path/to/wordpress/wp-includes/plugin.php(522): WP_Hook->do_action()
#15 /home/path/to/wordpress/wp-includes/class-wp.php(771): do_action_ref_array()
#16 /home/path/to/wordpress/wp-includes/functions.php(1310): WP->main()
#17 /home/path/to/wordpress/wp-blog-header.php(16): wp()
#18 /home/path/to/wordpress/index.php(17): require('/home/trail_liv...')
#19 {main}
Feb 14 21:50:06 [debug] Credit/Debit cardsNo matching contributions for event evt_1MbWJDDIWplkgKtPDAtEXmXX59
Feb 14 21:50:06 [error] MJWIPNTrait call to repeattransaction failed: Expected one Contribution but found 0; params: Array
(
[contribution_recur_id] => 7381
[contribution_status_id] => 2
[receive_date] => 20230214214504
[order_reference] => in_1MbWJADIWplkgKtP9AevkaXXGS
[trxn_id] => in_1MbWJADIWplkgKtP9AevkaXXGS
[total_amount] => 52
[fee_amount] => 0.93
[is_email_receipt] =>
)
Feb 14 21:50:06 [error] StripeIPN: processWebhookEvent failed. EventID: evt_1MbWJDDIWplkgKtPDAtEXmXX59 : MJWIPNTrait call to repeattransaction failed: Expected one Contribution but found 0; params: Array
(
[contribution_recur_id] => 7381
[contribution_status_id] => 2
[receive_date] => 20230214214504
[order_reference] => in_1MbWJADIWplkgKtP9AevkaXXGS
[trxn_id] => in_1MbWJADIWplkgKtP9AevkaXXGS
[total_amount] => 52
[fee_amount] => 0.93
[is_email_receipt] =>
)
#0 /home/path/to/wordpress/wp-content/plugins/files/civicrm/extensions/com.drastikbydesign.stripe/CRM/Core/Payment/StripeIPN.php(654): CRM_Core_Payment_StripeIPN->repeatContribution()
#1 /home/path/to/wordpress/wp-content/plugins/files/civicrm/extensions/com.drastikbydesign.stripe/CRM/Core/Payment/StripeIPN.php(430): CRM_Core_Payment_StripeIPN->createNextContributionForRecur(
)
#2 /home/path/to/wordpress/wp-content/plugins/files/civicrm/extensions/com.drastikbydesign.stripe/CRM/Core/Payment/StripeIPN.php(358): CRM_Core_Payment_StripeIPN->processEventType()
#3 /home/path/to/wordpress/wp-content/plugins/files/civicrm/extensions/com.drastikbydesign.stripe/CRM/Core/Payment/StripeIPN.php(344): CRM_Core_Payment_StripeIPN->processWebhookEvent()
#4 /home/path/to/wordpress/wp-content/plugins/files/civicrm/extensions/com.drastikbydesign.stripe/CRM/Core/Payment/Stripe.php(1317): CRM_Core_Payment_StripeIPN->processQueuedWebhookEvent()
#5 /home/path/to/wordpress/wp-content/plugins/files/civicrm/extensions/mjwshared/api/v3/Job/ProcessPaymentprocessorWebhooks.php(98): CRM_Core_Payment_Stripe->processWebhookEvent()
#6 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/Civi/API/Provider/MagicFunctionProvider.php(89): civicrm_api3_job_process_paymentprocessor_webhooks()
#7 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/Civi/API/Kernel.php(149): Civi\API\Provider\MagicFunctionProvider->invoke()
#8 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/Civi/API/Kernel.php(81): Civi\API\Kernel->runRequest()
#9 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/api/api.php(22): Civi\API\Kernel->runSafe()
#10 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/CRM/Core/JobManager.php(131): civicrm_api()
#11 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/CRM/Core/JobManager.php(63): CRM_Core_JobManager->executeJob()
#12 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/api/v3/Job.php(118): CRM_Core_JobManager->execute()
#13 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/Civi/API/Provider/MagicFunctionProvider.php(89): civicrm_api3_job_execute()
#14 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/Civi/API/Kernel.php(149): Civi\API\Provider\MagicFunctionProvider->invoke()
#15 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/Civi/API/Kernel.php(81): Civi\API\Kernel->runRequest()
#16 /home/path/to/wordpress/wp-content/plugins/civicrm/civicrm/api/api.php(22): Civi\API\Kernel->runSafe()
#17 /home/path/to/wordpress/wp-content/plugins/civicrm/wp-cli/civicrm.php(201): civicrm_api()
#18 /home/path/to/wordpress/wp-content/plugins/civicrm/wp-cli/civicrm.php(152): CiviCRM_Command->api()
#19 [internal function]: CiviCRM_Command->__invoke()
#20 phar:///usr/local/bin/wp/vendor/wp-cli/wp-cli/php/WP_CLI/Dispatcher/CommandFactory.php(100): call_user_func()
#21 [internal function]: WP_CLI\Dispatcher\CommandFactory::WP_CLI\Dispatcher\{closure}()
#22 phar:///usr/local/bin/wp/vendor/wp-cli/wp-cli/php/WP_CLI/Dispatcher/Subcommand.php(491): call_user_func()
#23 phar:///usr/local/bin/wp/vendor/wp-cli/wp-cli/php/WP_CLI/Runner.php(399): WP_CLI\Dispatcher\Subcommand->invoke()
#24 phar:///usr/local/bin/wp/vendor/wp-cli/wp-cli/php/WP_CLI/Runner.php(422): WP_CLI\Runner->run_command()
#25 phar:///usr/local/bin/wp/vendor/wp-cli/wp-cli/php/WP_CLI/Runner.php(1194): WP_CLI\Runner->run_command_and_exit()
#26 phar:///usr/local/bin/wp/vendor/wp-cli/wp-cli/php/WP_CLI/Bootstrap/LaunchRunner.php(23): WP_CLI\Runner->start()
#27 phar:///usr/local/bin/wp/vendor/wp-cli/wp-cli/php/bootstrap.php(77): WP_CLI\Bootstrap\LaunchRunner->process()
#28 phar:///usr/local/bin/wp/vendor/wp-cli/wp-cli/php/wp-cli.php(27): WP_CLI\bootstrap()
#29 phar:///usr/local/bin/wp/php/boot-phar.php(11): include('phar:///usr/loc...')
#30 /usr/local/bin/wp(4): include('phar:///usr/loc...')
#31 {main}
```https://lab.civicrm.org/extensions/stripe/-/issues/432Support for MOTO Transactions2023-10-02T14:23:43ZTony Maynard-SmithSupport for MOTO TransactionsDoes this Extension support Stripe MOTO (Mail Order Telephone Orders) transactions, and if so is there any particular configuration required?
We are using Stripe for online payments without problems (CiviCRM 5.60, Stripe 6.8.2). If we...Does this Extension support Stripe MOTO (Mail Order Telephone Orders) transactions, and if so is there any particular configuration required?
We are using Stripe for online payments without problems (CiviCRM 5.60, Stripe 6.8.2). If we take a member's card details over the phone and our administrator carries out the transaction on the member's behalf, it frequently pops up with the bank's additional authorisation dialog requesting a one-time authorisation code. This code is then sent to the member with a warning not to tell anyone else about it, which can cause some difficulties.
We applied to Stripe for MOTO transactions to be enabled on our account, which has been done, but the same situation occurs. Stripe Support advises that the fact that this card is a MOTO transaction needs to be reported to Stripe when creating the PaymentIntent object on the API, see [https://stripe.com/docs/payments/payment-intents/moto], and the following clip:
![image](/uploads/130f6158b85025f0911ce75c1c56e1a8/image.png)
Does the Stripe Extension support this, since I can't see any UI mechanism or configuration options that might be relevant.https://lab.civicrm.org/extensions/stripe/-/issues/441Adding JQuery functions in Theme breaks Stripe: Error Unable to complete pay...2023-10-02T14:23:28Zdarren.woodsAdding JQuery functions in Theme breaks Stripe: Error Unable to complete payment! Missing paymentIntentID.We have added some JQuery code to a Drupal 9 theme and if we change the form in anyway, even just adding and removing classes to the "Confirm" button, the payment is not completed.
Example code below:-
```
CRM.$(function($) {
$("#_qf_...We have added some JQuery code to a Drupal 9 theme and if we change the form in anyway, even just adding and removing classes to the "Confirm" button, the payment is not completed.
Example code below:-
```
CRM.$(function($) {
$("#_qf_Main_upload-bottom").removeClass().addClass("btn btn-success");
});
```
I appreciate the above could be achieved through CSS but it's just an example of what is breaking the form.
Thanks in advance for any help or advice!https://lab.civicrm.org/extensions/stripe/-/issues/392Cardholder validation only works for recurring payments2023-10-02T14:21:05ZtcmallocCardholder validation only works for recurring paymentsWhen trying to make a donation, cardholder verification will not happen unless a recurring payment is being set up.
Specifically, for non-recurring payments, it will show that it is pre-approving, and then will fail if the bank requires...When trying to make a donation, cardholder verification will not happen unless a recurring payment is being set up.
Specifically, for non-recurring payments, it will show that it is pre-approving, and then will fail if the bank requires validation.
![image](/uploads/f180daaa192a23a6261c552a32a26e76/image.png)
For recurring payments, the validation window (specifically the mastercard id check in my case) will (eventually) show and the transaction can be completed.
This means that for most users in UK, non-recurring payments will always fail.https://lab.civicrm.org/extensions/stripe/-/issues/391PHP Fatal error: Uncaught TypeError: CRM_Core_Payment_Stripe::getFeeFromBala...2023-10-02T14:20:58ZBradley TaylorPHP Fatal error: Uncaught TypeError: CRM_Core_Payment_Stripe::getFeeFromBalanceTransaction(): Argument #1 ($balanceTransactionID) must be of type string, null givenI'm seeing this error in the logs, which I think is coming from a Stripe webhook:
```
PHP Fatal error: Uncaught TypeError: CRM_Core_Payment_Stripe::getFeeFromBalanceTransaction(): Argument #1 ($balanceTransactionID) must be of type str...I'm seeing this error in the logs, which I think is coming from a Stripe webhook:
```
PHP Fatal error: Uncaught TypeError: CRM_Core_Payment_Stripe::getFeeFromBalanceTransaction(): Argument #1 ($balanceTransactionID) must be of type string, null given
```
I've not worked out if this is because we're doing something odd in the given installation, or if it's because we're running PHP 8. As far as I can tell it's not causing too much harm, but it's a bit concerning all the same.https://lab.civicrm.org/extensions/stripe/-/issues/381Provide ability to disable the "Card pre-authorization" workflow2023-10-02T14:20:51Zjustinfreeman (Agileware)Provide ability to disable the "Card pre-authorization" workflowIt would be good if we could have the ability to disable the "Card pre-authorization" workflow. As this is causing issues with:
1. events for multiple participants, https://lab.civicrm.org/extensions/stripe/-/issues/372
2. CiviCRM roundi...It would be good if we could have the ability to disable the "Card pre-authorization" workflow. As this is causing issues with:
1. events for multiple participants, https://lab.civicrm.org/extensions/stripe/-/issues/372
2. CiviCRM rounding errors, https://lab.civicrm.org/dev/core/-/issues/3714
These issues could be resolved by simply removing this "Card pre-authorization" step of the payment workflow.https://lab.civicrm.org/extensions/stripe/-/issues/384Payments with a future date taken by Stripe but not recorded in Civi2023-10-02T14:20:16ZkonadavePayments with a future date taken by Stripe but not recorded in CiviSet up a basic contribution page with a pledge block, adjusting the recurring start date to a date in the future. Then make a test pledge with this page. There will be a contribution, a recurring contribution, and a pledge all with statu...Set up a basic contribution page with a pledge block, adjusting the recurring start date to a date in the future. Then make a test pledge with this page. There will be a contribution, a recurring contribution, and a pledge all with status pending.
On the future date, Stripe will dutifully process the payment and notify Civi...
`StripeIPN::processEventType()` -> `case 'invoice.payment_succeeded'` -> `createNextContributionForRecur()` -> `repeatContribution()` -> `api.Contribution.repeattransaction`
...and fail because `repeattransaction` is looking for a completed contribution that doesn't exist.
```php
function hook_civicrm_webhook_eventNotMatched($type, $object, $code, &$result) {
if ($type == 'stripe' && $code == 'contribution_not_found') {
try {
$crid = $object->getContributionRecurID();
$result['contribution'] = civicrm_api3('Contribution', 'getsingle', [
'contribution_status_id' => ['IN' => ['Pending']],
'contribution_recur_id' => $crid,
'contribution_test' => CRM_Core_DAO::getFieldValue('CRM_Contribute_DAO_ContributionRecur', $crid, 'is_test'),
'options' => ['limit' => 1, 'sort' => 'id DESC'],
]);
}
catch (CiviCRM_API3_Exception $e) {}
}
}
```
This solves for client, but feel like it actually belongs in `StripeIPN::getContribution()`.https://lab.civicrm.org/extensions/stripe/-/issues/382Refunds made are no longer showing as refunded status on Civi.2023-10-02T14:20:04ZalexdRefunds made are no longer showing as refunded status on Civi.Until May, whenever a full refund is made on Stripe, it updates the contribution made on Civi and changes the status to refunded. (pic 1)
![pic_1](/uploads/9002a7698658b7aa5482d207d8ce1562/pic_1.jpg)
Whenever a partial refund is made, t...Until May, whenever a full refund is made on Stripe, it updates the contribution made on Civi and changes the status to refunded. (pic 1)
![pic_1](/uploads/9002a7698658b7aa5482d207d8ce1562/pic_1.jpg)
Whenever a partial refund is made, the contribution is recorded however the status remains as completed. (pic 2)
![pic_2](/uploads/e7864d6ccf80290791cf6ee13e7d9128/pic_2.jpg)
Currently, neither a full or partial refund is recorded on civi at all. (pic 3)
![pic_3](/uploads/1350a3117c061eb3192b464c348fe971/pic_3.jpg)
Please can you advise @mattwire?
Many thanks.https://lab.civicrm.org/extensions/stripe/-/issues/378Hitting enter key with focus on Stripe element has unexpected behaviour.2023-10-02T14:19:59ZBradley TaylorHitting enter key with focus on Stripe element has unexpected behaviour.**Steps to reproduce**
1. Go to a CiviCRM form containing a Stripe form (for example, an event booking form, a contribution form)
2. Fill out any non-Stripe fields
3. Fill out the card number, but not the CVV or expiry fields.
4. With y...**Steps to reproduce**
1. Go to a CiviCRM form containing a Stripe form (for example, an event booking form, a contribution form)
2. Fill out any non-Stripe fields
3. Fill out the card number, but not the CVV or expiry fields.
4. With your focus still on the Stripe card number field hit the enter key.
**Expected behaviour**
An error message should be shown. (i.e. the behaviour which does happen if you click the submit button)
**Actual behaviour**
The form submits (i.e. a page reload) but the form is not processed on the server correctly. If logged in, the error message "Unable to complete payment! Missing paymentIntentID." may be shown. If logged out the most frequent behaviour seems to be that the user is redirected to the homepage, but this varies.
**Environment**
This can be reproduced on any CiviCRM form using the Stripe payment method. I've not tested on Drupal Webforms.
To check this isn't just happening in my environment I reproduced this on https://civicrm.org/civicrm/contribute/transact?reset=1&id=47. However, I'm not sure if this will have left a pending (unpaid) contribution in the database, so I'd be wary about trying this repeatedly on a non-test environment.
**Technical notes**
It looks like Stripe is triggering the submit event on the parent form, and expecting the parent page to catch it. However, the Stripe extension (com.drastikbydesign.stripe/js/civicrm_stripe.js) does not have an event listener on the form's `submit` event.
Currently the Stripe extension has:
```
CRM.payment.submitButtons[i].addEventListener('click', submitButtonClick);
...
CRM.payment.form.addEventListener('keydown', function (keydownEvent) {
if (keydownEvent.code === 'Enter') {
CRM.payment.addDrupalWebformActionElement(this.value);
script.submit(keydownEvent);
}
});
```
It feels like these should be augmented or replaced by a `CRM.payment.form.addEventListener('submit', ...)`. I have confirmed that when the submit occurs the submit event is fired.https://lab.civicrm.org/extensions/stripe/-/issues/247UX issue with Post Code (aka Zip)2023-10-02T14:19:45ZlsmithgoUX issue with Post Code (aka Zip)When a user works through an Event Registration form, they come to the payment details and the Stripe.js generated box prompts for Card Number, MM / YY and CVC
But then the Postcode is also added as an extra field which is not always ob...When a user works through an Event Registration form, they come to the payment details and the Stripe.js generated box prompts for Card Number, MM / YY and CVC
But then the Postcode is also added as an extra field which is not always obvious
They then continue through the payment form, including entering their full Billing address
When they 'Submit', an error message appears "Your postal code is incomplete". The screen focus jumps to the Billing Address where the user can see their Postcode! However, the post code is needed higher up the screen, which is not at all obvious.
You can test this behaviour on my site here:
https://breinton.com/component/civicrm/?task=civicrm/event/register&reset=1&id=130https://lab.civicrm.org/extensions/stripe/-/issues/314Customize Subscription Product Name2023-10-02T14:19:37Zrichlivi-ciCustomize Subscription Product NameAll recurring contributions in CiviCRM are given the following product name in Stripe: "CiviCRM every X time_period $amount"--as in the following image:
![image](/uploads/e919f40a594360277215a6ec416bd038/image.png)
That same product nam...All recurring contributions in CiviCRM are given the following product name in Stripe: "CiviCRM every X time_period $amount"--as in the following image:
![image](/uploads/e919f40a594360277215a6ec416bd038/image.png)
That same product name is listed on all receipts and invoices for subscriptions. Some of the contributions are for donations, and some are for memberships, but the product name doesn't make it clear which. It is possible to customize the product name to indicate what kind of contribution it is, that is, replace "CiviCRM" with "Donation" or "Membership"? So the product name would end up being "Donation every X time_period $amount" or "Membership fee every X time_period $amount" depending on the type of contribution.
Is there a setting a simple modification that would enable this?https://lab.civicrm.org/extensions/stripe/-/issues/122Recurring contribution receipt email not sent from civicrm2023-10-02T14:19:27ZtapashRecurring contribution receipt email not sent from civicrmWhen a customer creates a sunscription via a contribution page, although payment was successful, no receipt was sent.When a customer creates a sunscription via a contribution page, although payment was successful, no receipt was sent.6.4https://lab.civicrm.org/extensions/stripe/-/issues/290Recurring contribution with webform_civicrm generates an error2023-10-02T14:19:16ZrichardsplaygroundRecurring contribution with webform_civicrm generates an errorThis issue was reported in https://lab.civicrm.org/extensions/stripe/-/issues/113 but since that issue was closed I'm opening a new one to report that the behaviour is still happening with newer versions of software. If this is not the ...This issue was reported in https://lab.civicrm.org/extensions/stripe/-/issues/113 but since that issue was closed I'm opening a new one to report that the behaviour is still happening with newer versions of software. If this is not the right thing to do feel free to close this issue.
When creating a recurring contribution with webform_civicrm, the webform can be configured with no problems. When a user tries to submit a contribution:
* the error "Unable to complete payment! Missing paymentMethodID." is shown
* the user's browser is directed to civicrm's contribution dashboard (maybe that's just because I'm an admin user)
* Stripe records the creation of a payment intent and an uncaptured payment but does not actually complete the charge
* CiviCRM shows a recurring contribution record that is left in the pending / incomplete charge state. The contribution record shows no payments.
We are using:
- Drupal 7.69
- Civi 5.26.2
- CiviCRM Stripe 6.54
- MJW Shared 0.9.9
- Webform_CiviCRM 7.x-5.4
Note that we have other non-recurring contributions done with webforms that do work fine, although they toss warnings but they don't spit out the "Unable to complete payment! Missing paymentMethodID." error
Log entries:
```
[warning] Civi\Payment\PropertyBag related deprecation warnings:
We have merged input params into the property bag for now but please rewrite code to not use this.
Unknown property 'receive_date'. We have merged this in for now as a custom property. Please rewrite your code to use PropertyBag->setCustomProperty if it is a genuinely custom property, or a standardised setter like PropertyBag->setContactID for standard properties
Unknown property 'skipLineItem'. We have merged this in for now as a custom property. Please rewrite your code to use PropertyBag->setCustomProperty if it is a genuinely custom property, or a standardised setter like PropertyBag->setContactID for standard properties
Unknown property 'contribution_page_id'. We have merged this in for now as a custom property. Please rewrite your code to use PropertyBag->setCustomProperty if it is a genuinely custom property, or a standardised setter like PropertyBag->setContactID for standard properties
Unknown property 'payment_processor_id'. We have merged this in for now as a custom property. Please rewrite your code to use PropertyBag->setCustomProperty if it is a genuinely custom property, or a standardised setter like PropertyBag->setContactID for standard properties
Unknown property 'is_test'. We have merged this in for now as a custom property. Please rewrite your code to use PropertyBag->setCustomProperty if it is a genuinely custom property, or a standardised setter like PropertyBag->setContactID for standard properties
We have translated 'frequency_unit' to 'recurFrequencyUnit' for you, but please update your code to use the propper setters and getters.
Unknown property 'total_amount'. We have merged this in for now as a custom property. Please rewrite your code to use PropertyBag->setCustomProperty if it is a genuinely custom property, or a standardised setter like PropertyBag->setContactID for standard properties
Unknown property 'financial_type_id'. We have merged this in for now as a custom property. Please rewrite your code to use PropertyBag->setCustomProperty if it is a genuinely custom property, or a standardised setter like PropertyBag->setContactID for standard properties
We have translated 'currencyID' to 'currency' for you, but please update your code to use the propper setters and getters.
Unknown property 'skipRecentView'. We have merged this in for now as a custom property. Please rewrite your code to use PropertyBag->setCustomProperty if it is a genuinely custom property, or a standardised setter like PropertyBag->setContactID for standard properties
We have translated 'contact_id' to 'contactID' for you, but please update your code to use the propper setters and getters.
We have translated 'invoice_id' to 'invoiceID' for you, but please update your code to use the propper setters and getters.
Unknown property 'tax_amount'. We have merged this in for now as a custom property. Please rewrite your code to use PropertyBag->setCustomProperty if it is a genuinely custom property, or a standardised setter like PropertyBag->setContactID for standard properties
Unknown property 'source'. We have merged this in for now as a custom property. Please rewrite your code to use PropertyBag->setCustomProperty if it is a genuinely custom property, or a standardised setter like PropertyBag->setContactID for standard properties
Unknown property 'financialType_name'. We have merged this in for now as a custom property. Please rewrite your code to use PropertyBag->setCustomProperty if it is a genuinely custom property, or a standardised setter like PropertyBag->setContactID for standard properties
Unknown property 'financialTypeID'. We have merged this in for now as a custom property. Please rewrite your code to use PropertyBag->setCustomProperty if it is a genuinely custom property, or a standardised setter like PropertyBag->setContactID for standard properties
Unknown property 'non_deductible_amount'. We have merged this in for now as a custom property. Please rewrite your code to use PropertyBag->setCustomProperty if it is a genuinely custom property, or a standardised setter like PropertyBag->setContactID for standard properties
Unknown property 'submitted'. We have merged this in for now as a custom property. Please rewrite your code to use PropertyBag->setCustomProperty if it is a genuinely custom property, or a standardised setter like PropertyBag->setContactID for standard properties
Unknown property 'hidden_processor'. We have merged this in for now as a custom property. Please rewrite your code to use PropertyBag->setCustomProperty if it is a genuinely custom property, or a standardised setter like PropertyBag->setContactID for standard properties
Unknown property 'details'. We have merged this in for now as a custom property. Please rewrite your code to use PropertyBag->setCustomProperty if it is a genuinely custom property, or a standardised setter like PropertyBag->setContactID for standard properties
Unknown property 'form_build_id'. We have merged this in for now as a custom property. Please rewrite your code to use PropertyBag->setCustomProperty if it is a genuinely custom property, or a standardised setter like PropertyBag->setContactID for standard properties
Unknown property 'form_token'. We have merged this in for now as a custom property. Please rewrite your code to use PropertyBag->setCustomProperty if it is a genuinely custom property, or a standardised setter like PropertyBag->setContactID for standard properties
Unknown property 'form_id'. We have merged this in for now as a custom property. Please rewrite your code to use PropertyBag->setCustomProperty if it is a genuinely custom property, or a standardised setter like PropertyBag->setContactID for standard properties
Unknown property 'op'. We have merged this in for now as a custom property. Please rewrite your code to use PropertyBag->setCustomProperty if it is a genuinely custom property, or a standardised setter like PropertyBag->setContactID for standard properties
Unknown property 'paymentIntentID'. We have merged this in for now as a custom property. Please rewrite your code to use PropertyBag->setCustomProperty if it is a genuinely custom property, or a standardised setter like PropertyBag->setContactID for standard properties
Unknown property 'payment_instrument_id'. We have merged this in for now as a custom property. Please rewrite your code to use PropertyBag->setCustomProperty if it is a genuinely custom property, or a standardised setter like PropertyBag->setContactID for standard properties
Unknown property 'payment_processor'. We have merged this in for now as a custom property. Please rewrite your code to use PropertyBag->setCustomProperty if it is a genuinely custom property, or a standardised setter like PropertyBag->setContactID for standard properties
We have translated 'contribution_recur_id' to 'contributionRecurID' for you, but please update your code to use the propper setters and getters.
We have translated 'is_recur' to 'isRecur' for you, but please update your code to use the propper setters and getters.
We have translated 'frequency_interval' to 'recurFrequencyInterval' for you, but please update your code to use the propper setters and getters.
Unknown property 'check_permissions'. We have merged this in for now as a custom property. Please rewrite your code to use PropertyBag->setCustomProperty if it is a genuinely custom property, or a standardised setter like PropertyBag->setContactID for standard properties
Unknown property 'version'. We have merged this in for now as a custom property. Please rewrite your code to use PropertyBag->setCustomProperty if it is a genuinely custom property, or a standardised setter like PropertyBag->setContactID for standard properties
Unknown property 'contribution_status_id'. We have merged this in for now as a custom property. Please rewrite your code to use PropertyBag->setCustomProperty if it is a genuinely custom property, or a standardised setter like PropertyBag->setContactID for standard properties
We have translated 'contribution_id' to 'contributionID' for you, but please update your code to use the propper setters and getters.
Unknown property 'amount'. We have merged this in for now as a custom property. Please rewrite your code to use PropertyBag->setCustomProperty if it is a genuinely custom property, or a standardised setter like PropertyBag->setContactID for standard properties
Array
(
[civi.tag] => deprecated
)
```
```
[debug] paymentMethodID not found. $params: Civi\Payment\PropertyBag Object
(
[props:protected] => Array
(
[default] => Array
(
[receive_date] => 20210113231448
[skipLineItem] => 1
[email] => richard@societyoftheguardiansoftheflame.com
[contribution_page_id] => 6
[payment_processor_id] => 7
[is_test] => 0
[recurFrequencyUnit] => month
[total_amount] => 1
[financial_type_id] => 1
[currency] => USD
[skipRecentView] => 1
[contactID] => 5
[invoiceID] => 5b42c1397a949952beb18f52f3b715a1
[tax_amount] => 0
[description] => Webform Payment: Become a Foundation Guardian
[source] => Become a Foundation Guardian
[financialType_name] => Donation
[financialTypeID] => 1
[non_deductible_amount] => 0
[submitted] => Array
(
[civicrm_1_contact_1_contact_existing] => 5
[civicrm_1_membership_1_membership_membership_type_id] => 6
[civicrm_1_contribution_1_contribution_total_amount] => 1
[civicrm_1_contribution_1_contribution_contribution_page_id] => 6
)
[hidden_processor] => 1
[details] => Array
(
[sid] =>
[page_num] => 1
[page_count] => 1
[finished] => 0
)
[form_build_id] => form-kROpI025evPH9r2SaQZSXOclGYAYF9aTua3u3KVigoI
[form_token] => XXX
[form_id] => webform_client_form_318
[op] => Submit
[paymentIntentID] => pi_1I9Q2bGJ0NOiXXX
[payment_instrument_id] => 1
[payment_processor] => 7
[contributionRecurID] => 11
[isRecur] => 1
[recurFrequencyInterval] => 1
[check_permissions] =>
[version] => 3
[contribution_status_id] => Pending
[contributionID] => 2852
[amount] => 1
[error_url] =>
[paymentMethodID] =>
)
)
[lastWarning] => Unknown property 'amount'. We have merged this in for now as a custom property. Please rewrite your code to use PropertyBag->setCustomProperty if it is a genuinely custom property, or a standardised setter like PropertyBag->setContactID for standard properties
)
```
```
[warning] Deprecated function ::civicrm_api3_contribution_transact, use The contibution.transact api is unsupported.
You are using the contributiontransactlegacy extension to work around this - please see the section
at the bottom of https://docs.civicrm.org/dev/en/latest/financial/orderAPI/ to fix properly..
Array
(
[civi.tag] => deprecated
)
```https://lab.civicrm.org/extensions/stripe/-/issues/284Credit Account Type set to AR on recurring donations2023-10-02T14:19:04ZlarynCredit Account Type set to AR on recurring donationsOn a Drupal 7 site I am seeing something that seems strange. Regular (one-time) contributions on a core contribution page seem to be coming in categorized as "INC" (Income) for the Credit Account Type, as expected. However recurring cont...On a Drupal 7 site I am seeing something that seems strange. Regular (one-time) contributions on a core contribution page seem to be coming in categorized as "INC" (Income) for the Credit Account Type, as expected. However recurring contributions are being categorized as "AR" (Accounts Receivable). When an accounting batch is exported, these designations end up pointing to different accounts in the CSV file.
Is this intentional or should the recurring payments also be designated as INC? I **think** they used to be but at some point in the relatively recent past this changed.