Stripe issueshttps://lab.civicrm.org/extensions/stripe/-/issues2019-09-13T09:32:45Zhttps://lab.civicrm.org/extensions/stripe/-/issues/52Is Stripe extension require to be PSD2 Compliant?2019-09-13T09:32:45ZtapashIs Stripe extension require to be PSD2 Compliant?WE are currently using paypal pro for online & back-office card processing. But due to the latest issue cameup with paypal of being PSD2 compliant and not seeing much of a progress on that extension we are considering to switch to stripe...WE are currently using paypal pro for online & back-office card processing. But due to the latest issue cameup with paypal of being PSD2 compliant and not seeing much of a progress on that extension we are considering to switch to stripe. Now my concern, is Stripe requires to be anything like paypal? Also can we accept payment in back-office on CiviCRM using Stripe extension? Thanks6.0https://lab.civicrm.org/extensions/stripe/-/issues/33Stripe Token failure2023-06-29T20:02:26ZeliotmasonStripe Token failureI'm getting this problem simultaneously across two clients, one an existing stripe installation that was working until a week ago and a new install of stripe. Both sites are using v5.2 of this extension. One install is running CiviCRM ...I'm getting this problem simultaneously across two clients, one an existing stripe installation that was working until a week ago and a new install of stripe. Both sites are using v5.2 of this extension. One install is running CiviCRM 5.9.0 and the other 5.5.3.
An error message is returned about not having a stripe token. Going right to the source, Stripe says this is the request:
{
"description": "Mr. Bill William , OhNo (CiviCRM)",
"card": "Stripe Token",
"email": "mrbill@mercurymotos.com",
"metadata": {
"civicrm_contact_id": "31360"
}
}
and the response (oops - edited from previous):
{
"error": {
"code": "resource_missing",
"doc_url": "https://stripe.com/docs/error-codes/resource-missing",
"message": "No such token: Stripe Token",
"param": "card",
"type": "invalid_request_error"
}
}
This is occurring across both live and test credentials (yes, checked the keys multiple times. Even tried reversing the test keys since the UX inexplicably hides the public key and shows the private key. Stripe didn't play along and called me out for not using a secret key).
Any suggestions to sidestep this problem or help you identify the cause?https://lab.civicrm.org/extensions/stripe/-/issues/30Billing section not displaying for paid events2023-06-29T20:02:25ZhfarooqBilling section not displaying for paid eventsCiviCRM: 5.6.1
Drupal: 7.59
Stripe extension: 5.2
For contributions, stripe integration is working fine but for paid events, billing section do not shows up when amount is selected.CiviCRM: 5.6.1
Drupal: 7.59
Stripe extension: 5.2
For contributions, stripe integration is working fine but for paid events, billing section do not shows up when amount is selected.https://lab.civicrm.org/extensions/stripe/-/issues/27Support a numeric CC month expiry date format2023-06-29T20:02:25ZbgmSupport a numeric CC month expiry date formatCiviCRM defaults to a credit card format that is 'M/Y', where M is the month name, rather than number.
I have always used 'm/Y', because (at least in Canada, but I suspect most other places), we always dictate the expiration date in the...CiviCRM defaults to a credit card format that is 'M/Y', where M is the month name, rather than number.
I have always used 'm/Y', because (at least in Canada, but I suspect most other places), we always dictate the expiration date in the same way it's written on the card, which is in numeric form. Ex: '01/2038', not 'Jan/2038'.
To reproduce, change the `creditCard` setting under : `/civicrm/admin/setting/preferences/date?action=reset=1` to `m Y`.
I have been applying this patch for a long time, but I don't know what could be a clean patch that would support both date formats.
```
diff --git a/vendor/civicrm/stripe/js/civicrm_stripe.js b/vendor/civicrm/stripe/js/civicrm_stripe.js
index f520c0da..644eaa03 100644
--- a/vendor/civicrm/stripe/js/civicrm_stripe.js
+++ b/vendor/civicrm/stripe/js/civicrm_stripe.js
@@ -314,7 +314,7 @@ CRM.$(function($) {
// Disable the submit button to prevent repeated clicks
$submit.prop('disabled', true);
- var cc_month = $form.find('#credit_card_exp_date_M').val();
+ var cc_month = $form.find('#credit_card_exp_date_m').val();
var cc_year = $form.find('#credit_card_exp_date_Y').val();
Stripe.card.createToken({
```
Any thoughts?
Worst case, something like this would work, but it's not very clean:
```
var cc_year = $form.find('#credit_card_exp_date_Y').val();
var cc_month = null;
if ($form.find('#credit_card_exp_date_m').size() > 0) {
cc_month = $form.find('#credit_card_exp_date_m').val();
}
else {
cc_month = $form.find('#credit_card_exp_date_M').val();
}
```6.0https://lab.civicrm.org/extensions/stripe/-/issues/6Leave Page Alert2023-06-29T20:02:23ZbenbachrachLeave Page AlertWith Stripe extension 5.0 installed on a WordPress site running the latest versions of Wordpress and CiviCRM I have the following problem
when the Contribution Page does not have the option for a Confirmation Page selected but has both...With Stripe extension 5.0 installed on a WordPress site running the latest versions of Wordpress and CiviCRM I have the following problem
when the Contribution Page does not have the option for a Confirmation Page selected but has both Stripe and Paypal as a payment option.
When the user has the option of using a Credit Card (thru Stripe) or Paypal, selecting Paypal and clicking Contribute generates a javascript alert "Leave Page - your entries maybe lost ... ". If I have Facebook Pixel Code installed in the header of the page, then I do not get that warning, but the user has to click the Contribute button twice for it to process. Any suggestions are welcome.
There are also problems when using the option for a Confirmation Page is selected but I will report on that at a later date.5.2https://lab.civicrm.org/extensions/stripe/-/issues/472Merchant code settings2024-03-28T20:07:02ZlcarterMerchant code settingsA client has asked about merchant category codes (see https://stripe.com/docs/connect/setting-mcc#mcc-automatic for documentation)... apparently their trxns are coming across as retail even though their code in Stripe is set to College/U...A client has asked about merchant category codes (see https://stripe.com/docs/connect/setting-mcc#mcc-automatic for documentation)... apparently their trxns are coming across as retail even though their code in Stripe is set to College/University. Is this something that's configurable in CiviCRM or is this solely controlled in Stripe itself?https://lab.civicrm.org/extensions/stripe/-/issues/464Recurring payments made via stripe checkout are not properly updated2024-03-05T21:58:56ZjamieRecurring payments made via stripe checkout are not properly updatedWhen a recurring payment is created using stripe checkout, I get the following in the `civicrm_paymentprocessor_webhook` table:
```
MySQL > select id, created_date, processed_date, status,message from civicrm_paymentprocessor_webhook wh...When a recurring payment is created using stripe checkout, I get the following in the `civicrm_paymentprocessor_webhook` table:
```
MySQL > select id, created_date, processed_date, status,message from civicrm_paymentprocessor_webhook where id between 51196 and 51201 order by processed_date ;
+-------+---------------------+---------------------+---------+--------------------------------------------------------------------------------+
| id | created_date | processed_date | status | message |
+-------+---------------------+---------------------+---------+--------------------------------------------------------------------------------+
| 51197 | 2023-12-14 20:32:02 | 2023-12-14 20:32:02 | success | doCustomerSubscriptionUpdated: ignoring - not implemented |
| 51200 | 2023-12-14 20:32:03 | 2023-12-14 20:32:03 | success | doInvoicePaid: No contributionRecur record found in CiviCRM. Ignored |
| 51199 | 2023-12-14 20:32:03 | 2023-12-14 20:32:03 | success | doInvoicePaid: No contributionRecur record found in CiviCRM. Ignored |
| 51201 | 2023-12-14 20:32:03 | 2023-12-14 20:32:04 | success | doCheckoutSessionCompleted: charge.succeeded flagged for re-process. coid:1750 |
| 51196 | 2023-12-14 20:32:01 | 2023-12-14 20:45:23 | success | doChargeSucceeded: ignoring - contribution has recur |
| 51198 | 2023-12-14 20:32:02 | 2023-12-14 20:45:23 | success | doInvoiceFinalized: . coid:1750 |
+-------+---------------------+---------------------+---------+--------------------------------------------------------------------------------+
```
The `doCheckoutSessionCompleted` has a comment about how `charge.succeeded` might arrive before `checkout.session.completed` so it should be flagged for re-process. But, when it's a recurring contribution, it should be invoice.paid that should be flagged for re-process instead, because charge.succeeded ignores recurring contributions.
@mattwire I can submit a MR if you think this makes sense. Thanks!https://lab.civicrm.org/extensions/stripe/-/issues/460Stripe 6.10.1 causes fatal error due to unset MOTO setting2023-11-30T17:03:27ZbrienneStripe 6.10.1 causes fatal error due to unset MOTO setting**Overview**
In Stripe 6.10.1, a fatal error is thrown when visiting a front end payment page while the user is logged in.
This error is triggered because the 'Enable Mail Order Telephone Order' setting is not set (the code expects an ar...**Overview**
In Stripe 6.10.1, a fatal error is thrown when visiting a front end payment page while the user is logged in.
This error is triggered because the 'Enable Mail Order Telephone Order' setting is not set (the code expects an array), so either the upgrade should set a value for this setting or the code should handle this value being empty.
**Replication Steps**
1. Upgrade Stripe to 6.10.1.
1. Visit a front end page where the payment widget is present (i.e. contribution page) while logged in
* Note that this does not happen if you go to the same page on a private/incognito browser, i.e. while not logged in.
1. Encounter the following TypeError
```
TypeError: in_array(): Argument #2 ($haystack) must be of type array, bool given in in_array() (line 471 of /var/www/mysite.org/web/sites/all/civicrm-custom/extensions/stripe/CRM/Core/Payment/Stripe.php)
#0 /var/www/mysite.org/web/sites/all/civicrm-custom/extensions/stripe/CRM/Core/Payment/Stripe.php(471): in_array()
#1 /var/www/mysite.org/vendor/civicrm/civicrm-core/CRM/Core/Payment/Form.php(216): CRM_Core_Payment_Stripe->buildForm()
#2 /var/www/mysite.org/vendor/civicrm/civicrm-core/CRM/Core/Payment/ProcessorForm.php(141): CRM_Core_Payment_Form::buildPaymentForm()
#3 /var/www/mysite.org/vendor/civicrm/civicrm-core/CRM/Contribute/Form/Contribution/Main.php(298): CRM_Core_Payment_ProcessorForm::buildQuickForm()
#4 /var/www/mysite.org/vendor/civicrm/civicrm-core/CRM/Core/Form.php(730): CRM_Contribute_Form_Contribution_Main->buildQuickForm()
#5 /var/www/mysite.org/vendor/civicrm/civicrm-core/CRM/Core/QuickForm/Action/Display.php(76): CRM_Core_Form->buildForm()
#6 /var/www/mysite.org/vendor/civicrm/civicrm-packages/HTML/QuickForm/Controller.php(203): CRM_Core_QuickForm_Action_Display->perform()
#7 /var/www/mysite.org/vendor/civicrm/civicrm-packages/HTML/QuickForm/Page.php(103): HTML_QuickForm_Controller->handle()
#8 /var/www/mysite.org/vendor/civicrm/civicrm-core/CRM/Core/Controller.php(355): HTML_QuickForm_Page->handle()
#9 /var/www/mysite.org/vendor/civicrm/civicrm-core/CRM/Core/Invoke.php(322): CRM_Core_Controller->run()
#10 /var/www/mysite.org/vendor/civicrm/civicrm-core/CRM/Core/Invoke.php(69): CRM_Core_Invoke::runItem()
#11 /var/www/mysite.org/vendor/civicrm/civicrm-core/CRM/Core/Invoke.php(36): CRM_Core_Invoke::_invoke()
#12 /var/www/mysite.org/web/modules/contrib/civicrm/src/Civicrm.php(88): CRM_Core_Invoke::invoke()
#13 /var/www/mysite.org/web/modules/contrib/civicrm/src/Controller/CivicrmController.php(83): Drupal\civicrm\Civicrm->invoke()
#14 [internal function]: Drupal\civicrm\Controller\CivicrmController->main()
#15 /var/www/mysite.org/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(123): call_user_func_array()
#16 /var/www/mysite.org/web/core/lib/Drupal/Core/Render/Renderer.php(580): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}()
#17 /var/www/mysite.org/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(124): Drupal\Core\Render\Renderer->executeInRenderContext()
#18 /var/www/mysite.org/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(97): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->wrapControllerExecutionInRenderContext()
#19 /var/www/mysite.org/vendor/symfony/http-kernel/HttpKernel.php(169): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}()
#20 /var/www/mysite.org/vendor/symfony/http-kernel/HttpKernel.php(81): Symfony\Component\HttpKernel\HttpKernel->handleRaw()
#21 /var/www/mysite.org/web/core/lib/Drupal/Core/StackMiddleware/Session.php(58): Symfony\Component\HttpKernel\HttpKernel->handle()
#22 /var/www/mysite.org/web/core/lib/Drupal/Core/StackMiddleware/KernelPreHandle.php(48): Drupal\Core\StackMiddleware\Session->handle()
#23 /var/www/mysite.org/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(106): Drupal\Core\StackMiddleware\KernelPreHandle->handle()
#24 /var/www/mysite.org/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(85): Drupal\page_cache\StackMiddleware\PageCache->pass()
#25 /var/www/mysite.org/web/core/lib/Drupal/Core/StackMiddleware/ReverseProxyMiddleware.php(48): Drupal\page_cache\StackMiddleware\PageCache->handle()
#26 /var/www/mysite.org/web/core/lib/Drupal/Core/StackMiddleware/NegotiationMiddleware.php(51): Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle()
#27 /var/www/mysite.org/vendor/stack/builder/src/Stack/StackedHttpKernel.php(23): Drupal\Core\StackMiddleware\NegotiationMiddleware->handle()
#28 /var/www/mysite.org/web/core/lib/Drupal/Core/DrupalKernel.php(718): Stack\StackedHttpKernel->handle()
#29 /var/www/mysite.org/web/index.php(19): Drupal\Core\DrupalKernel->handle()
#30 {main}
```6.10https://lab.civicrm.org/extensions/stripe/-/issues/458Remove 'Save with Link' button2023-11-29T20:40:27ZBruce ThompsonRemove 'Save with Link' buttonWe are trying to remove the 'Save with Link' button from the Stripe entry area. It shows after all the card info is submitted and if clicked it generates a pop-up asking the user to login or create an account to save their payment info f...We are trying to remove the 'Save with Link' button from the Stripe entry area. It shows after all the card info is submitted and if clicked it generates a pop-up asking the user to login or create an account to save their payment info for further use. It is causing some confusion for users and we want to just not offer the option. We went into the Stripe Dashboard and disabled the 'Link' option for checkout but the button still shows. Is there something else we need to do?
CiviCRM v5.64.4, Stripe Extension v6.10, Payment Shared Extension v1.2.17
WordPress CMS
Thanks6.10https://lab.civicrm.org/extensions/stripe/-/issues/457Payment Processor ID change and webhook2023-11-06T17:39:13ZbrianpPayment Processor ID change and webhookRecurring payments are processing correctly on Stripe and showing as successfully posting back to CiviCRM, but the webhook is returning this error:
Event (evt_1O89ZeAa1SNaJ0Pdoly6Dt8n) is not for this payment processor - ignoring. CiviC...Recurring payments are processing correctly on Stripe and showing as successfully posting back to CiviCRM, but the webhook is returning this error:
Event (evt_1O89ZeAa1SNaJ0Pdoly6Dt8n) is not for this payment processor - ignoring. CiviCRM: Stripe_Checkout (Live).
We changed the payment processor for the site after the subscription was created. I can't seem to find what table needs to get updated so the payment processor ID and recurring subscription match and the CiviCRM transacations actually get updated.
Any ideas?
Thankshttps://lab.civicrm.org/extensions/stripe/-/issues/456no email event registration confirmation when paying via Stripe Checkout2024-02-09T14:19:06Zjamieno email event registration confirmation when paying via Stripe CheckoutI saw this in [mattermost back in September](https://chat.civicrm.org/civicrm/pl/gw55777ak7gmbeizsyjeqk8ehr) and also have this problem.
With a paid event that includes a email receipt option, configured to use Stripe Checkout, no email...I saw this in [mattermost back in September](https://chat.civicrm.org/civicrm/pl/gw55777ak7gmbeizsyjeqk8ehr) and also have this problem.
With a paid event that includes a email receipt option, configured to use Stripe Checkout, no email confirmation message is sent upon a successful checkout.
When a $0 option is selected, the user is not redirected to Stripe Checkout, and an email is sent. But when a registration option is selected that includes an amount, we are directed to Stripe Checkout and everything works properly *except* no email confirmation is set.
I'm going to be digging in to try to figure it out - but if anyone sees this and has clues as to where to start, they would be appreciated.https://lab.civicrm.org/extensions/stripe/-/issues/454Multiple participant paid event registration workflow2024-02-25T09:53:47ZUpperholmeMultiple participant paid event registration workflowA while back in #387 I think I wrote:
"I'm using 6.7.10 (with Civi 5.53 and WP 6.02) and multi-participant event registration isn't working, which has brought me here. If I select more than one participant the stripe box appears straigh...A while back in #387 I think I wrote:
"I'm using 6.7.10 (with Civi 5.53 and WP 6.02) and multi-participant event registration isn't working, which has brought me here. If I select more than one participant the stripe box appears straight away on the form (with only one participant it doesn't show until a price option is selected), and then appears to pre-authorise before I even get to the second participant.
I need to explore what's happening in more detail, but I've had two people try and fail to register two participants in the last couple of days. The test drive seemed to work, so maybe it's just the weird workflow that is confusing users. It simply doesn't make sense to get the user to input card details until they have entered all of the participant information."
As far as I can see it is still the case (I'm currently using v 6.9.4 of this extension) that when choosing to register more than 1 participant, the stripe card details box appears at the bottom of the first page of the form regardless as to whether the user has selected to pay using Stripe (in my use case they can choose the Stripe card payment option or to pay later). This in itself is weird, but asking for card details on the first page really doesn't make any sense form a user experience perspective, and is causing confusion with users.
What should happen with a multi-participant paid event?
In my view the user should be able to input all of the details and options for all of their participants, and then go to a confirmation screen which lists all of that out and gives them a total cost and the option to go back and change things. Assuming they are content with their input they should then go to a payment page where they choose their payment preference if given the choice, and provide the card details for Stripe, do the 3D-secure verification as appropriate, and then get their receipt and invoice etc.
I can't think of any other online payment process where I am asked to provide card details before I even know how much its going to cost me.
I'm sure there was a point in this extension's life where there was a config option about this workflow, but now I can't find anything about it. If I've missed that please forgive me and point me in the right direction.https://lab.civicrm.org/extensions/stripe/-/issues/453Multiple webhook call is made for same event when STRIPE & stripe CHECKOUT bo...2023-10-11T13:12:48ZtapashMultiple webhook call is made for same event when STRIPE & stripe CHECKOUT both are enabledI have recently switched to stripe CHECKOUT, but still need to keep the STRIPE payment processor and webhook active due to recurring payments.
Although, currently the payments are made using CHECKOUT, a webhook call also made from STRIP...I have recently switched to stripe CHECKOUT, but still need to keep the STRIPE payment processor and webhook active due to recurring payments.
Although, currently the payments are made using CHECKOUT, a webhook call also made from STRIPE processor. As a result there is a false positive failure reported by webhook. Please see screenshot for reference, same payment event is called from both processor. @mattwire
![Screenshot 2023-09-26 at 09.00.48.png](/uploads/2afa8a760301219428f98829e8e872c9/Screenshot_2023-09-26_at_09.00.48.png)6.10https://lab.civicrm.org/extensions/stripe/-/issues/449Authorization failure error messages are no longer descriptive2023-09-29T18:58:18ZJKingsnorthAuthorization failure error messages are no longer descriptiveUsing Stripe 6.9.3, Civi 5.64.4, Formprotection 1.5.1
If RECAPTCHA validation fails, error messages are no longer descriptive.
We used to get: "Your reCAPTCHA validation was unsuccessful. Please try again, or contact us if the problem ...Using Stripe 6.9.3, Civi 5.64.4, Formprotection 1.5.1
If RECAPTCHA validation fails, error messages are no longer descriptive.
We used to get: "Your reCAPTCHA validation was unsuccessful. Please try again, or contact us if the problem persists."
Now we get: "Sorry an error occurred and your request was not completed. (Error ID: rfRo-zOu2-JPdT)"
This is because the Stripe's APIv4 processPublic throws a new Exception 'Bad request' if the authorize event fails. This is caught by the core APIv4 handler and because anonymous users do not have the 'view debug output' permission, it rewrites the error message to the generic one here.
Does anyone know if there's a way to get past that handling from core APIv4 which rewrites potentially useful (and non-harmful) error messages to be generic?
If the user has 'view debug output' permission, then they just see 'Bad Request' which is the text which comes from Stripe's processPublic API, which we could customise [=https://lab.civicrm.org/extensions/stripe/-/issues/448Stripe Checkout email2023-10-10T13:39:17ZtreseroStripe Checkout emailWhen using stripe checkout, I get the following error when registering for an event.
`Fatal Error Details = array:3 [
"message" => "Property 'email' has not been set."
"code" => null
"exception" => BadMethodCallException {#16196
...When using stripe checkout, I get the following error when registering for an event.
`Fatal Error Details = array:3 [
"message" => "Property 'email' has not been set."
"code" => null
"exception" => BadMethodCallException {#16196
#message: "Property 'email' has not been set."
#code: 0
#file: "/var/www/iaa/wp-content/plugins/civicrm/civicrm/Civi/Payment/PropertyBag.php"
#line: 322
`
This occurs when going to Confirm Your Registration
I checked PropertyBag source, but I'm not sure why email is an issue.
This is not an error with any other payment type for the registration, including the Generic Stripe (i.e. not Stripe Checkout)
The email is collected in the registration form. Could it be related to a user not being registered? I'm guessing here.
![image](/uploads/ce298ac5efa941209cdadf65b97b35b0/image.png)6.10https://lab.civicrm.org/extensions/stripe/-/issues/447How to process BACS Direct Debit payment?2023-08-28T16:31:45ZtapashHow to process BACS Direct Debit payment?I am running the latest version of extension. Although I have enabled BACS DD in the stripe settings in my account and in civicrm, I was unable to process a payment via DD.
Is there a readme that can be followed? ThanksI am running the latest version of extension. Although I have enabled BACS DD in the stripe settings in my account and in civicrm, I was unable to process a payment via DD.
Is there a readme that can be followed? Thankshttps://lab.civicrm.org/extensions/stripe/-/issues/443Scheduled job failure for Stripe - retry all2023-08-28T16:30:57ZKurund JalmiScheduled job failure for Stripe - retry allCiviCRM System Status page flags an error with the scheduled job.
Error message:
> Finished execution of Stripe - retry all with result: Failure, Error message: Cannot use object of type stdClass as array
Stripe 6.9.1, CiviCRM 5.63.1,...CiviCRM System Status page flags an error with the scheduled job.
Error message:
> Finished execution of Stripe - retry all with result: Failure, Error message: Cannot use object of type stdClass as array
Stripe 6.9.1, CiviCRM 5.63.1, PHP 8.1.216.9Kurund JalmiKurund Jalmihttps://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/440Fails to create a plan if one doesn't exist2023-07-18T08:39:18ZRichFails to create a plan if one doesn't existSorry @mattwire I'm on a roll today! :grinning:
[here](https://lab.civicrm.org/extensions/stripe/-/blob/6cf65aea79459607239f4d854cf9a0d891021f37/CRM/Core/Payment/Stripe.php#L352) we test for the parsed 'err' being `resource_missing`.
...Sorry @mattwire I'm on a roll today! :grinning:
[here](https://lab.civicrm.org/extensions/stripe/-/blob/6cf65aea79459607239f4d854cf9a0d891021f37/CRM/Core/Payment/Stripe.php#L352) we test for the parsed 'err' being `resource_missing`.
However, [this line](https://lab.civicrm.org/extensions/stripe/-/blob/6cf65aea79459607239f4d854cf9a0d891021f37/CRM/Core/Payment/Stripe.php#L306) says that `err` will always just be `''`.
I think this could be fixed with changing [l352](https://lab.civicrm.org/extensions/stripe/-/blob/6cf65aea79459607239f4d854cf9a0d891021f37/CRM/Core/Payment/Stripe.php#L352) to
`if ($e->getError()->code === 'resource_missing') {`
Am testing.https://lab.civicrm.org/extensions/stripe/-/issues/438PHPUnit tests failing on 6.92023-07-13T15:40:59ZRichPHPUnit tests failing on 6.9I was just updating my fork and when I tried to run the tests I got 5 failures. I checked out 6.9 (well, master, but at the mo the code is the same) and I get these failures there too.
They're all of an ilk, re `trxn_id`: eg
```
5) CRM...I was just updating my fork and when I tried to run the tests I got 5 failures. I checked out 6.9 (well, master, but at the mo the code is the same) and I get these failures there too.
They're all of an ilk, re `trxn_id`: eg
```
5) CRM_Stripe_IpnTest::testRecurringInvoicePaymentFailedThenSucceeds
Expected Contribution.trxn_id = "in_mock_2,ch_mock_3"
Failed asserting that two strings are equal.
--- Expected
+++ Actual
@@ @@
-'in_mock_2,ch_mock_3'
+'ch_mock_3'
```