Пример #1
0
    function respond() {
        require_once ("tenpay/PayResponseHandler.class.php");
        $resHandler = new PayResponseHandler();
        $sp_billno = $resHandler->getParameter("sp_billno");
        if(preg_match('/(select|union|and|\'|"|\))/i',$sp_billno)){
        	exit('非法参数');
        }
        preg_match_all("/-(.*)-(.*)-(.*)/isu",$sp_billno,$oidout);
        $paytype = $where['pay_code'] = $oidout[3][0];
        include_once ROOT.'/lib/plugins/pay/'.$paytype.'.php';
        $pay = pay::getInstance()->getrows($where);
        $payconfig = unserialize($pay[0]['pay_config']);
        $resHandler->setKey($payconfig[1]['value']);
        
        $where = array();
        $where['oid']=$sp_billno;
        $orders=orders::getInstance()->getrow($where);

        if($resHandler->isTenpaySign()) {
            $transaction_id = $resHandler->getParameter("transaction_id");
            $total_fee = $resHandler->getParameter("total_fee");
            $pay_result = $resHandler->getParameter("pay_result");
            if("0" == $pay_result) {
                if (!pay::check_money($orders['id'],$total_fee/100)) {
                    echo "<br/>" . "金额不符" . "<br/>";
                    return false;
                }
                pay::changeorders($orders['id'],$_GET);
                $show = config::get('site_url');
                $resHandler->doShow($show);
            } else {
                echo "<br/>" . "支付失败" . "<br/>";
                 return false;
            }
        } else {
            echo "<br/>" . "认证签名失败" . "<br/>";
             return false;
        }
    }
Пример #2
0
<?php

require_once dirname(dirname(dirname(__FILE__))) . '/app.php';
$key = $INI['tenpay']['sec'];
$resHandler = new PayResponseHandler();
$resHandler->setKey($key);
if ($resHandler->isTenpaySign()) {
    $v_oid = $resHandler->getParameter("sp_billno");
    $v_amount = moneyit($resHandler->getParameter("total_fee") * 0.01);
    $pay_result = $resHandler->getParameter("pay_result");
    list($_, $order_id, $city_id, $_) = explode('-', $v_oid, 4);
    if ("0" == $pay_result) {
        /* charge */
        if ($_ == 'charge') {
            @(list($_, $user_id, $create_time, $_) = explode('-', $v_oid, 4));
            if (ZFlow::CreateFromCharge($v_amount, $user_id, $create_time, 'tenpay')) {
                Session::Set('notice', "财付通充值{$v_amount}元成功!");
            }
            redirect(WEB_ROOT . '/credit/index.php');
        }
        /* end charge */
        $currency = 'CNY';
        $service = 'tenpay';
        $bank = '财付通';
        ZOrder::OnlineIt($order_id, $v_oid, $v_amount, $currency, $service, $bank);
        $show = WEB_ROOT . "/order/pay.php?id={$order_id}";
        $resHandler->doShow($show);
        die(0);
    }
}
include template('order_return_error');
Пример #3
0
 private function func_pay($order_status)
 {
     //             //自动通关代码
     //            $this->load->model('checkout/order');
     //            $order_info = $this->model_checkout_order->getOrder("201507150987851");
     //            $order_totals=$this->model_checkout_order->Gettotals($order_info["order_id"]);
     //            $products=$this->model_checkout_order->getproducts($order_info["order_id"]);
     //            $cardifo_query=  $this->db->query("SELECT * FROM " . DB_PREFIX . "card where customer_id='".$order_info['customer_id']."'");
     //            $sign=new sign();
     //            $sign->creareorder($order_info, $order_totals, $products, $cardifo_query,$this->db);
     //            exit;
     require_once "tenpay_class/PayResponseHandler.class.php";
     /* 密钥 */
     $key = $this->config->get('tenpay_key');
     /* 创建支付应答对象 */
     $resHandler = new PayResponseHandler();
     $resHandler->setKey($key);
     $this->log->debug("Tenpay :: exciting PayResponseHandler.");
     //判断签名
     if ($resHandler->isTenpaySign()) {
         $this->load->model('checkout/order');
         // 获取订单号
         $order_id = $resHandler->getParameter("sp_billno");
         $this->log->debug(' order_id ' . $order_id);
         $this->load->model('checkout/order');
         $order_info = $this->model_checkout_order->getOrder($order_id);
         if ($order_info) {
             $order_status_id = $order_info["order_status_id"];
             $order_info = $this->model_checkout_order->getOrder($order_id);
             //交易单号
             $transaction_id = $resHandler->getParameter("transaction_id");
             //金额,以分为单位
             $total_fee = $resHandler->getParameter("total_fee");
             //支付结果
             $pay_result = $resHandler->getParameter("pay_result");
             if ("0" == $pay_result) {
                 $this->log->debug(' pay_result ' . $pay_result);
                 //------------------------------
                 //处理业务开始
                 //------------------------------
                 $this->log->debug();
                 $this->log->debug(' order_status_id ' . $this->config->get('tenpay_order_status_id') . ' order_status_id ' . $order_status_id);
                 $this->model_checkout_order->confirm($order_id, $this->config->get('tenpay_order_status_id'), $transaction_id);
                 //自动通关代码
                 $order_totals = $this->model_checkout_order->Gettotals($order_info["order_id"]);
                 $products = $this->model_checkout_order->getproducts($order_info["order_id"]);
                 $cardifo_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "card where customer_id='" . $order_info['customer_id'] . "'");
                 $sign = new sign();
                 $sign->creareorder($order_info, $order_totals, $products, $cardifo_query, $this->db);
                 //注意交易单不要重复处理
                 //注意判断返回金额
                 //------------------------------
                 //处理业务完毕
                 //------------------------------
                 //调用doShow, 打印meta值跟js代码,告诉财付通处理成功,并在用户浏览器显示$show页面.
                 $show = HTTPS_SERVER . 'index.php?route=checkout/success';
                 $resHandler->doShow($show);
             } else {
                 //当做不成功处理
                 echo "<br/>" . iconv('utf-8', 'gbk', "支付失败") . "<br/>";
             }
         } else {
             echo "<br/>" . iconv('utf-8', 'gbk', "支付失败") . "<br/>";
         }
     } else {
         echo "<br/>" . iconv('utf-8', 'gbk', "认证签名失败") . "<br/>";
     }
 }
