Stripe issueshttps://lab.civicrm.org/extensions/stripe/-/issues2023-10-02T14:31:58Zhttps://lab.civicrm.org/extensions/stripe/-/issues/393$0.00 Recurring Contribution does nothing at renewal time2023-10-02T14:31:58Zben_fairless$0.00 Recurring Contribution does nothing at renewal timeWe have 3 Membership Levels on a single Contribution Form. 2 are paid, and one is $0.00.
If someone selects our $0.00 Membership level, it creates a Recurring Contribution that looks like this:
![image](/uploads/83a68bcdd72a61d51c8f114d...We have 3 Membership Levels on a single Contribution Form. 2 are paid, and one is $0.00.
If someone selects our $0.00 Membership level, it creates a Recurring Contribution that looks like this:
![image](/uploads/83a68bcdd72a61d51c8f114d22cbb254/image.png)
It also creates the requisite Membership:
![image](/uploads/518c330683dd5f4d25286351856f8bbf/image.png)
However, on the "Next Contribution" date (when the payment would normally be taken) nothing happens on the Contribution side, and the Membership goes into the "Grace" status (which it would do if the member had not renewed).
I'm not sure if this is a bug, or is by design, but what I would like to achieve is that the membership rolls over on the "Next Contribution" date, even though the contribution is $0.00.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/390Payment intent process requests being sent through admin.php on WordPress2022-09-22T17:02:32ZchristodhunterPayment intent process requests being sent through admin.php on WordPressHi,
We're having an issue when payment intent process requests are being made. One one contribution form the requests are made to /civicrm/ajax/rest/ while on another the same POST data is being sent to /wp-admin/admin.php
Requests to ...Hi,
We're having an issue when payment intent process requests are being made. One one contribution form the requests are made to /civicrm/ajax/rest/ while on another the same POST data is being sent to /wp-admin/admin.php
Requests to the Civi REST endpoint work fine, but as the user isn't signed in to WordPress any requests to /wp-admin/admin.php get 302 redirected to the login page and the AJAX request fails.
System:
WordPress 6.0.2
CiviCRM 5.52.2
Stripe Payment Processor 6.7.9https://lab.civicrm.org/extensions/stripe/-/issues/389You passed an empty string for 'payment_method'.2023-08-17T15:28:20ZjamieYou passed an empty string for 'payment_method'.Since upgrading to Stripe 6.7.9 we have received two reports from people who say they get an "invalid request" error when they try to make a contribution or pay for a paid event.
In both cases, these reports line up with the following m...Since upgrading to Stripe 6.7.9 we have received two reports from people who say they get an "invalid request" error when they try to make a contribution or pay for a paid event.
In both cases, these reports line up with the following messages in the `civicrm_stripe_paymentintent` table:
```
req_xxxx;You passed an empty string for 'payment_method'. We assume empty values are an attempt to unset a parameter; however 'payment_method' cannot be unset. You should remove 'payment_method' from your request or supply a non-empty value.;...
```
(There is also an error in ConfigAndLog about the string being truncated but that's not the cause of the stripe problem).
It doesn't happen on all requests. I'm still trying to zero in on how to replicate.https://lab.civicrm.org/extensions/stripe/-/issues/388Recurring payments not being recorded in CiviCRM2022-09-22T20:26:05ZlarynRecurring payments not being recorded in CiviCRMAfter a recent update -- we're now on the latest version (`6.7.9`) -- we're finding that recurring payments are not being saved correctly in CiviCRM. Transcribing from what I've written on Mattermost:
> The payments go through in Stripe...After a recent update -- we're now on the latest version (`6.7.9`) -- we're finding that recurring payments are not being saved correctly in CiviCRM. Transcribing from what I've written on Mattermost:
> The payments go through in Stripe, and from the Stripe side the webhook is marked as successful. But the data doesn't make it into the contact records in CiviCRM and the `civicrm/a#/paymentprocessorWebhook` page indicates those webhooks fail:
> - Invalid input data (not an object)
#0 /app/files/civicrm/ext/com.drastikbydesign.stripe/CRM/Core/Payment/StripeIPN.php(176): CRM_Core_Payment_StripeIPN->exception('Invalid input d...')
> NOTE: I have found that going into Stripe and resending the webhook (even though it says it was successful) will then record the contribution in CiviCRM.
> One more data point: for one of these recurring payments, a user reported seeing it in CiviCRM but that it mysteriously disappeared. I'm not sure what could cause that...https://lab.civicrm.org/extensions/stripe/-/issues/387Paid multi-participant registration fails2023-10-05T11:53:23ZJKingsnorthPaid multi-participant registration failsFollowing on from https://lab.civicrm.org/extensions/stripe/-/issues/372 @mattwire
It is currently not possible to use Stripe payment gateway on a paid event which has 'multiple participants' enabled, where each participant adds a fee ...Following on from https://lab.civicrm.org/extensions/stripe/-/issues/372 @mattwire
It is currently not possible to use Stripe payment gateway on a paid event which has 'multiple participants' enabled, where each participant adds a fee to the total.
Steps to recreate:
- Create an event
- Enable multiple participants, 1 additional guest
- Add a price to the event, and enable the stripe payment gateway
- Register for the event, and choose to bring a guest, ticking the fee in each case
- You are prompted for your card details on the 'first' page of registration
- Upon 'confirming' your registration, you are redirected back to the registration page, with the error: Stripe Property 'paymentIntentID' has not been set
![image](/uploads/e34e8db12742a29b1f7f9e7df5d83722/image.png)
Drupal 7, CiviCRM 5.52.2, Stripe 6.7.8, Payment shared 1.2.86.7https://lab.civicrm.org/extensions/stripe/-/issues/386Support for API Version 2022-08-012023-10-02T14:10:10Zjustinfreeman (Agileware)Support for API Version 2022-08-01Support for API Version 2022-08-01, https://stripe.com/docs/upgrades#2022-08-01
At a minimum update the Status Warning to refer to the newer version instead of 2020-08-27Support for API Version 2022-08-01, https://stripe.com/docs/upgrades#2022-08-01
At a minimum update the Status Warning to refer to the newer version instead of 2020-08-276.8https://lab.civicrm.org/extensions/stripe/-/issues/385REGRESSION - Checkbox price field not submitted for non-stripe payments2022-08-20T14:04:03ZjitendraREGRESSION - Checkbox price field not submitted for non-stripe paymentsTo replicate -
- Create an event with stripe processor and enable pay later.
- Add checkbox price field and enable it on the event.
- Load the Registration page and select pay later for the payment
![image](/uploads/3e58cafcc1126a6c26...To replicate -
- Create an event with stripe processor and enable pay later.
- Add checkbox price field and enable it on the event.
- Load the Registration page and select pay later for the payment
![image](/uploads/3e58cafcc1126a6c264116aafe02383b/image.png)
- Submit the form
- The Review page does not load any option from the price set.
- ![image](/uploads/f11b17d46c1a89d60100e4889caab21c/image.png)
Hence, no $ is processed in the payment.6.7https://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/383Webform won't allow user to submit if total is zero2023-05-19T04:39:54ZUpperholmeWebform won't allow user to submit if total is zeroI have a Drupal 7 webform that enables users to register for up to two optional events. I've configured the conditional logic on the webform to support a discount code that can be entered into a field, which then sets the registration fe...I have a Drupal 7 webform that enables users to register for up to two optional events. I've configured the conditional logic on the webform to support a discount code that can be entered into a field, which then sets the registration fee for one of the events to zero. If the user chooses not to register for the second event, then the total amount is zero.
When Stripe is selected as the payment processor, the form submit button does nothing, and the user is stranded having entered all their data.
Expected behaviour: The user should be able to submit the form regardless of whether the total is zero.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/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/380If you're logged in and change the postal code in the stripe widget, it appea...2022-08-19T13:57:07ZDaveDIf you're logged in and change the postal code in the stripe widget, it appears to update in the billing fields section, but does not update in civi.Semi-related, maybe: https://lab.civicrm.org/extensions/stripe/-/issues/247
I haven't tested yet but I think the problem is here because it sets it to `disabled`, and disabled html fields are not included in $_POST: https://lab.civicrm....Semi-related, maybe: https://lab.civicrm.org/extensions/stripe/-/issues/247
I haven't tested yet but I think the problem is here because it sets it to `disabled`, and disabled html fields are not included in $_POST: https://lab.civicrm.org/extensions/stripe/-/blob/0e7645da79d14140d23ddd9c3127f966a59c0042/js/civicrm_stripe.js#L618-621
`readonly` attributes do submit, but I think the styling varies.6.7https://lab.civicrm.org/extensions/stripe/-/issues/379Add support for Stripe Terminal (physical smart-readers, with the JavaScript ...2022-07-11T19:24:07ZbgmAdd support for Stripe Terminal (physical smart-readers, with the JavaScript SDK support)I'm testing Stripe physical terminals. Here is what I think is required to make it work in the Stripe CiviCRM extension:
- [x] ~~Admin setting for selecting the terminal's Location (a Location being a Stripe object, that can be defined ...I'm testing Stripe physical terminals. Here is what I think is required to make it work in the Stripe CiviCRM extension:
- [x] ~~Admin setting for selecting the terminal's Location (a Location being a Stripe object, that can be defined either via API, or by the Stripe Terminal admin interface; simpler for now to ask admins to to do initial Location setup in the Stripe UI)~~ Not necessary, this can be done from the Stripe Dashboard: go to the Readers, then Location, then you can add a terminal.
- [ ] Code for connecting to the terminal using a New Contribution backend form (make sure the device is available, list devices)
- [ ] Code for doing the [Payment Intent](https://stripe.com/docs/terminal/payments/collect-payment), and processing the transaction
- [ ] Make sure that CiviCRM stores whatever relevant information
- [ ] Make sure that Credit Cards and Debit Cards both work
Note that:
- This would only support the "smart" readers, such as the BBPOS WisePad 3 (which I'm testing) or maybe the Verifone P400. The cheaper US-only Stripe T2 would not work, because it is bluetooth-only and requires developing a mobile app (or using a third-party app). The smart-readers are basically stripped-down Android devices, with wifi and bluetooth, so they connect over the Internet to talk to Stripe, and CiviCRM talks to Stripe. It does not really talk directly to the reader.
- This work is unfunded. I mostly wanted to do a quick proof of concept. If this could be useful to your organisation, please consider funding the work).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/377Webhook Failures2022-11-02T14:49:04Zgrant.traynorWebhook FailuresHi,
Thanks for your hard work on this extension, there's clearly a lot involved.
Since reconfiguring our Stripe arrangement, all of my Stripe webhook pushes (Stripe -> CiviCRM) are failing? I think I must have something very fundament...Hi,
Thanks for your hard work on this extension, there's clearly a lot involved.
Since reconfiguring our Stripe arrangement, all of my Stripe webhook pushes (Stripe -> CiviCRM) are failing? I think I must have something very fundamental misconfigured. I'm on wordpress 6.0, php-7.4, with apache and php-fpm. The webhook is making it to the correct IPN in the backend I think.
```
$ php --version
PHP 7.4.30 (cli) (built: Jun 27 2022 08:21:19) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.30, Copyright (c), by Zend Technologies
```
I'm getting these error messages in the CiviCRM log for all webhooks:
```
Jun 30 17:16:41 [error] AA Stripe Exception: Event: charge.captured Error: Invalid input data (not an object)
Jun 30 17:22:08 [error] AA Stripe Exception: Event: charge.succeeded Error: Invalid input data (not an object)
Jun 30 17:31:10 [error] AA Stripe Exception: Event: charge.captured Error: Invalid input data (not an object)
Jun 30 17:31:49 [error] AA Stripe Exception: Event: charge.captured Error: Invalid input data (not an object)
```
Which apparently comes from [this](https://lab.civicrm.org/extensions/stripe/-/blob/master/CRM/Core/Payment/StripeIPN.php#L172), which looks like it uses [this](https://lab.civicrm.org/extensions/mjwshared/-/blob/master/CRM/Core/Payment/MJWIPNTrait.php#L235).
Is there a fundamental reason for this that I might be able to look at? Any help would be greatly appreciated.https://lab.civicrm.org/extensions/stripe/-/issues/376Regression from civix update?2022-07-06T07:52:30ZPradeep Nayakpradpnayak@gmail.comRegression from civix update?Upgraded stripe to 6.7.6 from 6.7.2
```
$ sudo -u www-data /usr/local/bin/drush -r /var/www/html/drupal --uri=www.testsite.org cc civicrm
An error occurred: API error: Could not delete payment processor type ...Upgraded stripe to 6.7.6 from 6.7.2
```
$ sudo -u www-data /usr/local/bin/drush -r /var/www/html/drupal --uri=www.testsite.org cc civicrm
An error occurred: API error: Could not delete payment processor type [error]
'civicrm' cache was cleared.
```
Regression from : https://lab.civicrm.org/extensions/stripe/-/commit/776ada7526a49c1aff6d8561e5f8ac3faccd20e2
Looks like the stripe.mgd.php not called.https://lab.civicrm.org/extensions/stripe/-/issues/375Stripe error, property 'paymentintentid' has not been set.2022-08-19T15:52:31ZTOCM_MMatthewsStripe error, property 'paymentintentid' has not been set.Some (maybe 10%, but low volume) of our users are getting incomplete payment transactions on member signup contribution pages without seeing any errors reported, and this:
stripe payment error: property 'paymentintentid' has not been se...Some (maybe 10%, but low volume) of our users are getting incomplete payment transactions on member signup contribution pages without seeing any errors reported, and this:
stripe payment error: property 'paymentintentid' has not been set.
Is being logged. I see that there’s something that looks like this is fixed in the extension update that came out a couple days ago and I’ll probably do the update no later than this weekend, but, is this actually fixed in that update?
Thank you.
Michael Matthewshttps://lab.civicrm.org/extensions/stripe/-/issues/374Feature Request - Support "Bulk Update Recurring Contributions"2023-10-02T14:21:35Zben_fairlessFeature Request - Support "Bulk Update Recurring Contributions"I've just seen this plugin and would love for Stripe to support it, if able. https://civicrm.org/extensions/bulk-update-recurring-contributionsI've just seen this plugin and would love for Stripe to support it, if able. https://civicrm.org/extensions/bulk-update-recurring-contributions