1

I'm trying to sell subscriptions (yearly memberships) using the Simple Commerce module. I've set-up everything on EE side and on PayPal's (including the Instant Notification URL). Since I'm still testing everything, I'm not using encryption. Also I'm not using sandbox, but doing tests with 0,01p payments using real paypal accounts - my business and personal accounts, both verified. My business account is set to accept payments automatically.

When the payment is received, a first instant message to notify the subscription is sent successfully. Then PayPal tries to send another ipn, to notify the payment, but this one gets stuck with a "error 500".

It took me a while to get the first IPN, because one of the 3rd party extensions (VZ Bad Behavior, just in case someone else is experiencing the same problem) didn't allow paypal to hit the url. But if the first IPN gets through, why not the 2nd one?

Also, I'm using Expresso Store on the same install, and never had a problem with IPNs.

Any suggestion would be much appreciated.

1 Answer 1

3

Out of the box, simple commerce (SC) works to a point. 500 error, hmm have you changed any source code? If not, your settings are wrong. Reread the documentation.

Having said that, i have just completed programming of a similar project with subscriptions. The subscription side of things for SC only handles a few ipn messages. In fact, ee docs suggest you handle subscriptions via paypal anyway ( not sc) Check the ipn txn_type that errored. Ensure SC has a method for it. If you want a better solution than SC, check out memberr. It has many good features. After purchasing memberr and playing with it for a month, we ditched it and rewrote and extended parts of SC to handle the ipn messages i needed - EOT, CANCEL, PURCHASE etc, added a few extra db tables for the subscriptions and created new control panel screens. I would have preferred to use an off the shelf product like memberr but found it had a bug in the code somewhere that wasnt setting the status of members entry correctly when the subscription expired.

Final thought, the purchase ipn is handled by SC for items but not subscriptions.

5
  • Hello @dadonbike and thanks so much for the answer, I was really looking forward to read how someone else is dealing with the same problem. I have considered Memberr but this is not a choice because I read in the docs that its payment gateway doesn't work when the sys folder is installed above web root, which is my case. Re SC; even if the docs suggest that subscriptions should be handled via paypal, because subscription is not handled by SC while the purchase - of the subscription - is. My problem is that the IPN for txn_type=subscr_payment gets blocked while subscr_signup gets through
    – kikaweb
    Commented Aug 18, 2013 at 13:37
  • FYI, we use paypal for payments and also have the sys_folder above the root. We had no problems getting it to work. I dont recall reading that in the memberr docs.
    – Lloyd Hill
    Commented Aug 19, 2013 at 23:23
  • We ended up doing a lot of hacks/rewrite to the SC module to meet our needs. Now, your specific issue I believe is caused by the sequence of the ipn messages received from paypal. The order of ipns varies. If you check the ipn history screen, you may find the purchase ipn being sent before the signup ipn. We had to alter the code here so we could handle either order.
    – Lloyd Hill
    Commented Aug 19, 2013 at 23:31
  • hi @dadonbike thanks again for sharing your expertise. First: I read about the problem with OpenGateway and sys folder placed above web root here but if you say that it worked for you I'll definitely give it a try. Regarding the order of the ipns, I'm more a front-end developer and I'm not able to hack SC code myself, but I'll ask some php guy to have a look at the module. Again: thanks for your suggestions, your help is much appreciated.
    – kikaweb
    Commented Aug 20, 2013 at 14:38
  • I'll wait another couple of days, then if nobody writes a better answer I'll accept yours.
    – kikaweb
    Commented Aug 20, 2013 at 14:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.