"order already paid" with paypal checkout in Woocommerce - wordpress

You guys are my last hope... I created a website with wordpress and I'm using the woocommerce plugin to sell my book. I set everything up (not my first shop, but my first one with woocommerce), tested it in the sandbox, everything was fine. The website went live, and the problem began...
It occurs with paypal. For half of the users, everything is fine, they check out without problem, I get the money on my paypal account. For the other half, when they want to pay, they get an error message "order already paid" and can't go any further. After a while, the order is automatically canceled.
I can't reproduce the problem, because these buyers have nothing in common. Some have verified paypal adresses, some don't, some were registered users, some weren't. The product is always the same, only the shipping changes, and again, nothing in common there.
I've had to send paypal invoices to the customers, apologising for the bug, but it's not very professional, and I'm going to launch the epub soon, so if somebody goes to the trouble of buying it, they will want it available immediately, not a few hours later after receiving the paypal invoice...
It seems I'm not the only one with this problem, and I've checked everywhere for hours, for most people it was a problem of forgetting to change the sandbox paypal account to their real business account, for others it was because they weren't using a prefix and had more than one shop. All the others never got any answer or help.
Obviously, something is going wrong when the user is redirected to paypal to finish the order, but since I can't reproduce it, it's very difficult for me to troubleshoot the issue.
I enabled the logs, but unfortunately I upgraded to the newest version of woocommerce (available since today) and it erased my log file. I have a new one, from an order which didn't go through, and it's really weird:
11-21-2013 # 21:42:42 - Generating payment form for order n°150. Notify URL: http://mydomain.com/?wc-api=WC_Gateway_Paypal
(of course, I changed the website link)
I haven't had any other order since, but when I looked at the log last time before upgrading, an order that went through correctly had at least 20 lines after that one.
I'm getting desperate, especially since the people at woocommerce don't seem to care at all about support.
Thanks!!!

it sounds like you're having issues with duplicate invoice IDs - I'll assume that you paraphrased the error message and it should be "This invoice has already been paid. For more information, please contact the merchant."
PayPal blocks duplicate payments by means of an invoice ID being sent with every order.
You can try disabling "Block accidental payments:" under
https://www.paypal.com/cgi-bin/customerprofileweb?cmd=_profile-pref
If this helps, then your shop is sending invoice IDs that have already been used on other transactions in your account.
Not sure if this is the cause since you did mention a "prefix" but didn't refer to where you're using it - if you set a "prefix" before the invoice id, e.g. xy-123456, a duplicate will be unlikely.
If the problem continues and you're having trouble with finding log files, do approach paypal.com/mts and provide specific examples. They won't fix your module, but should be able to provide the cause of the error message.

I had a problem with "invoice already paid" IDs over the multiple woocommerce shops I manage. I thought it was a PayPal error but it happened when one of the random order numbers woocommerce generated was the same as a previously generated order number. I got around this by installing the plugin booster tools (was jetpack) and creating my own order number with prefix to make it unique to each store and also made my number sequential. I have not had the same error since.

Related

WooCommerce and Stripe - automatically process payment with no checkout

I am building an auction website in WordPress with WooCommerce. I need to be able to automatically process payment using a customer's saved card details when an auction closes.
I already convert the product to an order when the auction ends, but cannot figure out how to process the payment too.
I don't have any code samples to share as I'm not sure where to start with this. I've looked through the Stripe and Woo docs and cannot find anything there. I'm starting to wonder if this is even possible and that perhaps it is not for security reasons.
Any pointers on this would be much appreciated.
Personal opinion says that this is a really bad idea. As someone who has coded many ecommerce solutions in the past, there really should be an 'acceptance of payment' process for any transaction. That is not due to security but to protect both parties in the transaction (the buyer AND the seller).
I would look at token-based payments if you REALLY want to go down this route but I've unfortunately never implemented them with Stripe before.

WooCommerce sends order confirmation to customer every few minutes

My WooCommerce shop keeps sending order confirmation mails every (around) 10 minutes to a certain customer. And it does not stop.
I already changed the order status to "on hold", but it does not help. Is there a way to tell WooCommerce or the server to stop sending these emails?
I believe WordPress emails run on a Cron that shoots out emails to everything "flagged" within the table. I am not sure what it is off the top of my head, but you might be able to manually go into the MySQL table and just alter that data for his order.
This link may help, too:
https://docs.woocommerce.com/document/email-faq/
So,
I don't know if this helps anyone because it seems a rare case. But with our webshop it was zapier. We created a zap that hooks to the order confirmation mails. Deactivating this zap solved the problem.

