public function recharge(){		
		////////////////////////////////////
		//参数数据
		$total_fee =floatval($_POST['price']);
		$total_fee1=$total_fee;
		$total_fee =floatval($total_fee)*100;
		$body = '会员充值';
		$orderName=$body;
		$out_trade_no = $this->user['id'].'_'.time();

		$notify_url = C('site_url').U('Tenpay/notify_url');
		//需http://格式的完整路径,不能加?id=123这类自定义参数
		//页面跳转同步通知页面路径
		$return_url = C('site_url').U('Tenpay/charge_return');
		//
		if(!$total_fee)exit('必须有价格才能支付');
		
		import("@.ORG.TenpayComputer.RequestHandler");
		
		$reqHandler = new RequestHandler();
		$reqHandler->init();
		$key=trim(C('tenpay_partnerkey'));
		$partner=trim(C('tenpay_partnerid'));
		$reqHandler->setKey($key);
		$reqHandler->setGateUrl("https://gw.tenpay.com/gateway/pay.htm");

		//----------------------------------------
		//设置支付参数
		//----------------------------------------
		$reqHandler->setParameter("partner", $partner);
		$reqHandler->setParameter("out_trade_no", $out_trade_no);
		$reqHandler->setParameter("total_fee", $total_fee);  //总金额
		$reqHandler->setParameter("return_url", $return_url);
		$reqHandler->setParameter("notify_url", $notify_url);
		$reqHandler->setParameter("body", '财付通在线支付');
		$reqHandler->setParameter("bank_type", "DEFAULT");  	  //银行类型,默认为财付通
		//用户ip
		$reqHandler->setParameter("spbill_create_ip", $_SERVER['REMOTE_ADDR']);//客户端IP
		$reqHandler->setParameter("fee_type", "1");               //币种
		$reqHandler->setParameter("subject",'member recharge');          //商品名称,(中介交易时必填)

		//系统可选参数
		$reqHandler->setParameter("sign_type", "MD5");  	 	  //签名方式,默认为MD5,可选RSA
		$reqHandler->setParameter("service_version", "1.0"); 	  //接口版本号
		$reqHandler->setParameter("input_charset", "utf-8");   	  //字符集
		$reqHandler->setParameter("sign_key_index", "1");    	  //密钥序号

		//业务可选参数
		$reqHandler->setParameter("attach", "");             	  //附件数据,原样返回就可以了
		$reqHandler->setParameter("product_fee", "");        	  //商品费用
		$reqHandler->setParameter("transport_fee", "0");      	  //物流费用
		$reqHandler->setParameter("time_start", date("YmdHis"));  //订单生成时间
		$reqHandler->setParameter("time_expire", "");             //订单失效时间
		$reqHandler->setParameter("buyer_id", "");                //买方财付通帐号
		$reqHandler->setParameter("goods_tag", "");               //商品标记
		$reqHandler->setParameter("trade_mode",1);              //交易模式(1.即时到帐模式,2.中介担保模式,3.后台选择(卖家进入支付中心列表选择))
		$reqHandler->setParameter("transport_desc","");              //物流说明
		$reqHandler->setParameter("trans_type","1");              //交易类型
		$reqHandler->setParameter("agentid","");                  //平台ID
		$reqHandler->setParameter("agent_type","");               //代理模式(0.无代理,1.表示卡易售模式,2.表示网店模式)
		$reqHandler->setParameter("seller_id","");                //卖家的商户号



		//请求的URL
		$reqUrl = $reqHandler->getRequestURL();

		//获取debug信息,建议把请求和debug信息写入日志,方便定位问题
		/**/
		$debugInfo = $reqHandler->getDebugInfo();
		//
		$data=M('Indent')->data(			
		array('uid'=>session('uid'),'month'=>0,'title'=>$body,'uname'=>'','gid'=>0,'create_time'=>time(),'indent_id'=>$out_trade_no,'price'=>$total_fee1))->add();
		//
		header('Location:'.$reqUrl);
	}
