paypal ipn working but stopping at 'thank you' page.
- by Tarique Imam
I am using the code for controller(CODEIGNITER):
function paypal_tran(){
if (empty($_GET['action'])){ $_GET['action'] = 'process';}
if($this-uri-segment ( 3 )){
$action=$this-uri-segment ( 3 );
}
else{
$action='process';
}
$ammount=39.99;
$this-lenders_model-paypal_process($action,$this_script,$ammount);
$this-load-view('view_paypal_tran');
}
function ipn(){
if ($this->paypal_class->validate_ipn()) {
$data = array(
'fname'=> 'fname', /* insert the user id */
'lname'=>'lname'
);
//$this->db->insert('ajax_test',$data);
// For this example, we'll just email ourselves ALL the data.
$subject = 'Instant Payment Notification - Recieved Payment';
$to = '[email protected]'; // your email
$body = "An instant payment notification was successfully recieved\n";
$body .= "from ".$p->ipn_data['payer_email']." on ".date('m/d/Y');
$body .= " at ".date('g:i A')."\n\nDetails:\n";
foreach ($this->paypal_class->ipn_data as $key => $value) { $body .= "\n$key: $value"; }
mail($to, $subject, $body);
}
}
function success()
{
$this->load->view('paypal_succ_view');
}
AND this is my model:
function paypal_process($action,$this_script,$ammount){
switch ($action) {
case 'process': // Process and order...
// There should be no output at this point. To process the POST data,
// the submit_paypal_post() function will output all the HTML tags which
// contains a FORM which is submited instantaneously using the BODY onload
// attribute. In other words, don't echo or printf anything when you're
// going to be calling the submit_paypal_post() function.
// This is where you would have your form validation and all that jazz.
// You would take your POST vars and load them into the class like below,
// only using the POST values instead of constant string expressions.
// For example, after ensureing all the POST variables from your custom
// order form are valid, you might have:
//
// $p->add_field('first_name', $_POST['first_name']);
// $p->add_field('last_name', $_POST['last_name']);
$this->paypal_class->add_field('business', '[email protected]');
$this->paypal_class->add_field('return', $this_script.'/success');
$this->paypal_class->add_field('cancel_return', $this_script.'/cancel');
$this->paypal_class->add_field('notify_url', $this_script.'/ipn');
$this->paypal_class->add_field('item_name', 'Lenders Account for one month');
$this->paypal_class->add_field('amount', $ammount);
$this->paypal_class->submit_paypal_post(); // submit the fields to paypal
$this->paypal_class->dump_fields(); // for debugging, output a table of all the fields
break;
PROBLEM IS IPN IS NOT WORKING. THE HIDDEN FIELD HAS VALUE FOR REDIRECT TO IPN, BUT NOT WORKING!!PLS HELP