mattbk / uc_stripe Goto Github PK
View Code? Open in Web Editor NEWImprovements to https://www.drupal.org/project/uc_stripe.
License: GNU General Public License v2.0
Improvements to https://www.drupal.org/project/uc_stripe.
License: GNU General Public License v2.0
Based on the 7.x-2.x-dev branch at https://www.drupal.org/project/uc_stripe. Using this as a working repo to track changes. I’m using this on some production sites, but no guarantees are made for anyone else. Look through the code! —— This is an Ubercart payment gateway module for Stripe. Versions of the Stripe PHP Library and Stripe API that this module currently supports are found in uc_stripe_libraries_info() in uc_stripe.module. Installation and Setup ====================== a) Install and enable the module in the normal way for Drupal. b) Visit your Ubercart Store Administration page, Configuration section, and enable the gateway under the Payment Gateways. (admin/store/settings/payment/edit/gateways) c) On that page, provide your Stripe API keys, from https://dashboard.stripe.com/account/apikeys d) Download and install the Stripe PHP Library version 2.2.0 or >=3.13.0 from https://github.com/stripe/stripe-php/releases. The recommended technique is to use the command drush ldl stripe If you don't use "drush ldl stripe", download and install the Stripe library in sites/all/libraries/stripe such that the path to VERSION is sites/all/libraries/stripe/VERSION. YOU MUST CLEAR THE CACHE AFTER CHANGING THE STRIPE PHP LIBRARY. The Libraries module caches its memory of libraries like the Stripe Library. (Version 2.2.0 support is maintained for existing users; version 3.13.0+ supports PHP 7 and will get ongoing support.) (With the latest version of the libraries module you can use the command: e) If you are using recurring payments, install version 2.x of the Ubercart Recurring module: http://drupal.org/project/uc_recurring and set up as described below. f) Every site dealing with credit cards in any way should be using https. It's your responsibility to make this happen. (Actually, almost every site should be https everywhere at this time in the web's history.) g) If you want Stripe to attempt to validate zip/postal codes, you must enable that feature on your *Stripe* account settings. Click the checkbox for "Decline Charges that fail zip code verification" on the "Account info" page. (You must be collecting billing address information for this to work, of course.) h) The uc_credit setting "Validate credit card numbers at checkout" must be disabled on admin/store/settings/payment/method/credit - uc_credit never sees the credit card number, so cannot properly validate it (and we don't want it to ever know the credit card number.) Upgrading from uc_stripe 6.x-1.x or 7.x-1.x =========================================== 7.x-2.x does not use Stripe subscriptions for recurring payments, but instead uses the uc_recurring module. This means you have control of recurring transactions without having to manage them on the Stripe dashboard. (Credit card numbers and sensitive data are *not* stored on your site; only the Stripe customer ID is stored.) The upgrade hooks, however, must move the customer id stored in the obsolete uc_recurring_stripe table into the user table. When this happens the old record in the uc_recurring_stripe table will have its plan changed to <old_plan>_obsolete. This just prevents an import from happening more than once and gives you backout options if you wanted to downgrade. If you were using 1.x of this module and want to cancel existing subscriptions which were configured via the Stripe api (since they are now managed via uc_recurring) a drush command is provided to cancel these. Use "drush help subcancel" for more information. Recurring Payments Setup ======================== You'll need the Ubercart Recurring module: http://drupal.org/project/uc_recurring installed. It is not listed as a dependency for this Stripe payment module because this module could be used without recurring payments. But it is a dependency to use the recurring payments piece of this module. Note that this module does *not* use Stripe subscriptions. Instead, recurring payments are managed by uc_recurring, which does not retain any valid CC info, only the stripe customer id. Recurring payments require automatically triggered renewals using uc_recurring_trigger_renewals ("Enabled triggered renewals" must be enabled on admin/store/settings/payment/edit/recurring) If you were using Stripe subscriptions in v1 of this module, you may have to disable those subscriptions in order to not double-charge your customers. uc_stripe 6.x-2.x and 7.x-2.x were based on Bitcookie's work (thanks!) which was posted at http://bitcookie.com/blog/pci-compliant-ubercart-and-stripe-js from discussion in the uc_stripe issue queue, https://www.drupal.org/node/1467886
Warning: Cannot use a scalar value as an array in uc_stripe_charge() (line 570 of /home/endracing/public_html/sites/all/modules/uc_stripe/uc_stripe.module).
Warning: Cannot use a scalar value as an array in uc_stripe_charge() (line 571 of /home/endracing/public_html/sites/all/modules/uc_stripe/uc_stripe.module).
Warning: implode(): Invalid arguments passed in uc_stripe_charge() (line 575 of /home/endracing/public_html/sites/all/modules/uc_stripe/uc_stripe.module).
Warning: implode(): Invalid arguments passed in uc_stripe_charge() (line 578 of /home/endracing/public_html/sites/all/modules/uc_stripe/uc_stripe.module).
All so https://www.drupal.org/node/2840526 will work.
Replace
https://github.com/mattbk/uc_stripe/blob/master/uc_stripe.module#L574 (and whatever else got FUBARed during review)
with
Line 572 in 31ff15a
(Called out at https://www.drupal.org/node/2840526#comment-12116672.)
http://stackoverflow.com/questions/4635821/in-drupal-how-do-i-get-the-url-of-an-image-in-my-module-folder/14031244#14031244. I think this is what I used.
Again, this may be an issue with the DD* settings.php or hosting in a subfolder, need to check.
*obfuscating
DD drops an Error 500 on the final checkout button, but it works on END (I'm obfuscating website names that I am working on).
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.