예제 #2
0
파일: index.php 프로젝트: cyokvip/ci-weixin
        $sign = $reqHandler->createSHA1Sign($prePayParams);
        $outparams['retcode'] = 0;
        $outparams['retmsg'] = 'ok';
        $outparams['appid'] = $APP_ID;
        $outparams['noncestr'] = $nonce_str;
        $outparams['package'] = $pack;
        $outparams['prepayid'] = $prepayid;
        $outparams['timestamp'] = $time_stamp;
        $outparams['sign'] = $sign;
    } else {
        $outparams['retcode'] = -2;
        $outparams['retmsg'] = '错误:获取prepayId失败';
    }
} else {
    $outparams['retcode'] = -1;
    $outparams['retmsg'] = '错误:获取不到Token';
}
/**
=========================
输出参数列表
=========================
*/
//Json 输出
ob_clean();
echo json_encode($outparams);
//debug信息,注意参数含有特殊字符,需要JsEncode
if ($DEBUG_) {
    echo PHP_EOL . '/*' . $reqHandler->getDebugInfo() . '*/';
}
?>
 
 public function pay()
 {
     ////////////////////////////////////
     //before
     $orderid = $_GET['orderid'];
     $payHandel = new payHandle($this->token, $_GET['from'], 'tenpayComputer');
     $orderInfo = $payHandel->beforePay($orderid);
     $price = $orderInfo['price'];
     //参数数据
     $orderName = $_GET['orderName'];
     if (!$orderid) {
         $orderid = $_GET['single_orderid'];
         //单个订单
     }
     $notify_url = C('site_url') . '/index.php?g=Wap&m=TenpayComputer&a=notify_url';
     //需http://格式的完整路径,不能加?id=123这类自定义参数
     //页面跳转同步通知页面路径
     $return_url = C('site_url') . '/index.php?g=Wap&m=TenpayComputer&a=return_url&token=' . $_GET['token'] . '&wecha_id=' . $_GET['wecha_id'] . '&from=' . $_GET['from'];
     //
     if (!$price) {
         exit('必须有价格才能支付');
     }
     $total_fee = floatval($price) * 100;
     import("@.ORG.TenpayComputer.RequestHandler");
     $out_trade_no = $orderid;
     $reqHandler = new RequestHandler();
     $reqHandler->init();
     $key = $this->payConfig['partnerkey'];
     $partner = $this->payConfig['partnerid'];
     $reqHandler->setKey($key);
     $reqHandler->setGateUrl("https://gw.tenpay.com/gateway/pay.htm");
     //----------------------------------------
     //设置支付参数
     //----------------------------------------
     $reqHandler->setParameter("partner", $partner);
     $reqHandler->setParameter("out_trade_no", $out_trade_no);
     $reqHandler->setParameter("total_fee", $total_fee);
     //总金额
     $reqHandler->setParameter("return_url", $return_url);
     $reqHandler->setParameter("notify_url", $notify_url);
     $reqHandler->setParameter("body", '财付通在线支付');
     $reqHandler->setParameter("bank_type", "DEFAULT");
     //银行类型,默认为财付通
     //用户ip
     $reqHandler->setParameter("spbill_create_ip", $_SERVER['REMOTE_ADDR']);
     //客户端IP
     $reqHandler->setParameter("fee_type", "1");
     //币种
     $reqHandler->setParameter("subject", 'weixin');
     //商品名称,(中介交易时必填)
     //系统可选参数
     $reqHandler->setParameter("sign_type", "MD5");
     //签名方式,默认为MD5,可选RSA
     $reqHandler->setParameter("service_version", "1.0");
     //接口版本号
     $reqHandler->setParameter("input_charset", "utf-8");
     //字符集
     $reqHandler->setParameter("sign_key_index", "1");
     //密钥序号
     //业务可选参数
     $reqHandler->setParameter("attach", "");
     //附件数据,原样返回就可以了
     $reqHandler->setParameter("product_fee", "");
     //商品费用
     $reqHandler->setParameter("transport_fee", "0");
     //物流费用
     $reqHandler->setParameter("time_start", date("YmdHis"));
     //订单生成时间
     $reqHandler->setParameter("time_expire", "");
     //订单失效时间
     $reqHandler->setParameter("buyer_id", "");
     //买方财付通帐号
     $reqHandler->setParameter("goods_tag", "");
     //商品标记
     $reqHandler->setParameter("trade_mode", 1);
     //交易模式(1.即时到帐模式,2.中介担保模式,3.后台选择(卖家进入支付中心列表选择))
     $reqHandler->setParameter("transport_desc", "");
     //物流说明
     $reqHandler->setParameter("trans_type", "1");
     //交易类型
     $reqHandler->setParameter("agentid", "");
     //平台ID
     $reqHandler->setParameter("agent_type", "");
     //代理模式(0.无代理,1.表示卡易售模式,2.表示网店模式)
     $reqHandler->setParameter("seller_id", "");
     //卖家的商户号
     //请求的URL
     $reqUrl = $reqHandler->getRequestURL();
     //获取debug信息,建议把请求和debug信息写入日志,方便定位问题
     /**/
     $debugInfo = $reqHandler->getDebugInfo();
     header('Location:' . $reqUrl);
     //echo "<br/>" . $reqUrl . "<br/>";
     //echo "<br/>" . $debugInfo . "<br/>";
 }
