私は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。マターニャ