bluepay_hosted.php (4718B)
1 <?php 2 class ControllerExtensionPaymentBluePayHosted extends Controller { 3 public function index() { 4 $this->load->language('extension/payment/bluepay_hosted'); 5 $this->load->model('checkout/order'); 6 $this->load->model('extension/payment/bluepay_hosted'); 7 8 $order_info = $this->model_checkout_order->getOrder($this->session->data['order_id']); 9 10 $data['ORDER_ID'] = $this->session->data['order_id']; 11 $data['NAME1'] = $order_info['payment_firstname']; 12 $data['NAME2'] = $order_info['payment_lastname']; 13 $data['ADDR1'] = $order_info['payment_address_1']; 14 $data['ADDR2'] = $order_info['payment_address_2']; 15 $data['CITY'] = $order_info['payment_city']; 16 $data['STATE'] = $order_info['payment_zone']; 17 $data['ZIPCODE'] = $order_info['payment_postcode']; 18 $data['COUNTRY'] = $order_info['payment_country']; 19 $data['PHONE'] = $order_info['telephone']; 20 $data['EMAIL'] = $order_info['email']; 21 22 $data['SHPF_FORM_ID'] = 'opencart01'; 23 $data['DBA'] = $this->config->get('payment_bluepay_hosted_account_name'); 24 $data['MERCHANT'] = $this->config->get('payment_bluepay_hosted_account_id'); 25 $data['SHPF_ACCOUNT_ID'] = $this->config->get('payment_bluepay_hosted_account_id'); 26 $data["TRANSACTION_TYPE"] = $this->config->get('payment_bluepay_hosted_transaction'); 27 $data["MODE"] = strtoupper($this->config->get('payment_bluepay_hosted_test')); 28 29 $data['CARD_TYPES'] = 'vi-mc'; 30 31 if ($this->config->get('payment_bluepay_hosted_discover') == 1) { 32 $data['CARD_TYPES'] .= '-di'; 33 } 34 35 if ($this->config->get('payment_bluepay_hosted_amex') == 1) { 36 $data['CARD_TYPES'] .= '-am'; 37 } 38 39 $data["AMOUNT"] = $this->currency->format($order_info['total'], $order_info['currency_code'], false, false); 40 $data['APPROVED_URL'] = $this->url->link('extension/payment/bluepay_hosted/callback', '', true); 41 $data['DECLINED_URL'] = $this->url->link('extension/payment/bluepay_hosted/callback', '', true); 42 $data['MISSING_URL'] = $this->url->link('extension/payment/bluepay_hosted/callback', '', true); 43 $data['REDIRECT_URL'] = $this->url->link('extension/payment/bluepay_hosted/callback', '', true); 44 45 $data['TPS_DEF'] = "MERCHANT APPROVED_URL DECLINED_URL MISSING_URL MODE TRANSACTION_TYPE TPS_DEF AMOUNT"; 46 $data['TAMPER_PROOF_SEAL'] = md5($this->config->get('payment_bluepay_hosted_secret_key') . $data['MERCHANT'] . $data['APPROVED_URL'] . $data['DECLINED_URL'] . $data['MISSING_URL'] . $data['MODE'] . $data['TRANSACTION_TYPE'] . $data['TPS_DEF'] . $data['AMOUNT']); 47 48 $data['SHPF_TPS_DEF'] = "SHPF_FORM_ID SHPF_ACCOUNT_ID DBA TAMPER_PROOF_SEAL CARD_TYPES TPS_DEF SHPF_TPS_DEF AMOUNT"; 49 $data['SHPF_TPS'] = md5($this->config->get('payment_bluepay_hosted_secret_key') . $data['SHPF_FORM_ID'] . $data['SHPF_ACCOUNT_ID'] . $data['DBA'] . $data['TAMPER_PROOF_SEAL'] . $data['CARD_TYPES'] . $data['TPS_DEF'] . $data['SHPF_TPS_DEF'] . $data['AMOUNT']); 50 51 $data['button_confirm'] = $this->language->get('button_confirm'); 52 $data['text_loading'] = $this->language->get('text_loading'); 53 54 return $this->load->view('extension/payment/bluepay_hosted', $data); 55 } 56 57 public function callback() { 58 $this->load->language('extension/payment/bluepay_hosted'); 59 60 $this->load->model('checkout/order'); 61 62 $this->load->model('extension/payment/bluepay_hosted'); 63 64 $response_data = $this->request->get; 65 66 if (isset($this->session->data['order_id'])) { 67 $order_info = $this->model_checkout_order->getOrder($this->session->data['order_id']); 68 69 if ($response_data['Result'] == 'APPROVED') { 70 $bluepay_hosted_order_id = $this->model_extension_payment_bluepay_hosted->addOrder($order_info, $response_data); 71 72 if ($this->config->get('payment_bluepay_hosted_transaction') == 'SALE') { 73 $this->model_extension_payment_bluepay_hosted->addTransaction($bluepay_hosted_order_id, 'payment', $order_info); 74 } else { 75 $this->model_extension_payment_bluepay_hosted->addTransaction($bluepay_hosted_order_id, 'auth', $order_info); 76 } 77 78 $this->model_checkout_order->addOrderHistory($this->session->data['order_id'], $this->config->get('payment_bluepay_hosted_order_status_id')); 79 80 $this->response->redirect($this->url->link('checkout/success', '', true)); 81 } else { 82 $this->session->data['error'] = $response_data['Result'] . ' : ' . $response_data['MESSAGE']; 83 84 $this->response->redirect($this->url->link('checkout/checkout', '', true)); 85 } 86 } else { 87 $this->response->redirect($this->url->link('account/login', '', true)); 88 } 89 } 90 91 public function adminCallback() { 92 $this->response->addHeader('Content-Type: application/json'); 93 $this->response->setOutput(json_encode($this->request->get)); 94 } 95 }