示例#1
0
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');
    }
}
示例#2
0
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');
    }
}
示例#3
0
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);
        //----------------------
        //即时到帐处理业务开始
        //-----------------------