Ejemplo n.º 1
0
/**
 * 创建新帐户
 * @param int $user_id
 * @param int $user_type 0:普通用户fanwe_user.id;1:担保用户fanwe_deal_agency.id
 * @param unknown_type $MerCode
 * @param unknown_type $cert_md5
 * @param unknown_type $post_url
 * @return string
 */
function RegisterCat($user_id, $platformNo, $post_url, $sys = 'pc')
{
    $pWebUrl = SITE_DOMAIN . APP_ROOT . "/index.php?ctl=collocation&act=response&class_name=Yeepay&class_act=RegisterCat&from=" . $_REQUEST['from'];
    //web方式返回
    $pS2SUrl = SITE_DOMAIN . APP_ROOT . "/index.php?ctl=collocation&act=notify&class_name=Yeepay&class_act=RegisterCat&from=" . $_REQUEST['from'];
    //s2s方式返回
    $user = array();
    $user = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user where id = " . $user_id);
    $yeepay_log = array();
    $yeepay_log['code'] = 'toRegister';
    $yeepay_log['create_date'] = to_date(NOW_TIME, 'Y-m-d H:i:s');
    $GLOBALS['db']->autoExecute(DB_PREFIX . "yeepay_log", $yeepay_log);
    $requestNo = $GLOBALS['db']->insert_id();
    $data = array();
    $data['requestNo'] = $requestNo;
    //请求流水号
    $data['platformUserNo'] = $user_id;
    //
    $data['platformNo'] = $platformNo;
    // 商户编号
    $data['nickName'] = $user['user_name'];
    $data['realName'] = $user['identify_name'];
    $data['idCardNo'] = $user['identify_number'];
    //
    $data['idCardType'] = 'G2_IDCARD';
    $data['mobile'] = $user['mobile'];
    //
    $data['email'] = $user['email'];
    //
    $GLOBALS['db']->autoExecute(DB_PREFIX . "yeepay_register", $data, 'INSERT');
    $id = $GLOBALS['db']->insert_id();
    $strxml = CreateNewAcctXml($data, $pWebUrl, $pS2SUrl);
    $pSign = cfca($strxml);
    if ($sys == 'pc') {
        $act = 'bha';
    } elseif ($sys == 'mobile') {
        $act = 'bhawireless';
    }
    $html = '<html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8" /></head><body>
		<form name="form1" id="form1" method="post" action="' . $post_url . '/' . $act . '/identityVerification" target="_self">		
		<input type="hidden" name="sign" value="' . $pSign . '" />		
		<textarea name="req" cols="100" rows="5" style="display:none">' . $strxml . '</textarea>
	 	<input type="hidden" value="提交"></input>
	 	<div style="width:100%;text-align:center;padding:50px 0;"><img src="' . APP_ROOT . '/app/Tpl/' . app_conf("TEMPLATE") . '/images/loading.gif" />页面正在跳转,请稍后...</div>
		</form>
		</body></html>
		<script language="javascript">document.form1.submit();</script>';
    //echo $html; exit;
    $yeepay_log = array();
    $yeepay_log['strxml'] = $strxml;
    $yeepay_log['html'] = $html;
    $GLOBALS['db']->autoExecute(DB_PREFIX . "yeepay_log", $yeepay_log, 'UPDATE', 'id=' . $requestNo);
    return $html;
}
Ejemplo n.º 2
0
function DoDwTrade($user_id, $platformNo, $pTrdAmt, $post_url, $sys = 'pc')
{
    $pWebUrl = SITE_DOMAIN . APP_ROOT . "/index.php?ctl=collocation&act=response&class_name=Yeepay&class_act=DoDwTrade&from=" . $_REQUEST['from'];
    //web方式返回
    $pS2SUrl = SITE_DOMAIN . APP_ROOT . "/index.php?ctl=collocation&act=notify&class_name=Yeepay&class_act=DoDwTrade&from=" . $_REQUEST['from'];
    //s2s方式返回
    $user = array();
    $user = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user where id = " . $user_id);
    $yeepay_log = array();
    $yeepay_log['code'] = 'toWithdraw';
    $yeepay_log['create_date'] = to_date(NOW_TIME, 'Y-m-d H:i:s');
    $GLOBALS['db']->autoExecute(DB_PREFIX . "yeepay_log", $yeepay_log);
    $requestNo = $GLOBALS['db']->insert_id();
    $fee = 0;
    //getCarryFee($pTrdAmt,$user);
    $data = array();
    $data['requestNo'] = $requestNo;
    //请求流水号
    $data['platformUserNo'] = $user_id;
    //
    $data['platformNo'] = $platformNo;
    // 商户编号
    $data['amount'] = $pTrdAmt - $fee;
    $collocation_item = $GLOBALS['db']->getRow("select config from " . DB_PREFIX . "collocation where class_name='Yeepay'");
    $collocation_cfg = unserialize($collocation_item['config']);
    $data['feeMode'] = $collocation_cfg['TXfeeMode'] ? $collocation_cfg['TXfeeMode'] : 'USER';
    //费率模式PLATFORM PLATFORM 收取商户手续费 USER 收取用户手续费
    $data['fee'] = $fee;
    $data['create_time'] = NOW_TIME;
    $GLOBALS['db']->autoExecute(DB_PREFIX . "yeepay_withdraw", $data, 'INSERT');
    $id = $GLOBALS['db']->insert_id();
    $strxml = DoDwTradeXml($data, $pWebUrl, $pS2SUrl);
    $pSign = cfca($strxml);
    if ($sys == 'pc') {
        $act = 'bha';
    } elseif ($sys == 'mobile') {
        $act = 'bhawireless';
    }
    $html = '<html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8" /></head><body>
		<form name="form1" id="form1" method="post" action="' . $post_url . '/' . $act . '/toWithdraw" target="_self">		
		<input type="hidden" name="sign" value="' . $pSign . '" />		
		<textarea name="req" cols="100" rows="5" style="display:none">' . $strxml . '</textarea>
 		<input type="hidden" value="提交"></input>
 		<div style="width:100%;text-align:center;padding:50px 0;"><img src="' . APP_ROOT . '/app/Tpl/' . app_conf("TEMPLATE") . '/images/loading.gif" />页面正在跳转,请稍后...</div>
		</form>
		</body></html>
		<script language="javascript">document.form1.submit();</script>';
    //echo $html; exit;
    $yeepay_log = array();
    $yeepay_log['strxml'] = $strxml;
    $yeepay_log['html'] = $html;
    $GLOBALS['db']->autoExecute(DB_PREFIX . "yeepay_log", $yeepay_log, 'UPDATE', 'id=' . $requestNo);
    return $html;
}
function QueryForAccBalance($user_id, $platformNo, $post_url)
{
    /* 请求参数 */
    $req = "<request platformNo=\"{$platformNo}\"><platformUserNo>{$user_id}</platformUserNo></request>";
    /* 签名数据 */
    $sign = cfca($req);
    /* 调用账户查询服务 */
    $service = "ACCOUNT_INFO";
    $ch = curl_init($post_url . "/bhaexter/bhaController");
    curl_setopt_array($ch, array(CURLOPT_POST => TRUE, CURLOPT_RETURNTRANSFER => TRUE, CURLOPT_SSL_VERIFYPEER => 0, CURLOPT_SSL_VERIFYHOST => 0, CURLOPT_POSTFIELDS => 'service=' . $service . '&req=' . rawurlencode($req) . "&sign=" . rawurlencode($sign)));
    $resultStr = curl_exec($ch);
    //print($result);
    if (empty($resultStr)) {
        $result = array();
        $result['pErrCode'] = 9999;
        $result['pErrMsg'] = '返回出错';
        $result['pIpsAcctNo'] = '';
        $result['pBalance'] = 0;
        $result['pLock'] = 0;
        $result['pNeedstl'] = 0;
    } else {
        require_once APP_ROOT_PATH . 'system/collocation/ips/xml.php';
        $str3ParaInfo = @XML_unserialize($resultStr);
        //print_r($str3ParaInfo);exit;
        $str3Req = $str3ParaInfo['response'];
        $result = array();
        $result['pErrCode'] = $str3Req["code"];
        $result['pErrMsg'] = $str3Req["description"];
        $result['pIpsAcctNo'] = $user_id;
        $result['pBalance'] = $str3Req["balance"];
        $result['pLock'] = $str3Req["freezeAmount"];
        $result['pNeedstl'] = 0;
        // $str3Req["availableAmount"];
    }
    return $result;
    /*
    * <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <response platformNo="10040011137">
        <code>1</code>
        <description>操作成功</description>
        <memberType>PERSONAL</memberType>
        <activeStatus>ACTIVATED</activeStatus>
        <balance>9980.98</balance>
        <availableAmount>9980.98</availableAmount>
        <freezeAmount>0.00</freezeAmount>
        <cardNo>********5512</cardNo>
        <cardStatus>VERIFIED</cardStatus>
        <bank>CCB</bank>
        <autoTender>false</autoTender>
    </response>
    */
}
function SincerityGoldUnfreeze($user_id, $platformNo, $freezeRequestNo, $deal_id, $post_url, $sys = 'pc')
{
    //$pWebUrl= SITE_DOMAIN.APP_ROOT."/index.php?ctl=collocation&act=response&class_name=Yeepay&class_act=SincerityGoldUnfreeze&from=".$_REQUEST['from'];//web方式返回
    //$pS2SUrl= SITE_DOMAIN.APP_ROOT."/index.php?ctl=collocation&act=notify&class_name=Yeepay&class_act=SincerityGoldUnfreeze&from=".$_REQUEST['from'];//s2s方式返回
    $yeepay_log = array();
    $yeepay_log['code'] = 'UNFREEZE';
    $yeepay_log['create_date'] = to_date(NOW_TIME, 'Y-m-d H:i:s');
    $GLOBALS['db']->autoExecute(DB_PREFIX . "yeepay_log", $yeepay_log);
    $requestNo = $GLOBALS['db']->insert_id();
    $data = array();
    $data['platformNo'] = $platformNo;
    // 商户编号
    $data['freezeRequestNo'] = $freezeRequestNo;
    $data['expired'] = NOW_TIME;
    //到期自劢解冻时间
    //	$strxml = SincerityGoldUnfreezeXml($data,$pWebUrl,$pS2SUrl);
    /* 请求参数 */
    $req = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>" . "<request platformNo='" . $data['platformNo'] . "'>" . "<freezeRequestNo>" . $data['freezeRequestNo'] . "</freezeRequestNo>" . "</request>";
    /* 签名数据 */
    $sign = cfca($req);
    /* 调用账户查询服务 */
    $service = "UNFREEZE";
    $ch = curl_init($post_url . "/bhaexter/bhaController");
    curl_setopt_array($ch, array(CURLOPT_POST => TRUE, CURLOPT_RETURNTRANSFER => TRUE, CURLOPT_SSL_VERIFYPEER => 0, CURLOPT_SSL_VERIFYHOST => 0, CURLOPT_POSTFIELDS => 'service=' . $service . '&req=' . rawurlencode($req) . "&sign=" . rawurlencode($sign)));
    $resultStr = curl_exec($ch);
    if (empty($resultStr)) {
        //$err_count ++ ;
    } else {
        require_once APP_ROOT_PATH . 'system/collocation/ips/xml.php';
        $str3ParaInfo = @XML_unserialize($resultStr);
        $str3Req = $str3ParaInfo['response'];
        $result['pErrCode'] = $str3Req["code"];
        $result['pErrMsg'] = $str3Req["description"];
        if ($str3Req["code"] == 1) {
            //操作成功
            $where = " platformUserNo=" . $user_id . " and deal_id =" . $deal_id . " and requestNo=" . $freezeRequestNo;
            $data['status'] = 2;
            $data['create_time'] = NOW_TIME;
            if (isset($str3Req['description'])) {
                $data['description'] = $str3Req["description"];
            }
            $GLOBALS['db']->autoExecute(DB_PREFIX . "money_freeze", $data, 'UPDATE', $where);
            showIpsInfo('诚意金解冻成功', get_domain() . APP_ROOT . '/m.php?m=UserFreeze&a=index&');
        }
    }
}
Ejemplo n.º 5
0
/**
 * 标的登记 及 流标
 * @param int $deal_id
 * @param int $pOperationType 标的操作类型,1:新增,2:结束 “新增”代表新增标的,“结束”代表标的正常还清、丌 需要再还款戒者标的流标等情况。标的“结束”后,投资 人投标冻结金额、担保方保证金、借款人保证金均自劢解 冻
 * @param int $status; 0:新增; 2:流标结束
 * @param string $status_msg 主要是status_msg=2时记录的,流标原因
 * @param unknown_type $platformNo
 * @param unknown_type $post_url
 * @return string
 */
