コード例 #1
0
ファイル: paypal-ipn.php プロジェクト: ashik968/digiplot
 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());
 }
コード例 #2
0
 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;
 }