예제 #4
0
//交易模式(1.即时到帐模式,2.中介担保模式,3.后台选择(卖家进入支付中心列表选择))
$reqHandler->setParameter("transport_desc", "");
//物流说明
$reqHandler->setParameter("trans_type", "1");
//交易类型
$reqHandler->setParameter("agentid", "");
//平台ID
$reqHandler->setParameter("agent_type", "");
//代理模式(0.无代理,1.表示卡易售模式,2.表示网店模式)
$reqHandler->setParameter("seller_id", "");
//卖家的商户号
//请求的URL
$reqUrl = $reqHandler->getRequestURL();
//获取debug信息,建议把请求和debug信息写入日志,方便定位问题
/**/
$debugInfo = $reqHandler->getDebugInfo();
echo "<br/>" . $reqUrl . "<br/>";
echo "<br/>" . $debugInfo . "<br/>";
?>
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	<title>财付通即时到帐程序演示</title>
</head>
<body>
<br/><a href="<?php 
echo $reqUrl;
?>
" target="_blank">财付通支付</a>
<form action="<?php 
echo $reqHandler->getGateUrl();
예제 #5
0
	public function pay()
	{
		$orderid = $_GET['orderid'];

		if (!$orderid) {
			$orderid = $_GET['single_orderid'];
		}

		$payHandel = new payHandle($this->token, $_GET['from'], 'tenpayComputer');
		$orderInfo = $payHandel->beforePay($orderid);
		$price = $orderInfo['price'];
		$orderName = $_GET['orderName'];
		$notify_url = C('site_url') . '/index.php?g=Wap&m=TenpayComputer&a=notify_url';

		if ($_GET['platform']) {
			$return_url = C('site_url') . '/index.php?g=Wap&m=TenpayComputer&a=return_url&token=' . $_GET['token'] . '&wecha_id=' . $_GET['wecha_id'] . '&from=' . $_GET['from'] . '&pl=1';
		}
		else {
			$return_url = C('site_url') . '/index.php?g=Wap&m=TenpayComputer&a=return_url&token=' . $_GET['token'] . '&wecha_id=' . $_GET['wecha_id'] . '&from=' . $_GET['from'];
		}

		if ($orderInfo['paid']) {
			exit('您已经支付过此次订单!');
		}

		if (!$price) {
			exit('必须有价格才能支付');
		}

		$total_fee = floatval($price) * 100;
		import('@.ORG.TenpayComputer.RequestHandler');
		$out_trade_no = $orderid;
		$reqHandler = new RequestHandler();
		$reqHandler->init();
		$key = $this->payConfig['partnerkey'];
		$partner = $this->payConfig['partnerid'];
		$reqHandler->setKey($key);
		$reqHandler->setGateUrl('https://gw.tenpay.com/gateway/pay.htm');
		$reqHandler->setParameter('partner', $partner);
		$reqHandler->setParameter('out_trade_no', $out_trade_no);
		$reqHandler->setParameter('total_fee', $total_fee);
		$reqHandler->setParameter('return_url', $return_url);
		$reqHandler->setParameter('notify_url', $notify_url);
		$reqHandler->setParameter('body', '财付通在线支付');
		$reqHandler->setParameter('bank_type', 'DEFAULT');
		$reqHandler->setParameter('spbill_create_ip', $_SERVER['REMOTE_ADDR']);
		$reqHandler->setParameter('fee_type', '1');
		$reqHandler->setParameter('subject', 'weixin');
		$reqHandler->setParameter('sign_type', 'MD5');
		$reqHandler->setParameter('service_version', '1.0');
		$reqHandler->setParameter('input_charset', 'utf-8');
		$reqHandler->setParameter('sign_key_index', '1');
		$reqHandler->setParameter('attach', '');
		$reqHandler->setParameter('product_fee', '');
		$reqHandler->setParameter('transport_fee', '0');
		$reqHandler->setParameter('time_start', date('YmdHis'));
		$reqHandler->setParameter('time_expire', '');
		$reqHandler->setParameter('buyer_id', '');
		$reqHandler->setParameter('goods_tag', '');
		$reqHandler->setParameter('trade_mode', 1);
		$reqHandler->setParameter('transport_desc', '');
		$reqHandler->setParameter('trans_type', '1');
		$reqHandler->setParameter('agentid', '');
		$reqHandler->setParameter('agent_type', '');
		$reqHandler->setParameter('seller_id', '');
		$reqUrl = $reqHandler->getRequestURL();
		$debugInfo = $reqHandler->getDebugInfo();
		header('Location:' . $reqUrl);
	}
예제 #6
0
 public function index()
 {
     $this->CsdjUser->User_Login();
     $id = (int) $this->uri->segment(4);
     //订单ID
     if ($id == 0) {
         msg_url(L('pay_01'), spacelink('pay'));
     }
     $row = $this->CsdjDB->get_row('pay', '*', $id);
     if (!$row || $row->uid != $_SESSION['cscms__id']) {
         msg_url(L('pay_02'), spacelink('pay'));
     }
     require_once CSCMSPATH . "pay/tenpay/RequestHandler.class.php";
     $partner = CS_Tenpay_ID;
     $key = CS_Tenpay_Key;
     $return_url = site_url('pay/tenpay/return_url');
     $notify_url = site_url('pay/tenpay/notify_url');
     /* 创建支付请求对象 */
     $reqHandler = new RequestHandler();
     $reqHandler->init();
     $reqHandler->setKey($key);
     $reqHandler->setGateUrl("https://gw.tenpay.com/gateway/pay.htm");
     $reqHandler->setParameter("partner", $partner);
     $reqHandler->setParameter("out_trade_no", $row->dingdan);
     $reqHandler->setParameter("total_fee", $row->rmb);
     //总金额
     $reqHandler->setParameter("return_url", $return_url);
     $reqHandler->setParameter("notify_url", $notify_url);
     $reqHandler->setParameter("body", L('pay_03', array($_SESSION['cscms__name'])));
     $reqHandler->setParameter("bank_type", "DEFAULT");
     //银行类型,默认为财付通
     //用户ip
     $reqHandler->setParameter("spbill_create_ip", getip());
     //客户端IP
     $reqHandler->setParameter("fee_type", "1");
     //币种
     $reqHandler->setParameter("subject", L('pay_03', array($_SESSION['cscms__name'])));
     //商品名称
     //系统可选参数
     $reqHandler->setParameter("sign_type", "MD5");
     //签名方式,默认为MD5,可选RSA
     $reqHandler->setParameter("service_version", "1.0");
     //接口版本号
     $reqHandler->setParameter("input_charset", "utf-8");
     //字符集
     $reqHandler->setParameter("sign_key_index", "1");
     //密钥序号
     //业务可选参数
     $reqHandler->setParameter("attach", "");
     //附件数据,原样返回就可以了
     $reqHandler->setParameter("product_fee", "");
     //商品费用
     $reqHandler->setParameter("transport_fee", "0");
     //物流费用
     $reqHandler->setParameter("time_start", date("YmdHis"));
     //订单生成时间
     $reqHandler->setParameter("time_expire", "");
     //订单失效时间
     $reqHandler->setParameter("buyer_id", "");
     //买方财付通帐号
     $reqHandler->setParameter("goods_tag", "");
     //商品标记
     $reqHandler->setParameter("trade_mode", "1");
     //交易模式 1.即时到帐模式,2.中介担保模式,3.后台选择
     $reqHandler->setParameter("transport_desc", "");
     //物流说明
     $reqHandler->setParameter("trans_type", "1");
     //交易类型
     $reqHandler->setParameter("agentid", "");
     //平台ID
     $reqHandler->setParameter("agent_type", "");
     //代理模式(0.无代理,1.表示卡易售模式,2.表示网店模式)
     $reqHandler->setParameter("seller_id", "");
     //卖家的商户号
     //请求的URL
     $reqUrl = $reqHandler->getRequestURL();
     $debugInfo = $reqHandler->getDebugInfo();
     echo '<form action="' . $reqHandler->getGateUrl() . '" name="form1" method="post">';
     $params = $reqHandler->getAllParameters();
     foreach ($params as $k => $v) {
         echo "<input type=\"hidden\" name=\"{$k}\" value=\"{$v}\" />\n";
     }
     echo '<script language="javascript">document.form1.submit();</script></form>';
 }
