2013-05-27 6 views
3

Я пытаюсь интегрировать ci-merchant с codeigniter, используя драйвер paypal express. Я выполнил шаги, указанные в документе. Я могу перенаправить мой сайт на сайт оплаты paypal sandbox, где общая стоимость и все доступно. Но когда я пытаюсь оплатить с помощью учетной записи sandbox из PayPal, она не показывает мне баланс PayPal, хотя у меня достаточно в моей учетной записи. Когда я нажимаю «платить сейчас», он перенаправляет меня к URL-адресу возврата с идентификатором токена и плательщика в URL-адресе. Но никакой фонд не передается. Не уверен, где я ошибаюсь.Фонды, которые не передаются между учетными записями PayPal sandbox

URL: ../retSuccess?token=EC-01M80248BN787213M & PayerID = 9WLBBV9LM6TPA

$this->load->model('mainmodel'); 
    $this->mainmodel->orderDetails(); 

    $query = $this->mainmodel->retrieveOrder(); 

    foreach ($query as $row){ 
     $transaction_id = $row['transaction_id']; 
    }  
      $this->load->library('merchant'); 
    $this->merchant->load('paypal_express'); 

    $settings = array(
      'username' => 'merchant_api1.canada.com', 
      'password' => '1369782104', 
      'signature' =>'AmTaSH3lkRIYxxjxUjB.1zqxD0cRA1hfMGBX2dV9h4DkcYQcjGtqDaYa', 
      'test_mode' => true); 

    $this->merchant->initialize($settings); 

    $params = array(
      'amount' => $this->input->post('price'), 
      'currency' => 'CAD', 
      'description'=> $this->input->post('model_no'), 
      'return_url' => base_url('payment/transaction/'.$transaction_id), 
      'cancel_url'=> base_url('payment/cancel')); 

    $response = $this->merchant->purchase($params); 

} 

public function transaction(){ 

    $transaction_id = $this->uri->segment(3); 

    $this->load->model('mainmodel'); 
    $query = $this->mainmodel->loadTransaction($transaction_id); 

    foreach ($query as $row){ 
     $price = $row['price']; 
     $desc = $row['model_no']; 
     $trans_id = $row['transaction_id']; 
    } 

    $this->load->library('merchant'); 
    $this->merchant->load('paypal_express'); 

    $params = array(
      'amount' => '21.3', 
      'currency' => 'CAD', 
      'description' => 'SP66'); 

    $response = $this->merchant->purchase_return($params); 


    if ($response->success()) 
    { 
     $data['gateway_reference'] = $response->reference(); 
     $data['model_no'] = $this->session->userdata('model_no'); 
     $data['category'] = $this->session->userdata('category'); 
     $data['specs'] = $this->session->userdata('specs'); 
     $data['quantity'] = $this->session->userdata('quantity'); 

     $newData = array('status'=>'complete', 
       'reference'=>$data['gateway_reference']); 
     $this->db->where('transaction_id',$trans_id); 
     $this->db->update('transactions',$newData); 

     $this->load->view('templates/success',$data); 

    }else{ 

     $data['message'] = $response->message(); 

     //$this->db->where('transaction_id',$trans_id); 
     //$this->db->delete('transactions'); 

     $this->load->view('templates/failure',$data); 

    } 

} 

ответ

0

Если я вас правильно понял, песочница учетная запись должна иметь покупку и продавца. Вам необходимо проверить учетную запись продавца, чтобы увидеть покупку с учетной записи покупателя.

Я не думаю, что проблема связана с CI Merchant.

+0

У меня есть двойная проверка. У меня есть аккаунт покупателя и продавца, которые активны и проверены. Фонды передаются, когда я делаю это на сайте sandbox, но не при использовании этого Ci-продавца. – Ram

+0

Теперь это мой ответ. Merchant_response Object ( [_status: защита] => не удалось [_message: защита] => У вас нет прав, чтобы сделать этот API вызов [_reference: защита] => [_data: защита] => [ _redirect_url: защита] => [_redirect_method: защита] => GET [_redirect_message: защищенный] => [_redirect_data: защита] => ) Как вы думаете, что это СI-коммерсант вопрос или PayPal вопрос? – Ram

0

Убедитесь, что CI Merchant вызывает API DoExpressCheckout PayPal. Это последний вызов API Express Checkout, и это API, который фактически завершает платеж и передает деньги.

+0

Теперь у меня также появляется сообщение об ошибке: «У вас нет прав на этот вызов API». Думаю, это может быть причиной проблемы с фондом. Как я могу предоставить разрешение? – Ram

+0

Если вы пытаетесь запустить этот вызов API в своей учетной записи, у вас должны быть разрешения. Если вы пытаетесь запустить это на другой учетной записи, используя разрешения сторонней стороны, вам необходимо убедиться, что учетная запись, которую вы пытаетесь обработать, предоставила вам правильные разрешения в своей учетной записи. Если вы все еще получаете сообщение об ошибке, можете ли вы предоставить полный ответ API, который вы возвращаете, и я могу найти его в журналах на моей стороне, чтобы узнать, что может вызвать ошибку. –

+0

Я пытаюсь запустить это в своей собственной песочнице. Я создал 2 аккаунта покупателя и учетную запись продавца под своим именем в PayPal. Затем я добавил учетные данные API продавца в свой код, как показано выше. Затем на моей веб-странице, когда я пытаюсь совершить покупку, используя мою учетную запись покупателя, я получаю эту ошибку разрешения. Нужно ли мне предоставлять специальное разрешение? если да, то как? Это моя учетная запись продавца (продавец @ Canada.com. У вас будет возможность проверить разрешения? – Ram

0

С помощью ci-merchant вам нужно позвонить purchase_return на свою страницу возврата, чтобы завершить платеж, похоже, что вы просто положили все на начальную страницу (pre-paypal), которая ничего не сделает.

+0

Да, я изменил свой код. Я предоставил свой текущий код.На самом деле текущий код основан на вашей идее. Но теперь ответ, который я получаю, это «У вас нет прав для вызова этого API». Я проверил все мои учетные данные API, удалил и обновил учетную запись продавца, но не улучшился. – Ram

Смежные вопросы