0

私はCIIPNライブラリを使用していますが、その機能に関する限り、すべてがスムーズに実行され、すべてのtxn情報がDBにコミットされます。つまり、スクリプトが呼び出されて実行されます。ただし、txnが成功した場合、つまりクライアントに電子メールを送信し、クライアントの詳細をDBに追加する場合に、独自のディレクティブを追加しようとすると、コードが完全に無視されます。「成功した場合」の状態を削除しようとしましたが、それでも機能しません。別のコントローラーからの直接呼び出しを介して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。マターニャ

4

1 に答える 1

1

Paypal IPN コードをデバッグするのは少し悪夢かもしれません。私も同様の問題を抱えており、コントローラー内の変数をファイルに記録することになりました。

「register_model」モデルに問題はありませんか? おそらく、いくつかのログを追加してみて、受け取っている変数を確認してください。ログが記録され、すべてが正しいように見える場合は、「register_model」モデルを確認する必要があります。

于 2012-05-20T06:46:05.610 に答える