Пример #4
0
    exit;
}
$resHandler->setKey($pay->keyt);
//判断签名
if ($resHandler->isTenpaySign()) {
    //交易单号
    $transaction_id = $resHandler->getParameter("transaction_id");
    //金额,以分为单位
    $total_fee = intval($resHandler->getParameter("total_fee")) / 100;
    //支付结果
    $pay_result = $resHandler->getParameter("pay_result");
    if ("0" == $pay_result) {
        //------------------------------
        //处理业务开始
        //------------------------------
        //注意交易单不要重复处理
        //注意判断返回金额
        $pay->setStatus(PAY_FINISHED);
        //------------------------------
        //处理业务完毕
        //------------------------------
        //调用doShow, 打印meta值跟js代码,告诉财付通处理成功,并在用户浏览器显示$show页面.
        $resHandler->doShow($pay->show_url());
    } else {
        //当做不成功处理
        echo "<br/>" . "支付失败" . "<br/>";
    }
} else {
    echo "<br/>" . "认证签名失败" . "<br/>";
}
//echo $resHandler->getDebugInfo();
Пример #5
0
 private function func_pay($order_status)
 {
     require_once "tenpay_class/PayResponseHandler.class.php";
     /* 密钥 */
     $key = $this->config->get('tenpay_key');
     /* 创建支付应答对象 */
     $resHandler = new PayResponseHandler();
     $resHandler->setKey($key);
     $this->log->debug("Tenpay :: exciting PayResponseHandler.");
     //判断签名
     if ($resHandler->isTenpaySign()) {
         $this->load->model('checkout/order');
         // 获取订单号
         $order_id = $resHandler->getParameter("sp_billno");
         $this->log->debug(' order_id ' . $order_id);
         $this->load->model('checkout/order');
         $order_info = $this->model_checkout_order->getOrder($order_id);
         if ($order_info) {
             $order_status_id = $order_info["order_status_id"];
             $order_info = $this->model_checkout_order->getOrder($order_id);
             //交易单号
             $transaction_id = $resHandler->getParameter("transaction_id");
             //金额,以分为单位
             $total_fee = $resHandler->getParameter("total_fee");
             //支付结果
             $pay_result = $resHandler->getParameter("pay_result");
             if ("0" == $pay_result) {
                 $this->log->debug(' pay_result ' . $pay_result);
                 //------------------------------
                 //处理业务开始
                 //------------------------------
                 $this->log->debug();
                 $this->log->debug(' order_status_id ' . $this->config->get('tenpay_order_status_id') . ' order_status_id ' . $order_status_id);
                 $this->model_checkout_order->confirm($order_id, $this->config->get('tenpay_order_status_id'));
                 //注意交易单不要重复处理
                 //注意判断返回金额
                 //------------------------------
                 //处理业务完毕
                 //------------------------------
                 //调用doShow, 打印meta值跟js代码,告诉财付通处理成功,并在用户浏览器显示$show页面.
                 $show = HTTPS_SERVER . 'index.php?route=checkout/success';
                 $resHandler->doShow($show);
             } else {
                 //当做不成功处理
                 echo "<br/>" . iconv('utf-8', 'gbk', "支付失败") . "<br/>";
             }
         } else {
             echo "<br/>" . iconv('utf-8', 'gbk', "支付失败") . "<br/>";
         }
     } else {
         echo "<br/>" . iconv('utf-8', 'gbk', "认证签名失败") . "<br/>";
     }
 }