Customers unable to print invoices

Permalink Browser Info Environment
Hi. My slient runs a subscription yoga website which uses the Stripe add-on. One of her customers has a valid subscription but, when she goes to and clicks "Print invoice", the system reoprts that she doesn't have a subscription. I have made a video of the problem which is available here:https://mindbodymaintenance.com/stripe_invoice_print_fail.mov...

We're using C5J Stripe Subscription v.1.0.1.

Also attached are screen shots of the Members dashboard and Stripe customer details page for this customer showing that she has a valid subscription.

Any idea what the problem is?
Thanks!

2 Attachments

Type: Ticket
Status: On Hold
simonchilton
View Replies:
concrete5cojp replied on at Permalink Reply
concrete5cojp
Thanks for the detailed screen recording.
Is this happening for a single customer or everyone?
We tried but couldn't reproduce this issue on our environment.
Would you mind to send the .har file (in private)?

BTW, do you have any override of the `\Concrete\Package\C5jStripe\Controller\SinglePage\Account\Billing` controller?

Thanks.
simonchilton replied on at Permalink Reply
simonchilton
Hey. Can't PM you - the link to your profile doesn't work and if I search for your username it isn't found... can you PM me?
concrete5cojp replied on at Permalink Reply
concrete5cojp
Thanks for sending the .har file earlier.
I couldn't find any reason for it to happen.
It's quite impossible to figure it out without debugging.
All I can say is that it's not meeting the following condition
// \Concrete\Package\C5jStripe\Controller\SinglePage\Account\Billing::invoice()
       if ($this->stripeUser->hasStripeId()) {
            if ($action === 'download') {
                return $this->stripeUser->downloadInvoice($invoiceId, []);
            }
        }


You may write some debug logs there, as follows-

