Ejemplo n.º 1
0
// 构造支付结果验证参数数组
$successCallBack = array('p1_MerId' => $p1_MerId, 'r0_Cmd' => $r0_Cmd, 'r1_Code' => $r1_Code, 'r2_TrxId' => $r2_TrxId, 'r3_Amt' => $r3_Amt, 'r4_Cur' => $r4_Cur, 'r5_Pid' => $r5_Pid, 'r6_Order' => $r6_Order, 'r7_Uid' => $r7_Uid, 'r8_MP' => $r8_MP, 'r9_BType' => $r9_BType);
$failCallBack = array('p1_MerId' => $p1_MerId, 'r0_Cmd' => $r0_Cmd, 'r1_Code' => $r1_Code, 'r2_TrxId' => $r2_TrxId, 'r3_Amt' => $r3_Amt, 'r6_Order' => $r6_Order, 'rp_TrxDate' => $rp_TrxDate);
// 回写success,通知易宝支付商户已收到点对点响应
//echo "success";
//在接收到支付结果通知后,判断是否进行过业务逻辑处理,不要重复进行业务逻辑处理
// 支付成功.可以调用您的业务逻辑,您无需关心易宝接口如何工作
if ($r0_Cmd == "Buy" && $r1_Code == "1") {
    if (verifyCallback($successCallBack, $hmac, $logName, $merchantKey)) {
        /*--------------------------------------------------------------------------------------*/
        // 接入程序员关注部分
        // 调用您的业务逻辑处理函数,比如:更新商户数据库的商品是否发货的状态,进行商品价格校验等
        //处理数据库逻辑
        //注意交易单不要重复处理
        //注意判断返回金额
        $uid = substruid($r6_Order, 14);
        //更新支付状态
        $sql_getpayid = "SELECT max(id) id FROM {$dbTablePre}payment_new WHERE order_id='{$r6_Order}'";
        $getpayid = $_MooClass['MooMySQL']->getOne($sql_getpayid, true);
        $id = $getpayid['id'];
        $sql_p = "SELECT pay_service FROM {$dbTablePre}payment_new WHERE id='{$id}'";
        $payservice = $_MooClass['MooMySQL']->getOne($sql_p, true);
        $bgtime = time();
        $apply_note = '';
        $s_cid = '';
        $total_money = '';
        $total_fee_res = $r3_Amt;
        $confirm = array();
        $attach = '';
        if ($payservice['pay_service'] == '-1') {
            $attach = '-1';
Ejemplo n.º 2
0
 $total_fee_res = $total_fee / 100;
 //如果有使用折扣券,discount有值,total_fee+discount=原请求的total_fee
 $discount = $resHandler->getParameter("discount");
 //支付结果 0-成功  1-失败
 $trade_state = $resHandler->getParameter("trade_state");
 //交易模式,1即时到账
 $trade_mode = $resHandler->getParameter("trade_mode");
 //支付银行
 $bank_type = $resHandler->getParameter('bank_type');
 //币种 1-人民币
 $fee_type = $resHandler->getParameter("fee_type");
 //商品价格
 $product_fee = $resHandler->getParameter("product_fee");
 $product_fee_res = $product_fee / 100;
 //用户ID
 $uid = substruid($out_trade_no, 14);
 if ($trade_state == '0' && $trade_mode == '1') {
     //------------------------------
     //处理业务开始
     //------------------------------
     //注意交易单不要重复处理
     //注意判断返回金额
     $total_money = '';
     if ($attach == '-1') {
         $total_money = $paymoney['platinum'];
     } elseif ($attach == '0') {
         $total_money = $paymoney['diamond'];
     } elseif ($attach == '1') {
         $total_money = $paymoney['vip'];
     } elseif ($attach == '2') {
         $total_money = $paymoney['citystar'];
Ejemplo n.º 3
0
require_once dirname(__FILE__) . '/./../../framwork/MooPHP.php';
require_once dirname(__FILE__) . '/./config.php';
//构造通知函数信息
$alipay = new alipay_notify($partner, $key, $sign_type, $_input_charset, $transport);
//计算得出通知验证结果
$verify_result = $alipay->return_verify();
if ($verify_result) {
    //验证成功
    //获取支付宝的通知返回参数,可参考技术文档中页面跳转同步通知参数列表
    $uid = substruid($_GET['out_trade_no'], 14);
    //用户成功提示
    $paytime = date("Y.m.d H:i:s");
    $payurl = array('pay' => '1', 'out_trade_no' => $_GET['out_trade_no'], 'paytime' => $paytime, 'bank_type' => '支付宝支付', 'trade_state' => 0, 'get_img' => '05.gif', 'img' => $_GET['extra_common_param'], 'total_fee' => $_GET['total_fee'], 'uid' => $uid);
    //会员ID
    $payurl = implode(',', $payurl);
    $payurl = $payurl . ',alipay';
    $jump = '../../index.php?n=payment&h=payreturnurl&payurl=' . $payurl;
    echo '<script language="JavaScript">self.location=\'' . $jump . '\';</script>';
    exit;
} else {
    //验证失败
    $uid = substruid($_GET['out_trade_no'], 14);
    $paytime = date("Y.m.d H:i:s");
    $payurl = array('pay' => '1', 'out_trade_no' => $_GET['out_trade_no'], 'paytime' => $paytime, 'bank_type' => '易宝支付', 'trade_state' => 1, 'get_img' => '01.gif', 'img' => $_GET['extra_common_param'], 'total_fee' => $_GET['total_fee'], 'uid' => $uid);
    //会员ID
    $payurl = implode(',', $payurl);
    $payurl = $payurl . ',alipay';
    $jump = '../../index.php?n=payment&h=payreturnurl&payurl=' . $payurl;
    echo '<script language="JavaScript">self.location=\'' . $jump . '\';</script>';
    exit;
}
Ejemplo n.º 4
0
function eposSale(array $bizArray, $actionURL, $merchantKey, $logName)
{
    // 调用签名函数生成签名串
    $ReqHmacString = getReqHmacString($bizArray, $logName, $merchantKey);
    // 组成请求串
    $actionHttpString = HttpClient::buildQueryString($bizArray) . "&pr_NeedResponse=1" . "&hmac=" . $ReqHmacString;
    // echo $actionURL."?".$actionHttpString;exit;
    // 记录发起支付请求的参数
    logurl("发起请求", $actionURL . "?" . $actionHttpString, $logName);
    // 发起支付请求
    $pageContents = HttpClient::quickPost($actionURL, $actionHttpString);
    if ($GLOBALS['uid'] == '20310462') {
        echo $pageContents . "<br>";
    }
    // 记录收到的提交结果
    logurl("请求回写", $pageContents, $logName);
    $result = explode("\n", $pageContents);
    for ($index = 0; $index < count($result); $index++) {
        $result[$index] = trim($result[$index]);
        if (strlen($result[$index]) == 0) {
            continue;
        }
        $aryReturn = explode("=", $result[$index]);
        $sKey = $aryReturn[0];
        $sValue = $aryReturn[1];
        if ($sKey == "r0_Cmd") {
            $r0_Cmd = $sValue;
        } elseif ($sKey == "r1_Code") {
            $r1_Code = $sValue;
        } elseif ($sKey == "r2_TrxId") {
            $r2_TrxId = $sValue;
        } elseif ($sKey == "r6_Order") {
            $r6_Order = $sValue;
        } elseif ($sKey == "errorMsg") {
            $errorMsg = $sValue;
        } elseif ($sKey == "hmac") {
            $hmac = $sValue;
        }
        /* else{
        		   return $result[$index];
        		}   */
    }
    $hmac = iconv("UTF-8", "GB2312", $hmac);
    // 进行校验码检查 取得加密前的字符串
    $sbOld = "";
    // 加入业务类型
    $sbOld = $sbOld . $r0_Cmd;
    // 加入支付结果
    $sbOld = $sbOld . $r1_Code;
    // 加入易宝支付交易流水号
    $sbOld = $sbOld . $r2_TrxId;
    // 加入商户订单号
    $sbOld = $sbOld . $r6_Order;
    $sNewString = HmacMd5($sbOld, $merchantKey, $logName);
    logurl("订单号:" . $r6_Order, "本地生成HMAC:" . $sNewString . "返回HMAC:" . $hmac, $logName);
    $uid = substruid($r6_Order, 14);
    $money = $bizArray['p3_Amt'];
    global $_MooClass, $dbTablePre;
    $sql_getpayid = "SELECT max(id) id FROM {$dbTablePre}payment_new WHERE order_id='{$r6_Order}'";
    $getpayid = $_MooClass['MooMySQL']->getOne($sql_getpayid, true);
    $id = $getpayid['id'];
    $sql_p = "SELECT pay_service FROM {$dbTablePre}payment_new WHERE id='{$id}'";
    $payservice = $_MooClass['MooMySQL']->getOne($sql_p, true);
    //	if($money=='1899'){
    //		$attach='0';
    //	}elseif($money=='1399'){
    //		$attach='1';
    //	}elseif($money=='1399.00'){
    //		$attach='2';
    //	}else{
    //		$attach='1';
    //	}
    //
    if ($payservice['pay_service'] == '0') {
        $attach = '0';
    } elseif ($payservice['pay_service'] == '1' || $payservice['pay_service'] == '3') {
        $attach = '1';
    } elseif ($payservice['pay_service'] == '2') {
        $attach = '2';
    } else {
        $attach = '1';
    }
    if ($GLOBALS['uid'] == '20310462') {
        echo $sNewString;
        exit;
    }
    // 校验码正确
    if ($sNewString == $hmac) {
        if ($r1_Code == "1") {
            logurl("请求成功", "本地生成HMAC:" . $sNewString . "返回HMAC:" . $hmac, $logName);
            //返回信息 数组表示
            $paytime = date("Y.m.d H:i:s");
            $payurl = array('pay' => '1', 'out_trade_no' => $r6_Order, 'paytime' => $paytime, 'bank_type' => '易宝支付', 'trade_state' => '0', 'get_img' => '05.gif', 'img' => $attach, 'total_fee' => $bizArray['p3_Amt'], 'uid' => $uid);
            //会员ID
            $payurl = implode(',', $payurl);
            $payurl = $payurl . ',yeepay';
            header("Location:./../../index.php?n=payment&h=payreturnurl&payurl=" . $payurl);
            return;
        } elseif ($r1_Code == "66") {
            $errorinfo = iconv("GB2312", "UTF-8", "订单金额过小!");
        } elseif ($r1_Code == "30001") {
            $errorinfo = iconv("GB2312", "UTF-8", "填写信息格式有误!");
        } elseif ($r1_Code == "3002") {
            $errorinfo = iconv("GB2312", "UTF-8", "创建订单异常!");
        } elseif ($r1_Code == "3003") {
            $errorinfo = iconv("GB2312", "UTF-8", "创建交易异常!");
        } elseif ($r1_Code == "3006") {
            $errorinfo = iconv("GB2312", "UTF-8", "提交失败!银行返回失败信息:{$errorMsg}!");
        } elseif ($r1_Code == "3008") {
            $errorinfo = iconv("GB2312", "UTF-8", "卡号规则不符合!");
        } elseif ($r1_Code == "3009") {
            $errorinfo = iconv("GB2312", "UTF-8", "卡号有误或不支持的银行!");
        } elseif ($r1_Code == "3010") {
            $errorinfo = iconv("GB2312", "UTF-8", "查询信用卡类型出错!");
        } elseif ($r1_Code == "3011") {
            $errorinfo = iconv("GB2312", "UTF-8", "日期格式错误!");
        } elseif ($r1_Code == "-100") {
            $errorinfo = iconv("GB2312", "UTF-8", "未知错误!");
        } else {
            $errorinfo = iconv("GB2312", "UTF-8", "提交失败,请检查后重新测试支付!");
        }
        $trade_state = '1';
        $payurl = array('pay' => '3', 'errorinfo' => $errorinfo, 'trade_state' => $trade_state);
        $payurl = implode(',', $payurl);
        $payurl = $payurl . ',yeepay';
        header("Location:./../../index.php?n=payment&h=payreturnurl&payurl=" . $payurl);
        exit;
    } else {
        $trade_state = '1';
        $errorinfo = iconv("GB2312", "UTF-8", "服务器出错!");
        $payurl = array('pay' => '3', 'errorinfo' => $errorinfo, 'trade_state' => $trade_state);
        $payurl = implode(',', $payurl);
        $payurl = $payurl . ',yeepay';
        header("Location:./../../index.php?n=payment&h=payreturnurl&payurl=" . $payurl);
        exit;
    }
}