### 简要描述:
来了个新厂商。 挖一下把。
开放+封闭源代码
封闭源代码,普通用户使用加密后的代码,付费用户使用开放的源代码,使商城更安全
对于我这种屌丝只能用免费版 就是zend后的代码。
不过还是有几个文件没zend。 就只看这几个文件了。
### 详细说明:
第五处
kuaiqian/receive_mall.php中
```
$dealTime=trim($_REQUEST['dealTime']);
//获取实际支付金额
///单位为分
///比方 2 ,代表0.02元
$payAmount=trim($_REQUEST['payAmount']);
//获取交易手续费
///单位为分
///比方 2 ,代表0.02元
$fee=trim($_REQUEST['fee']);
//获取扩展字段1
$ext1=trim($_REQUEST['ext1']);
//获取扩展字段2
$ext2=trim($_REQUEST['ext2']);
//获取处理结果
///10代表 成功; 11代表 失败
///00代表 下订单成功(仅对电话银行支付订单返回);01代表 下订单失败(仅对电话银行支付订单返回)
$payResult=trim($_REQUEST['payResult']);
//获取错误代码
///详细见文档错误代码列表
$errCode=trim($_REQUEST['errCode']);
//获取加密签名串
$signMsg=trim($_REQUEST['signMsg']);
//生成加密串。必须保持如下顺序。
$merchantSignMsgVal=appendParam($merchantSignMsgVal,"merchantAcctId",$merchantAcctId);
$merchantSignMsgVal=appendParam($merchantSignMsgVal,"version",$version);
$merchantSignMsgVal=appendParam($merchantSignMsgVal,"language",$language);
$merchantSignMsgVal=appendParam($merchantSignMsgVal,"signType",$signType);
$merchantSignMsgVal=appendParam($merchantSignMsgVal,"payType",$payType);
$merchantSignMsgVal=appendParam($merchantSignMsgVal,"bankId",$bankId);
$merchantSignMsgVal=appendParam($merchantSignMsgVal,"orderId",$orderId);
$merchantSignMsgVal=appendParam($merchantSignMsgVal,"orderTime",$orderTime);
$merchantSignMsgVal=appendParam($merchantSignMsgVal,"orderAmount",$orderAmount);
$merchantSignMsgVal=appendParam($merchantSignMsgVal,"dealId",$dealId);
$merchantSignMsgVal=appendParam($merchantSignMsgVal,"bankDealId",$bankDealId);
$merchantSignMsgVal=appendParam($merchantSignMsgVal,"dealTime",$dealTime);
$merchantSignMsgVal=appendParam($merchantSignMsgVal,"payAmount",$payAmount);
$merchantSignMsgVal=appendParam($merchantSignMsgVal,"fee",$fee);
$merchantSignMsgVal=appendParam($merchantSignMsgVal,"ext1",$ext1);
$merchantSignMsgVal=appendParam($merchantSignMsgVal,"ext2",$ext2);
$merchantSignMsgVal=appendParam($merchantSignMsgVal,"payResult",$payResult);
$merchantSignMsgVal=appendParam($merchantSignMsgVal,"errCode",$errCode);
$merchantSignMsgVal=appendParam($merchantSignMsgVal,"key",$key);
$merchantSignMsg= md5($merchantSignMsgVal);
//echo $merchantSignMsg;
//初始化结果及地址
$rtnOk=0;
$rtnUrl="";
define("_UL_", $_SERVER['SERVER_NAME']);
//商家进行数据处理,并跳转会商家显示支付结果的页面
///首先进行签名字符串验证
if(strtoupper($signMsg)==strtoupper($merchantSignMsg)){
switch($payResult){
case "10":
/*
' 商户网站逻辑处理,比方更新订单支付状态为成功
' 特别注意:只有strtoupper($signMsg)==strtoupper($merchantSignMsg),且payResult=10,才表示支付成功!
*/
mysql_connect($arr["DB_HOST"].":".$arr["DB_PORT"],$arr["DB_USER"],$arr["DB_PWD"]);
mysql_select_db($arr["DB_NAME"]);
$sql="update ".$arr["DB_PREFIX"]."m_pay set paystate=1,trade_no='".$dealId."',payallmoney=payallmoney+paymoney,gettime='".date('Y-m-d H:i:s')."' where ordernum='".$orderId."'";
mysql_query($sql);
$sql3="select * from ".$arr["DB_PREFIX"]."m_pay where ordernum='".$orderId."'";
$result=mysql_query($sql3);
$rs=mysql_fetch_array($result);
$sql2="update ".$arr["DB_PREFIX"]."m_member set money=money+".$rs["paymoney"]." where username='".$rs["username"]."'";
mysql_query($sql2);
```
这个又是只验证了一下md5。。
[<img src="https://images.seebug.org/upload/201406/1511471267caf43aedfdd8a1f02de0609f6663a6.jpg" alt="c3.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201406/1511471267caf43aedfdd8a1f02de0609f6663a6.jpg)
—————————————————————————————————————————
第六处
kuaiqian/receive_store.php中
跟第五处一样的。
不多说了。
__________________________________________________________________________
第七处
在tenpay/return_url.php中
```
$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");
//商户交易号
$sp_billno=$resHandler->getParameter("sp_billno");
if( "0" == $pay_result ) {
//------------------------------
//处理业务开始
//------------------------------
@mysql_connect($arr["DB_HOST"].":".$arr["DB_PORT"],$arr["DB_USER"],$arr["DB_PWD"]);
@mysql_select_db($arr["DB_NAME"]);
$sql="select * from ".$arr["DB_PREFIX"]."m_pay where ordernum=".$sp_billno;
$result=mysql_query($sql);
//--------
$rss=mysql_fetch_array($result);
if($rss["paystate"]==0)
{
$sql1="update ".$arr["DB_PREFIX"]."m_pay set trade_no='".$transaction_id."',payallmoney=paymoney+payallmoney,gettime='".date('Y-m-d H:i:s')."',paystate=1 where ordernum='".$sp_billno."'";
mysql_query($sql1);
//-----
```
用了个函数来验证 这个函数跟之前 验证alipay的那个基本一样。
第八处 tenpay/return_stor_url.php
[<img src="https://images.seebug.org/upload/201406/15115507e59102f5c0b742140f85408961a82ddc.jpg" alt="c4.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201406/15115507e59102f5c0b742140f85408961a82ddc.jpg)
### 漏洞证明:
见上面。
暂无评论