/** * 创建新帐户 * @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; }
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&'); } } }
/** * 标的登记 及 流标 * @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; }
/** * 投标 * @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>按钮"; } } } }
/** * 转帐 * @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'); } } } }