Средства не переводятся между счетами в песочнице PayPal
Я пытаюсь интегрировать ci-merchant с codeigniter с помощью драйвера PayPal Express. Я следовал за шагами как дано в документе. Я могу перенаправить свой сайт на платежный сайт PayPal, где доступна общая стоимость и все. Но когда я пытаюсь заплатить, используя учетную запись PayPal, войдя в систему, она не показывает мне остаток PayPal, даже если у меня достаточно средств в моей учетной записи. Когда я нажимаю кнопку "оплатить сейчас", он успешно перенаправляет меня на URL-адрес возврата с токеном и идентификатором плательщика в URL-адресе. Но ни один фонд не переводится. Не знаю, где я ошибаюсь.
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);
}
}
3 ответа
Если я вас правильно понимаю, у учетной записи песочницы должна быть учетная запись продавца и покупателя. Вам нужно проверить аккаунт продавца, чтобы увидеть покупку со счета покупателя.
Я не думаю, что проблема от CI Merchant.
Убедитесь, что CI Merchant вызывает API-интерфейс DoExpressCheckout PayPal. Это последний вызов API Express Checkout, и это API, который фактически завершает платеж и переводит деньги.
С помощью ci-merchant вам необходимо позвонить на страницу возврата для покупки, чтобы завершить оплату. Похоже, вы просто поместили все на исходную (предоплатную) страницу, которая ничего не сделает.