function DoBids($deal_id, $pOperationType, $status, $status_msg, $platformNo, $post_url, $sys = 'pc')
{
    $pWebUrl = SITE_DOMAIN . APP_ROOT . "/index.php?ctl=collocation&act=response&class_name=yeepay&class_act=DoBids";
    //web方式返回
    $pS2SUrl = SITE_DOMAIN . APP_ROOT . "/index.php?ctl=collocation&act=notify&class_name=yeepay&class_act=DoBids";
    //s2s方式返回
    //$requestNo = $GLOBALS['db']->getOne("select * from ".DB_PREFIX."yeepay_cp_transaction where is_callback = 1 and code = 1 and tenderOrderNo = '".$deal_id."'");
    $deal = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "deal where id = " . $deal_id);
    if ($deal['type'] == 3) {
        $t_arr = $GLOBALS['db']->getAll("select ycp.*,dorder.type as order_type,dorder.progress as order_progress,dorder.deal_id,dorder.user_id from " . DB_PREFIX . "yeepay_cp_transaction as ycp left join " . DB_PREFIX . "deal_order as dorder on dorder.requestNo=ycp.requestNo where ycp.is_callback = 1 and ycp.tenderId = " . $deal_id . " and ycp.bizType = 'TENDER' and   ycp.is_complete_transaction = 0");
    } else {
        $t_arr = $GLOBALS['db']->getAll("select ycp.*,dorder.type as order_type,dorder.progress as order_progress,dorder.deal_id,dorder.user_id from " . DB_PREFIX . "yeepay_cp_transaction as ycp left join " . DB_PREFIX . "deal_order as dorder on dorder.requestNo=ycp.requestNo where ycp.is_callback = 1 and ycp.tenderId = " . $deal_id . " and ycp.bizType = 'TENDER' and   ycp.is_complete_transaction = 0");
    }
    $err_count = 0;
    foreach ($t_arr as $k => $v) {
        $data = array();
        $data['requestNo'] = $v["requestNo"];
        //请求流水号
        $data['platformNo'] = $platformNo;
        // 商户编号
        $data['mode'] = "CANCEL";
        /* 请求参数 */
        $req = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>" . "<request platformNo=\"" . $platformNo . "\">" . "<requestNo>" . $data['requestNo'] . "</requestNo>" . "<mode>" . $data['mode'] . "</mode>" . "<notifyUrl><![CDATA[" . $pS2SUrl . "]]></notifyUrl>" . "</request>";
        /* 签名数据 */
        $sign = cfca($req);
        $yeepay_log = array();
        $yeepay_log['code'] = 'COMPLETE_TRANSACTION';
        $yeepay_log['create_date'] = to_date(NOW_TIME, 'Y-m-d H:i:s');
        $yeepay_log['strxml'] = $req;
        $GLOBALS['db']->autoExecute(DB_PREFIX . "yeepay_log", $yeepay_log);
        //$id = $GLOBALS['db']->insert_id();
        /* 调用账户查询服务 */
        $service = "COMPLETE_TRANSACTION";
        $ch = curl_init($post_url . "/bhaexter/bhaController");
        curl_setopt_array($ch, array(CURLOPT_POST => TRUE, CURLOPT_RETURNTRANSFER => TRUE, CURLOPT_SSL_VERIFYPEER => 0, CURLOPT_SSL_VERIFYHOST => 0, CURLOPT_POSTFIELDS => 'service=' . $service . '&req=' . rawurlencode($req) . "&sign=" . rawurlencode($sign)));
        $resultStr = curl_exec($ch);
        if (empty($resultStr)) {
            $err_count++;
        } else {
            require_once APP_ROOT_PATH . 'system/collocation/ips/xml.php';
            $str3ParaInfo = @XML_unserialize($resultStr);
            $str3Req = $str3ParaInfo['response'];
            $result['pErrCode'] = $str3Req["code"];
            $result['pErrMsg'] = $str3Req["description"];
            if ($str3Req["code"] == 1) {
                $requestNo = $v["requestNo"];
                $t_data = array();
                $t_data["is_complete_transaction"] = 2;
                $GLOBALS['db']->autoExecute(DB_PREFIX . "yeepay_cp_transaction", $t_data, 'UPDATE', " requestNo = '" . $requestNo . "'");
                $deal_load = array();
                $deal_load['is_complete_transaction'] = 2;
                //2#退款成功
                $deal_load['is_refund'] = 1;
                $where = " requestNo = " . $requestNo;
                $GLOBALS['db']->autoExecute(DB_PREFIX . "deal_order", $deal_load, 'UPDATE', $where);
                if ($GLOBALS['db']->affected_rows()) {
                    deal_order_progress($v['deal_id'], $v['user_id'], 4);
                }
            }
        }
    }
    //showIpsInfo('同步成功',"");
}
/**
 * 还款
 * @param deal $deal  标的数据
 * @param array $repaylist  还款列表
 * @param int $deal_repay_id  还款计划ID
 * @param int $MerCode  商户ID
 * @param string $cert_md5 
 * @param string $post_url
 * @return string
 */