예제 #7
0
 public function web_pay()
 {
     import("@.ORG.pay.TenpayComputer.RequestHandler");
     $reqHandler = new RequestHandler();
     $reqHandler->init();
     $reqHandler->setKey($this->pay_config["pay_tenpay_partnerkey"]);
     $reqHandler->setGateUrl("https://gw.tenpay.com/gateway/pay.htm");
     $return_url = C("config.site_url") . "/index.php?c=Pay&a=return_url&pay_type=tenpay";
     $notify_url = C("config.site_url") . "/index.php?c=Pay&a=notify_url&pay_type=tenpay";
     $body = "订单编号:" . $this->order_info["order_id"];
     $reqHandler->setParameter("partner", $this->pay_config["pay_tenpay_partnerid"]);
     $reqHandler->setParameter("out_trade_no", $this->order_info["order_type"] . "_" . $this->order_info["order_id"]);
     $reqHandler->setParameter("total_fee", floatval($this->pay_money * 100));
     $reqHandler->setParameter("return_url", $return_url);
     $reqHandler->setParameter("notify_url", $notify_url);
     $reqHandler->setParameter("body", $body);
     $reqHandler->setParameter("bank_type", "DEFAULT");
     $reqHandler->setParameter("spbill_create_ip", get_client_ip());
     $reqHandler->setParameter("fee_type", "1");
     $reqHandler->setParameter("subject", "订单编号:" . $this->order_info["order_id"]);
     $reqHandler->setParameter("sign_type", "MD5");
     $reqHandler->setParameter("service_version", "1.0");
     $reqHandler->setParameter("input_charset", "utf-8");
     $reqHandler->setParameter("sign_key_index", "1");
     $reqUrl = $reqHandler->getRequestURL();
     $debugInfo = $reqHandler->getDebugInfo();
     return array("error" => 0, "url" => $reqUrl);
 }
예제 #8
0
 public function config($config = null)
 {
     $this->config = $config;
     $partner = $config['id'];
     //财付通商户号
     $key = $config['key'];
     //财付通密钥
     $return_url = $config['ReturnUrl'];
     //显示支付结果页面,*替换成payReturnUrl.php所在路径
     $notify_url = $config['NotifyUrl'];
     //支付完成后的回调处理页面,*替换成payNotifyUrl.php所在路径
     /* 获取提交的订单号 */
     $out_trade_no = $config['code'];
     /* 获取提交的商品名称 */
     $product_name = $config['title'];
     /* 获取提交的商品价格 */
     $order_price = $config['money'];
     /* 获取提交的备注信息 */
     $remarkexplain = '';
     /* 支付方式 */
     $trade_mode = $config['type'];
     /* 商品价格(包含运费),以分为单位 */
     $total_fee = $order_price * 100;
     /* 商品名称 */
     //$desc = "商品:".$product_name.",备注:".$remarkexplain;
     $desc = $product_name;
     /* 创建支付请求对象 */
     $reqHandler = new RequestHandler();
     $reqHandler->init();
     $reqHandler->setKey($key);
     $reqHandler->setGateUrl("https://gw.tenpay.com/gateway/pay.htm");
     //----------------------------------------
     //设置支付参数
     //----------------------------------------
     $reqHandler->setParameter("partner", $partner);
     $reqHandler->setParameter("out_trade_no", $out_trade_no);
     $reqHandler->setParameter("total_fee", $total_fee);
     //总金额
     $reqHandler->setParameter("return_url", $return_url);
     $reqHandler->setParameter("notify_url", $notify_url);
     $reqHandler->setParameter("body", $desc);
     $reqHandler->setParameter("bank_type", $config['pay_bank']);
     //银行类型,默认为财付通DEFAULT
     //用户ip
     $reqHandler->setParameter("spbill_create_ip", $_SERVER['REMOTE_ADDR']);
     //客户端IP
     $reqHandler->setParameter("fee_type", "1");
     //币种
     $reqHandler->setParameter("subject", $desc);
     //商品名称,(中介交易时必填)
     //系统可选参数
     $reqHandler->setParameter("sign_type", "MD5");
     //签名方式,默认为MD5,可选RSA
     $reqHandler->setParameter("service_version", "1.0");
     //接口版本号
     $reqHandler->setParameter("input_charset", "utf-8");
     //字符集
     $reqHandler->setParameter("sign_key_index", "1");
     //密钥序号
     //业务可选参数
     $reqHandler->setParameter("attach", "");
     //附件数据,原样返回就可以了
     $reqHandler->setParameter("product_fee", "");
     //商品费用
     $reqHandler->setParameter("transport_fee", "0");
     //物流费用
     $reqHandler->setParameter("time_start", date("YmdHis"));
     //订单生成时间
     $reqHandler->setParameter("time_expire", "");
     //订单失效时间
     $reqHandler->setParameter("buyer_id", "");
     //买方财付通帐号
     $reqHandler->setParameter("goods_tag", "");
     //商品标记
     $reqHandler->setParameter("trade_mode", $trade_mode);
     //交易模式(1.即时到帐模式,2.中介担保模式,3.后台选择(卖家进入支付中心列表选择))
     $reqHandler->setParameter("transport_desc", "");
     //物流说明
     $reqHandler->setParameter("trans_type", "1");
     //交易类型
     $reqHandler->setParameter("agentid", "");
     //平台ID
     $reqHandler->setParameter("agent_type", "");
     //代理模式(0.无代理,1.表示卡易售模式,2.表示网店模式)
     $reqHandler->setParameter("seller_id", "");
     //卖家的商户号
     //请求的URL
     $this->url = $reqUrl = $reqHandler->getRequestURL();
     //获取debug信息,建议把请求和debug信息写入日志,方便定位问题
     $this->debugInfo = $debugInfo = $reqHandler->getDebugInfo();
 }
