Beispiel #1
0
/**
 * 解冻保证金
 * @param int $deal_id 标的号
 * @param int $pUnfreezenType 解冻类型 否 1#解冻借款方;2#解冻担保方
 * @param float $money 解冻金额;默认为0时,则解冻所有未解冻的金额
 * @param unknown_type $MerCode
 * @param unknown_type $cert_md5
 * @param unknown_type $post_url
 * @return string
 */
function GuaranteeUnfreeze($deal_id, $pUnfreezenType, $money, $MerCode, $cert_md5, $ws_url)
{
    $pWebUrl = SITE_DOMAIN . APP_ROOT . "/index.php?ctl=collocation&act=response&class_name=Ips&class_act=GuaranteeUnfreeze";
    //web方式返回
    $pS2SUrl = SITE_DOMAIN . APP_ROOT . "/index.php?ctl=collocation&act=notify&class_name=Ips&class_act=GuaranteeUnfreeze";
    //s2s方式返回
    $deal = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "deal where id = " . $deal_id);
    if ($pUnfreezenType == 1) {
        $user = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user where id = " . intval($deal['user_id']));
    } else {
        $user = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user where id = " . intval($deal['agency_id']));
    }
    $data = array();
    $data['deal_id'] = $deal_id;
    $data['pMerCode'] = $MerCode;
    // '“平台”账号 否 由IPS颁发的商户号 ',
    $data['pMerBillNo'] = $deal_id . 'U' . get_gmtime();
    //商户系统唯一丌重复 ',
    $data['pBidNo'] = $deal_id;
    //'标的号,商户系统唯一丌重复',
    $data['pUnfreezeDate'] = to_date(get_gmtime(), 'Ymd');
    //'解冻日期格 式:yyyymmdd',
    $data['pUnfreezenType'] = $pUnfreezenType;
    //'解冻类型 否 1#解冻借款方;2#解冻担保方',
    $money = floatval($money);
    if ($money == 0) {
        if ($pUnfreezenType == 1) {
            $money = $deal['real_freezen_amt'] - $deal['un_real_freezen_amt'];
            //'解冻金额 金额单位,丌能为负,丌允许为0 累计解冻金额  <= 当时冻结时的保证金',
        } else {
            $money = $deal['guarantor_real_freezen_amt'] - $deal['un_guarantor_real_freezen_amt'];
        }
    }
    $data['pUnfreezeAmt'] = str_replace(',', '', number_format($money, 2));
    $data['pAcctType'] = 1;
    //'解冻者账户类型 否 0#机构;1#个人',
    $data['pIdentNo'] = $user['idno'];
    //'解冻者证件号码 是/否 解冻者账户类型1时:真实身份证(个人),必填 解冻账户类型0时:为空处理 ',
    $data['pRealName'] = $user['real_name'];
    //'解冻者姓名 否 账户类型为1时,真实姓名(中文) 账户类型为0时,开户时在IPS登记的商户名称 '
    $data['pIpsAcctNo'] = $user['ips_acct_no'];
    //'解冻者IPS账号 否 账户类型为1时,IPS个人托管账户号 账户类型为0时,由IPS颁发的商户号',
    $GLOBALS['db']->autoExecute(DB_PREFIX . "ips_guarantee_unfreeze", $data, 'INSERT');
    $id = $GLOBALS['db']->insert_id();
    $strxml = GuaranteeUnfreezeXml($data, $pWebUrl, $pS2SUrl);
    //echo $strxml;exit;
    $Crypt3Des = new Crypt3Des();
    //new 3des class
    $p3DesXmlPara = $Crypt3Des->DESEncrypt($strxml);
    //3des 加密
    $str = $MerCode . $p3DesXmlPara . $cert_md5;
    $pSign = md5($str);
    try {
        $url = $ws_url;
        $client = new SoapClient($url);
        $param = array('argMerCode' => $MerCode, 'arg3DesXmlPara' => $p3DesXmlPara, 'argSign' => $pSign);
        $arrResult = $client->GuaranteeUnfreeze($param);
        $resultStr = $arrResult->GuaranteeUnfreezeResult;
        require_once APP_ROOT_PATH . 'system/collocation/ips/ips.php';
        require_once APP_ROOT_PATH . 'system/collocation/ips/xml.php';
        $result = @XML_unserialize($resultStr);
        $result = $result['pReq'];
        wsnotify($result, 'GuaranteeUnfreeze', $cert_md5);
        $result['resultStr'] = $resultStr;
        return $result;
    } catch (SOAPFault $e) {
        print $e;
        //file_put_contents(PATH_LOG_FILE,PATH.$e."\r\n",FILE_APPEND);
    }
}
Beispiel #2
0
/**
 * 转帐
 * @param int $pTransferType;//转账类型  否  转账类型  1:投资(报文提交关系,转出方:转入方=N:1),  2:代偿(报文提交关系,转出方:转入方=1:N),  3:代偿还款(报文提交关系,转出方:转入方=1:1),  4:债权转让(报文提交关系,转出方:转入方=1:1),  5:结算担保收益(报文提交关系,转出方:转入方=1: 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 Transfer($pTransferType, $deal_id, $ref_data, $MerCode, $cert_md5, $ws_url)
{
    $pWebUrl = SITE_DOMAIN . APP_ROOT . "/index.php?ctl=collocation&act=response&class_name=Ips&class_act=Transfer&from=" . $_REQUEST['from'];
    //web方式返回
    $pS2SUrl = SITE_DOMAIN . APP_ROOT . "/index.php?ctl=collocation&act=notify&class_name=Ips&class_act=Transfer&from=" . $_REQUEST['from'];
    //s2s方式返回
    //deal_status 0待等材料,1进行中,2满标,3流标,4还款中,5已还清
    require_once APP_ROOT_PATH . "app/Lib/deal_func.php";
    $deal = get_deal($deal_id);
    $user = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user where id = " . $deal['user_id']);
    if ($deal) {
        $result = array('id' => 0, 'msg' => '');
        //echo $pTransferType; exit;
        if ($pTransferType == 1) {
            //投资
            $result = Transfer_1($pTransferType, $deal, $ref_data, $user, $MerCode);
        } else {
            if ($pTransferType == 4) {
                //债权转让
                $result = Transfer_4($pTransferType, $deal, $ref_data, $MerCode);
            } else {
                if ($pTransferType == 5) {
                    //担保收益
                    $result = Transfer_5($pTransferType, $deal, $ref_data, $MerCode);
                }
            }
        }
        $id = intval($result['id']);
        if ($id > 0) {
            $result['data']['pMemo1'] = $id;
            $subject = array();
            $subject['pMemo1'] = $id;
            $GLOBALS['db']->autoExecute(DB_PREFIX . "ips_transfer", $subject, 'UPDATE', "id =" . $id);
            $pDetails = '';
            foreach ($result['details'] as $k => $v) {
                $pDetails .= TransferRowXml($v);
            }
            $strxml = TransferXml($result['data'], $pDetails, $pS2SUrl);
            //echo $strxml;exit;
            $Crypt3Des = new Crypt3Des();
            //new 3des class
            $p3DesXmlPara = $Crypt3Des->DESEncrypt($strxml);
            //3des 加密
            $str = $MerCode . $p3DesXmlPara . $cert_md5;
            $pSign = md5($str);
            $ips_log = array();
            $ips_log['code'] = 'Transfer_' . $pTransferType;
            $ips_log['create_date'] = to_date(TIME_UTC, 'Y-m-d H:i:s');
            $ips_log['strxml'] = $strxml;
            $ips_log['html'] = 'p3DesXmlPara:' . $p3DesXmlPara . ';pSign:' . $pSign;
            $GLOBALS['db']->autoExecute(DB_PREFIX . "ips_log", $ips_log);
            try {
                $url = $ws_url;
                $client = new SoapClient($url);
                $param = array('pMerCode' => $MerCode, 'p3DesXmlPara' => $p3DesXmlPara, 'pSign' => $pSign);
                $arrResult = $client->Transfer($param);
                $resultStr = $arrResult->TransferResult;
                require_once APP_ROOT_PATH . 'system/collocation/ips/xml.php';
                $result = @XML_unserialize($resultStr);
                $result = $result['pReq'];
                require_once APP_ROOT_PATH . 'system/collocation/ips/ips.php';
                wsnotify($result, 'Transfer', $cert_md5);
                $result['resultStr'] = $resultStr;
                $result['strxml'] = $strxml;
                return $result;
            } catch (SOAPFault $e) {
                return print_r($e, 1);
                //file_put_contents(PATH_LOG_FILE,PATH.$e."\r\n",FILE_APPEND);
            }
        } else {
            return $result['msg'];
        }
    } else {
        return '借款不存在';
    }
}