/** * 登记债权人 * @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($user_id, $deal_id, $pAuthAmt, $MerCode, $cert_md5, $post_url) { $pWebUrl = SITE_DOMAIN . APP_ROOT . "/index.php?ctl=collocation&act=response&class_name=Ips&class_act=RegisterCreditor"; //web方式返回 $pS2SUrl = SITE_DOMAIN . APP_ROOT . "/index.php?ctl=collocation&act=notify&class_name=Ips&class_act=RegisterCreditor"; //s2s方式返回 $user = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user where id = " . $user_id); $deal = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "deal where id = " . $deal_id); $data = array(); $data['user_id'] = $user_id; $data['deal_id'] = $deal_id; $data['pMerCode'] = $MerCode; // '“平台”账号 否 由IPS颁发的商户号 ', $data['pMerBillNo'] = $user_id . 'L' . $deal_id . 'No' . to_date(get_gmtime(), 'YmdHis'); //商户订单号 否 商户系统唯一不重复, $data['pMerDate'] = to_date(get_gmtime(), 'Ymd'); //'商户日期 否 格式:YYYYMMDD ', $data['pBidNo'] = $deal_id; // varchar(30) default NULL COMMENT '标的号 否 字母和数字,如a~z,A~Z,0~9', $data['pContractNo'] = $data['pMerBillNo']; //$user_id.'L'.$deal_id.'No'.to_date(get_gmtime(),'YmdH:i:s');//`` varchar(30) default NULL COMMENT '合同号 否 字母和数字,如a~z,A~Z,0~9', $data['pRegType'] = 1; //'登记方式 否 1:手劢投标 2:自劢投标', $data['pAuthNo'] = ''; // '授权号 是/否 字母和数字,如a~z,A~Z,0~9 登记方式为1时,为空 登记方式为2时,填写该投资人自劢投标签约时IPS向平 台接口返回的“pIpsAuthNo 授权号” (详见自劢投标签 约) ', $data['pAuthAmt'] = str_replace(',', '', number_format($pAuthAmt, 2)); // '债权面额 否 金额单位元,不能为负,不允许为0 ', $data['pTrdAmt'] = str_replace(',', '', number_format($pAuthAmt, 2)); //'交易金额 否 金额单位元,不能为负,不允许为0 债权面额等于交易金额 ', $data['pFee'] = 0; // '0.00' COMMENT '投资人手续费 否 金额单位元,不能为负,允许为0 ', $data['pAcctType'] = 1; // '账户类型 否 0#机构(暂未开放) ;1#个人 ', $data['pIdentNo'] = $user['idno']; // '证件号码 否 真实身份证(个人)/由IPS颁发的商户号', $data['pRealName'] = $user['real_name']; // '姓名 否 真实姓名(中文)', $data['pAccount'] = $user['ips_acct_no']; // '投资人账户 否 账户类型为1时,IPS托管账户号(个人) 账户类型为0时,由IPS颁发的商户号', $pUse = $GLOBALS['db']->getOne("select name from " . DB_PREFIX . "deal_loan_type where id = " . intval($deal['type_id'])); $data['pUse'] = $pUse; // '借款用途', $GLOBALS['db']->autoExecute(DB_PREFIX . "ips_register_creditor", $data, 'INSERT'); $id = $GLOBALS['db']->insert_id(); $strxml = RegisterCreditorXml($data, $pWebUrl, $pS2SUrl); //echo $strxml;exit; $Crypt3Des = new Crypt3Des(); //new 3des class $p3DesXmlPara = $Crypt3Des->DESEncrypt($strxml); //3des 加密 $str = $MerCode . $p3DesXmlPara . $cert_md5; //print_r($cert_md5); exit; $pSign = md5($str); $html = ' <form name="form1" id="form1" method="post" action="' . $post_url . 'registerCreditor.aspx" target="_self"> <input type="hidden" name="pMerCode" value="' . $MerCode . '" /> <input type="hidden" name="p3DesXmlPara" value="' . $p3DesXmlPara . '" /> <input type="hidden" name="pSign" value="' . $pSign . '" /> </form> <script language="javascript">document.form1.submit();</script>'; //echo $html; exit; return $html; }
/** * 投标 * @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; }
/** * 投标 * @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($cfg, $user_id, $deal_id, $pAuthAmt, $post_url) { $merchant_id = $cfg['merchant_id']; $terminal_id = $cfg['terminal_id']; $key = $cfg['key']; $iv = $cfg['iv']; //$pWebUrl= SITE_DOMAIN.APP_ROOT."/index.php?ctl=collocation&act=response&class_name=Baofoo&class_act=RegisterCreditor&from=".$_REQUEST['from'];//web方式返回 $pWebUrl = SITE_DOMAIN . APP_ROOT . "/index.php?ctl=deal&id=" . $deal_id; // $pS2SUrl = SITE_DOMAIN . APP_ROOT . "/index.php?ctl=collocation&act=notify&class_name=Baofoo&class_act=RegisterCreditor&from=" . $_REQUEST['from']; //s2s方式返回 $user = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user where id = " . $user_id); $deal = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "deal where id = " . $deal_id); $data = array(); $data['merchant_id'] = $merchant_id; //商户号 $data['terminal_id'] = $terminal_id; //终端号 $data['action_type'] = 1; //请求类型,投标为1,满标为2,流标为3,还标为4 $data['order_id'] = 0; $data['cus_id'] = $deal_id; $data['cus_name'] = $deal['sub_name']; //项目名称 $data['brw_id'] = intval($deal['user_id']); //借款人 $data['req_time'] = microtime_float(); // get_gmtime();//请求时间 例如 1405668253874 (当前时间转换毫秒) $data['fee'] = 0; //手续费(涉及到满标、还款接口) $data['load_user_id'] = $user_id; // 记录:投标人 $data['load_amount'] = $pAuthAmt; // 记录:投标金额 $GLOBALS['db']->autoExecute(DB_PREFIX . "baofoo_business", $data, 'INSERT'); $id = $GLOBALS['db']->insert_id(); $data_update = array(); $data_update['order_id'] = $id; $data['order_id'] = $id; $GLOBALS['db']->autoExecute(DB_PREFIX . "baofoo_business", $data_update, 'UPDATE', 'id=' . $id); //user_id:投资人; amount:投资金额 $actions = "<actions><action><user_id>" . $user_id . "</user_id><user_name></user_name><amount>" . $pAuthAmt . "</amount></action></actions>"; //print_r($data);exit; $strxml = RegisterCreditorXml($data, $actions); $pSign = md5($strxml . "~|~" . $key); //$aes=new MyAES(); //$requestParams=$aes->encrypt($strxml,$key,$iv); //加密 $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 . 'custody/businessPage.do" target="_self"> merchant_id:<input type="hidden" name="merchant_id" value="' . $merchant_id . '" /><br> terminal_id:<input type="hidden" name="terminal_id" value="' . $terminal_id . '" /><br> sign:<input type="hidden" name="sign" value="' . $pSign . '" /><br> requestParams:<textarea name="requestParams" cols="100" rows="5">' . $strxml . '</textarea> <br> page_url:<input type="hidden" name="page_url" value="' . $pWebUrl . '" /><br> service_url:<input type="hidden" name="service_url" value="' . $pS2SUrl . '" /><br> <input type="submit" value="提交"></input> </form> </body></html> '; //<script language="javascript">document.form1.submit();</script>'; //echo $html; exit; $baofoo_log = array(); $baofoo_log['code'] = 'business_1'; $baofoo_log['create_date'] = to_date(TIME_UTC, 'Y-m-d H:i:s'); $baofoo_log['strxml'] = $strxml; $baofoo_log['html'] = $html; $GLOBALS['db']->autoExecute(DB_PREFIX . "baofoo_log", $baofoo_log); return $html; }
/** * 投标 * @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($user_id, $deal_id, $pAuthAmt, $platformNo, $post_url) { $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方式返回 $user = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user where id = " . $user_id); $deal = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "deal where id = " . $deal_id); $yeepay_log = array(); $yeepay_log['code'] = 'toCpTransaction'; $yeepay_log['create_date'] = to_date(TIME_UTC, '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'] = $pAuthAmt; // 记录投标金额 //用户类型 0普通用户 1 企业用户;现在只支持 普通用户 if ($user['user_type'] == 0) { $data['userType'] = 'MEMBER'; //出款人用户类型 } else { $data['userType'] = 'MERCHANT'; //出款人用户类型MEMBER 个人会员 MERCHANT 商户 } //TENDER 投标 REPAYMENT 还款 CREDIT_ASSIGNMENT 债权转让 TRANSFER 转账 COMMISSION 分润,仅在资金转账明细中使用 $data['bizType'] = 'TENDER'; //根据业务的不同,需要传入不同的值,见【业务类型】。并参考下面的详细信息 //投标 扩展字段 $data['tenderOrderNo'] = $deal_id; //项目编号 $data['tenderName'] = $deal['sub_name']; //项目名称 $data['tenderAmount'] = $deal['borrow_amount']; //标的金额 $data['tenderDescription'] = $deal['name']; //项目描述信息 $data['borrowerPlatformUserNo'] = $deal['user_id']; //项目的借款人平台用户编号 $targetUserType = intval($GLOBALS['db']->getOne("select user_type from " . DB_PREFIX . "user where id = " . intval($deal['user_id']))); if ($targetUserType == 0) { $targetUserType = 'MEMBER'; //出款人用户类型 } else { $targetUserType = 'MERCHANT'; //出款人用户类型MEMBER 个人会员 商户 } //成交服务费 $fee = round($pAuthAmt * $deal['services_fee'] / 100, 2); $data["fee"] = $fee; //实际可到账金额 $targetAmount = $pAuthAmt - $fee; $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>"; $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'] = TIME_UTC; $GLOBALS['db']->autoExecute(DB_PREFIX . "yeepay_cp_transaction", $data, 'INSERT'); $id = $GLOBALS['db']->insert_id(); $strxml = RegisterCreditorXml($data, $details, $extend, $pWebUrl, $pS2SUrl); $pSign = "signdata"; $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; $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; }