wirecard_cc.php

来自「this the oscommerce 3.0 aplha 4」· PHP 代码 · 共 354 行 · 第 1/2 页

PHP
354
字号
        $confirmation['fields'][] = array('title' => $osC_Language->get('payment_wirecard_cc_credit_card_cvc'),                                          'field' => $osC_CreditCard->getCVC());      }      return $confirmation;    }    function process_button() {      global $osC_CreditCard;      $fields = osc_draw_hidden_field('wirecard_cc_owner', $osC_CreditCard->getOwner()) .                osc_draw_hidden_field('wirecard_cc_expires_month', $osC_CreditCard->getExpiryMonth()) .                osc_draw_hidden_field('wirecard_cc_expires_year', $osC_CreditCard->getExpiryYear()) .                osc_draw_hidden_field('wirecard_cc_number', $osC_CreditCard->getNumber());      if (MODULE_PAYMENT_WIRECARD_CC_VERIFY_WITH_CVC == '1') {        $fields .= osc_draw_hidden_field('wirecard_cc_cvc', $osC_CreditCard->getCVC());      }      return $fields;    }    function process() {      global $osC_Database, $osC_Customer, $osC_Currencies, $osC_ShoppingCart, $osC_Language, $messageStack, $osC_CreditCard;      $this->_verifyData();      $this->_order_id = osC_Order::insert();      $post_string = '<?xml version="1.0" encoding="UTF-8"?>' . "\n" .                     '<WIRECARD_BXML xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xsi:noNamespaceSchemaLocation="wirecard.xsd">' . "\n" .                     '  <W_REQUEST>' . "\n" .                     '    <W_JOB>' . "\n" .                     '      <JobID>Job 1</JobID>' . "\n" .                     '      <BusinessCaseSignature>' . MODULE_PAYMENT_WIRECARD_CC_BUSINESS_SIGNATURE . '</BusinessCaseSignature>' . "\n" .                     '      <FNC_CC_PREAUTHORIZATION>' . "\n" .                     '        <FunctionID>Preauthorization 1</FunctionID>' . "\n" .                     '        <CC_TRANSACTION mode="' . MODULE_PAYMENT_WIRECARD_CC_TRANSACTION_MODE . '">' . "\n" .                     '          <TransactionID>' . $this->_order_id . '</TransactionID>' . "\n" .                     '          <CommerceType>eCommerce</CommerceType>' . "\n" .                     '          <Amount>' . $osC_Currencies->formatRaw($osC_ShoppingCart->getTotal(), $osC_Currencies->getCode()) * 100 . '</Amount>' . "\n" .                     '          <Currency>' . $osC_Currencies->getCode() . '</Currency>' . "\n" .                     '          <CountryCode>' . osC_Address::getCountryIsoCode2(STORE_COUNTRY) . '</CountryCode>' . "\n" .                     '          <Usage>' . STORE_NAME . '</Usage>' . "\n" .                     '          <RECURRING_TRANSACTION>' . "\n" .                     '            <Type>Single</Type>' . "\n" .                     '          </RECURRING_TRANSACTION>' . "\n" .                     '          <CREDIT_CARD_DATA>' . "\n" .                     '            <CreditCardNumber>' . $osC_CreditCard->getNumber() . '</CreditCardNumber>' . "\n";      if (MODULE_PAYMENT_WIRECARD_CC_VERIFY_WITH_CVC == '1') {        $post_string .= '            <CVC2>' . $osC_CreditCard->getCVC() . '</CVC2>' . "\n";      }      $post_string .= '            <ExpirationYear>' . $osC_CreditCard->getExpiryYear() . '</ExpirationYear>' . "\n" .                      '            <ExpirationMonth>' . $osC_CreditCard->getExpiryMonth() . '</ExpirationMonth>' . "\n" .                      '            <CardHolderName>' . $osC_CreditCard->getOwner() . '</CardHolderName>' . "\n" .                      '          </CREDIT_CARD_DATA>' . "\n" .                      '          <CONTACT_DATA>' . "\n" .                      '            <IPAddress>' . osc_get_ip_address() . '</IPAddress>' . "\n" .                      '          </CONTACT_DATA>' . "\n" .                      '          <CORPTRUSTCENTER_DATA>' . "\n" .                      '            <ADDRESS>' . "\n" .                      '              <FirstName>' . $osC_ShoppingCart->getBillingAddress('firstname') . '</FirstName>' . "\n" .                      '              <LastName>' . $osC_ShoppingCart->getBillingAddress('lastname') . '</LastName>' . "\n" .                      '              <Address1>' . $osC_ShoppingCart->getBillingAddress('street_address') . '</Address1>' . "\n" .                      '              <City>' . $osC_ShoppingCart->getBillingAddress('city') . '</City>' . "\n" .                      '              <ZipCode>' . $osC_ShoppingCart->getBillingAddress('postcode') . '</ZipCode>' . "\n";      if (osc_empty($osC_ShoppingCart->getBillingAddress('zone_code')) === false) {        $post_string .= '              <State>' . $osC_ShoppingCart->getBillingAddress('zone_code') . '</State>' . "\n";      }      $post_string .= '              <Country>' . $osC_ShoppingCart->getBillingAddress('country_iso_code_2') . '</Country>' . "\n" .                      '              <Phone>' . $osC_ShoppingCart->getBillingAddress('telephone_number') . '</Phone>' . "\n" .                      '              <Email>' . $osC_Customer->getEmailAddress() . '</Email>' . "\n" .                      '            </ADDRESS>' . "\n" .                      '          </CORPTRUSTCENTER_DATA>' . "\n" .                      '        </CC_TRANSACTION>' . "\n" .                      '      </FNC_CC_PREAUTHORIZATION>' . "\n" .                      '    </W_JOB>' . "\n" .                      '  </W_REQUEST>' . "\n" .                      '</WIRECARD_BXML>';      $this->_transaction_response = $this->sendTransactionToGateway($this->_gateway_url, $post_string, array('Content-type: text/xml'));      if (empty($this->_transaction_response) === false) {        $osC_XML = new osC_XML($this->_transaction_response);        $result = $osC_XML->toArray();      } else {        $result = array();      }      $error = false;      if (isset($result['WIRECARD_BXML']['W_RESPONSE']['W_JOB']['FNC_CC_PREAUTHORIZATION']['CC_TRANSACTION']['PROCESSING_STATUS']['FunctionResult'])) {        if ($result['WIRECARD_BXML']['W_RESPONSE']['W_JOB']['FNC_CC_PREAUTHORIZATION']['CC_TRANSACTION']['PROCESSING_STATUS']['FunctionResult'] != 'ACK') {          $errno = $result['WIRECARD_BXML']['W_RESPONSE']['W_JOB']['FNC_CC_PREAUTHORIZATION']['CC_TRANSACTION']['PROCESSING_STATUS']['ERROR']['Number'];          switch ($errno) {            case '14':            case '20109':              $error = $osC_Language->get('payment_wirecard_cc_error_unkown_card');              break;            case '33':            case '20071':              $error = $osC_Language->get('payment_wirecard_cc_error_' . (int)$errno);              break;            default:              $error = $osC_Language->get('payment_wirecard_cc_error_general');              break;          }        }      } else {        $error = $osC_Language->get('payment_wirecard_cc_error_general');      }      if ($error === false) {        osC_Order::process($this->_order_id, $this->order_status);        $Qtransaction = $osC_Database->query('insert into :table_orders_transactions_history (orders_id, transaction_code, transaction_return_value, transaction_return_status, date_added) values (:orders_id, :transaction_code, :transaction_return_value, :transaction_return_status, now())');        $Qtransaction->bindTable(':table_orders_transactions_history', TABLE_ORDERS_TRANSACTIONS_HISTORY);        $Qtransaction->bindInt(':orders_id', $this->_order_id);        $Qtransaction->bindInt(':transaction_code', 1);        $Qtransaction->bindValue(':transaction_return_value', $this->_transaction_response);        $Qtransaction->bindInt(':transaction_return_status', 1);        $Qtransaction->execute();      } else {        osC_Order::remove($this->_order_id);        $messageStack->add_session('checkout_payment', $error, 'error');        osc_redirect(osc_href_link(FILENAME_CHECKOUT, 'payment&wirecard_cc_owner=' . $osC_CreditCard->getOwner() . '&wirecard_cc_expires_month=' . $osC_CreditCard->getExpiryMonth() . '&wirecard_cc_expires_year=' . $osC_CreditCard->getExpiryYear() . (MODULE_PAYMENT_WIRECARD_CC_VERIFY_WITH_CVC == '1' ? '&wirecard_cc_cvc=' . $osC_CreditCard->getCVC() : ''), 'SSL'));      }    }    function _verifyData() {      global $osC_Language, $messageStack, $osC_CreditCard;      $osC_CreditCard = new osC_CreditCard($_POST['wirecard_cc_number'], $_POST['wirecard_cc_expires_month'], $_POST['wirecard_cc_expires_year']);      $osC_CreditCard->setOwner($_POST['wirecard_cc_owner']);      if (MODULE_PAYMENT_WIRECARD_CC_VERIFY_WITH_CVC == '1') {        $osC_CreditCard->setCVC($_POST['wirecard_cc_cvc']);      }      if (($result = $osC_CreditCard->isValid(MODULE_PAYMENT_WIRECARD_CC_ACCEPTED_TYPES)) !== true) {        $error = '';        switch ($result) {          case -2:            $error = $osC_Language->get('payment_wirecard_cc_error_20071');            break;          case -3:            $error = $osC_Language->get('payment_wirecard_cc_error_33');            break;          case -5:            $error = $osC_Language->get('payment_wirecard_cc_error_not_accepted');            break;          default:            $error = $osC_Language->get('payment_wirecard_cc_error_general');            break;        }        $messageStack->add_session('checkout_payment', $error, 'error');        osc_redirect(osc_href_link(FILENAME_CHECKOUT, 'payment&wirecard_cc_owner=' . $osC_CreditCard->getOwner() . '&wirecard_cc_expires_month=' . $osC_CreditCard->getExpiryMonth() . '&wirecard_cc_expires_year=' . $osC_CreditCard->getExpiryYear() . (MODULE_PAYMENT_WIRECARD_CC_VERIFY_WITH_CVC == '1' ? '&wirecard_cc_cvc=' . $osC_CreditCard->getCVC() : ''), 'SSL'));      }    }  }?>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?