function RepaymentNewTrade($deal, $repaylist, $deal_repay_id, $platformNo, $post_url)
{
    $pWebUrl = SITE_DOMAIN . APP_ROOT . "/index.php?ctl=collocation&act=response&class_name=Yeepay&class_act=RepaymentNewTrade&from=" . $_REQUEST['from'];
    //web方式返回
    $pS2SUrl = SITE_DOMAIN . APP_ROOT . "/index.php?ctl=collocation&act=notify&class_name=Yeepay&class_act=RepaymentNewTrade&from=" . $_REQUEST['from'];
    //s2s方式返回
    $fee = 0;
    //--记录日志
    $yeepay_log = array();
    $yeepay_log['code'] = 'toCpTransaction';
    $yeepay_log['create_date'] = to_date(NOW_TIME, 'Y-m-d H:i:s');
    $GLOBALS['db']->autoExecute(DB_PREFIX . "yeepay_log", $yeepay_log);
    $requestNo = $GLOBALS['db']->insert_id();
    $cp_t = array();
    $cp_t['requestNo'] = $requestNo;
    $cp_t['platformNo'] = $platformNo;
    $cp_t['platformUserNo'] = $deal["user_id"];
    $u_info = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user where user_id = " . $deal['user_id']);
    $cp_t['userType'] = $u_info;
    $cp_t['bizType'] = 'REPAYMENT';
    if ($u_info['user_type'] == 0) {
        $cp_t['userType'] = 'MEMBER';
    } else {
        $cp_t['userType'] = 'MERCHANT';
    }
    $cp_t['tenderOrderNo'] = $deal["id"];
    $cp_t['tenderName'] = $deal["sub_name"];
    $cp_t['tenderAmount'] = $deal["borrow_amount"];
    $cp_t['deal_repay_id'] = $deal_repay_id;
    $cp_t['tenderDescription'] = $deal['name'];
    //项目描述信息
    $cp_t['borrowerPlatformUserNo'] = $deal['user_id'];
    //项目的借款人平台用户编
    $GLOBALS['db']->autoExecute(DB_PREFIX . "yeepay_cp_transaction", $cp_t);
    $id = $GLOBALS['db']->insert_id();
    $fee = 0;
    foreach ($repaylist as $k => $v) {
        //平台收取:借款者 的管理费 + 管理逾期罚息
        $fee = $fee + $v['repay_manage_money'] + $v['repay_manage_impose_money'];
        //==============================投资者获取的,费用===================================
        $detail = array();
        $detail['pid'] = $id;
        $detail['deal_load_repay_id'] = $v['id'];
        $detail['repay_manage_impose_money'] = $v['repay_manage_impose_money'];
        //平台收取 借款者 的管理费逾期罚息
        $detail['impose_money'] = $v['impose_money'];
        //投资者收取 借款者 的逾期罚息
        $detail['repay_status'] = intval($v['status']) - 1;
        //还款状态
        $detail['true_repay_time'] = NOW_TIME;
        //还款时间
        //投资人会员编号
        if ($v['t_user_id']) {
            //债权转让后,还款时,转给:承接者, 在债权转让后需要更新 fanwe_deal_load_repay.t_user_id 数据值
            $detail['user_id'] = $v['t_user_id'];
        } else {
            $detail['user_id'] = $v['user_id'];
        }
        $detail_user_info = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user where id = " . $detail['user_id']);
        if ($detail_user_info['user_type'] == 0) {
            $detail['userType'] = 'MEMBER';
        } else {
            $detail['userType'] = 'MERCHANT';
        }
        $detail['targetUserType'] = $detail_user_info["user_type"];
        $detail['targetPlatformUserNo'] = $detail_user_info["ips_acct_no"];
        $detail['bizType'] = 'REPAYMENT';
        //平台收取:投资者 的投资金额管理费 + 利息管理费
        $detail['fee'] = $v['manage_money'] + $v['manage_interest_money'];
        //投资者获取的 $v['month_repay_money'] + $v['impose_money'] - $v['manage_money'] - $v['manage_interest_money']
        $detail['amount'] = $v['month_repay_money'] + $v['impose_money'] - $detail['fee'];
        $GLOBALS['db']->autoExecute(DB_PREFIX . "yeepay_cp_transaction_detail", $detail, 'INSERT');
        $details[] = $detail;
    }
    $data_update = array();
    $data_update['requestNo'] = $requestNo;
    $data_update['fee'] = $fee;
    //手续费(涉及到满标、还款接口)
    $GLOBALS['db']->autoExecute(DB_PREFIX . "yeepay_cp_transaction", $data_update, 'UPDATE', ' requestNo=' . $requestNo);
    //$details = "<details></details>";
    $actions = "<details>";
    foreach ($details as $k => $v) {
        $actions .= "<detail><targetUserType>" . $v['userType'] . "</targetUserType><targetPlatformUserNo>" . intval($v['user_id']) . "</targetPlatformUserNo><amount>" . $v['amount'] . "</amount><bizType>" . $v["bizType"] . "</bizType></detail>" . "<detail><targetUserType>MERCHANT</targetUserType><targetPlatformUserNo>{$platformNo}</targetPlatformUserNo><amount>" . $v['fee'] . "</amount><bizType>COMMISSION</bizType></detail>";
    }
    $actions .= "</details>";
    $extend = '<extend>' . '<property name="tenderOrderNo" value="' . $deal["id"] . '" />' . '</extend>';
    $strxml = RepaymentNewTradeXml($cp_t, $actions . $extend, $pWebUrl, $pS2SUrl);
    $pSign = cfca($strxml);
    $html = '<html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8" /></head><body>
				<form name="form1" id="form1" method="post" action="' . $post_url . '/bha/toCpTransaction" target="_self">
				<input type="hidden" name="sign" value="' . $pSign . '" />
				<textarea name="req" cols="100" rows="5" style="display:none">' . $strxml . '</textarea>
		 		<input type="hidden" value="提交"></input>
		 		<div style="width:100%;text-align:center;padding:50px 0;"><img src="' . APP_ROOT . '/app/Tpl/' . app_conf("TEMPLATE") . '/images/loading.gif" />页面正在跳转,请稍后...</div>
				</form>
				</body></html>
				<script language="javascript">document.form1.submit();</script>';
    $cp_t = array();
    $cp_t['details'] = $actions;
    //项目描述信息
    $cp_t['extend'] = $deal['extend'];
    //项目的借款人平台用户编
    $GLOBALS['db']->autoExecute(DB_PREFIX . "yeepay_cp_transaction", $cp_t, " requestNo = " . $requestNo);
    $yeepay_log = array();
    $yeepay_log['strxml'] = $strxml;
    $yeepay_log['html'] = $html;
    $GLOBALS['db']->autoExecute(DB_PREFIX . "yeepay_log", $yeepay_log, 'UPDATE', 'id=' . $requestNo);
    return $html;
}
Ejemplo n.º 7
0
/**
 * 投标
 * @param int $user_id  用户ID
 * @param int $deal_id  标的ID
 * @param float $pAuthAmt 投资金额
 * @param int $MerCode  商户ID
 * @param string $cert_md5 
 * @param string $post_url
 * @return string
 */
