Re: Stripe.com payment integration module
Most common problems will be not copying the files correctly, maybe you did not rename "YOUR_TEMPLATE" folder before upload so the payment forms are not actually in your template??
Do you have any error logs you could share, that would help people to pinpoint exactly what you may be missing or have not done.
Did you add stripe to opc in the options you mentioned?
Re: Stripe.com payment integration module
Yes, sir. I even downloaded the version from GitHub since it seemed that the version was more up-to-date. I posted the error given before (previous post). All the files are loaded /and reloaded/ within the correct directories. I also did the patch, which was giving me errors before, but I noticed it was because it didn't have the prefix. I thought it was going to be resolved, but I'm getting the same error.
Re: Stripe.com payment integration module
Quote:
Originally Posted by
ideasgirl
Yes, sir. I even downloaded the version from GitHub since it seemed that the version was more up-to-date. I posted the error given before (previous post). All the files are loaded /and reloaded/ within the correct directories. I also did the patch, which was giving me errors before, but I noticed it was because it didn't have the prefix. I thought it was going to be resolved, but I'm getting the same error.
here is an idea:
- turn OFF one page checkout
- try again
- post the full debug log if you have one
- if you have no debug logs look at the dev console for any errors there
- post those errors here.
the last errors i saw said something with CHECKOUT_ONE_LOGIN_LAYOUT. we want to isolate stripe from OPC to see we can get you working with the standard 3 page checkout. once that is working, we can then see why you are failing with OPC.
best.
Re: Stripe.com payment integration module
I think I may have an idea of what the issue may be from your most recent response. You downloaded the github version. I believe there are slight nuances that need to be taken into consideration between versions. If you notice I had issues a few pages ago on this very thread with my setup. Admittedly I do not use one page checkout and have extensive customisations to my site responsible for the decision to stick to a 3 page checkout.
I'd say do what Carl says first, if you cannot get running then compare your version against the zencart repository ensuring that you use the correct version for your version of zencart you are working on. Sharing an error log also helps if there is one.
Re: Stripe.com payment integration module
Quote:
Originally Posted by
carlwhat
here is an idea:
- turn OFF one page checkout
- try again
- post the full debug log if you have one
- if you have no debug logs look at the dev console for any errors there
- post those errors here.
the last errors i saw said something with CHECKOUT_ONE_LOGIN_LAYOUT. we want to isolate stripe from OPC to see we can get you working with the standard 3 page checkout. once that is working, we can then see why you are failing with OPC.
best.
Alright, I got it to work with OPC off; which wasn't working previously. With OPC on it doesn't show the input form. These are the errors:
Code:
[13-May-2025 10:39:10 America/Puerto_Rico] Request URI: /index.php?main_page=checkout_one_confirmation, IP address: 24.171.194.185, Language id 1
#0 /includes/modules/pages/checkout_one_confirmation/jscript_stripe.php(1): zen_debug_error_handler()
#1 /includes/templates/template_default/common/html_header_js_loader.php(54): require('/home/***/p...')
#2 /includes/templates/abyss_cobalt/common/html_header.php(107): require('/home/***/p...')
#3 /index.php(42): require('/home/***/p...')
--> PHP Warning: Undefined variable $stripe_select in /includes/modules/pages/checkout_one_confirmation/jscript_stripe.php on line 1.
[13-May-2025 10:39:10 America/Puerto_Rico] Request URI: /index.php?main_page=checkout_one_confirmation, IP address: 24.171.194.185, Language id 1
#0 /includes/templates/abyss_cobalt/templates/tpl_checkout_one_confirmation_default.php(238): zen_debug_error_handler()
#1 /includes/templates/abyss_cobalt/common/tpl_main_page.php(181): require('/home/***/p...')
#2 /index.php(94): require('/home/***/p...')
--> PHP Warning: Undefined variable $stripe_select in /includes/templates/abyss_cobalt/templates/tpl_checkout_one_confirmation_default.php on line 238.
But that's obvious because I never got to input the numbers.
Re: Stripe.com payment integration module
Quote:
Originally Posted by
ideasgirl
...
But that's obvious because I never got to input the numbers.
the only thing that is obvious to me is that the payment module works in standard ZC 3 page checkout and does not work in OPC.
what version of ZC did you say you were running?
Re: Stripe.com payment integration module
ZC v2.1.0
Quote:
the only thing that is obvious to me is that the payment module works in standard ZC 3 page checkout
Yes, and that was after making some changes to the Stripe module (it continue giving me issue with the lowfee line but I fixed it).
Quote:
and does not work in OPC
It doesn't? I thought it did work with OPC since those files were included.
Re: Stripe.com payment integration module
my guess is that you are running v2.x.x.
my further guess is that you are having a javascript collision, which is preventing some code from running. you can check that by looking at the dev console on your browser.
best.
Re: Stripe.com payment integration module
I have seen the undefined strip select issue before.. I would suggest checking your settings and that you have added the opc to stripe like it stated in the instructions. Other possible solutions include swapping files from different versions of the module until you get it working or give up and restore what you originally had and stick with 3 page checkout. I tried 4 versions before I got mine remedied with an issue that resulted in payments but no orders :)
Re: Stripe.com payment integration module
Quote:
Originally Posted by
flappingfish
I have seen the undefined strip select issue before.. I would suggest checking your settings and that you have added the opc to stripe like it stated in the instructions. Other possible solutions include swapping files from different versions of the module until you get it working or give up and restore what you originally had and stick with 3 page checkout. I tried 4 versions before I got mine remedied with an issue that resulted in payments but no orders :)
With the heavy customisation and big bills i was given to do them i made use of chatgpt to do alot of the heavy work and pay for the monthly subscription plan, i threw your error codes at it and it gave quite a helpful response (sometimes it can be way off the mark) and this seems like the solution is in the settings for stripe where it asks if you are using OPC not being selected, if it is selected and still giving you issues then follow the chatbots guidance....
Code:
You’re seeing the “Undefined variable $stripe_select” warnings because neither your one-page checkout controller nor your template ever actually set that variable before including your Stripe JavaScript snippets. You have two choices:
1) Define $stripe_select before you use it
If you really need the variable (for example you’re injecting a dynamic element ID into your JS), then at the very top of
swift
Copy
Edit
includes/modules/pages/checkout_one_confirmation/jscript_stripe.php
(and in your tpl at the top of
bash
Copy
Edit
templates/abyss_cobalt/templates/tpl_checkout_one_confirmation_default.php
) add:
php
Copy
Edit
<?php
// make sure we always have *something* in $stripe_select
if ( !isset($stripe_select) || !strlen($stripe_select) ) {
// this should be the ID of your Stripe wrapper element—
// change it if you’re mounting to a different DIV
$stripe_select = 'payment-element';
}
?>
That will stop the notices and give your JS something to target:
php
Copy
Edit
<script>
// before: document.getElementById('<?php echo $stripe_select;?>')…
// now $stripe_select is guaranteed to exist
const paymentEl = document.getElementById('<?php echo $stripe_select;?>');
…
</script>
2) Remove the variable altogether
If your Stripe integration no longer needs a PHP-injected element ID (for example you hard-coded #payment-element in your JS), simply delete every reference to $stripe_select:
In jscript_stripe.php remove or comment out any lines using $stripe_select.
In your template (around line 238), replace
php
Copy
Edit
document.getElementById('<?php echo $stripe_select;?>').…
with
js
Copy
Edit
document.getElementById('payment-element').…
Why it happened
Zen Cart’s one-page checkout stashes almost everything in $POST and in the $payment_modules object—you have to explicitly assign template-scope variables if you intend to echo them later. Since $stripe_select was never set in the controller, PHP correctly warned that it didn’t exist.
Pick one of the above strategies and those warnings will go away.
Sounds like a credible solution... take file and database backups first and thoroughly test if all seems to show up, ie make sure you can submit an order and it get recorded by zencart