How to make monthly subscription payment by paypal in php? - laravel-4

I am building a web app in laravel 4.
I tried to make a monthly subscription payment via paypal.
I had added a subscribe button in my billing page.
I have tested the link. It could redirect to paypal site and ask approve.
But how does the server know the user has successfully paid?

After successfull payment paypal sends a IPN to the address u provide...By this notification your server can come to know about the payment.login to paypal account>>setting>>ipn link or url>>and set it to a php file which can recieve ipn variables and detect about the payment

Related

Validate whether payment was a success or failure

I am looking to use PayPal to accept a payment through my website. I am looking at the Smart Payment button option. If the payment is successful I need to update something in my website DB. How can I determine whether the payment was successful or not? I cant see anything the API docs.
I also need to retain user context with a PHP session ID. How can I pass that to the paypal site and ensure it is returned with the success / fail indicator?
Use Paypal IPN to receive payment notifications. Setup a server endpoint to respond to IPN requests and update your DB etc...
To maintain state, you will need to include a hidden input filed in your Smart Payment Button with a name of custom and a value of your choice (session id).
Setup a IPN endpoint ie: /checkout/ipn, to receive Paypal notifications. Capture the session ID with $_POST['custom'];
I ended up using the Braintree API for this use case. Ther Brantree API returns a unique payment identifier (payment Nonce) which you can then validate by submitting a call back to the Braintree API to ensure the payment was actually received properly.

Unable to receive webhooks with Sandbox Paypal

I'm trying to get notified via webhooks when a simple payment is made, however I don't receive any request from paypal on the specified URL. Here is what I've done:
I have 2 sandbox accounts: Facilitator and Buyer
Create an app (sanbox mode)
Add a webhook URL in that app
Now I go on woocommerce site where i configured my app with Paypal.
and when I make a payment to buy an item with a buyer account.
In developer dashboard the payment is received if I go to Sandbox -> Notifications: "Notification of Payment Received from test buyer", but the webhook page on my server is not called.
Also if I go to Developer Account -> Webhook Notifications and select the app I have this message: You don't have any events for the selected application
I believe my transactions are not being done correctly.
Can someone please help me with this.?

paypal and virtuemart: Order status is not changed after payment is made

I'm using Virtuemart 2.6.20. The payment method is paypal standard
When I place order, it redirects me to paypal gate. If I cancel the payment, it goes back to website and the order status is changed from pending to canceled. But when I make payment (completed), it doesn't go back to website and order status is not changed to "comfirmed"
You would need to enable Auto-Return in your PayPal account, check this out for details: Paypal settings for order auto-confirmation after payment (j2.5/vm2.x)

What is the ipn url for the paypal express checkout in magento

I am using paypal express checkout in magento as payment method.
I have set the ipn url as http://mymagentosite.com/paypal/ipn/.
I am getting the emails from the paypal as
Please check your server that handles PayPal Instant Payment Notifications (IPN). IPNs sent to the following URL(s) are failing:
http://mymagentosite.com/paypal/ipn/
What is the correct url that I should set for my site?
Please help.
It should be
YOUR_BASE_URL/index.php/paypal/ipn/index/

Paypal IPN failing with a Magento site and another different side - collisions

Have a workign Magento 1.7 live site, its Paypal has been fine until recently when another site got attached to the PayPal account it uses.
This other site does not use IPN (Magento site uses PayPal Website Standard payments). However, I think it is that the other site triggers a IPN notification that goes to the default URL , which is of course set to the livesite's /paypal/ipn/ URL IPN listener.
I have found this thread on a different site http://www.magentocommerce.com/boards/errors.php/viewthread/285840/ where some solutoins are given but it seems very inconclusive. What is the recommended way to fix this issue?
1) write dummy script IPN to catch nonIPN Calls and respond with something
2) turn off IPN in paypal account, since Magento may send its own ones anyway (?)
3) Other solution?
thanks for any advice!
Do not set actual IPn url in your paypal account.
IPN url should be posted to paypal( Generally is posted in Magento ) so will result in IPNs to these payment received on stated IPN url.
If you set Magento IPN URL in paypal IPN value then when payment is received by another cart added and if that cart is not posting IPN url when payment related request is posted then IPN will be delivered to URL defined in IPN value on Paypal.
Your assumption is correct in that if you have IPN configured in your PayPal account it will catch transactions from anything that hits your PayPal account whether it came from Magento or not.
You can indeed disable IPN in the PayPal account and specify an IPN URL with individual payment requests to PayPal. This is done using NotifyURL in API requests or notify_url in standard buttons.
I'm pretty sure Magento is already doing this by default, but you should probably check. If it's not you can extend the Magento PayPal module to include this so that you don't have to set it in the PayPal account, which again would get hit for ALL transactions.

Resources