Stripe issueshttps://lab.civicrm.org/extensions/stripe/-/issues2021-05-09T19:13:55Zhttps://lab.civicrm.org/extensions/stripe/-/issues/256Can't submit contribution online form for 0 amount2021-05-09T19:13:55ZPradeep Nayakpradpnayak@gmail.comCan't submit contribution online form for 0 amountI have a membership with 0 fees and profile with some required fields. On Main page i fill in all the required fields and select 0 fee option and click review contribution button. On Confirmation screen the profile section is blank again...I have a membership with 0 fees and profile with some required fields. On Main page i fill in all the required fields and select 0 fee option and click review contribution button. On Confirmation screen the profile section is blank against the fields. When submitting it throws validation error as required.
Running 6.5.3 on civi 5.28
Could also replicate on dmaster.
Note from MJW: Could reproduce this on contribution page when Membership fee is 0 and confirmation page is enabled.https://lab.civicrm.org/extensions/stripe/-/issues/147Stripe Authorises payment before form validation causing problems2021-05-09T19:10:55ZJoeMurrayStripe Authorises payment before form validation causing problems> Lot's of improvements have been made in 6.3.2 and (not yet released) 6.4. But we still need to do a lot more to make this work reliably.
> #### **MJW need funding to work on this issue - [Please contribute now to help us continue worki...> Lot's of improvements have been made in 6.3.2 and (not yet released) 6.4. But we still need to do a lot more to make this work reliably.
> #### **MJW need funding to work on this issue - [Please contribute now to help us continue working on this!](https://www.mjwconsult.co.uk/en/civicrm/pcp/info/?reset=1&id=1)**
Seems like this might be an issue. Please close immediately if it is intended behaviour. https://civicrm.stackexchange.com/questions/34012/stripe-authorises-payment-before-form-validation-causing-problems6.4jamiejamiehttps://lab.civicrm.org/extensions/stripe/-/issues/28ENHANCEMENT: Editing of Recurring Contributions2023-06-29T20:02:25ZmpwoodwardENHANCEMENT: Editing of Recurring ContributionsIt'd be great to be able to edit recurring contributions to do things like change the number of installments, the campaign, as well as do things like disable the automatic sending of receipts. Basically a move towards feature parity with...It'd be great to be able to edit recurring contributions to do things like change the number of installments, the campaign, as well as do things like disable the automatic sending of receipts. Basically a move towards feature parity with the iATS plugin insofar as it's possible with Stripe would be awesome.https://lab.civicrm.org/extensions/stripe/-/issues/467Subscription that stripe determines is "unpaid" is not updated in CiviCRM to ...2024-03-12T23:30:08ZjamieSubscription that stripe determines is "unpaid" is not updated in CiviCRM to be cancelledIt seems that stripe will send a notice that a subscription is "unpaid" when it gives up trying to collect on it.
I'm wondering if this is a bug or a feature request? I think it's a bug, but if this is not yet implemented let me know. W...It seems that stripe will send a notice that a subscription is "unpaid" when it gives up trying to collect on it.
I'm wondering if this is a bug or a feature request? I think it's a bug, but if this is not yet implemented let me know. We'd be happy to help get this working.
I'm seeing the payment processor web hook reports:
> Payment Processor: Stripe (Live ID: 1)
> Status: This event was successfully processed.
> Identifier: :::sub_xxxxxxx Type: customer.subscription.updated
> Full message:
> doCustomerSubscriptionUpdated: ignoring - not implemented
The JSON data provided by stripe includes:
```
Stripe\StripeObject JSON: {
"object": {
"id": "sub_xxxxxxx",
"object": "subscription",
"application": null,
"application_fee_percent": null,
"automatic_tax": {
"enabled": false,
"liability": null
},
"billing_cycle_anchor": 1626378828,
"billing_cycle_anchor_config": null,
"billing_thresholds": null,
"cancel_at": null,
"cancel_at_period_end": false,
"canceled_at": null,
"cancellation_details": {
"comment": null,
"feedback": null,
"reason": null
},
"collection_method": "charge_automatically",
"created": 1626378828,
"currency": "usd",
"current_period_end": 1708026828,
"current_period_start": 1705348428,
"customer": "cus_xxxxxE",
"days_until_due": null,
"default_payment_method": "pm_xxxxx",
"default_source": null,
"default_tax_rates": [],
"description": null,
"discount": null,
"ended_at": null,
"invoice_settings": {
"account_tax_ids": null,
"issuer": {
"type": "self"
}
},
"items": {
"object": "list",
"data": [
{
"id": "si_xxxxx",
"object": "subscription_item",
"billing_thresholds": null,
"created": 1626378828,
"metadata": [],
"plan": {
"id": "every-1-month-2500-usd",
"object": "plan",
"active": true,
"aggregate_usage": null,
"amount": 2500,
"amount_decimal": "2500",
"billing_scheme": "per_unit",
"created": 1559605475,
"currency": "usd",
"interval": "month",
"interval_count": 1,
"livemode": true,
"metadata": [],
"nickname": null,
"product": "prod_xxxxxx",
"tiers": null,
"tiers_mode": null,
"transform_usage": null,
"trial_period_days": null,
"usage_type": "licensed"
},
"price": {
"id": "every-1-month-2500-usd",
"object": "price",
"active": true,
"billing_scheme": "per_unit",
"created": 1559605475,
"currency": "usd",
"custom_unit_amount": null,
"livemode": true,
"lookup_key": null,
"metadata": [],
"nickname": null,
"product": "prod_xxxxxx",
"recurring": {
"aggregate_usage": null,
"interval": "month",
"interval_count": 1,
"trial_period_days": null,
"usage_type": "licensed"
},
"tax_behavior": "unspecified",
"tiers_mode": null,
"transform_quantity": null,
"type": "recurring",
"unit_amount": 2500,
"unit_amount_decimal": "2500"
},
"quantity": 1,
"subscription": "sub_xxxxx",
"tax_rates": []
}
],
"has_more": false,
"total_count": 1,
"url": "\/v1\/subscription_items?subscription=sub_xxxxxx"
},
"latest_invoice": "in_xxxxx",
"livemode": true,
"metadata": {
"Description": "Join xxxxx Solidarity Circle"
},
"next_pending_invoice_item_invoice": null,
"on_behalf_of": null,
"pause_collection": null,
"payment_settings": {
"payment_method_options": null,
"payment_method_types": null,
"save_default_payment_method": null
},
"pending_invoice_item_interval": null,
"pending_setup_intent": null,
"pending_update": null,
"plan": {
"id": "every-1-month-2500-usd",
"object": "plan",
"active": true,
"aggregate_usage": null,
"amount": 2500,
"amount_decimal": "2500",
"billing_scheme": "per_unit",
"created": 1559605475,
"currency": "usd",
"interval": "month",
"interval_count": 1,
"livemode": true,
"metadata": [],
"nickname": null,
"product": "prod_xxxxx",
"tiers": null,
"tiers_mode": null,
"transform_usage": null,
"trial_period_days": null,
"usage_type": "licensed"
},
"quantity": 1,
"schedule": null,
"start_date": 1626378828,
"status": "unpaid",
"tax_percent": null,
"test_clock": null,
"transfer_data": null,
"trial_end": null,
"trial_settings": {
"end_behavior": {
"missing_payment_method": "create_invoice"
}
},
"trial_start": null
},
"previous_attributes": {
"status": "past_due"
}
}
```https://lab.civicrm.org/extensions/stripe/-/issues/306Can't pay for event with more then one participant2021-05-10T18:46:42ZjamieCan't pay for event with more then one participantI'm running against the 6.6 (unreleased) branch.
When I register for a paid event, with more then one participant, when I click the "Review your registration button" the button greys out, but nothing else happens.
Judging from the cons...I'm running against the 6.6 (unreleased) branch.
When I register for a paid event, with more then one participant, when I click the "Review your registration button" the button greys out, but nothing else happens.
Judging from the console output, it looks like `getTotalAmount()` returns null (as programmed) but whatever is calling `getTotalAmount()` expects a number (or float).
![multiple-participant-event](/uploads/6981a200d761d6286827d88aa6941f32/multiple-participant-event.png)6.6https://lab.civicrm.org/extensions/stripe/-/issues/287Duplicate donations2021-05-09T19:28:02ZlarynDuplicate donationsI have a site that just in the last few weeks has gotten a bunch of duplicate donations that is resulting in unhappy donors, bank disputes, and refunds being issued. Obviously not great for a small nonprofit... Anybody else seeing this? ...I have a site that just in the last few weeks has gotten a bunch of duplicate donations that is resulting in unhappy donors, bank disputes, and refunds being issued. Obviously not great for a small nonprofit... Anybody else seeing this? I'm trying to figure out if it's a matter of lag time and donors actually donating twice or some other issue.
It seems to correlate at least roughly to the most recent upgrade to _CiviCRM Stripe 6.5.5_.https://lab.civicrm.org/extensions/stripe/-/issues/280Certain cards are charged $50 more than the payment amount2023-10-02T14:15:16ZjohnkCertain cards are charged $50 more than the payment amountWe've had two contributions go through now, one was for $800 and got charged at $850. The other was for $20 and got charged $70.
When I view these in the Stripe dashboard, they look like this:
![Screen_Shot_2020-12-07_at_5.40.06_PM](/up...We've had two contributions go through now, one was for $800 and got charged at $850. The other was for $20 and got charged $70.
When I view these in the Stripe dashboard, they look like this:
![Screen_Shot_2020-12-07_at_5.40.06_PM](/uploads/7bb669afdad91ab3a6df45b540f712da/Screen_Shot_2020-12-07_at_5.40.06_PM.png)
The payment intent is created for an amount that has the extra $50, then it tries to update it but fails with the message, "this PaymentIntent's amount could not be updated because it has a status of requires_capture. You may only update the amount of a PaymentIntent with one of the following statuses: requires_payment_method, requires_confirmation, requires_action."
There seems to be no trace of the higher amount in Civi, which is really quite bad. People noticed this on their statements and then contacted us.
In both of the cases we've had, the card was a Visa credit card issued by Chase Bank. What could be going on here?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/241Incorrect Form Validation for checkboxes on profiles2023-04-04T23:23:10ZkcristianoIncorrect Form Validation for checkboxes on profilesCivi 5.28.3, mjwshared 0.8.1, firewall 1.1, sweetalert 1.3
Event Form, profile in use has 1 required field of type checkbox.
If you check none - validation error- OK, Check All - no validation error.
Check 1 Validation error an...Civi 5.28.3, mjwshared 0.8.1, firewall 1.1, sweetalert 1.3
Event Form, profile in use has 1 required field of type checkbox.
If you check none - validation error- OK, Check All - no validation error.
Check 1 Validation error and stripe highlights all options not check and sweetalert displays a message to complete required fields. Switch to another processor, no issues.
![image](/uploads/f00a71ef4337c3f9e31dfb5d99ea7148/image.png)6.5https://lab.civicrm.org/extensions/stripe/-/issues/237Zero '0' payment loads stripe payment block for multiple participant event re...2022-06-11T13:13:19ZtapashZero '0' payment loads stripe payment block for multiple participant event registrationStripe:6.4.2
civicrm: 5.27.4
When register a ZERO payment event for a single participant with a price set, stripe block does not show up. But as soon number of participant is seleceted more than 1, the payment block pops up.Stripe:6.4.2
civicrm: 5.27.4
When register a ZERO payment event for a single participant with a price set, stripe block does not show up. But as soon number of participant is seleceted more than 1, the payment block pops up.https://lab.civicrm.org/extensions/stripe/-/issues/134Membership + donation fails2023-12-19T21:54:55Zaydunsaidan.saunders@squiffle.ukMembership + donation failsCreate a Contribution Page for Membership with 'Contribution Amounts section enabled' ticked, and on the Membership tab 'Separate Membership Payment' ticked.
If the user purchases membership only, payment works. If they add a donation ...Create a Contribution Page for Membership with 'Contribution Amounts section enabled' ticked, and on the Membership tab 'Separate Membership Payment' ticked.
If the user purchases membership only, payment works. If they add a donation it fails with:
"This PaymentIntent's amount could not be updated because it has a status of requires_capture. You may only update the amount of a PaymentIntent with one of the following statuses: requires_payment_method, requires_confirmation.",
Tested with 6.3.alpha1 & mjwshared 0.6.beta1https://lab.civicrm.org/extensions/stripe/-/issues/112Uncaptured payment made even though form fails validation2020-01-10T22:35:50ZmikantchapUncaptured payment made even though form fails validationUncaptured payments appear in the Stripe back end even though a form fails validation in CiviCRM. These payments appear as a negative on the end users' balances for 4 working days possibly preventing further use (depending on available f...Uncaptured payments appear in the Stripe back end even though a form fails validation in CiviCRM. These payments appear as a negative on the end users' balances for 4 working days possibly preventing further use (depending on available funds).
The purchase doesn't happen in CiviCRM leading to confusion - some users see a negative on their balance and assume they have purchased successfully. If they repeat the form submission with validation error again, another uncaptured payment happens.
To reproduce, make a contribution page with at least one payment option of £0.30 (min. Stripe payment). Try to submit the form with say City and Surname fields empty. You get the usual red validation errors at the top but a Stripe payment has already happened.https://lab.civicrm.org/extensions/stripe/-/issues/76Support charging saved cards2020-09-28T10:19:18ZrichardsplaygroundSupport charging saved cardsThe Stripe API allows you to pull the last four digits of the card the user used just previously as well as a token for that card. This allows you to offer the user to use that card for their purchase, avoiding having the user enter the...The Stripe API allows you to pull the last four digits of the card the user used just previously as well as a token for that card. This allows you to offer the user to use that card for their purchase, avoiding having the user enter their card details all over again.
For sites (like ours) where users make many event registrations over a short period of time, this would be a huge user experience improvement.
My users have asked repeatedly for a "save card" feature. While a save card feature a la Drupal Commerce would be a larger implementation effort, grabbing their most recently used card and offering it to the user is a much smaller/more doable improvement.
We have previously discussed making this improvement as part of the code changes for the Make-it-Happen campaign, or making the code change during the coding timeperiod for that campaign but under separate funding. Hoping that can still happen?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/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/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/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-contributionshttps://lab.civicrm.org/extensions/stripe/-/issues/363No longer saving credit card information to civicrm_financial_trxn2022-12-12T12:21:50ZzengenuityNo longer saving credit card information to civicrm_financial_trxnIn the past, we've been able to include the last 4 digits and credit card type in our email receipts. However, for our most recent event, these tokens are no longer working. I'm not sure if this is due to updates in CiviCRM core or the S...In the past, we've been able to include the last 4 digits and credit card type in our email receipts. However, for our most recent event, these tokens are no longer working. I'm not sure if this is due to updates in CiviCRM core or the Stripe extension. Has something changed with regard to storing the credit card information in recent releases of the Stripe extension?
I did confirm that we are receiving the webhooks from Stripe, and in those JSON blobs, I can see the last 4 and card type. So, we're receiving the information from Stripe, but it doesn't appear that the information is being saved to the civicrm_financial_trxn table. Those values are in there for our event one year ago, when we were using both an older version of CiviCRM and of the Stripe extension.