<?php include_once dirname(__FILE__) . '/../../config/config.inc.php'; include_once dirname(__FILE__) . '/../../init.php'; include_once dirname(__FILE__) . '/greenworld_ecpay6.php'; include_once dirname(__FILE__) . '/../../classes/OrderHistory.php'; $checkTemp = new greenworld_ecpay6(); // 商店設定在ECBank管理後台的交易加密私鑰 $key = $checkTemp->getEncryptionCode(); $amount = $checkTemp->getAmount(Tools::getValue("od_sob")); // 組合字串 $serial = trim($_REQUEST['process_date'] . $_REQUEST['process_time'] . $_REQUEST['gwsr']); // 回傳的交易驗證壓碼 $amt = trim($_REQUEST['amount']); // ECBank 驗證Web Service網址 $ws_url = 'https://ecpay.com.tw/g_recheck.php?key=' . $_REQUEST["rech_key"] . '&serial=' . $serial . '&amt=' . $amt; // 取得驗證結果 (也可以使用curl) $tac_valid = file_get_contents($ws_url); if ($tac_valid == 'valid=1') { if ($amount == $_REQUEST['amount'] && $_REQUEST['succ'] == '1') { $id_order = $_REQUEST['od_sob']; $newOrderStatusId = 2; $history = new OrderHistory(); $history->id_order = (int) $id_order; $history->changeIdOrderState($newOrderStatusId, $id_order); $history->addWithemail(); echo 'OK'; } else { echo '付款失敗'; } } else {
session_destroy(); } else { $_SESSION["checkStep"] = "1"; echo Module::display(_iMODULE_NAME_ECPAY6_, 'validationOrder.tpl'); } } else { if ($_SESSION["checkStep"] == "1" && $check == "1") { $CheckPay->validateOrder((int) $cart->id, 1, $inttotal, $CheckPay->displayName, NULL, array(), NULL, false, $customer->secure_key); $newOrderStatusId = "1"; $history = new OrderHistory(); $history->id_order = (int) $CheckPay->currentOrder; $history->changeIdOrderState((int) $newOrderStatusId, (int) $CheckPay->currentOrder); $history->addWithemail(); $URL = $CheckPay->getBaseURL(); $PostData .= "mer_id=" . $CheckPay->getShopCode(); $PostData .= "&enc_key=" . $CheckPay->getEncryptionCode(); $PostData .= "&payment_type=" . $CheckPay->getPaymentType(); $PostData .= "&amt=" . $inttotal; $PostData .= "&od_sob=" . $CheckPay->currentOrder; $PostData .= "&return_url=" . rawurlencode("http://" . $_SERVER["HTTP_HOST"] . $CheckPay->path . "doFictitiousDetonate.php"); // 建立CURL連線 $ch = curl_init(); // 設定擷取的URL網址 curl_setopt($ch, CURLOPT_URL, $URL); curl_setopt($ch, CURLOPT_HEADER, false); //將curl_exec()獲取的訊息以文件流的形式返回,而不是直接輸出。 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //設定CURLOPT_POST 為 1或true,表示要用POST方式傳遞 curl_setopt($ch, CURLOPT_POST, 0); //CURLOPT_POSTFIELDS 後面則是要傳接的POST資料。 curl_setopt($ch, CURLOPT_POSTFIELDS, $PostData);