function RegisterCreditor($order_id, $t_user_id, $platformNo, $post_url, $sys = 'pc')
{
    $pWebUrl = SITE_DOMAIN . APP_ROOT . "/index.php?ctl=collocation&act=response&class_name=Yeepay&class_act=RegisterCreditor&from=" . $_REQUEST['from'];
    //web方式返回
    $pS2SUrl = SITE_DOMAIN . APP_ROOT . "/index.php?ctl=collocation&act=notify&class_name=Yeepay&class_act=RegisterCreditor&from=" . $_REQUEST['from'];
    //s2s方式返回
    $order = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "deal_order where id = " . $order_id);
    $deal_id = intval($order['deal_id']);
    $user_id = intval($order['user_id']);
    $user = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user where id = " . $user_id);
    $tuser = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user where id = " . $t_user_id);
    $user_load_transfer_fee = $GLOBALS['db']->getOne("SELECT user_load_transfer_fee FROM " . DB_PREFIX . "deal WHERE id=" . $deal_id);
    $deal = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "deal where id=" . $deal_id);
    if (empty($user['ips_acct_no']) || empty($tuser['ips_acct_no'])) {
        return '有一方未申请 ips 帐户';
    }
    $yeepay_log = array();
    $yeepay_log['code'] = 'toCpTransaction';
    $yeepay_log['create_date'] = to_date(NOW_TIME, 'Y-m-d H:i:s');
    $GLOBALS['db']->autoExecute(DB_PREFIX . "yeepay_log", $yeepay_log);
    $requestNo = $GLOBALS['db']->insert_id();
    $data = array();
    $data['requestNo'] = $requestNo;
    //请求流水号
    $data['platformUserNo'] = $user_id;
    //
    $data['platformNo'] = $platformNo;
    // 商户编号
    $data['paymentAmount'] = $order['total_price'];
    // 记录投标金额
    //用户类型 0普通用户 1 企业用户;现在只支持 普通用户
    if (true) {
        $data['userType'] = 'MEMBER';
        //出款人用户类型
    } else {
        $data['userType'] = 'MERCHANT';
        //出款人用户类型MEMBER 个人会员 MERCHANT 商户
    }
    //TENDER 投标 REPAYMENT 还款 CREDIT_ASSIGNMENT 债权转让 TRANSFER 转账 COMMISSION 分润,仅在资金转账明细中使用
    $data['bizType'] = 'TENDER';
    //根据业务的不同,需要传入不同的值,见【业务类型】。并参考下面的详细信息
    //投标 扩展字段
    $data['tenderOrderNo'] = $order_id;
    //订单编号
    $data['tenderName'] = $deal['name'];
    //项目名称
    $data['tenderId'] = $deal['id'];
    //项目编号
    $data['tenderAmount'] = $deal['limit_price'];
    //标的金额
    $data['paymentAmount'] = $order['total_price'];
    //实际支付金额
    $data['tenderDescription'] = $deal['name'];
    //项目描述信息
    $data['borrowerPlatformUserNo'] = $deal['user_id'];
    //项目的借款人平台用户编号
    if (true) {
        $targetUserType = 'MEMBER';
        //出款人用户类型
    } else {
        $targetUserType = 'MERCHANT';
        //出款人用户类型MEMBER 个人会员  商户
    }
    if ($deal['pay_radio'] == 0) {
        $deal['pay_radio'] = 0.1;
    }
    //成交服务费
    $fee = round($order['deal_price'] * $deal['pay_radio'], 2);
    $data['fee'] = $fee;
    //分红
    $share_fee = $order['share_fee'];
    $data['share_fee'] = $share_fee;
    $data['delivery_fee'] = $order['delivery_fee'];
    //实际可到账金额
    $targetAmount = $order['total_price'] - $fee - $share_fee;
    $data['targetAmount'] = $targetAmount;
    $details = "<details><detail><targetUserType>" . $targetUserType . "</targetUserType><targetPlatformUserNo>" . intval($deal['user_id']) . "</targetPlatformUserNo><amount>" . $targetAmount . "</amount><bizType>TENDER</bizType></detail>" . "<detail><targetUserType>MERCHANT</targetUserType><targetPlatformUserNo>{$platformNo}</targetPlatformUserNo><amount>{$fee}</amount><bizType>COMMISSION</bizType></detail></details>";
    if ($share_fee > 0) {
        $details .= "<detail><targetUserType>" . $data['userType'] . "</targetUserType><targetPlatformUserNo>" . $user_id . "</targetPlatformUserNo><amount>{$share_fee}</amount><bizType>COMMISSION</bizType></detail>";
    }
    $extend = '<extend>' . '<property name="tenderOrderNo" value="' . $data['tenderOrderNo'] . '" />' . '<property name="tenderName" value="' . $data['tenderName'] . '" />' . '<property name="tenderAmount" value="' . $data['tenderAmount'] . '" />' . '<property name="tenderDescription" value="' . $data['tenderDescription'] . '" />' . '<property name="borrowerPlatformUserNo" value="' . $deal["user_id"] . '" />' . '</extend>';
    $data['details'] = $details;
    //资金明细记录
    $data['extend'] = $extend;
    //业务扩展属性,根据业务类型的不同,需要传入不同的参数
    $data['create_time'] = NOW_TIME;
    $GLOBALS['db']->autoExecute(DB_PREFIX . "yeepay_cp_transaction", $data, 'INSERT');
    $id = $GLOBALS['db']->insert_id();
    $deal_order = array();
    $deal_order['requestNo'] = $requestNo;
    //1#转账成功
    $deal_order['fee'] = $fee;
    $deal_order['targetAmount'] = $targetAmount;
    $where = " id = " . $order_id;
    $GLOBALS['db']->autoExecute(DB_PREFIX . "deal_order", $deal_order, 'UPDATE', $where);
    $strxml = RegisterCreditorXml($data, $details, $extend, $pWebUrl, $pS2SUrl);
    $pSign = cfca($strxml);
    //		$html = '<html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8" /></head><body>
    //		<form name="form1" id="form1" method="post" action="'.$post_url.'/bha/toCpTransaction" target="_self">
    //		<input type="text" name="sign" value="'.$pSign.'" />
    //				<textarea name="req" cols="100" rows="5">'.$strxml.'</textarea>
    //						 <input type="submit" value="提交"></input>
    //		</form>
    //		</body></html>
    //		<script language="javascript">document.form1.submit();</script>';
    //echo $html; exit;
    if ($sys == 'pc') {
        $act = 'bha';
    } elseif ($sys == 'mobile') {
        $act = 'bhawireless';
    }
    $html = '<html>
