wirecard_eft.php
来自「this the oscommerce 3.0 aplha 4」· PHP 代码 · 共 299 行 · 第 1/2 页
PHP
299 行
$fields = osc_draw_hidden_field('wirecard_eft_owner_first', $_POST['wirecard_eft_owner_first']) . osc_draw_hidden_field('wirecard_eft_owner_last', $_POST['wirecard_eft_owner_last']) . osc_draw_hidden_field('wirecard_eft_account_type', $_POST['wirecard_eft_account_type']) . osc_draw_hidden_field('wirecard_eft_account', $_POST['wirecard_eft_account']) . osc_draw_hidden_field('wirecard_eft_bank', $_POST['wirecard_eft_bank']) . osc_draw_hidden_field('wirecard_eft_check_number', $_POST['wirecard_eft_check_number']); if ($osC_ShoppingCart->getBillingAddress('country_iso_code_2') == 'IT') { $fields .= osc_draw_hidden_field('wirecard_eft_id_number', $_POST['wirecard_eft_id_number']); } 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_EFT_BUSINESS_SIGNATURE . '</BusinessCaseSignature>' . "\n" . ' <FNC_FT_DEBIT>' . "\n" . ' <FunctionID>Debit 1</FunctionID>' . "\n" . ' <FT_TRANSACTION mode="' . MODULE_PAYMENT_WIRECARD_EFT_TRANSACTION_MODE . '">' . "\n" . ' <TransactionID>' . $this->_order_id . '</TransactionID>' . "\n" . ' <EXTERNAL_ACCOUNT>' . "\n" . ' <FirstName>' . $_POST['wirecard_eft_owner_first'] . '</FirstName>' . "\n" . ' <LastName>' . $_POST['wirecard_eft_owner_last'] . '</LastName>' . "\n" . ' <AccountNumber>' . $_POST['wirecard_eft_account'] . '</AccountNumber>' . "\n" . ' <AccountType>' . $_POST['wirecard_eft_account_type'] . '</AccountType>' . "\n" . ' <BankCode>' . $_POST['wirecard_eft_bank_code'] . '</BankCode>' . "\n" . ' <Country>' . $osC_ShoppingCart->getBillingAddress('country_iso_code_2') . '</Country>' . "\n" . ' <CheckNumber>' . $_POST['wirecard_eft_check_number'] . '</CheckNumber>' . "\n"; if ($osC_ShoppingCart->getBillingAddress('country_iso_code_2') == 'IT') { $post_string .= ' <COUNTRY_SPECIFIC>' . "\n" . ' <IdentificationNumber>' . $_POST['wirecard_eft_id_number'] . '</IdentificationNumber>' . "\n" . ' </COUNTRY_SPECIFIC>' . "\n"; } $post_string .= ' </EXTERNAL_ACCOUNT>' . "\n" . ' <Amount>' . $osC_Currencies->formatRaw($osC_ShoppingCart->getTotal(), $osC_Currencies->getCode()) * 100 . '</Amount>' . "\n" . ' <Currency>' . $osC_Currencies->getCode() . '</Currency>' . "\n" . ' <CORPTRUSTCENTER_DATA>' . "\n" . ' <ADDRESS>' . "\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" . ' </FT_TRANSACTION>' . "\n" . ' </FNC_FT_DEBIT>' . "\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_FT_DEBIT']['FT_TRANSACTION']['PROCESSING_STATUS']['FunctionResult'])) { if ($result['WIRECARD_BXML']['W_RESPONSE']['W_JOB']['FNC_FT_DEBIT']['FT_TRANSACTION']['PROCESSING_STATUS']['FunctionResult'] != 'ACK') {// $errno = $result['WIRECARD_BXML']['W_RESPONSE']['W_JOB']['FNC_FT_DEBIT']['FT_TRANSACTION']['PROCESSING_STATUS']['DETAIL']['ReturnCode'];// switch ($errno) {// default: $error = $osC_Language->get('payment_wirecard_eft_error_general');// break;// } } } else { $error = $osC_Language->get('payment_wirecard_eft_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_eft_owner_first=' . $_POST['wirecard_eft_owner_first'] . '&wirecard_eft_owner_last=' . $_POST['wirecard_eft_owner_last'] . '&wirecard_eft_account_type=' . $_POST['wirecard_eft_account_type'] . '&wirecard_eft_bank=' . $_POST['wirecard_eft_bank'] . '&wirecard_eft_check_number=' . $_POST['wirecard_eft_check_number'] . (($osC_ShoppingCart->getBillingAddress('country_iso_code_2') == 'IT') ? '&wirecard_eft_id_number=' . $_POST['wirecard_eft_id_number'] : ''), 'SSL')); } } function _verifyData() { global $osC_Language, $messageStack, $osC_ShoppingCart; $_POST['wirecard_eft_owner_first'] = trim($_POST['wirecard_eft_owner_first']); $_POST['wirecard_eft_owner_last'] = trim($_POST['wirecard_eft_owner_last']); $_POST['wirecard_eft_account'] = trim($_POST['wirecard_eft_account']); $_POST['wirecard_eft_bank'] = trim($_POST['wirecard_eft_bank']); $_POST['wirecard_eft_check_number'] = trim($_POST['wirecard_eft_check_number']); if ($osC_ShoppingCart->getBillingAddress('country_iso_code_2') == 'IT') { $_POST['wirecard_eft_id_number'] = trim($_POST['wirecard_eft_id_number']); } if (empty($_POST['wirecard_eft_owner_first']) || empty($_POST['wirecard_eft_owner_last']) || empty($_POST['wirecard_eft_account']) || (strlen($_POST['wirecard_eft_account']) < 3) || empty($_POST['wirecard_eft_bank']) || (strlen($_POST['wirecard_eft_bank']) !== 8) || (in_array($_POST['wirecard_eft_account_type'], array('C', 'S')) === false)) { $messageStack->add_session('checkout_payment', $osC_Language->get('payment_wirecard_eft_error_general'), 'error'); osc_redirect(osc_href_link(FILENAME_CHECKOUT, 'payment&wirecard_eft_owner_first=' . $_POST['wirecard_eft_owner_first'] . '&wirecard_eft_owner_last=' . $_POST['wirecard_eft_owner_last'] . '&wirecard_eft_account_type=' . $_POST['wirecard_eft_account_type'] . '&wirecard_eft_bank=' . $_POST['wirecard_eft_bank'] . '&wirecard_eft_check_number=' . $_POST['wirecard_eft_check_number'] . (($osC_ShoppingCart->getBillingAddress('country_iso_code_2') == 'IT') ? '&wirecard_eft_id_number=' . $_POST['wirecard_eft_id_number'] : ''), 'SSL')); } } function _getAccountTypes($key = '') { global $osC_Language; $types = array('C' => $osC_Language->get('payment_wirecard_eft_account_type_checking'), 'S' => $osC_Language->get('payment_wirecard_eft_account_type_savings')); if ( (empty($key) === false) && isset($types[$key]) ) { return $types[$key]; } return $types; } }?>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?