CodeIgniter的IPN库 - 脚本忽略了我的代码

时间:2012-05-20 06:29:36

标签: codeigniter paypal paypal-ipn

我正在使用CI IPN库,并且就其功能而言,一切运行顺利,并且所有txn信息都提交给DB,这意味着脚本被调用并运行。 但是,当我尝试在成功的txn的情况下添加我自己的指令 - 即向客户端发送电子邮件并将其详细信息添加到数据库 - 它完全忽略了我的代码。我试图删除“如果成功”的条件,它仍然无法正常工作。 值得注意的是,当我通过另一个控制器的直接调用在IPN控制器外部运行这些模型时,它们运行得非常好。  这是代码:

    class Ipn extends CI_Controller {

    // To handle the IPN post made by PayPal (uses the Paypal_Lib library).
    public function index()

    {

    $this->load->library('PayPal_IPN'); // Load the library

    // Try to get the IPN data.
    if ($this->paypal_ipn->validateIPN())
    {
        // Succeeded, now let's extract the order
        $this->paypal_ipn->extractOrder();

        // And we save the order now 
        $this->paypal_ipn->saveOrder();

        // Now let's check what the payment status is and act accordingly
        if ($this->paypal_ipn->orderStatus == PayPal_IPN::PAID)
        { 
            $this->load->model("register_model"); // my own code
            $this->register_model->insert(); // my own code
            $this->register_model->email_customer(); //my own code
        } // end if PAID
    } 
    else // Just redirect to the root URL
    {
        $this->load->helper('url');
        redirect('/', 'refresh');
    } // end if validates
  } // end function
 } // end class

TIA为您提供帮助。 Matanya

1 个答案:

答案 0 :(得分:1)

调试Paypal IPN代码可能有点噩梦,我遇到了类似的麻烦,最终将控制器中的变量记录到文件中。

您确定“register_model”型号没有问题吗?也许尝试添加一些logs,检查您收到的变量。如果它记录并且看起来都正确,则需要查看“register_model”模型。