function wpc_handle_paypal_ipn() { $debug_log = "ipn_handle_debug.log"; // Debug log file name $ipn_handler_instance = new paypal_ipn_handler(); $debug_enabled = false; $debug = get_option('wp_shopping_cart_enable_debug'); if ($debug) { $debug_enabled = true; } if ($debug_enabled) { echo 'Debug is enabled. Check the ' . $debug_log . ' file for debug output.'; $ipn_handler_instance->ipn_log = true; //$ipn_handler_instance->ipn_log_file = realpath(dirname(__FILE__)).'/'.$debug_log; } $sandbox = get_option('wp_shopping_cart_enable_sandbox'); if ($sandbox) { $ipn_handler_instance->paypal_url = 'https://www.sandbox.paypal.com/cgi-bin/webscr'; $ipn_handler_instance->sandbox_mode = true; } $ipn_handler_instance->debug_log('Paypal Class Initiated by ' . $_SERVER['REMOTE_ADDR'], true); // Validate the IPN if ($ipn_handler_instance->validate_ipn()) { $ipn_handler_instance->debug_log('Creating product Information to send.', true); if (!$ipn_handler_instance->validate_and_dispatch_product()) { $ipn_handler_instance->debug_log('IPN product validation failed.', false); } } $ipn_handler_instance->debug_log('Paypal class finished.', true, true); }
} } // Start of IPN handling (script execution) $ipn_handler_instance = new paypal_ipn_handler(); $debug_enabled = get_option('eStore_cart_enable_debug'); if ($debug_enabled) { echo 'Debug is enabled. Check the ipn_handle_debug.log file for debug output.'; $ipn_handler_instance->ipn_log = true; if (empty($_POST)) { $ipn_handler_instance->debug_log('This debug line was generated because you entered the URL of the ipn handling script in the browser.', true, true); exit; } } $sandbox = get_option('eStore_cart_enable_sandbox'); if ($sandbox) { $ipn_handler_instance->paypal_url = 'https://www.sandbox.paypal.com/cgi-bin/webscr'; $ipn_handler_instance->sandbox_mode = true; } $ipn_handler_instance->debug_log('Paypal Class Initiated by ' . $_SERVER['REMOTE_ADDR'] . ' eStore Version: ' . WP_ESTORE_VERSION, true); if ($ipn_handler_instance->validate_ipn()) { $ipn_handler_instance->debug_log('Creating product Information to send.', true); if (!$ipn_handler_instance->validate_and_dispatch_product()) { $ipn_handler_instance->debug_log('IPN product validation failed.', false); $to_address = get_option('eStore_notify_email_address'); $subject = "WP eStore - Payment Verification Failed!"; $body = "This is a notification email from the eStore plugin letting you know that a payment verification failed." . "\n\nPlease fully read this email as it will explain everything you need to know to address any issue(s) that maybe occuring (if there are any)!" . "\n\nThe post payment verification for a payment notification failed. This could happen for one of the following reasons:" . "\n\n 1. The fund for the payment have not cleared in PayPal yet (no need to do anything as the digital product will be delivered once the fund clears)." . "\n 2. Someone maybe trying to scam a purchase! (no worries... WP eStore got your back :)" . "\n 3. You have made a mistake somewhere (please see the failure reason section below to find out more details about this)." . "\n\nThe following section has more details on why this failure occurred." . "\n\n===== Exact Reason for This Failure =====" . "\n" . "\nThe transaction failed for the following reason...\n" . $error_msg . "\n\n===== How to solve the 'Funds have not cleared' or 'Pending payment received' notification =====" . "\n" . "\nIf you have received a pending payment meaning the funds have not cleared for this payment and you don't know the reason then this link should help" . "\nhttp://www.tipsandtricks-hq.com/forum/topic/reasons-for-a-pending-paypal-payment" . "\n\n===== PayPal parameters for this transaction =====" . "\n\n" . $ipn_handler_instance->post_string; $from_address = get_option('eStore_download_email_address'); eStore_send_notification_email($to_address, $subject, $body, $from_address); } } $ipn_handler_instance->debug_log('Paypal class finished.', true, true);