public function test_correct_request_is_returned_to_IPN() { $live_url = 'https://www.paypal.com/cgi-bin/webscr'; $sandbox_url = 'https://www.sandbox.paypal.com/cgi-bin/webscr'; $verify_request = array('cmd' => '_notify-validate'); $verify_request += $this->ipn_request; // expects to send to Live URL and receive "VERIFIED" message from Paypal $http = new MockPHP_Merchant_HTTP_CURL(); $http->returns('post', 'VERIFIED'); $ipn = new PHP_Merchant_Paypal_IPN($this->ipn_request, false, $http); $http->expectOnce('post', array($live_url, $verify_request)); // make sure $verify_request is constructed correctly $this->assertTrue($ipn->is_verified()); // expects to send to Sandbox URL and receive "INVALID" message from Paypal $http = new MockPHP_Merchant_HTTP_CURL(); $http->returns('post', 'INVALID'); $ipn = new PHP_Merchant_Paypal_IPN($this->ipn_request, true, $http); $http->expectOnce('post', array($sandbox_url, $verify_request)); // make sure $verify_request is constructed correctly $this->assertFalse($ipn->is_verified()); }
public function callback_ipn() { $ipn = new PHP_Merchant_Paypal_IPN(false, (bool) $this->setting->get('sandbox_mode', false)); if ($ipn->is_verified()) { $sessionid = $ipn->get('invoice'); $this->set_purchase_log_for_callbacks($sessionid); if ($ipn->is_payment_denied()) { $this->purchase_log->set('processed', WPSC_Purchase_Log::PAYMENT_DECLINED); } elseif ($ipn->is_payment_refunded()) { $this->purchase_log->set('processed', WPSC_Purchase_Log::REFUNDED); } elseif ($ipn->is_payment_completed()) { $this->purchase_log->set('processed', WPSC_Purchase_Log::ACCEPTED_PAYMENT); } elseif ($ipn->is_payment_pending()) { if ($ipn->is_payment_refund_pending()) { $this->purchase_log->set('processed', WPSC_Purchase_Log::REFUND_PENDING); } else { $this->purchase_log->set('processed', WPSC_Purchase_Log::ORDER_RECEIVED); } } $this->purchase_log->save(); transaction_results($sessionid, false); } exit; }