A) New member joins and registers with ChronoForms
B) Pays via Paypal - recurring payments
C) Data from Chronoform populates (automatically) Sobipro Database
D) User received Joomla user credentials
If this can be done... HOW??????
Hi FreshIdeas,
You can do A, B and D I don't know anything about SOBIPro but that it probably possible if you can work out how to update the tables.
A works with the Joomla! Registration plug-in; B works either with one of the paid PayPal plug-ins or the ReDirect URl depending on how you want to set it up; D either requires an action tied to a PayPal notification or a manual admin approval.
Bob
Hi the_fitz,
If it's a membership fee then you may not need IPN even. Just a simple redirect to PayPal will do the trick.
You need IPN if you are shipping goods (real or virtual) on payment and so you need to have the payment confirmed before you deliver. If it's a membership then - on the odd occasion where the payment fails - you can manually 'undo' the registration. Or you can set it up so that there is a manual confirmation of the registration once PayPal confirms payment.
IPN - Instant Payment Notification - is one of the PayPal systems to provide automatic confirmation of the status of a payment. The process flow is like this:
[list=a]
b. You redirect the user to PayPal along with the transaction data, the identifier and a Notify URL.
c. The User confirms the payment on the PayPal site (or not).
d. PayPal returns the transaction details in a 'behind-the-scenes' message to the Notify URL.
e. Your site receives the message, retrieves the corresponding transaction data and checks that the data from PayPal matches the data you sent with the user (a fraud prevention check) NB I don't think that the ChronoForms IPN action does this check automatically. You get a lot of information back from PayPal so I think it's worth saving the transaction record here.
f. Your site returns the data to PayPal as a confirmation
g. PayPal responds with the payment status.
h. Your site updates the transaction record with the status and acts accordingly - approving the membership, sending the goods, etc. Note that not all IPN messages are confirmations so you need to handle a range of responses.
You mention saving the transaction record to get a unique identifier (I get that) but what field is sent to Paypal as this identifier? Do I need to identify the Paypal field name and then assign it the unique id? Do you know what the Paypal field name is?
This is mostly so that you can identify the saved transaction details. I usually assign a random string to the action using the Unique ID [GH] action to generate it and put it in the PayPal Invoice number field.So the message will include the Unique ID (from above), I will access the record I saved (from above) and check to make sure that the fields are equal, if not fail...
Ideally, yes. The check isn't essential to the process. I Would do it but I don't believe that Max's IPN Listener action does. The transaction with PayPal will still complete but there is a small gap for a fraudulent change there.f. This is where I lose it... Is this done as part of the Paypal Listener module? This step is NOT mentioned in the FAQ titled 'How to use the PayPal Redirect Action'. How is this data returned? Using CURL? what is the data format? Is this another 'PayPal Redirect' event?
g. Is this done as part of the Paypal Listener module? Or do I have to add another listening module for this response?
h. Is this done as part of the Paypal Listener module? Or do I have to add another listening module for this response? I assume that the potential responses are listed somewhere on the payPal site....
Hi MrFitz,
Please check the PayPal docs here for a better description of the IPN process than I can write.
You mention saving the transaction record to get a unique identifier (I get that) but what field is sent to Paypal as this identifier? Do I need to identify the Paypal field name and then assign it the unique id? Do you know what the Paypal field name is?
This is mostly so that you can identify the saved transaction details. I usually assign a random string to the action using the Unique ID [GH] action to generate it and put it in the PayPal Invoice number field.So the message will include the Unique ID (from above), I will access the record I saved (from above) and check to make sure that the fields are equal, if not fail...
Ideally, yes. The check isn't essential to the process. I Would do it but I don't believe that Max's IPN Listener action does. The transaction with PayPal will still complete but there is a small gap for a fraudulent change there.f. This is where I lose it... Is this done as part of the Paypal Listener module? This step is NOT mentioned in the FAQ titled 'How to use the PayPal Redirect Action'. How is this data returned? Using CURL? what is the data format? Is this another 'PayPal Redirect' event?
g. Is this done as part of the Paypal Listener module? Or do I have to add another listening module for this response?
h. Is this done as part of the Paypal Listener module? Or do I have to add another listening module for this response? I assume that the potential responses are listed somewhere on the payPal site....
So, are you saying that the Paypal Listener module handles both sets of communication with paypal, Gets the confirmation info, Returns the info to Paypal, and then Gets the Payment status?
I just looked at the code and that certainly seems to be what it's supposed to do.Hi MrFitz,
When I build these I usually add logger code so that you can see the ChronoForms end of the transaction.
I can't see any easy way of dumping the transaction results without hacking the action code.
What do you have in the Notify URL you are using?
Bob
<?php
jimport( 'joomla.error.log' );
$log =& JLog::getInstance( 'paypal.log.php' );
. . .
$message = 'something to log';
$log->addEntry( array( 'comment' => $message ) );
?>