<head>
	<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
</head>
	<body>
		<form name="form1" id="form1" method="post" action="' . $post_url . '/' . $act . '/toCpTransaction" target="_self">
			<input type="hidden" name="sign" value="' . $pSign . '" />
			<textarea name="req" cols="100" rows="5" style="display:none">' . $strxml . '</textarea>
		 	<input type="hidden" value="提交"></input>
		</form>
		<div style="width:100%;text-align:center;padding:50px 0;"><img src="' . APP_ROOT . '/app/Tpl/' . app_conf("TEMPLATE") . '/images/loading.gif" />页面正在跳转,请稍后...</div>
	</body>
</html>
<script language="javascript">document.form1.submit();</script>';
    $yeepay_log = array();
    $yeepay_log['strxml'] = $strxml;
    $yeepay_log['html'] = $html;
    $GLOBALS['db']->autoExecute(DB_PREFIX . "yeepay_log", $yeepay_log, 'UPDATE', 'id=' . $requestNo);
    return $html;
}
function SincerityGoldFreeze($user_id, $platformNo, $pTrdAmt, $deal_id, $from, $post_url, $sys = 'pc')
{
    //$pWebUrl= SITE_DOMAIN.APP_ROOT."/index.php?ctl=collocation&act=response&class_name=Yeepay&class_act=SincerityGoldFreeze&from=".$_REQUEST['from'];//web方式返回
    //$pS2SUrl= SITE_DOMAIN.APP_ROOT."/index.php?ctl=collocation&act=notify&class_name=Yeepay&class_act=SincerityGoldFreeze&from=".$_REQUEST['from'];//s2s方式返回
    $user = array();
    $user = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user where id = " . $user_id);
    $yeepay_log = array();
    $yeepay_log['code'] = 'FREEZE';
    $yeepay_log['create_date'] = to_date(NOW_TIME, 'Y-m-d H:i:s');
    $GLOBALS['db']->autoExecute(DB_PREFIX . "yeepay_log", $yeepay_log);
    $requestNo = $GLOBALS['db']->insert_id();
    $data = array();
    $data['requestNo'] = $requestNo;
    //请求流水号
    $data['platformUserNo'] = $user_id;
    //
    $data['platformNo'] = $platformNo;
    // 商户编号
    $data['amount'] = $pTrdAmt;
    //$data['feeMode'] = 'PLATFORM';//费率模式PLATFORM
    $data['deal_id'] = $deal_id;
    $data['expired'] = to_date(NOW_TIME + 3600 * 12 + 3600 * 24 * 30 * app_conf("MORTGAGE_MONEY_UNFREEZE"), "Y-m-d H:i:s");
    //到期自动解冻时间
    //	$strxml = SincerityGoldFreezeXml($data,$pWebUrl,$pS2SUrl);
    /* 请求参数 */
    $req = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>" . "<request platformNo='" . $data['platformNo'] . "'>" . "<requestNo>" . $data['requestNo'] . "</requestNo>" . "<platformUserNo>" . $data['platformUserNo'] . "</platformUserNo>" . "<amount>" . $data['amount'] . "</amount>" . "<expired>" . $data['expired'] . "</expired>" . "</request>";
    /* 签名数据 */
    $sign = cfca($req);
    /* 调用账户查询服务 */
    $service = "FREEZE";
    $ch = curl_init($post_url . "/bhaexter/bhaController");
    curl_setopt_array($ch, array(CURLOPT_POST => TRUE, CURLOPT_RETURNTRANSFER => TRUE, CURLOPT_SSL_VERIFYPEER => 0, CURLOPT_SSL_VERIFYHOST => 0, CURLOPT_POSTFIELDS => 'service=' . $service . '&req=' . rawurlencode($req) . "&sign=" . rawurlencode($sign)));
    $resultStr = curl_exec($ch);
    if (empty($resultStr)) {
        //$err_count ++ ;
    } else {
        require_once APP_ROOT_PATH . 'system/collocation/ips/xml.php';
        $str3ParaInfo = @XML_unserialize($resultStr);
        $str3Req = $str3ParaInfo['response'];
        $result['pErrCode'] = $str3Req["code"];
        $result['pErrMsg'] = $str3Req["description"];
        if ($str3Req["code"] == 1 && $str3Req["description"] == "操作成功") {
            //操作成功
            $data['code'] = $str3Req["code"];
            //1 成功 0 失败 2 xml参数格式错误 3 签名验证失败 101 引用了不存在的对象(例如错误的订单号) 102 业务状态不正确 103 由于业务限制导致业务不能执行 104 实名认证失败
            $data['is_callback'] = 1;
            $data['status'] = 1;
            $data['pay_type'] = 0;
            $data['create_time'] = NOW_TIME;
            if (isset($str3Req['description'])) {
                $data['description'] = $str3Req["description"];
            }
            $GLOBALS['db']->autoExecute(DB_PREFIX . "money_freeze", $data, 'INSERT');
            $id = $GLOBALS['db']->insert_id();
            if ($from == 'web') {
                showIpsInfo('诚意金支付成功', url("deal#show", array("id" => $deal_id)));
            } elseif ($from == 'wap') {
                showIpsInfo('诚意金支付成功', url_wap("deal#index", array("id" => $deal_id)));
            } elseif ($from == 'app') {
                echo "诚意金支付成功<br />请点左上角<b>返回</b>按钮";
            }
        } else {
            if ($from == 'web') {
                showIpsInfo($str3Req["description"], url("deal#show", array("id" => $deal_id)));
            } elseif ($from == 'wap') {
                showIpsInfo($str3Req["description"], url_wap("deal#index", array("id" => $deal_id)));
            } elseif ($from == 'app') {
                echo $str3Req["description"] . "<br />请点左上角<b>返回</b>按钮";
            }
        }
    }
}
Ejemplo n.º 9
0
/**
 * 转帐
 * @param int $pTransferType;//转账类型 1确认转账
 * @param int $deal_id  标的id	 
 * @param string $ref_data 逗号分割的, 1:投资,填还款日期(int)  ; 2代偿,3代偿还款列表; 4债权转让: id; 5结算担保收益:金额,如果为0,则取fanwe_deal.guarantor_pro_fit_amt ;
 * @param int $MerCode  商户ID
 * @param string $cert_md5 
 * @param string $post_url
 * @return string
 */
