function trade_notifycheck($type) { global $_G; if (DISCUZ_TENPAY_DIRECT && $type == 'credit') { $resHandler = new ResponseHandler(); $resHandler->setKey(DISCUZ_SECURITYCODE); $resHandler->setParameter("pay_time", ""); } else { $resHandler = new MediPayResponseHandler(); $resHandler->setKey(DISCUZ_TENPAY_OPENTRANS_KEY); } if ($type == 'credit') { if (DISCUZ_TENPAY_DIRECT && $resHandler->isTenpaySign() && DISCUZ_PARTNER == $_G['gp_bargainor_id']) { return array('validator' => !$_G['gp_pay_result'], 'order_no' => $_G['gp_sp_billno'], 'trade_no' => $_G['gp_transaction_id'], 'price' => $_G['gp_total_fee'] / 100, 'bargainor_id' => $_G['gp_bargainor_id'], 'location' => true); } elseif (!DISCUZ_TENPAY_DIRECT && $resHandler->isTenpaySign()) { return array('validator' => $resHandler->getParameter('retcode') == '0', 'order_no' => $resHandler->getParameter('mch_vno'), 'trade_no' => $resHandler->getParameter('cft_tid'), 'price' => $resHandler->getParameter('total_fee') / 100.0, 'status' => $resHandler->getParameter('status'), 'location' => true); } } elseif ($type == 'trade') { if ($resHandler->isTenpaySign()) { return array('validator' => $resHandler->getParameter('retcode') == '0', 'order_no' => $resHandler->getParameter('mch_vno'), 'trade_no' => $resHandler->getParameter('cft_tid'), 'price' => $resHandler->getParameter('total_fee') / 100.0, 'status' => $resHandler->getParameter('status'), 'location' => true); } } else { return array('validator' => FALSE, 'location' => 'forum.php?mod=memcp&action=credits&operation=addfunds&return=fail'); } }
function trade_notifycheck($type) { global $_G; if ($type == 'credit' || $type == 'invite') { if (!DISCUZ_SECURITYCODE) { exit('Access Denied'); } $resHandler = new ResponseHandler(); $resHandler->setKey(DISCUZ_SECURITYCODE); $resHandler->setParameter("bankname", ""); } else { if (!DISCUZ_TENPAY_OPENTRANS_KEY) { exit('Access Denied'); } $resHandler = new MediPayResponseHandler(); $resHandler->setKey(DISCUZ_TENPAY_OPENTRANS_KEY); } if ($type == 'credit' || $type == 'invite') { if ($resHandler->isTenpaySign() && DISCUZ_PARTNER == $_GET['partner']) { return array('validator' => !$_GET['trade_state'], 'order_no' => $_GET['out_trade_no'], 'trade_no' => $_GET['transaction_id'], 'price' => $_GET['total_fee'] / 100, 'bargainor_id' => $_GET['partner'], 'location' => true); } } elseif ($type == 'trade') { if ($resHandler->isTenpaySign()) { return array('validator' => $resHandler->getParameter('retcode') == '0', 'order_no' => $resHandler->getParameter('mch_vno'), 'trade_no' => $resHandler->getParameter('cft_tid'), 'price' => $resHandler->getParameter('total_fee') / 100.0, 'status' => $resHandler->getParameter('status'), 'location' => true); } } else { return array('validator' => FALSE, 'location' => 'forum.php?mod=memcp&action=credits&operation=addfunds&return=fail'); } }
require $_SERVER['DOCUMENT_ROOT'] . '/includes/lib_clips.php'; require "classes/ResponseHandler.class.php"; require "classes/RequestHandler.class.php"; require "classes/client/TenpayHttpClient.class.php"; require "./classes/function.php"; require_once "./tenpay_config.php"; log_result("进入后台回调页面"); $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; log_result($postStr); log_result("1"); /* 创建支付应答对象 */ $resHandler = new ResponseHandler(); $inputParams = $resHandler->xmlToArray($postStr); log_result("2"); foreach ($inputParams as $k => $v) { $resHandler->setParameter($k, $v); } $resHandler->setKey($PARTNER_KEY); //判断签名 if ($resHandler->isTenpaySign() == true) { //支付结果 $return_code = $resHandler->getParameter("return_code"); //判断签名及结果 if ("SUCCESS" == $return_code) { //商户在收到后台通知后根据通知ID向财付通发起验证确认,采用后台系统调用交互模式 //商户交易单号 $out_trade_no = $resHandler->getParameter("out_trade_no"); log_result($out_trade_no); //---------------------- //即时到帐处理业务开始 //-----------------------