Пример #1
0
function getCallbackHmacString($p1_MerId, $r0_Cmd, $r1_Code, $r2_TrxId, $r3_Amt, $r4_Cur, $r5_Pid, $r6_Order, $r7_Uid, $r8_MP, $r9_BType, $merchantKey)
{
    // global $p1_MerId,$merchantKey;
    // return $p1_MerId;
    #取得加密前的字符串
    $sbOld = "";
    #加入商家ID
    $sbOld = $sbOld . $p1_MerId;
    #加入消息类型
    $sbOld = $sbOld . $r0_Cmd;
    #加入业务返回码
    $sbOld = $sbOld . $r1_Code;
    #加入交易ID
    $sbOld = $sbOld . $r2_TrxId;
    #加入交易金额
    $sbOld = $sbOld . $r3_Amt;
    #加入货币单位
    $sbOld = $sbOld . $r4_Cur;
    #加入产品Id
    $sbOld = $sbOld . $r5_Pid;
    #加入订单ID
    $sbOld = $sbOld . $r6_Order;
    #加入用户ID
    $sbOld = $sbOld . $r7_Uid;
    #加入商家扩展信息
    $sbOld = $sbOld . $r8_MP;
    #加入交易结果返回类型
    $sbOld = $sbOld . $r9_BType;
    // return $sbOld;
    return HmacMd5($sbOld, $merchantKey);
}
Пример #2
0
function getCallbackHmacString($r0_Cmd, $r1_Code, $r2_TrxId, $r3_Amt, $r4_Cur, $r5_Pid, $r6_Order, $r7_Uid, $r8_MP, $r9_BType)
{
    global $settings;
    include 'merchantProperties.php';
    #取得加密前的字符串
    $sbOld = "";
    #加入商家ID
    $sbOld = $sbOld . $p1_MerId;
    #加入消息类型
    $sbOld = $sbOld . $r0_Cmd;
    #加入业务返回码
    $sbOld = $sbOld . $r1_Code;
    #加入交易ID
    $sbOld = $sbOld . $r2_TrxId;
    #加入交易金额
    $sbOld = $sbOld . $r3_Amt;
    #加入货币单位
    $sbOld = $sbOld . $r4_Cur;
    #加入产品Id
    $sbOld = $sbOld . $r5_Pid;
    #加入订单ID
    $sbOld = $sbOld . $r6_Order;
    #加入用户ID
    $sbOld = $sbOld . $r7_Uid;
    #加入商家扩展信息
    $sbOld = $sbOld . $r8_MP;
    #加入交易结果返回类型
    $sbOld = $sbOld . $r9_BType;
    //logstr($r6_Order,$sbOld,HmacMd5($sbOld,$merchantKey));
    return HmacMd5($sbOld, $merchantKey);
}
Пример #3
0
function getCallbackHmacString($r0_Cmd,$p1_MerId,$r1_Code,$r2_TrxId,$r3_Amt,$r4_Cur,$r5_Pid,$r6_Order,$r7_Uid,$r8_MP,$r9_BType,$merchantKey)
{
	$sbOld = "";
	$sbOld = $sbOld.$p1_MerId;
	$sbOld = $sbOld.$r0_Cmd;
	$sbOld = $sbOld.$r1_Code;
	$sbOld = $sbOld.$r2_TrxId;
	$sbOld = $sbOld.$r3_Amt;
	$sbOld = $sbOld.$r4_Cur;
	$sbOld = $sbOld.$r5_Pid;
	$sbOld = $sbOld.$r6_Order;
	$sbOld = $sbOld.$r7_Uid;
	$sbOld = $sbOld.$r8_MP;
	$sbOld = $sbOld.$r9_BType;
	return HmacMd5($sbOld,$merchantKey);
}
Пример #4
0
function verifyCallback(array $bizArray, $callBackHmac, $logName, $merchantKey)
{
    $callBackString = "";
    $callBackStringLog = "";
    foreach ($bizArray as $key => $value) {
        $callBackString .= $value;
        $callBackStringLog .= $key . "=" . $value . "&";
    }
    $newLocalHmac = HmacMd5($callBackString, $merchantKey, $logName);
    if ($newLocalHmac == $callBackHmac) {
        logurl("callBack页面回调成功,交易信息正常!", "回调参数串:" . $callBackStringLog . "LocalHmac(" . $newLocalHmac . ") == ResponseHmac(" . $callBackHmac . ")!", $logName);
        return true;
    } else {
        echo "交易信息被篡改!</br>newLocalHmac=" . $newLocalHmac . "</br>callBackHmac=" . $callBackHmac;
        logurl("callBack页面回调成功,但交易信息被篡改!", "回调参数串:" . $callBackStringLog . "LocalHmac(" . $newLocalHmac . ") != ResponseHmac(" . $callBackHmac . ")!", $logName);
        return false;
    }
}
Пример #5
0
$sbOld = $sbOld . $r5_Pid;
#加入商户订单号
$sbOld = $sbOld . $r6_Order;
#加入商户扩展信息
$sbOld = $sbOld . $r8_MP;
#加入支付状态
$sbOld = $sbOld . $rb_PayStatus;
#加入已退款次数
$sbOld = $sbOld . $rc_RefundCount;
#加入已退款金额
$sbOld = $sbOld . $rd_RefundAmt;
echo "[" . $sbOld . "]";
//echo $sNewString;
//echo $sNewString;
$sNewString = HmacMd5($sbOld, $merchantKey);
logstr($r6_Order, $sbOld, HmacMd5($sbOld, $merchantKey));
//校验码正确
if ($sNewString == $hmac) {
    if ($r1_Code == "1") {
        echo "<br>查询成功!";
        echo "<br>订单号:" . $r6_Order;
        echo "<br>易宝支付交易流水号:" . $r2_TrxId;
        echo "<br>商品名称:" . $r5_Pid;
        echo "<br>支付金额:" . $r3_Amt;
        echo "<br>商户扩展信息:" . $r8_MP;
        echo "<br>订单状态:" . $rb_PayStatus;
        echo "<br>已退款次数:" . $rc_RefundCount;
        echo "<br>已退款金额:" . $rd_RefundAmt;
    } else {
        if ($r1_Code == "50") {
            echo "<br>该订单不存在";
Пример #6
0
    }
}
#进行校验码检查 取得加密前的字符串
$sbOld = "";
#加入业务类型
$sbOld = $sbOld . $r0_Cmd;
#加入退款申请是否成功
$sbOld = $sbOld . $r1_Code;
#加入易宝支付交易流水号
$sbOld = $sbOld . $r2_TrxId;
#加入退款金额
$sbOld = $sbOld . $r3_Amt;
#加入交易币种
$sbOld = $sbOld . $r4_Cur;
$sNewString = HmacMd5($sbOld, $merchantKey);
logstr($r2_TrxId, $sbOld, HmacMd5($sbOld, $merchantKey));
//校验码正确
if ($sNewString == $hmac) {
    if ($r1_Code == "1") {
        echo "<br>订单退款请求成功!";
        echo "<br>易宝支付交易流水号:" . $r2_TrxId;
        echo "<br>退款金额:" . $r3_Amt;
    } else {
        echo "<br>订单退款请求失败";
        exit;
    }
} else {
    echo "<br>localhost::" . $sNewString;
    echo "<br>YeePay:" . $hmac;
    echo "<br>交易签名无效.";
    exit;
Пример #7
0
 public function index1()
 {
     $data = "<?xml version='1.0' encoding='UTF-8' standalone='yes'?><request platformNo='10040011137110'><platformUserNo>19920327</platformUserNo><requestNo>201504171617111</requestNo><amount>10</amount><feeMode>PLATFORM</feeMode><callbackUrl>http:www.baidu.com</callbackUrl><notifyUrl>http:www.baidu.com</notifyUrl></request>";
     //hmac签名串
     $merchantKey = '8oi7tY85Q27zqy836CCc6p5J1K13EW496cf41645k11qhE282655017251Jr';
     $hmac = HmacMd5($data, $merchantKey);
     dump($hmac);
     //header('location:http://119.161.147.110:8088/member/bha/toRecharge?req='.$data.'&sign='.$hmac);
     exit;
     /*//业务类型
     			$p0_Cmd = 'Buy';
     			//商户编号
     			$p1_MerId = C('MERID');
     			//商户订单号
     			$p2_Order = $_POST['p2_Order'];
     			//支付金额
     			$p3_Amt = $_POST['p3_Amt'];
     			//交易币种
     			$p4_Cur = 'CNY';
     			//商品名称
     			$p5_Pid = $_POST['p5_Pid'];
     			//商品种类
     			$p6_Pcat = '';
     			//商品描述
     			$p7_Pdesc = '';
     			//商户接受支付成功数据的地址
     			$p8_Url = 'http://127.0.0.1/Demo/index.php/Index/success';
     			//送货地址
     			$p9_SAF = '';
     			//商品扩展信息
     			$pa_MP = '';
     			//支付通道编码
     			$pd_FrpId = $_POST['pd_FrpId']; //选择支付银行
     			//$pd_FrpId = "";  //默认为空,则跳转到收银台
     			//应答机制
     			$pr_NeedResponse = '1';
     
     			//我们把请求参数一个个拼接
     			$data = '';
     			$data = $data.$p0_Cmd;
     			$data = $data.$p1_MerId;
     			$data = $data.$p2_Order;
     			$data = $data.$p3_Amt;
     			$data = $data.$p4_Cur;
     			$data = $data.$p5_Pid;
     			$data = $data.$p6_Pcat;
     			$data = $data.$p7_Pdesc;
     			$data = $data.$p8_Url;
     			$data = $data.$p9_SAF;
     			$data = $data.$pd_FrpId;
     			$data = $data.$pr_NeedResponse;
     			
     			$merchantKey = C('KEY');		#测试使用
     			
     			//hmac签名串
     			$hmac = HmacMd5($data,$merchantKey);
     
     			$this->assign('p0_Cmd',$p0_Cmd);
     			$this->assign('p1_MerId',$p1_MerId);
     			$this->assign('p2_Order',$p2_Order);
     			$this->assign('p3_Amt',$p3_Amt);
     			$this->assign('p4_Cur',$p4_Cur);
     			$this->assign('p5_Pid',$p5_Pid);
     			$this->assign('p6_Pcat',$p6_Pcat);
     			$this->assign('p7_Pdesc',$p7_Pdesc);
     			$this->assign('p8_Url',$p8_Url);
     			$this->assign('p9_SAF',$p9_SAF);
     			$this->assign('pa_MP',$pa_MP);
     			$this->assign('pd_FrpId',$pd_FrpId);
     			$this->assign('pr_NeedResponse',$pr_NeedResponse);
     			$this->assign('hmac',$hmac);
     			*/
     /*//组装数据  分配页面
     		$payInfo = array(
     		//业务类型
     		'p0_Cmd'  =>$p0_Cmd, 
     		//商品编号
     		'p1_MerId'=>$p1_MerId,
     		//商品订单号
     		'p2_Order'=>$p2_Order,
     		//支付金额
     		'p3_Amt' => $p3_Amt,
     		//交易币种
     		'p4_Cur' => $p4_Cur,
     		//商品名称
     		'p5_Pid' => $p5_Pid,
     		//商品种类
     		'p6_Pcat' => $p6_Pcat,
     		//商品描述
     		'p7_Pdesc' => $p7_Pdesc,
     		//商户接受支付成功数据的地址
     		'p8_Url' => $p8_Url,
     		//送货地址
     		'p9_SAF' => $p9_SAF,
     		//商品扩展信息
     		'pa_MP' => $pa_MP,
     		//支付通道编码
     		'pd_FrpId' => $pd_FrpId,
     		//应答机制
     		'pr_NeedResponse' => $pr_NeedResponse,
     		//hmac签名串
     		'hmac' =>$hmac
     		);
     		$data2 = iconv("UTF-8","GB2312",$payInfo);
     		dump($data2);
     		$this->assign('data',$data2);*/
     $this->display();
 }