예제 #9
0
 public function get_payment_code($payment_notice_id)
 {
     require APP_ROOT_PATH . "system/payment/Tenpay/classes/RequestHandler.class.php";
     $payment_notice = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "payment_notice where id = " . $payment_notice_id);
     $order_sn = $GLOBALS['db']->getOne("select order_sn from " . DB_PREFIX . "deal_order where id = " . $payment_notice['order_id']);
     $money = round($payment_notice['money'], 2);
     $payment_info = $GLOBALS['db']->getRow("select id,config,logo from " . DB_PREFIX . "payment where id=" . intval($payment_notice['payment_id']));
     $payment_info['config'] = unserialize($payment_info['config']);
     $data_return_url = SITE_DOMAIN . APP_ROOT . '/callback/payment/tenpay_response.php';
     $data_notify_url = SITE_DOMAIN . APP_ROOT . '/callback/payment/tenpay_notify.php';
     $cmd_no = '1';
     /* 获得订单的流水号,补零到10位 */
     $sp_billno = $payment_notice_id;
     $spbill_create_ip = $_SERVER['REMOTE_ADDR'];
     /* 交易日期 */
     $today = to_date($payment_notice['create_time'], 'YmdHis');
     /* 将商户号+年月日+流水号 */
     $out_trade_no = $payment_notice['notice_sn'];
     /* 银行类型:支持纯网关和财付通 */
     $bank_type = "DEFAULT";
     $desc = $out_trade_no;
     $attach = $payment_info['config']['tencentpay_sign'];
     /* 返回的路径 */
     $return_url = $data_return_url;
     /* 总金额 */
     $total_fee = $money * 100;
     /* 货币类型 */
     $fee_type = '1';
     /* 重写自定义签名 */
     //$payment['magic_string'] = abs(crc32($payment['magic_string']));
     /* 数字签名 */
     /* $sign_text = "cmdno=" . $cmd_no . "&date=" . $today . "&bargainor_id=" . $payment_info['config']['tencentpay_id'] .
               "&transaction_id=" . $transaction_id . "&sp_billno=" . $sp_billno .
               "&total_fee=" . $total_fee . "&fee_type=" . $fee_type . "&return_url=" . $return_url .
               "&attach=" . $attach . "&spbill_create_ip=" . $spbill_create_ip ."&key=" . $payment_info['config']['tencentpay_key'];
             $sign = strtoupper(md5($sign_text));
     
              交易参数 
             $parameter = array(
                 'cmdno'             => $cmd_no,                     // 业务代码, 财付通支付支付接口填  1
                 'date'              => $today,                      // 商户日期:如20051212
                 'bank_type'         => $bank_type,                  // 银行类型:支持纯网关和财付通
                 'desc'              => $desc,                       // 交易的商品名称
                 'purchaser_id'      => '',                          // 用户(买方)的财付通帐户,可以为空
                 'bargainor_id'      => $payment_info['config']['tencentpay_id'],  // 商家的财付通商户号
                 'transaction_id'    => $transaction_id,             // 交易号(订单号),由商户网站产生(建议顺序累加)
                 'sp_billno'         => $sp_billno,                  // 商户系统内部的定单号,最多10位
                 'total_fee'         => $total_fee,                  // 订单金额
                 'fee_type'          => $fee_type,                   // 现金支付币种
                 'return_url'        => $return_url,                 // 接收财付通返回结果的URL
                 'attach'            => $attach,                     // 用户自定义签名
             	'spbill_create_ip'  => $spbill_create_ip,           // 安全防范参数
                 'sign'              => $sign,                       // MD5签名
                 //'sys_id'            => '542554970',                 
                 //'sp_suggestuser'    => '1202822001'                 //财付通分配的商户号
             );
     		//
     		
     
     		
     		$payLinks = '<form style="text-align:center;" action="https://www.tenpay.com/cgi-bin/v1.0/pay_gate.cgi" target="_blank" style="margin:0px;padding:0px" >';
     
     	 	foreach ($parameter AS $key=>$val)
             {
                 $payLinks  .= "<input type='hidden' name='$key' value='$val' />";
             }
             
         	if(!empty($payment_info['logo']))
     		{
     			$payLinks .= "<input type='image' src='".APP_ROOT.$payment_info['logo']."' style='border:solid 1px #ccc;'><div class='blank'></div>";
     		}
     		$payLinks .= "<input type='submit' class='paybutton' value='".sprintf($this->payment_lang['GO_TO_PAY'],$this->get_name($bank_type))."'></form>";
             $code = '<div style="text-align:center">'.$payLinks.'</div>';
     		$code.="<br /><div style='text-align:center' class='red'>".$GLOBALS['lang']['PAY_TOTAL_PRICE'].":".format_price($money)."</div>";
             return $code;
             */
     $reqHandler = new RequestHandler();
     $reqHandler->init();
     $reqHandler->setKey($payment_info['config']['tencentpay_key']);
     $reqHandler->setGateUrl("https://gw.tenpay.com/gateway/pay.htm");
     //----------------------------------------
     //设置支付参数
     //----------------------------------------
     $reqHandler->setParameter("partner", $payment_info['config']['tencentpay_id']);
     $reqHandler->setParameter("out_trade_no", $out_trade_no);
     $reqHandler->setParameter("total_fee", $total_fee);
     //总金额
     $reqHandler->setParameter("return_url", $return_url);
     $reqHandler->setParameter("notify_url", $data_notify_url);
     $reqHandler->setParameter("body", $desc);
     $reqHandler->setParameter("bank_type", $bank_type);
     //银行类型,默认为财付通
     //用户ip
     $reqHandler->setParameter("spbill_create_ip", CLIENT_IP);
     //客户端IP
     $reqHandler->setParameter("fee_type", $fee_type);
     //币种
     $reqHandler->setParameter("subject", $desc);
     //商品名称,(中介交易时必填)
     //系统可选参数
     $reqHandler->setParameter("sign_type", "MD5");
     //签名方式,默认为MD5,可选RSA
     $reqHandler->setParameter("service_version", "1.0");
     //接口版本号
     $reqHandler->setParameter("input_charset", "utf-8");
     //字符集
     $reqHandler->setParameter("sign_key_index", "1");
     //密钥序号
     //业务可选参数
     $reqHandler->setParameter("attach", $attach);
     //附件数据,原样返回就可以了
     $reqHandler->setParameter("product_fee", "");
     //商品费用
     $reqHandler->setParameter("transport_fee", "0");
     //物流费用
     $reqHandler->setParameter("time_start", $today);
     //订单生成时间
     $reqHandler->setParameter("time_expire", "");
     //订单失效时间
     $reqHandler->setParameter("buyer_id", "");
     //买方财付通帐号
     $reqHandler->setParameter("goods_tag", "");
     //商品标记
     $reqHandler->setParameter("trade_mode", $cmd_no);
     //交易模式(1.即时到帐模式,2.中介担保模式,3.后台选择(卖家进入支付中心列表选择))
     $reqHandler->setParameter("transport_desc", "");
     //物流说明
     $reqHandler->setParameter("trans_type", "1");
     //交易类型
     $reqHandler->setParameter("agentid", "");
     //平台ID
     $reqHandler->setParameter("agent_type", "");
     //代理模式(0.无代理,1.表示卡易售模式,2.表示网店模式)
     $reqHandler->setParameter("seller_id", "");
     //卖家的商户号
     //请求的URL
     $reqUrl = $reqHandler->getRequestURL();
     if ($_REQUEST['v'] == 1) {
         $debugInfo = $reqHandler->getDebugInfo();
         echo "<br/>" . $reqUrl . "<br/>";
         echo "<br/>" . $debugInfo . "<br/>";
     }
     $payLinks = '<form style="text-align:center;" action="' . $reqHandler->getGateUrl() . '" target="_blank" style="margin:0px;padding:0px" method="post" >';
     $params = $reqHandler->getAllParameters();
     foreach ($params as $k => $v) {
         $payLinks .= "<input type=\"hidden\" name=\"{$k}\" value=\"{$v}\" />\n";
     }
     $payLinks .= "<button class='ui-button paybutton' rel='blue' type='submit'>前往财付通支付</button></form>";
     $code = '<div style="text-align:center">' . $payLinks . '</div>';
     $code .= "<br /><div style='text-align:center' class='red'>" . $GLOBALS['lang']['PAY_TOTAL_PRICE'] . ":" . format_price($money) . "</div>";
     return $code;
 }