function DoLoans($pTransferType, $deal_id, $repay_start_time = 0, $platformNo, $post_url)
{
    $pWebUrl = SITE_DOMAIN . APP_ROOT . "/index.php?ctl=collocation&act=response&class_name=Yeepay&class_act=DoLoans&from=" . $_REQUEST['from'] . "&repay_start_time=" . $repay_start_time;
    //web方式返回
    $pS2SUrl = SITE_DOMAIN . APP_ROOT . "/index.php?ctl=collocation&act=notify&class_name=Yeepay&class_act=DoLoans&from=" . $_REQUEST['from'] . "&repay_start_time=" . $repay_start_time;
    //s2s方式返回
    $deal = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "deal where id = " . $deal_id);
    if ($deal['type'] == 3) {
        $t_arr = $GLOBALS['db']->getAll("select ycp.*,dorder.type as order_type,dorder.progress as order_progress,dorder.deal_id,dorder.user_id from " . DB_PREFIX . "yeepay_cp_transaction as ycp left join " . DB_PREFIX . "deal_order as dorder on dorder.requestNo=ycp.requestNo where ycp.code = 1 and ycp.tenderId = " . $deal_id . " and ycp.is_complete_transaction = 0 and (dorder.progress=3 or dorder.progress=5)");
    } else {
        $t_arr = $GLOBALS['db']->getAll("select ycp.*,dorder.type as order_type,dorder.deal_id,dorder.user_id from " . DB_PREFIX . "yeepay_cp_transaction as ycp left join " . DB_PREFIX . "deal_order as dorder on dorder.requestNo=ycp.requestNo where ycp.code = 1 and ycp.tenderId = " . $deal_id . " and ycp.is_complete_transaction = 0");
    }
    if (!$repay_start_time) {
        $repay_start_time = get_gmtime();
    }
    foreach ($t_arr as $key => $t_r) {
        $GLOBALS['db']->query("update " . DB_PREFIX . "yeepay_cp_transaction set repay_start_time = '" . $repay_start_time . "' where is_callback = 0 and requestNo = " . $t_r["requestNo"]);
        $data = array();
        $requestNo = $t_r["requestNo"];
        $data['requestNo'] = $requestNo;
        //请求流水号
        $data['platformNo'] = $platformNo;
        // 商户编号
        $data['mode'] = "CONFIRM";
        /* 请求参数 */
        $req = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>" . "<request platformNo=\"" . $platformNo . "\">" . "<requestNo>" . $requestNo . "</requestNo>" . "<mode>CONFIRM</mode>" . "<notifyUrl><![CDATA[" . $pS2SUrl . "]]></notifyUrl>" . "</request>";
        $yeepay_log = array();
        $yeepay_log['code'] = 'bhaController';
        $yeepay_log['create_date'] = to_date(NOW_TIME, 'Y-m-d H:i:s');
        $yeepay_log['strxml'] = $req;
        $GLOBALS['db']->autoExecute(DB_PREFIX . "yeepay_log", $yeepay_log);
        //$id = $GLOBALS['db']->insert_id();
        /* 签名数据 */
        $sign = cfca($req);
        /* 调用账户查询服务 */
        $service = "COMPLETE_TRANSACTION";
        $ch = curl_init($post_url . "/bhaexter/bhaController");
        curl_setopt_array($ch, array(CURLOPT_POST => TRUE, CURLOPT_RETURNTRANSFER => TRUE, CURLOPT_SSL_VERIFYPEER => 0, CURLOPT_SSL_VERIFYHOST => 0, CURLOPT_POSTFIELDS => 'service=' . $service . '&req=' . rawurlencode($req) . "&sign=" . rawurlencode($sign)));
        $resultStr = curl_exec($ch);
        $result = array();
        if (empty($ch)) {
        } else {
            $GLOBALS['db']->query("update " . DB_PREFIX . "yeepay_cp_transaction set is_callback = 1 where is_callback = 0 and requestNo = " . $requestNo);
            require_once APP_ROOT_PATH . 'system/collocation/ips/xml.php';
            $str3ParaInfo = @XML_unserialize($resultStr);
            //print_r($str3ParaInfo);exit;
            $str3Req = $str3ParaInfo['response'];
            $result['pErrCode'] = $str3Req["code"];
            $result['pErrMsg'] = $str3Req["description"];
            if ($str3Req["code"] == 1) {
                $sql = "update " . DB_PREFIX . "yeepay_cp_transaction set is_complete_transaction = 1 where is_callback = 1 and requestNo = " . $requestNo;
                $GLOBALS['db']->query($sql);
                $deal_load = array();
                $deal_load['is_complete_transaction'] = 1;
                //1#转账成功
                //$deal_load['progress']=$t_r['order_type'];
                if ($t_r['share_fee'] > 0) {
                    $deal_load['share_status'] = 1;
                }
                $where = " requestNo = " . $requestNo;
                $GLOBALS['db']->autoExecute(DB_PREFIX . "deal_order", $deal_load, 'UPDATE', $where);
                if ($GLOBALS['db']->affected_rows()) {
                    //deal_order_progress($t_r['deal_id'],$t_r['user_id'],5);
                }
                $log['deal_id'] = $deal_id;
                $log['money'] = $t_r['targetAmount'];
                $log['create_time'] = get_gmtime();
                $log['log_info'] = '';
                $log['comissions'] = $t_r['fee'];
                $log['share_fee'] = $t_r['share_fee'];
                $log['delivery_fee'] = $t_r['delivery_fee'];
                $log['requestNo'] = $t_r['requestNo'];
                $GLOBALS['db']->autoExecute(DB_PREFIX . "deal_pay_log", $log, 'INSERT');
            }
        }
    }
}