function trade_notifycheck($type) { global $_G; if (!empty($_POST)) { $notify = $_POST; $location = FALSE; } elseif (!empty($_GET)) { $notify = $_GET; $location = TRUE; } else { exit('Access Denied'); } unset($notify['diy']); if (dfsockopen("http://notify.alipay.com/trade/notify_query.do?partner=" . DISCUZ_PARTNER . "¬ify_id=" . $notify['notify_id'], 60) !== 'true') { exit('Access Denied'); } if ($type == 'trade') { $urlstr = ''; foreach ($notify as $key => $val) { MAGIC_QUOTES_GPC && ($val = stripslashes($val)); $urlstr .= $key . '=' . rawurlencode(stripslashes($val)) . '&'; } } else { ksort($notify); $sign = ''; foreach ($notify as $key => $val) { if ($key != 'sign' and $key != 'sign_type') { $sign .= "&{$key}={$val}"; } } if ($notify['sign'] != md5(substr($sign, 1) . DISCUZ_SECURITYCODE)) { exit('Access Denied'); } } if ($type == 'credit' && (!DISCUZ_DIRECTPAY && $notify['notify_type'] == 'trade_status_sync' && ($notify['trade_status'] == 'WAIT_SELLER_SEND_GOODS' || $notify['trade_status'] == 'TRADE_FINISHED') || DISCUZ_DIRECTPAY && ($notify['trade_status'] == 'TRADE_FINISHED' || $notify['trade_status'] == 'TRADE_SUCCESS')) || $type == 'trade' && $notify['notify_type'] == 'trade_status_sync') { return array('validator' => TRUE, 'status' => trade_getstatus(!empty($notify['refund_status']) ? $notify['refund_status'] : $notify['trade_status'], 1), 'order_no' => $notify['out_trade_no'], 'price' => !DISCUZ_DIRECTPAY && $notify['price'] ? $notify['price'] : $notify['total_fee'], 'trade_no' => $notify['trade_no'], 'notify' => 'success', 'location' => $location); } else { return array('validator' => FALSE, 'notify' => 'fail', 'location' => $location); } }
$price = $tradelog['baseprice'] * $tradelog['number']; } else { $price = $tradelog['baseprice'] * $tradelog['number']; } if ($_G['setting']['creditstransextra'][5] != -1 && ($oldnumber != $newnumber || $oldbasecredit != $tradelog['basecredit'])) { $tradelog['credit'] = $newnumber * $tradelog['basecredit']; $update['credit'] = $tradelog['credit']; } $update['price'] = $price + ($tradelog['transport'] == 2 ? $tradelog['transportfee'] : 0); C::t('forum_tradelog')->update($orderid, $update); $tradelog = C::t('forum_tradelog')->fetch($orderid); } } } $tradelog['lastupdate'] = dgmdate($tradelog['lastupdate'], 'u'); $tradelog['statusview'] = trade_getstatus($tradelog['status']); $messagelist = array(); if ($tradelog['offline']) { $offlinenext = trade_offline($tradelog, 1, $trade_message); $message = explode("\t\t\t", $tradelog['message']); foreach ($message as $row) { $row = explode("\t", $row); $row[2] = dgmdate($row[2], 'u'); $row[0] && ($messagelist[] = $row); } } else { $loginurl = trade_getorderurl($tradelog['tradeno']); } $trade = C::t('forum_trade')->fetch_goods($tradelog['tid'], $tradelog['pid']); include template('forum/trade_view'); } else {
exit('Access Denied'); } require_once libfile('function/trade'); $language = lang('forum/misc'); cpheader(); $ppp = 20; $start_limit = ($page - 1) * $ppp; $filter = !isset($_G['gp_filter']) ? -1 : $_G['gp_filter']; $sqlfilter = $filter >= 0 ? "WHERE status='{$filter}'" : ''; $count = DB::fetch_first("SELECT SUM(price) AS pricesum, SUM(credit) AS creditsum, sum(tax) AS taxsum FROM " . DB::table('forum_tradelog') . " {$sqlfilter}"); $num = DB::result_first("SELECT COUNT(*) FROM " . DB::table('forum_tradelog') . " {$sqlfilter}"); $multipage = multi($num, $ppp, $page, ADMINSCRIPT . "?action=tradelog&filter={$filter}"); $query = DB::query("SELECT * FROM " . DB::table('forum_tradelog') . " {$sqlfilter} ORDER BY lastupdate DESC LIMIT {$start_limit}, {$ppp}"); shownav('extended', 'nav_ec'); showsubmenu('nav_ec', array(array('nav_ec_config', 'setting&operation=ec&mod=forum', 0), array('nav_ec_tenpay', 'ec&operation=tenpay&mod=forum', 0), array('nav_ec_alipay', 'ec&operation=alipay&mod=forum', 0), array('nav_ec_credit', 'ec&operation=credit&mod=forum', 0), array('nav_ec_orders', 'ec&operation=orders&mod=forum', 0), array('nav_ec_tradelog', 'tradelog&mod=forum', 1))); showtableheader(); showsubtitle(array('tradelog_trade_no', 'tradelog_trade_name', 'tradelog_buyer', 'tradelog_seller', 'tradelog_money', $lang['tradelog_credit'] . "({$_G[setting][extcredits][$_G['setting']['creditstransextra'][5]][title]})", 'tradelog_fee', 'tradelog_order_status')); while ($tradelog = DB::fetch($query)) { $tradelog['status'] = trade_getstatus($tradelog['status']); $tradelog['lastupdate'] = dgmdate($tradelog['lastupdate']); $tradelog['tradeno'] = $tradelog['offline'] ? $lang['tradelog_offline'] : $tradelog['tradeno']; showtablerow('', '', array($tradelog['tradeno'], '<a target="_blank" href="forum.php?mod=viewthread&do=tradeinfo&tid=' . $tradelog['tid'] . '&pid=' . $tradelog['pid'] . '">' . $tradelog['subject'] . '</a>', '<a target="_blank" href="home.php?mod=space&uid=' . $tradelog['buyerid'] . '">' . $tradelog['buyer'] . '</a>', '<a target="_blank" href="home.php?mod=space&uid=' . $tradelog['sellerid'] . '">' . $tradelog['seller'] . '</a>', $tradelog['price'], $tradelog['credit'], $tradelog['tax'], '<a target="_blank" href="forum.php?mod=trade&orderid=' . $tradelog['orderid'] . '">' . $tradelog['status'] . '<br />' . $tradelog['lastupdate'])); } $statusselect = $lang['tradelog_order_status'] . ': <select onchange="location.href=\'' . ADMINSCRIPT . '?action=tradelog&filter=\' + this.value"><option value="-1">' . $lang['tradelog_all_order'] . '</option>'; $statuss = trade_getstatus(0, -1); foreach ($statuss as $key => $value) { $statusselect .= "<option value=\"{$key}\" " . ($filter == $key ? 'selected' : '') . ">{$value}</option>"; } $statusselect .= '</select>'; showsubmit('', '', "{$lang['tradelog_order_count']} {$num}, {$lang['tradelog_trade_total']} {$count['pricesum']} {$lang['rmb_yuan']}, {$lang['tradelog_trade_totalcredit']} {$_G[setting][extcredits][$_G['setting']['creditstransextra'][5]][title]} {$count['creditsum']} {$_G[setting][extcredits][$_G['setting']['creditstransextra'][5]][unit]}, {$lang['tradelog_fee_total']} {$count['taxsum']} {$lang['rmb_yuan']}", '', $multipage . $statusselect); showtablefooter();