public function validSend($data) { $this->load->model('localisation/zone'); $order_id = $this->session->data['order_id']; $number_card = $this->session->data['cc_number']; $check_digit = $this->session->data['cc_cvv']; $exp_month = $this->session->data['cc_exp_month']; $exp_year = $this->session->data['cc_exp_year']; $card_holder = $this->session->data['cc_card_holder']; $brand = strtolower($data['payment_method']); $ambient = $this->config->get('braspag_card_debit_ambient'); $classMap = array('PaymentDataRequest' => 'PaymentDataRequest', 'DebitCardDataRequest' => 'DebitCardDataRequest'); $AuthorizeTransactionRequest = new StdClass(); $AuthorizeTransactionRequest->RequestId = $this->generateGuid(); $AuthorizeTransactionRequest->Version = '1.0'; $AuthorizeTransactionRequest->OrderData = new StdClass(); $AuthorizeTransactionRequest->OrderData->MerchantId = $this->config->get('braspag_card_debit_merchant_id'); $AuthorizeTransactionRequest->OrderData->OrderId = $data['order_id']; $AuthorizeTransactionRequest->OrderData->BraspagOrderId = NULL; $AuthorizeTransactionRequest->CustomerData = new StdClass(); $AuthorizeTransactionRequest->CustomerData->CustomerIdentity = $data['customer_id']; $AuthorizeTransactionRequest->CustomerData->CustomerName = $data['firstname'] . ' ' . $data['lastname']; $DebitCardDataRequest = new DebitCardDataRequest(); if (strtolower($this->config->get('braspag_card_debit_acquirer')) == 'cielo') { switch ($brand) { case 'visa electron': $DebitCardDataRequest->PaymentMethod = 123; break; case 'mastercard maestro': $DebitCardDataRequest->PaymentMethod = 552; break; } } if ($ambient == 0) { $DebitCardDataRequest->PaymentMethod = 997; } $DebitCardDataRequest->Amount = $data['total'] * 100; $DebitCardDataRequest->Currency = 'BRL'; $DebitCardDataRequest->Country = 'BRA'; $DebitCardDataRequest->CardNumber = $number_card; $DebitCardDataRequest->CardHolder = $card_holder; $DebitCardDataRequest->CardExpirationDate = $exp_month . '/' . substr(date('Y'), 0, 2) . $exp_year; $DebitCardDataRequest->CardSecurityCode = $check_digit; $DebitCardDataRequest->NumberOfPayments = 1; $DebitCardDataRequest->ServiceTaxAmount = 0; $DebitCardDataRequest->TransactionType = 2; //2 Captura Automatica $DebitCardDataRequest->PaymentPlan = 0; $AuthorizeTransactionRequest->PaymentDataCollection = array(); $AuthorizeTransactionRequest->PaymentDataCollection[0] = $DebitCardDataRequest; $soap_options = array('trace' => 1, 'exceptions' => 1, 'classmap' => $classMap); if ($ambient == 0) { $wsdl = "https://homologacao.pagador.com.br/webservices/pagador/pagadortransaction.asmx?WSDL"; } else { $wsdl = "https://pagador.com.br/webservices/pagador/pagadortransaction.asmx?WSDL"; } $SoapClient = new SoapClient($wsdl, $soap_options); $AuthorizeTransactionResult = $SoapClient->AuthorizeTransaction(array("request" => $AuthorizeTransactionRequest)); $insert = "INSERT INTO " . DB_PREFIX . "transaction_braspag_card_debit SET order_id = '" . $this->session->data['order_id'] . "', num_card = '" . substr($number_card, 0, 6) . "******" . substr($number_card, 12, 4) . "', num_security = '" . $check_digit . "', date_card = '" . $exp_month . '/' . $exp_year . "', name_card = '" . $card_holder . "', date_added = NOW(), "; $return_transation = $AuthorizeTransactionResult->AuthorizeTransactionResult; if ($return_transation->Success == true) { $insert .= "braspagOrderId = '" . $return_transation->OrderData->BraspagOrderId . "', braspagTransactionId = '" . $return_transation->PaymentDataCollection->PaymentDataResponse->BraspagTransactionId . "',paymentMethod = '" . $return_transation->PaymentDataCollection->PaymentDataResponse->PaymentMethod . "',amount = '" . $return_transation->PaymentDataCollection->PaymentDataResponse->Amount . "',returnCode = '" . $return_transation->PaymentDataCollection->PaymentDataResponse->ReturnCode . "', status = '" . $return_transation->PaymentDataCollection->PaymentDataResponse->Status . "',"; if (isset($return_transation->PaymentDataCollection->PaymentDataResponse->AuthenticationUrl)) { $insert .= "url = '" . $return_transation->PaymentDataCollection->PaymentDataResponse->AuthenticationUrl . "',"; } if (isset($return_transation->PaymentDataCollection->PaymentDataResponse->AcquirerTransactionId)) { $insert .= "acquirerTransactionId = '" . $return_transation->PaymentDataCollection->PaymentDataResponse->AcquirerTransactionId . "',"; } } else { $insert .= "errorCode = '" . $return_transation->ErrorReportDataCollection->ErrorReportDataResponse->ErrorCode . "', errorMessage = '" . $return_transation->ErrorReportDataCollection->ErrorReportDataResponse->ErrorMessage . "',"; } $insert .= " flag = '" . $brand . "', number_parcel = '1'"; $this->db->query($insert); return true; }