Recurring contribution with webform_civicrm generates an error
This issue was reported in #113 (closed) 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
)