예제 #10
0
    public function dopay($money = null, $order = null, $ordername = null)
    {
        //取插件配置参数
        $conf = F('pluginTenpay');
        if (empty($conf) || APP_DEBUG) {
            $data = M('Addons')->field('param')->where("mark='Tenpay'")->find();
            $conf = json_decode($data['param'], true);
            F('pluginTenpay', $conf);
        }
        define('SHANGHU_ID', $conf['partner']);
        define('SHANGHU_KEY', $conf['key']);
        require_once TENPAY_PATH . "/lib/classes/RequestHandler.class.php";
        require_once TENPAY_PATH . "/lib/tenpay_config.php";
        /* 获取提交的订单号 */
        $out_trade_no = $order;
        /* 获取提交的商品名称 */
        $product_name = $ordername;
        /* 获取提交的商品价格 */
        $order_price = $money;
        /* 获取提交的备注信息 */
        $remarkexplain = '没有备注';
        /* 支付方式  1:即时到帐,2:中介担保,3:后台选择*/
        $trade_mode = 1;
        $strDate = date("Ymd");
        $strTime = date("His");
        /* 商品价格(包含运费),以分为单位 */
        $total_fee = $order_price * 100;
        /* 商品名称 */
        $desc = "商品:" . $product_name . ",备注:" . $remarkexplain;
        /* 创建支付请求对象 */
        $reqHandler = new RequestHandler();
        $reqHandler->init();
        $reqHandler->setKey($key);
        $reqHandler->setGateUrl("https://gw.tenpay.com/gateway/pay.htm");
        //----------------------------------------
        //设置支付参数
        //----------------------------------------
        $reqHandler->setParameter("partner", $partner);
        $reqHandler->setParameter("out_trade_no", $out_trade_no);
        $reqHandler->setParameter("total_fee", $total_fee);
        //总金额
        $reqHandler->setParameter("return_url", $return_url);
        $reqHandler->setParameter("notify_url", $notify_url);
        $reqHandler->setParameter("body", $desc);
        $reqHandler->setParameter("bank_type", "DEFAULT");
        //银行类型,默认为财付通
        //用户ip
        $reqHandler->setParameter("spbill_create_ip", $_SERVER['REMOTE_ADDR']);
        //客户端IP
        $reqHandler->setParameter("fee_type", "1");
        //币种
        $reqHandler->setParameter("subject", $desc);
        //商品名称,(中介交易时必填)
        //系统可选参数
        $reqHandler->setParameter("sign_type", "MD5");
        //签名方式,默认为MD5,可选RSA
        $reqHandler->setParameter("service_version", "1.0");
        //接口版本号
        $reqHandler->setParameter("input_charset", "utf-8");
        //字符集
        $reqHandler->setParameter("sign_key_index", "1");
        //密钥序号
        //业务可选参数
        $reqHandler->setParameter("attach", "");
        //附件数据,原样返回就可以了
        $reqHandler->setParameter("product_fee", "");
        //商品费用
        $reqHandler->setParameter("transport_fee", "0");
        //物流费用
        $reqHandler->setParameter("time_start", date("YmdHis"));
        //订单生成时间
        $reqHandler->setParameter("time_expire", "");
        //订单失效时间
        $reqHandler->setParameter("buyer_id", "");
        //买方财付通帐号
        $reqHandler->setParameter("goods_tag", "");
        //商品标记
        $reqHandler->setParameter("trade_mode", $trade_mode);
        //交易模式(1.即时到帐模式,2.中介担保模式,3.后台选择(卖家进入支付中心列表选择))
        $reqHandler->setParameter("transport_desc", "");
        //物流说明
        $reqHandler->setParameter("trans_type", "1");
        //交易类型
        $reqHandler->setParameter("agentid", "");
        //平台ID
        $reqHandler->setParameter("agent_type", "");
        //代理模式(0.无代理,1.表示卡易售模式,2.表示网店模式)
        $reqHandler->setParameter("seller_id", "");
        //卖家的商户号
        //请求的URL
        $reqUrl = $reqHandler->getRequestURL();
        //获取debug信息,建议把请求和debug信息写入日志,方便定位问题
        /**/
        $debugInfo = $reqHandler->getDebugInfo();
        $html = <<<eot
<form id="tenpay_form" action="{$reqHandler->getGateUrl()}" method="post" target="_blank">
eot;
        $params = $reqHandler->getAllParameters();
        foreach ($params as $k => $v) {
            $html .= "<input type=\"hidden\" name=\"{$k}\" value=\"{$v}\" />\n";
        }
        $html .= <<<eot
<input type="submit" value="财付通支付">
</form>
<script>
document.getElementById('tenpay_form').submit();
</script>
eot;
        return $html;
    }
