By default Magento sends the order confirmation checkout submission, regardless if a payment is finished or not.
Is there a way to have the sending of that mail triggered by the succespage? So after the order is finished, NOT after it is placed.
Greetings,
Marcel
This is not a really big deal, all you have to do is just override the current event
sales_order_place_after
and stop sending mails from that event, as magento sends mails from that event. Write your custom event after the payment success and trigger your success/failure e-mail from there.
Related
I have a page that will have a monthly subscription fee and I was wondering if PayPal's simple subscribe and unsubscribe buttons can do the trick without using the API.
On subscription the user is returned to my page and I handle the subscription, but if the user decides to unsubscribe how can I handle it? Or is it possible at all?
Does the page make a return call to the same address I have given for redirection?
Thank you for the help in advance.
Yes, Standard Subscription buttons can be used without any API calls. I would recommend using Instant Payment Notification (IPN) to handle all transactions associated with subscription profiles.
PayPal's IPN server will POST transaction data to a listener script you have on your server when transactions occur in real-time. This allows you to automate post-transaction procedures like updating your database, sending email notifications, or anything else you might like to do when transactions occur.
My developer is trying to get the instant payment notifications for one of my web products to be sent to a secondary email, not the primary Paypal one. But no luck so far -it keeps getting sent to my primary email. I'd like some help on how to get it sent to a secondary email account?
Thank you
Your email address doesn't have anything to do with where the IPN gets sent. You basically have 2 options for configuring IPN.
1) Log in to the PayPal account that is receiving the payments, go into the profile, and then into Instant Payment Notification Preferences. Enable it, and add the URL to your IPN listener. This will now act as a default IPN listener so every transaction that hits your PayPal account will send an IPN to this URL.
2) If you include a notify URL in your button code or API calls this will override what you have setup in your profile. If you need to send IPN's for a specific button or API call to a secondary IPN listener you can just add that URL to the notify value for the request and that's where the IPN's will go.
If you need IPN's to hit multiple scripts you might want to take a look at this article I wrote awhile back about daisy-chaining PayPal IPN scripts.
As I receive an IPN from PayPal, I would not like to process it immediately, but, instead, queue the message and then process it with a scheduler.
Therefore, there's a point that worries me - if I queue a message and only process it (including the '_notify-validate' verification), let's say, 12 hours later, will I be able to do it?
Thanks in advance.
You can't schedule a delay with PayPal for when we send out the IPN post and if you don't reply back to PayPal within a few seconds we'll reattempt to send the post later.
It is possible to not reply to, like, the first six IPN posts for a payment but doing that will eventually start to trigger an e-mail telling you that the posts are not being replied to right away. It may possibly lead to IPN being disabled on your account.
I've recently wrote my IPN listener script to manage purchases for my website. Whenever a user submits a payment, there is a custom hidden field with their USER ID as the value. I know that to identify if the message is a REFUND, it'll have the post parameters:
reason_code = refund
Now my question is, when PayPal notifies my IPN listener of the refunded item, will it still send the exact same post data (including my custom field so I can manage the user accordingly due to thei) that was sent when they purchased the item?
I hope I made my message clear and that it's not too confusing.
Thank you.
Yes, when you issue a refund you will receive the same custom variable back in the refund that you passed over when you charged the buyer. It will have the same value that you set. I also just tested this to make sure there were no issues with this feature, and it is working as it should.
I've got a web application with a form where users can sign up for a seminar. The process is currently as follows:
Register for seminar
Registration success page with Paypal Buy-Now button to make payment
Paypal payment
Registration completion page
At present, emails are sent to the admin and the user at step 2 after registering confirming their registration. This needs to be changed so that the emails are actually sent in step 4, after payment has been made.
The application is built in ASP.NET, and all of the code to send emails, etc is all done. I'm curious as to what is the best way to trigger a process on the main website using the users details after they have completed the Paypal payment process.
From what I can see, there are the following options:
Store the data in the session. When the user returns to the registration completion page, retrieve the information and send the emails. My concern with this is that I've worked on a project in the past implementing this and it never worked very well, with the session getting lost.
Store the data in the database. Have the Paypal redirect include the transaction details in the querystring to the return page, which can retrieve the registration details using the email address and send the emails. However, this may not work if the email address used on Paypal is different from the one used to register (which is quite likely in this scenario).
Post all the details to Paypal, so that they are included in the transaction. Downsides: Won't send confirmation email to the user, only the admin (and assuming that the Paypal email address is the same as the email to which payment notifications should be sent). Also not sure if this can be used with hosted buttons.
I'm sure this is a common problem, and any advice would be appreciated. Thanks.
Use paypal instant payment notification
When the order is placed on your site, put it into a db table, with whatever you need to record. I then have an OrderId (from the db table) that I pass to paypal as an 'invoice' field, this gets passed back via ipn with a payment status etc.