Woocommerce checkout form after filling gives error "Fill in the required fields"

I have worked on a website that was built many years ago by a developer who is not updating it. recently I have added Woocommerce. but there is a problem. after filling the checkout form there is an error msg appears saying please fill in all the required fields although filling them all. it happens for all payment gateways. but if the user logged in it works and proceed to Paypal or whatever payment gateway. so this problem happens only if the user is not logged in.
I have dequeued the javascript files and deactivated the plugins and there is no way. is there any idea?
The information is most likely a primary key for the table. When a user signs up they enter the data into the SQL DB so it will not render an error for a signed up user to make a purchase. If a user is not signed up the information will need to be entered for your database to be relational(SQL will have a requirement for this data). This is the reason you are rendering the error. Your fix is one of the following:
1)Display the required entry field by commenting out the css.
2)Depending on the size of the shop and how much work you need to do it might be faster and easier to rebuild it.
3)Rewrite the Database from normal form.

Purchasing item without registering as a user

I have this site where visitors can pay for certain digital goods, after which they'll be presented with a download link. These downloads links last for a week before they die and become useless
I want to allow users to purchase items without having to create an account first, but just by supplying the payment details and email. I figured I could send the download link to their email once paid, but this is kind of problematic if they accidentally specific an incorrect email when paying.
Any suggestions on how best to accomplish this?
I've made such a purchase on a site called WrapBootstrap (https://wrapbootstrap.com/theme/flatboard-angularjs-admin-frontend-WB0G434G7). It integrates with PayPal in that they are navigated to PayPal, pay, and when they return, PayPal notified the site the payment was successful and then WrapBootstrap displays the download link.
I liked how seamless it was but what I found was if I ever wanted to download an item again, I didn't have a personal record of it (either in email or account). One drawback from a non-account perspective. Check it out and let me know if that answers your question.

Tickera WordPress Plugin, getting a PayPal IPN error e-mail

I purchased the Tickera wordpress plugin from Tickera.com. I have repeatedly requested support from them, but they don't respond.
I installed this plugin on a client's website to sell tickets for an event. The plugin works. The visitor buys the ticket via paypal and then they are sent an e-mail with a PDF attachment of the ticket which can be scanned at the event.
The problem is that with each transaction, my client gets an e-mail from PayPal with this statement:
Please check your server that handles PayPal Instant Payment Notifications (IPN). IPNs sent to the following URL(s) are failing:
and then it has my client's URL with the folder where the WordPress lives and then ?ipn=paypal.
Do I need to open a IPN account on PayPal to stop the error e-mail? I have been afraid to do this, in case it screws up the function of the plugin. It is working now.
Does anyone have experience with this?
-w
It sounds like the plugin must be setting the IPN URL using the NotifyURL parameter of API requests, or just the notify parameter in a standard HTML button/form. That would override anything you set up in your PayPal profile anyway.
It sounds like there must be some sort of a problem with the IPN script itself that is causing it to send a failure code of some sort back to PayPal's IPN server. You should be able to check your web server logs for the times that URL is getting hit and see the result there so you can look at the error and resolve it.
I would be very reluctant using this plugin - see Facebook for more than enough reasons. As to not try to say too much, I will just say "client side only validation" and "tickera == name your own price ticket system". What made this bug even worse is that it could be triggered accidentally by merely using normal browser behavior and so a kid with no knowledge of Javascript or the sort could still easily add 4 tickets, proceed to payment, click back in the browser and again proceed and get 4 tickets for the price of 1... Someone with a bit more knowledge and malicious intent could mess with a client side value array and set prices to $0.01/ea if they wished... I was consulting for someone in an attempt to clean up the mess from using this plugin and quickly discovered Tickera to be less than helpful on the support front... Best I can tell, the client-only-validation "bug" (horrible design) is still in play.. When notified of the bug, they were pretty much like "Oh, no biggie - just review all sales and cancel/refund/etc manually" - an unacceptable solution for medium/large events and just bad business for an event of any size... There are some serious security concerns with this plugin and their lack of response or support is just the icing on the cake... Beware.

Resources