예제 #11
0
 public function get_payment_code($payment_notice_id)
 {
     require APP_ROOT_PATH . "system/payment/Tenpay/classes/RequestHandler.class.php";
     $payment_notice = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "payment_notice where id = " . $payment_notice_id);
     $money = round($payment_notice['money'], 2);
     $payment_info = $GLOBALS['db']->getRow("select id,config,logo from " . DB_PREFIX . "payment where id=" . intval($payment_notice['payment_id']));
     $payment_info['config'] = unserialize($payment_info['config']);
     $subject = $payment_notice['deal_name'] == "" ? "充值" . format_price($payment_notice['money']) : $payment_notice['deal_name'];
     $data_return_url = get_domain() . APP_ROOT . '/index.php?ctl=payment&act=response&class_name=Tenpay';
     $data_notify_url = get_domain() . APP_ROOT . '/index.php?ctl=payment&act=notify&class_name=Tenpay';
     $cmd_no = '1';
     /* 获得订单的流水号,补零到10位 */
     $sp_billno = $payment_notice_id;
     $spbill_create_ip = $_SERVER['REMOTE_ADDR'];
     /* 交易日期 */
     $today = to_date($payment_notice['create_time'], 'YmdHis');
     /* 将商户号+年月日+流水号 */
     $out_trade_no = $payment_notice['notice_sn'];
     /* 银行类型:支持纯网关和财付通 */
     $bank_type = '0';
     $desc = $subject;
     $attach = $payment_info['config']['tencentpay_sign'];
     /* 返回的路径 */
     $return_url = $data_return_url;
     /* 总金额 */
     $total_fee = $money * 100;
     /* 货币类型 */
     $fee_type = '1';
     /* 重写自定义签名 */
     //$payment['magic_string'] = abs(crc32($payment['magic_string']));
     /* 数字签名 */
     /*$sign_text = "cmdno=" . $cmd_no . "&date=" . $today . "&bargainor_id=" . $payment_info['config']['tencentpay_id'] .
         "&transaction_id=" . $transaction_id . "&sp_billno=" . $sp_billno .
         "&total_fee=" . $total_fee . "&fee_type=" . $fee_type . "&return_url=" . $return_url .
         "&attach=" . $attach . "&spbill_create_ip=" . $spbill_create_ip ."&key=" . $payment_info['config']['tencentpay_key'];
       $sign = strtoupper(md5($sign_text));*/
     $reqHandler = new RequestHandler();
     $reqHandler->init();
     $reqHandler->setKey($payment_info['config']['tencentpay_key']);
     $reqHandler->setGateUrl("https://gw.tenpay.com/gateway/pay.htm");
     //----------------------------------------
     //设置支付参数
     //----------------------------------------
     $reqHandler->setParameter("partner", $payment_info['config']['tencentpay_id']);
     $reqHandler->setParameter("out_trade_no", $out_trade_no);
     $reqHandler->setParameter("total_fee", $total_fee);
     //总金额
     $reqHandler->setParameter("return_url", $return_url);
     $reqHandler->setParameter("notify_url", $data_notify_url);
     $reqHandler->setParameter("body", $desc);
     $reqHandler->setParameter("bank_type", $bank_type);
     //银行类型,默认为财付通
     //用户ip
     $reqHandler->setParameter("spbill_create_ip", get_client_ip());
     //客户端IP
     $reqHandler->setParameter("fee_type", $fee_type);
     //币种
     $reqHandler->setParameter("subject", $desc);
     //商品名称,(中介交易时必填)
     //系统可选参数
     $reqHandler->setParameter("sign_type", "MD5");
     //签名方式,默认为MD5,可选RSA
     $reqHandler->setParameter("service_version", "1.0");
     //接口版本号
     $reqHandler->setParameter("input_charset", "utf-8");
     //字符集
     $reqHandler->setParameter("sign_key_index", "1");
     //密钥序号
     //业务可选参数
     $reqHandler->setParameter("attach", $attach);
     //附件数据,原样返回就可以了
     $reqHandler->setParameter("product_fee", "");
     //商品费用
     $reqHandler->setParameter("transport_fee", "0");
     //物流费用
     $reqHandler->setParameter("time_start", $today);
     //订单生成时间
     $reqHandler->setParameter("time_expire", "");
     //订单失效时间
     $reqHandler->setParameter("buyer_id", "");
     //买方财付通帐号
     $reqHandler->setParameter("goods_tag", "");
     //商品标记
     $reqHandler->setParameter("trade_mode", $cmd_no);
     //交易模式(1.即时到帐模式,2.中介担保模式,3.后台选择(卖家进入支付中心列表选择))
     $reqHandler->setParameter("transport_desc", "");
     //物流说明
     $reqHandler->setParameter("trans_type", "1");
     //交易类型
     $reqHandler->setParameter("agentid", "");
     //平台ID
     $reqHandler->setParameter("agent_type", "");
     //代理模式(0.无代理,1.表示卡易售模式,2.表示网店模式)
     $reqHandler->setParameter("seller_id", "");
     //卖家的商户号
     //请求的URL
     $reqUrl = $reqHandler->getRequestURL();
     if ($_REQUEST['v'] == 1) {
         $debugInfo = $reqHandler->getDebugInfo();
         echo "<br/>" . $reqUrl . "<br/>";
         echo "<br/>" . $debugInfo . "<br/>";
     }
     $payLinks = '<form style="text-align:center;" id="jumplink" action="' . $reqHandler->getGateUrl() . '" target="_self" style="margin:0px;padding:0px" method="post" >';
     $params = $reqHandler->getAllParameters();
     foreach ($params as $k => $v) {
         $payLinks .= "<input type=\"hidden\" name=\"{$k}\" value=\"{$v}\" />\n";
     }
     $payLinks .= "正在连接支付接口...</form>";
     $payLinks .= '<script type="text/javascript">document.getElementById("jumplink").submit();</script>';
     return $payLinks;
 }