// \Concrete\Package\C5jStripe\Controller\SinglePage\Account\Billing::invoice()
    public function invoice($invoiceId, $action)
    {
        $logger = $this->app->make('log');
        $user = $this->app->make('user');
        $logger->debug(sprintf('Logged in user ID: %s', $user->getUserID()));
        $logger->debug(sprintf('Stripe user ID: %s, Stripe ID: %s', $this->stripeUser->getId(), $this->stripeUser->getStripeID()));
        $logger->debug(sprintf('Has stripe ID? : %s, action: %s', $this->stripeUser->hasStripeId(), $action));
        $logger->debug(sprintf('Meets the condition? : %s', $this->stripeUser->hasStripeId() && $action === 'download'));
        if ($this->stripeUser->hasStripeId()) {
            if ($action === 'download') {
                return $this->stripeUser->downloadInvoice($invoiceId, []);
            }
        }
        return RedirectResponse::create(Url::to($this->action('view')));


Then collect the logs and cross-checks the results.

concrete5 Environment Information

# concrete5 Version
Core Version - 8.5.9
Version Installed - 8.5.9
Database Version - 20220319043123

# Database Information
Version: 10.2.33-MariaDB-log
SQL Mode: NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

# concrete5 Packages
Automatic Email Obfuscator (2.0.1), C5J Stripe Subscription (1.0.1), Community Store (2.4.7.2), Elemental Cloner (1.2.4), ExchangeCore reCAPTCHA (1.1.1), EZ Paypal (2.0.1), HonestWebsites Simple testimonials (1.1.2), HTML+PHP Code Block (1.0.2), Likes This! (2.0.1), Mind Body Maintenance package (0.9.1), Stripe Checkout Payment Method (1.0), Vimeo Video (1.1)

# concrete5 Overrides
blocks/vimeo/icon.png, blocks/vimeo/add.php, blocks/vimeo/db.xml, blocks/vimeo/scrapbook.php, blocks/vimeo/composer.php, blocks/vimeo/controller copy.php, blocks/vimeo/LICENSE.TXT, blocks/vimeo/view copy.php, blocks/vimeo/form_setup_html.php, blocks/vimeo/view.php, blocks/vimeo/edit.php, blocks/vimeo/controller.php, blocks/vimeo, blocks/express_entry_detail/templates/class_list.php, blocks/express_entry_detail/templates/course_list.php, blocks/express_entry_detail/templates, blocks/express_entry_detail, blocks/feature/templates/feature_amplify.php, blocks/feature/templates, blocks/feature, blocks/favourites_list/icon.png, blocks/favourites_list/view.css, blocks/favourites_list/view.js, blocks/favourites_list/view.php, blocks/favourites_list/controller.php, blocks/favourites_list, blocks/autonav/templates/subscriber_options_filtered.php, blocks/autonav/templates/breadcrumb_mbmtv.php, blocks/autonav/templates, blocks/autonav, blocks/topic_list/templates/conditional.php, blocks/topic_list/templates/sliding.php, blocks/topic_list/templates, blocks/topic_list, blocks/page_list/auto.js, blocks/page_list/templates/mbm_grid/view.php, blocks/page_list/templates/mbm_grid, blocks/page_list/templates, blocks/page_list, controllers/single_page/admin/classes copy.php, controllers/single_page/admin/classes copy 2.php, controllers/single_page/admin/classes.php, controllers/single_page/admin, controllers/single_page, elements/header_required.php, jobs/get_vimeo_data.php, single_pages/register.php, single_pages/page_not_found.php, single_pages/login.php, single_pages/admin/classes/view copy.php, single_pages/admin/classes/view.php, single_pages/admin/classes, single_pages/admin, single_pages/members/profile.php, single_pages/members/directory.php, single_pages/members/view.php, single_pages/members, single_pages/account/icon.png, single_pages/account/edit_profile.php, single_pages/account/messages.php, single_pages/account/view.php, single_pages/account/avatar.php, single_pages/account, single_pages/page_forbidden.php

# concrete5 Cache Settings
Block Cache - Off
Overrides Cache - On
Full Page Caching - Off
Full Page Cache Lifetime - Every 6 hours (default setting).

# Server Software
Apache

# Server API
fpm-fcgi

# PHP Version
7.4.32

# PHP Extensions
bcmath, bz2, calendar, cgi-fcgi, Core, ctype, curl, date, dba, dom, exif, FFI, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, imagick, imap, interbase, intl, ionCube Loader, json, ldap, libxml, mbstring, mysqli, mysqlnd, odbc, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, PDO_ODBC, pdo_pgsql, pdo_sqlite, pgsql, Phar, posix, pspell, readline, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, sodium, SPL, sqlite3, standard, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib

# PHP Settings
max_execution_time - 300
log_errors_max_len - 1024
max_file_uploads - 16
max_input_nesting_level - 64
max_input_time - 60
max_input_vars - 2500
memory_limit - 512M
post_max_size - 128M
upload_max_filesize - 128M
ibase.max_links - Unlimited
ibase.max_persistent - Unlimited
ic24.api.max_timeout - 7
ldap.max_links - Unlimited
mbstring.regex_retry_limit - 1000000
mbstring.regex_stack_limit - 100000
mysqli.max_links - Unlimited
mysqli.max_persistent - Unlimited
odbc.max_links - Unlimited
odbc.max_persistent - Unlimited
pcre.backtrack_limit - 1000000
pcre.recursion_limit - 100000
pgsql.max_links - Unlimited
pgsql.max_persistent - Unlimited
session.cache_limiter - <i>no value</i>
session.gc_maxlifetime - 7200
soap.wsdl_cache_limit - 5
unserialize_max_depth - 4096
opcache.max_accelerated_files - 32531
opcache.max_file_size - 0
opcache.max_wasted_percentage - 5

Browser User-Agent String

Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:105.0) Gecko/20100101 Firefox/105.0

Hide Post Content

This will replace the post content with the message: "Content has been removed by an Administrator"

Hide Content

Request Refund

You may not request a refund that is not currently owned by you.