Пример #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
/**
 * 响应操作
*/
function respond()
{
    $payment = get_payment_info('tenpay');
    $key = $payment['ytauthkey'];
    /* 创建支付应答对象 */
    $resHandler = new PayResponseHandler();
    $resHandler->setKey($key);
    if ($resHandler->isTenpaySign()) {
        //商户单号
        $sp_billno = $resHandler->getParameter("sp_billno");
        //财付通交易单号
        $transaction_id = $resHandler->getParameter("transaction_id");
        //金额,以分为单位
        $total_fee = $resHandler->getParameter("total_fee");
        $pay_result = $resHandler->getParameter("pay_result");
        if ("0" == $pay_result) {
            return order_paid($sp_billno);
        } else {
            return false;
        }
    } else {
        return false;
    }
}
Пример #3
0
 /**
  * 返回地址验证
  *
  * @param 
  * @return array
  */
 public function return_verify()
 {
     require_once "./classes/PayResponseHandler.class.php";
     /* 密钥 */
     $key = $this->payment['payment_config']['tenpay_key'];
     /* 创建支付应答对象 */
     $resHandler = new PayResponseHandler();
     $resHandler->setKey($key);
     //判断签名
     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) {
             //判断返回金额
             $order_amount = $total_fee / 100;
             if ($this->order['order_amount'] != $order_amount) {
                 return false;
             }
             return true;
         } else {
             return false;
         }
     } else {
         return false;
     }
 }
Пример #4
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');
Пример #5
0
*/
//---------------------------------------------------------
//财付通即时到帐支付应答(处理回调)示例,商户按照此文档进行开发即可
//---------------------------------------------------------
error_reporting(0);
require_once "./classes/PayResponseHandler.class.php";
require_once "tenpay_data.php";
//引入本站数据
require_once dirname(dirname(dirname(__FILE__))) . "/config/db.config.php";
require_once dirname(dirname(dirname(__FILE__))) . "/data/plus/config.php";
require_once dirname(dirname(dirname(__FILE__))) . "/app/include/mysql.class.php";
$db = new mysql($db_config['dbhost'], $db_config['dbuser'], $db_config['dbpass'], $db_config['dbname'], ALL_PS, $db_config['charset']);
/* 密钥 */
$key = $tenpay[sy_tenpaycode];
/* 创建支付应答对象 */
$resHandler = new PayResponseHandler();
$resHandler->setKey($key);
//判断签名
if ($resHandler->isTenpaySign()) {
    //交易单号
    $transaction_id = $resHandler->getParameter("transaction_id");
    //本站单号
    $sp_billno = $resHandler->getParameter("sp_billno");
    //金额,以分为单位
    $total_fee = $resHandler->getParameter("total_fee");
    //支付结果
    $pay_result = $resHandler->getParameter("pay_result");
    //类型
    $attach = $resHandler->getParameter("attach");
    if ("0" == $pay_result) {
        //------------------------------
Пример #6
0
<?php

//---------------------------------------------------------
//财付通中介担保支付应答(处理回调)示例,商户按照此文档进行开发即可
//---------------------------------------------------------
require_once 'classes/PayResponseHandler.class.php';
/* 创建支付应答对象 */
$resHandler = new PayResponseHandler();
require_once '../pay_base.php';
$pay = new pay_base('tenpay');
$pay->by = 'pays';
$pay->order_sn = $resHandler->getParameter("attach");
if (!$pay->getData()) {
    echo "<br/>非法请求<br/>";
    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) {
        //------------------------------
        //处理业务开始
        //------------------------------
        //注意交易单不要重复处理
        //注意判断返回金额
Пример #7
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/>";
     }
 }
Пример #8
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/>";
     }
 }
Пример #9
0
         } else {
             $db->query_unbuffered("update {$tpf}users set wealth=wealth+{$total_fee} where userid='{$pd_uid}' limit 1");
             $db->query_unbuffered("update {$tpf}vip_orders set pay_status='fail' where order_id='{$order_id}'");
             $s_title = __('pay_fail');
             $msg = __('your_order') . ': ' . $out_trade_no . ',' . __('pay_fail');
         }
     } else {
         $s_title = __('repay_title');
         $msg = __('repay_tips');
     }
     require_once template_echo('pd_payment', $user_tpl_dir);
     break;
 case 'tenpay':
     include_once PD_PLUGINS_DIR . "payment/tenpay/PayResponseHandler.class.php";
     $key = $settings['ten_key'];
     $resHandler = new PayResponseHandler();
     $resHandler->setKey($key);
     if ($resHandler->isTenpaySign()) {
         $transaction_id = $resHandler->getParameter("transaction_id");
         $total_fee = $resHandler->getParameter("total_fee");
         $total_fee = round($total_fee / 100, 2);
         $pay_result = $resHandler->getParameter("pay_result");
         $rs = $db->fetch_one_array("select order_id,vip_id,pay_status from {$tpf}vip_orders where order_number='{$transaction_id}' and pay_method='{$action}' and userid='{$pd_uid}'");
         if ($rs) {
             $vip_id = $rs[vip_id];
             $order_id = (int) $rs['order_id'];
             $pay_status = $rs[pay_status];
         }
         unset($rs);
         if ($pay_status == 'pendding') {
             if ("0" == $pay_result) {
Пример #10
0
<?php

define("IN_KEKE", true);
require_once dirname(dirname(dirname(dirname(__FILE__)))) . DIRECTORY_SEPARATOR . 'app_comm.php';
require_once "PayResponseHandler.php";
$pay_arr = kekezu::get_payment_config("tenpay");
@extract($pay_arr);
$key = $safekey;
$resHandler = new PayResponseHandler();
$resHandler->setKey($key);
KEKE_DEBUG and file_put_contents(S_ROOT . '/data/log/tenpay_log.txt', var_export($_GET, 1), FILE_APPEND);
$v_void = $resHandler->getParameter("sp_billno");
$v_attach = $resHandler->getParameter("attach");
$v_amount = $resHandler->getParameter("total_fee");
$v_amount = $v_amount * 0.01;
$pay_result = $resHandler->getParameter("pay_result");
list($_, $charge_type, $uid, $obj_id, $order_id, $model_id) = explode('-', $v_attach, 6);
if ($resHandler->isTenpaySign()) {
    if ("0" == $pay_result && $_ == 'charge') {
        $fac_obj = new pay_return_fac_class($charge_type, $model_id, $uid, $obj_id, $order_id, $v_amount, 'tenpay', $v_attach);
        $response = $fac_obj->load();
        if ($charge_type == 'user_charge') {
            $total_fee /= 100;
            $show_url = 'index.php?do=recharge&cash=' . $total_fee . '&status=1';
        } elseif ($charge_type == 'payitem_charge') {
            if (!in_array($model_id, array(6, 7))) {
                $show_url = 'index.php?do=task&id=' . $obj_id;
            } else {
                $show_url = 'index.php?do=goods&id=' . $obj_id;
            }
        } else {