예제 #12
0
 * 2.如出现无权访问的情况,则需开通相关api的访问权限
 * *************************************************************************************
 *
 * @link      https://www.zhongan.com
 * @copyright Copyright (c) 2013 众安保险
 */
require_once 'classes/RequestHandler.class.php';
//如果报timestamp相关的错 需设置时区参数为Asia/Shanghai(东八区)
date_default_timezone_set('Asia/Shanghai');
try {
    //初始化request,传入环境参数
    //RequestHandler::ENV_TEST | RequestHandler::ENV_UAT | RequestHandler::ENV_PROD
    $request = new RequestHandler(RequestHandler::ENV_TEST);
    //可自行设定版本参数, 未设置时默认为1.0.0
    $request->setVersion('1.0.0');
    //组装请求业务参数,具体参数请查看对应的api文档
    $params = array('identityNo' => '410482198209279874', 'userName' => '张三');
    //获取请求结果,第一个参数为开放平台api的serviceName,第二个字段为开放平台api的业务级输入参数
    //如果$res含有 errorCode和errorMsg字段,则说明该请求出现错误,需视情况作出处理
    $res = $request->doRequest('zhongan.user.person.addByIdentityNo', $params);
    print_r($res);
    //如果请求有错误,可以获取debug信息追踪错误 (仅限test和uat环境, prod环境默认不添加debug信息)
    $debugInfo = $request->getDebugInfo();
    print_r($debugInfo);
    //如果通过doRequest获取的请求结果不符合预期,可自行获取返回的原始业务参数进行后续处理
    $rawBizContent = $request->getRawBizContent();
    print_r($rawBizContent);
} catch (Exception $e) {
    //可以在这里添加你的异常处理逻辑
    print_r($e->getMessage());
}