$this->load->language('payment/pp_pro_iframe');
if (isset($this->request->post['order_id']) && $this->request->post['order_id'] != '') {
$this->load->model('payment/pp_pro_iframe');
$paypal_order = $this->model_payment_pp_pro_iframe->getOrder($this->request->post['order_id']);
$call_data = array();
$call_data['METHOD'] = 'DoVoid';
$call_data['AUTHORIZATIONID'] = $paypal_order['authorization_id'];
$result = $this->model_payment_pp_pro_iframe->call($call_data);
if ($result['ACK'] != 'Failure' && $result['ACK'] != 'FailureWithWarning') {
$transaction = array(
'paypal_iframe_order_id' => $paypal_order['paypal_iframe_order_id'],
'transaction_id' => '',
'parent_transaction_id' => $paypal_order['authorization_id'],
'note' => '',
'msgsubid' => '',
'receipt_id' => '',
'payment_type' => 'void',
'payment_status' => 'Void',
'pending_reason' => '',
'transaction_entity' => 'auth',
'amount' => '',
'debug_data' => json_encode($result),
);
$this->model_payment_pp_pro_iframe->addTransaction($transaction);
$this->model_payment_pp_pro_iframe->updateOrder('Complete', $this->request->post['order_id']);
unset($transaction['debug_data']);
$transaction['created'] = date("Y-m-d H:i:s");
$json['data'] = $transaction;
$json['error'] = false;
$json['msg'] = 'Transaction void';
} else {
$json['error'] = true;
$json['msg'] = (isset($result['L_SHORTMESSAGE0']) ? $result['L_SHORTMESSAGE0'] : $this->language->get('error_general'));
}
} else {
$json['error'] = true;
$json['msg'] = $this->language->get('error_missing_data');
}
$this->response->setOutput(json_encode($json));