예제 #1
0
function wsnotify($resultStr, $class_act, $cert_md5)
{
    $pMerCode = $resultStr["pMerCode"];
    $pErrCode = $resultStr["pErrCode"];
    $pErrMsg = $resultStr["pErrMsg"];
    $p3DesXmlPara = $resultStr["p3DesXmlPara"];
    $pSign = $resultStr["pSign"];
    $signPlainText = $pMerCode . $pErrCode . $pErrMsg . $p3DesXmlPara . $cert_md5;
    $localSign = md5($signPlainText);
    if ($localSign == $pSign) {
        //file_put_contents(PATH_LOG_FILE,PATH."--".date('YmdHis')."	验签通过"."\r\n",FILE_APPEND);
        $Crypt3Des = new Crypt3Des();
        //new 3des class
        $str3XmlParaInfo = $Crypt3Des->DESDecrypt($p3DesXmlPara);
        //3des解密
        if (empty($str3XmlParaInfo)) {
            //file_put_contents(PATH_LOG_FILE,PATH."--".date('YmdHis')."	3DES解密失败"."\r\n",FILE_APPEND);
            return;
        } else {
            require_once APP_ROOT_PATH . 'system/collocation/ips/xml.php';
            $str3ParaInfo = @XML_unserialize($str3XmlParaInfo);
            $str3Req = $str3ParaInfo['pReq'];
            if ($class_act == 'GuaranteeUnfreeze') {
                require_once APP_ROOT_PATH . 'system/collocation/ips/GuaranteeUnfreeze.php';
                GuaranteeUnfreezeCallBack($pMerCode, $pErrCode, $pErrMsg, $str3Req);
                showSuccess($pErrMsg, 0, SITE_DOMAIN . APP_ROOT);
            }
            if ($class_act == 'Transfer') {
                require_once APP_ROOT_PATH . 'system/collocation/ips/Transfer.php';
                TransferCallBack($pMerCode, $pErrCode, $pErrMsg, $str3Req);
                showSuccess($pErrMsg, 0, SITE_DOMAIN . APP_ROOT);
            }
        }
    }
}
/**
 * 创建新帐户
 * @param int $user_id
 * @param int $user_type 0:普通用户xd_user.id;1:担保用户xd_deal_agency.id
 * @param unknown_type $MerCode
 * @param unknown_type $cert_md5
 * @param unknown_type $post_url
 * @return string
 */
function CreateNewAcct($user_id, $user_type, $MerCode, $cert_md5, $post_url)
{
    $pWebUrl = SITE_DOMAIN . APP_ROOT . "/index.php?ctl=collocation&act=response&class_name=Ips&class_act=CreateNewAcct&from=" . $_REQUEST['from'];
    //web方式返回
    $pS2SUrl = SITE_DOMAIN . APP_ROOT . "/index.php?ctl=collocation&act=notify&class_name=Ips&class_act=CreateNewAcct&from=" . $_REQUEST['from'];
    //s2s方式返回
    $user = array();
    if ($user_type == 0) {
        $user = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user where id = " . $user_id);
    } else {
        $user = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "deal_agency where id = " . $user_id);
    }
    $data = array();
    $data['user_type'] = $user_type;
    $data['user_id'] = $user_id;
    $data['argMerCode'] = $MerCode;
    // '“平台”账号 否 由IPS颁发的商户号 ',
    $data['pMerBillNo'] = $user_id . 'U' . get_gmtime();
    //$user_id;//'pMerBillNo商户开户流水号 否 商户系统唯一丌重复 针对用户在开户中途中断(开户未完成,但关闭了IPS开 户界面)时,必须重新以相同的商户订单号发起再次开户 ',
    $data['pIdentType'] = 1;
    //'证件类型 否 1#身份证,默认:1',
    $data['pIdentNo'] = $user['idno'];
    //'证件号码 否 真实身份证 ',
    $data['pRealName'] = $user['real_name'];
    //'姓名 否 真实姓名(中文) '
    $data['pMobileNo'] = $user['mobile'];
    //'手机号 否 用户发送短信 '
    $data['pEmail'] = $user['email'];
    //'注册邮箱 否 用于登录账号,IPS系统内唯一丌能重复',
    $data['pSmDate'] = to_date(get_gmtime(), 'Ymd');
    //'提交日期 否 时间格式“yyyyMMdd”,商户提交日期,。如:20140323 ',
    $GLOBALS['db']->autoExecute(DB_PREFIX . "ips_create_new_acct", $data, 'INSERT');
    $id = $GLOBALS['db']->insert_id();
    $strxml = CreateNewAcctXml($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 . 'CreateNewIpsAcct.aspx" target="_self">
		<input type="hidden" name="argMerCode" value="' . $MerCode . '" />
		<input type="hidden" name="arg3DesXmlPara" value="' . $p3DesXmlPara . '" />
		<input type="hidden" name="argSign" value="' . $pSign . '" />
		</form>
		<script language="javascript">document.form1.submit();</script>';
    //echo $html; exit;
    return $html;
}
예제 #3
0
 public function _store_handler($res)
 {
     foreach ($res as &$store) {
         $crypt3des = new Crypt3Des();
         $store['verify_code'] = $crypt3des->decrypt($store['verify_code']);
         $store['store_id'] = $store['id'];
         unset($store['id']);
         $store['store_name'] = $store['name'];
         unset($store['name']);
         $store['store_photo'] = json_decode($store['store_photo']);
         $store = array_merge($store, $this->get_mall_floor_where(array('id' => $store['mall_floor_id']))[0]);
         //商铺经营的品类
         global $CATEGORY;
         $category_id = json_decode($store['cate_id_str']);
         unset($store['cate_id_str']);
         foreach ($category_id as $value) {
             $store['store_category'][$value] = $CATEGORY[$value];
         }
         //商铺所属的品牌
         $brand_id = $store['brand_id'];
         $brand = $this->ci_get(T_BRAND, array('id' => $brand_id))[0];
         //商铺的品牌名字
         $store['brand_name'] = $brand['name'];
         $store['brand_logo'] = json_decode($brand['logo'])[0];
         $brand_style_id = json_decode($brand['style_id']);
         //商铺的品牌的 风格
         $brand_style = [];
         global $STYLE;
         if ($brand_style_id) {
             foreach ($brand_style_id as $value) {
                 $brand_style[$value] = $STYLE[$value];
             }
         }
         $store['brand_style'] = $brand_style;
         ksort($store);
     }
     return $res;
 }
예제 #4
0
파일: user.php 프로젝트: sanshilei/password
function Register($data)
{
    $data['password'] = md5($data['password']);
    $data['create_at'] = now();
    $data['update_at'] = now();
    $data['create_ip'] = ip();
    $userid = db_new("user", $data);
    if ($userid) {
        $userinfo = GetInfo($userid);
        $token = Crypt3Des::encrypt(json_encode($userinfo), $GLOBALS['keys']);
        return ErrorCode::CODE("1002", array("token" => urlencode($token)));
    } else {
        return ErrorCode::CODE("1003");
    }
}
예제 #5
0
 function notify($request, $class_act)
 {
     $pMerCode = $request["pMerCode"];
     $pErrCode = $request["pErrCode"];
     $pErrMsg = $request["pErrMsg"];
     $p3DesXmlPara = $request["p3DesXmlPara"];
     $pSign = $request["pSign"];
     $signPlainText = $pMerCode . $pErrCode . $pErrMsg . $p3DesXmlPara . $this->cert_md5;
     $localSign = md5($signPlainText);
     if ($localSign == $pSign) {
         //echo "<br/>验签通过";
         $Crypt3Des = new Crypt3Des();
         //new 3des class
         $str3XmlParaInfo = $Crypt3Des->DESDecrypt($p3DesXmlPara);
         //3des解密
         require_once APP_ROOT_PATH . 'system/collocation/ips/xml.php';
         $str3ParaInfo = @XML_unserialize($str3XmlParaInfo);
         $str3Req = $str3ParaInfo['pReq'];
         //
         if ($class_act == 'CreateNewAcct') {
             require_once APP_ROOT_PATH . 'system/collocation/ips/CreateNewAcct.php';
             CreateNewAcctCallBack($pMerCode, $pErrCode, $pErrMsg, $str3Req);
         } else {
             if ($class_act == 'RegisterSubject') {
                 require_once APP_ROOT_PATH . 'system/collocation/ips/RegisterSubject.php';
                 RegisterSubjectCallBack($pMerCode, $pErrCode, $pErrMsg, $str3Req);
                 //showSuccess($pErrMsg,0,SITE_DOMAIN.APP_ROOT);
             } else {
                 if ($class_act == 'RegisterCreditor') {
                     require_once APP_ROOT_PATH . 'system/collocation/ips/RegisterCreditor.php';
                     RegisterCreditorCallBack($pMerCode, $pErrCode, $pErrMsg, $str3Req);
                     //showSuccess($pErrMsg,0,SITE_DOMAIN.APP_ROOT);
                 } else {
                     if ($class_act == 'RegisterCretansfer') {
                         require_once APP_ROOT_PATH . 'system/collocation/ips/RegisterCretansfer.php';
                         RegisterCretansferCallBack($pMerCode, $pErrCode, $pErrMsg, $str3Req);
                         //showSuccess($pErrMsg,0,SITE_DOMAIN.APP_ROOT);
                     } else {
                         if ($class_act == 'GuaranteeUnfreeze') {
                             require_once APP_ROOT_PATH . 'system/collocation/ips/GuaranteeUnfreeze.php';
                             GuaranteeUnfreezeCallBack($pMerCode, $pErrCode, $pErrMsg, $str3Req);
                             //showSuccess($pErrMsg,0,SITE_DOMAIN.APP_ROOT);
                         } else {
                             if ($class_act == 'RepaymentNewTrade') {
                                 require_once APP_ROOT_PATH . 'system/collocation/ips/RepaymentNewTrade.php';
                                 RepaymentNewTradeCallBack($pMerCode, $pErrCode, $pErrMsg, $str3Req);
                                 //showSuccess($pErrMsg,0,SITE_DOMAIN.APP_ROOT);
                             } else {
                                 if ($class_act == 'Transfer') {
                                     require_once APP_ROOT_PATH . 'system/collocation/ips/Transfer.php';
                                     TransferCallBack($pMerCode, $pErrCode, $pErrMsg, $str3Req);
                                     //showSuccess($pErrMsg,0,SITE_DOMAIN.APP_ROOT);
                                 }
                             }
                         }
                     }
                 }
             }
         }
     } else {
         echo "<br/>验签不通过:{$localSign}<br/>";
         $Crypt3Des = new Crypt3Des();
         //new 3des class
         $str3XmlParaInfo = $Crypt3Des->DESDecrypt($p3DesXmlPara);
         //3des解密
         print_r($str3XmlParaInfo);
         require_once APP_ROOT_PATH . 'system/collocation/ips/xml.php';
         $str3ParaInfo = @XML_unserialize($str3XmlParaInfo);
         print_r($str3ParaInfo);
         exit;
     }
 }
예제 #6
0
/**
 * 用户提现
 * @param int $user_id
 * @param int $user_type 0:普通用户fanwe_user.id;1:担保用户fanwe_deal_agency.id
 * @param float $pTrdAmt 提现金额
 * @param unknown_type $MerCode
 * @param unknown_type $cert_md5
 * @param unknown_type $post_url
 * @return string
 */
function DoDwTrade($user_id, $user_type, $pTrdAmt, $MerCode, $cert_md5, $post_url)
{
    $pWebUrl = SITE_DOMAIN . APP_ROOT . "/index.php?ctl=collocation&act=response&class_name=Ips&class_act=DoDwTrade&from=" . $_REQUEST['from'];
    //web方式返回
    $pS2SUrl = SITE_DOMAIN . APP_ROOT . "/index.php?ctl=collocation&act=notify&class_name=Ips&class_act=DoDwTrade&from=" . $_REQUEST['from'];
    //s2s方式返回
    $user = array();
    if ($user_type == 0) {
        $user = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user where id = " . $user_id);
    } else {
        $user = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user where id = " . $user_id);
    }
    $data = array();
    $data['user_type'] = $user_type;
    $data['user_id'] = $user_id;
    $data['pMerCode'] = $MerCode;
    // '“平台”账号 否 由IPS颁发的商户号 ',
    $data['pMerBillNo'] = $user_id . 'DW' . TIME_UTC;
    // '商户提现订单号商户系统唯一不重复',
    $data['pAcctType'] = 1;
    // '账户类型 否 0#机构(暂未开放) ;1#个人',
    $data['pOutType'] = 1;
    // '提现模式 否 1#普通提现;2#定向提现<暂不开放> ',
    $data['pBidNo'] = '';
    // '标号 是/否 提现模式为2时,此字段生效 内容是投标时的标号',
    $data['pContractNo'] = '';
    // '合同号 是/否 提现模式为2时,此字段生效 内容是投标时的合同号',
    $data['pDwTo'] = '';
    // '提现去向 是/否 提现模式为2时,此字段生效 上送IPS托管账户号(个人/商户号)',
    $data['pIdentNo'] = $user['idno'];
    // '证件号码 否 真实身份证(个人)/由IPS颁发的商户号(商户)',
    $data['pRealName'] = $user['real_name'];
    // '姓名 否 真实姓名(中文) ',
    $data['pIpsAcctNo'] = $user['ips_acct_no'];
    // 'IPS账户号 否 账户类型为1时,IPS个人托管账户号 账户类型为0时,由IPS颁发的商户号',
    $data['pDwDate'] = to_date(TIME_UTC, 'Ymd');
    // '提现日期 否 格式:YYYYMMDD ',
    $data['pTrdAmt'] = str_replace(',', '', number_format($pTrdAmt, 2));
    //'提现金额 否 金额单位,不能为负,不允许为0 ',
    $fee = 0;
    //获取手续费配置表
    $fee_config = load_auto_cache("user_carry_config");
    //如果手续费大于最大的配置那么取这个手续费
    if ($data['pTrdAmt'] >= $fee_config[count($fee_config) - 1]['max_price']) {
        $fee = $fee_config[count($fee_config) - 1]['fee'];
    } else {
        foreach ($fee_config as $k => $v) {
            if ($data['pTrdAmt'] >= $v['min_price'] && $data['pTrdAmt'] <= $v['max_price']) {
                $fee = floatval($v['fee']);
            }
        }
    }
    $data['pMerFee'] = str_replace(',', '', number_format($fee, 2));
    // '平台手续费 否 金额单位,不能为负,允许为0 这里是平台向用户收取的费用 ',
    $data['pIpsFeeType'] = 2;
    // 'IPS手续费收取方  这里是IPS收取的费用 1:平台支付 2:提现方支付',
    $GLOBALS['db']->autoExecute(DB_PREFIX . "ips_do_dw_trade", $data, 'INSERT');
    $id = $GLOBALS['db']->insert_id();
    $strxml = DoDwTradeXml($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 . 'doDwTrade.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;
    $ips_log = array();
    $ips_log['code'] = 'DoDwTrade';
    $ips_log['create_date'] = to_date(TIME_UTC, 'Y-m-d H:i:s');
    $ips_log['strxml'] = $strxml;
    $ips_log['html'] = $html;
    $GLOBALS['db']->autoExecute(DB_PREFIX . "ips_log", $ips_log);
    return $html;
}
/**
 * 登记担保方
 * @param int $deal_id
 * @param unknown_type $MerCode
 * @param unknown_type $cert_md5
 * @param unknown_type $post_url
 * @return string
 */
function RegisterGuarantor($deal_id, $MerCode, $cert_md5, $post_url)
{
    $pWebUrl = SITE_DOMAIN . APP_ROOT . "/index.php?ctl=collocation&act=response&class_name=Ips&class_act=RegisterGuarantor";
    //web方式返回
    $pS2SUrl = SITE_DOMAIN . APP_ROOT . "/index.php?ctl=collocation&act=notify&class_name=Ips&class_act=RegisterGuarantor";
    //s2s方式返回
    $deal = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "deal where id = " . $deal_id);
    $agency_id = intval($deal['agency_id']);
    $agency = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "deal_agency where id = " . $agency_id);
    $data = array();
    $data['deal_id'] = $deal_id;
    $data['agency_id'] = $agency_id;
    $data['pMerCode'] = $MerCode;
    // '“平台”账号 否 由IPS颁发的商户号 ',
    $data['pMerBillNo'] = $deal_id . 'G' . get_gmtime();
    //$user_id;//'pMerBillNo商户开户流水号 否 商户系统唯一丌重复 针对用户在开户中途中断(开户未完成,但关闭了IPS开 户界面)时,必须重新以相同的商户订单号发起再次开户 ',
    $data['pMerDate'] = to_date(get_gmtime(), 'Ymd');
    //商户日期 否 格式:yyyyMMdd,
    $data['pBidNo'] = $deal_id;
    //'标的号 否 字母和数字,如a~z,A~Z,0~9',
    $pAcctType = intval($agency['acct_type']);
    $data['pAcctType'] = $pAcctType;
    //担保方类型 否 0#机构;1#个人,
    if ($pAcctType == 0) {
        $data['pFromIdentNo'] = $agency['ips_mer_code'];
        //担保方证件号码 否 针对担保方类型为1时:真实身份证(个人) 针对担保方类型为0时:由IPS颁发的商户号
        $data['pAccountName'] = $agency['real_name'];
        //担保方账户姓名 否 针对担保方类型为1时:担保方账户真实姓名 针对担保方类型为0时:在IPS开户时登记的商户名称
        $data['pAccount'] = $agency['ips_mer_code'];
        //担保方账户 否 担保方类型为1时,IPS托管账户号(个人) 担保方类型为0时,由IPS颁发的商户号
    } else {
        $data['pFromIdentNo'] = $agency['idno'];
        //担保方证件号码 否 针对担保方类型为1时:真实身份证(个人) 针对担保方类型为0时:由IPS颁发的商户号
        $data['pAccountName'] = $agency['real_name'];
        //担保方账户姓名 否 针对担保方类型为1时:担保方账户真实姓名 针对担保方类型为0时:在IPS开户时登记的商户名称
        $data['pAccount'] = $agency['ips_acct_no'];
        //担保方账户 否 担保方类型为1时,IPS托管账户号(个人) 担保方类型为0时,由IPS颁发的商户号
    }
    //`pAmount` decimal(11,2) default '0.00' COMMENT '担保金额 否 金额单位元,不能为负,不允许为0 担保人针对该合同标的承诺的最高赔付金额 ',
    //`pProFitAmt` decimal(11,2) default NULL COMMENT '担保收益 否 金额单位元,不能为负,允许为0 ',
    $data['pAmount'] = str_replace(',', '', number_format($deal['guarantor_amt'], 2));
    //'担保金额 否 金额单位元,不能为负,不允许为0 担保人针对该合同标的承诺的最高赔付金额 '
    $data['pMarginAmt'] = str_replace(',', '', number_format($deal['guarantor_margin_amt'], 2));
    //'担保保证金 否 金额单位元,不能为负,允许为0 担保人针对该合同标的被冻结的金额',
    $data['pProFitAmt'] = str_replace(',', '', number_format($deal['guarantor_pro_fit_amt'], 2));
    //'担保收益 否 金额单位元,不能为负,允许为0 ',
    $GLOBALS['db']->autoExecute(DB_PREFIX . "ips_register_guarantor", $data, 'INSERT');
    $id = $GLOBALS['db']->insert_id();
    $strxml = RegisterGuarantorXml($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 . 'registerGuarantor.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;
    $ips_log = array();
    $ips_log['code'] = 'RegisterGuarantor';
    $ips_log['create_date'] = to_date(TIME_UTC, 'Y-m-d H:i:s');
    $ips_log['strxml'] = $strxml;
    $ips_log['html'] = $html;
    $GLOBALS['db']->autoExecute(DB_PREFIX . "ips_log", $ips_log);
    return $html;
}
예제 #8
0
 public function register()
 {
     $must = array('verify_code', 'account', 'pwd', 're_pwd');
     $this->check_param($must);
     $this->check_sign();
     extract($this->params);
     do {
         // 判断验证码是否正确
         $this->Table_model->init(T_STORE);
         $crypt3des = new Crypt3Des();
         $store_id = $this->Table_model->record_one(array('verify_code' => $crypt3des->encrypt($verify_code)), array('id'))['id'];
         if ($store_id) {
             $this->Table_model->init(T_STORE_ACCOUNT);
             $account = array('name' => $account, 'pwd' => pass_encrypt($pwd), 'store_id' => $store_id);
             $res = $this->Table_model->records_add($account);
             if ($res['err_num'] == 0) {
                 unset($account['pwd']);
                 $this->st($account, '该商铺添加账号成功');
                 break;
             }
         }
         $this->st(array(), '该商铺添加账号失败', API_NORMAL_ERR);
     } while (0);
     $this->op();
 }
예제 #9
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($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;
}
예제 #10
0
/**
 * 标的登记 及 流标
 * @param int $deal_id
 * @param int $pOperationType 标的操作类型,1:新增,2:结束 “新增”代表新增标的,“结束”代表标的正常还清、丌 需要再还款戒者标的流标等情况。标的“结束”后,投资 人投标冻结金额、担保方保证金、借款人保证金均自劢解 冻
 * @param int $status; 0:新增; 1:标的正常结束; 2:流标结束
 * @param string $status_msg 主要是status_msg=2时记录的,流标原因
 * @param unknown_type $MerCode
 * @param unknown_type $cert_md5
 * @param unknown_type $post_url
 * @return string
 */
function RegisterSubject($deal_id, $pOperationType, $status, $status_msg, $MerCode, $cert_md5, $post_url)
{
    if ($pOperationType == 0) {
        $pOperationType = 1;
    }
    $pWebUrl = SITE_DOMAIN . APP_ROOT . "/index.php?ctl=collocation&act=response&class_name=Ips&class_act=RegisterSubject";
    //web方式返回
    $pS2SUrl = SITE_DOMAIN . APP_ROOT . "/index.php?ctl=collocation&act=notify&class_name=Ips&class_act=RegisterSubject";
    //s2s方式返回
    $deal = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "deal where id = " . $deal_id);
    $user = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user where id = " . intval($deal['user_id']));
    if ($pOperationType == 1) {
        $data = array();
        $data['deal_id'] = $deal_id;
        $data['status'] = $status;
        //$status; 0:新增; 1:标的正常结束; 2:流标结束
        $data['status_msg'] = $status_msg;
        //主要是status_msg=2时记录的,流标原因
        $data['pMerCode'] = $MerCode;
        // '“平台”账号 否 由IPS颁发的商户号 ',
        if ($pOperationType == 1) {
            $data['pMerBillNo'] = $deal_id . 'D' . get_gmtime();
            //'商户订单号 否 商户系统唯一不重复',
            $data['pRegDate'] = to_date($deal['start_time'], 'Ymd');
            //'商户日期 否 格式:YYYYMMDD ',
        } else {
            if ($pOperationType == 2) {
                $data['pMerBillNo'] = $deal['mer_bill_no'];
                //'标的登记时提交的订单单号'
                $data['pRegDate'] = to_date($deal['start_time'], 'Ymd');
                //'商户日期 否 格式:YYYYMMDD ',
            }
        }
        $data['pBidNo'] = $deal_id;
        //'标的号,商户系统唯一不重复 ',
        $data['pLendAmt'] = str_replace(',', '', number_format($deal['borrow_amount'], 2));
        // '借款金额 否 金额单位,丌能为负,丌允许为0; 借款金额  <= 10000.00万 关于N(9,2)见4.1补充说明 ',
        $data['pGuaranteesAmt'] = str_replace(',', '', number_format($deal['guarantees_amt'], 2));
        // '借款保证金,允许冻结的金额,金额单位,丌能为负,允 许为0; 借款保证金  <= 10000.00万 ',
        $data['pTrdLendRate'] = str_replace(',', '', number_format($deal['rate'] + 10, 2));
        //'借款利率 否 金额单位,丌能为负,允许为0; 借款利率  < 48%,例如:45.12%传入 45.12 ',
        $data['pTrdCycleType'] = 3;
        // '借款周期类型 否 借款周期类型,1:天;3:月; 借款周期 <= 5年',
        // '借款周期值 否 借款周期值 借款周期 <= 5年。 如果借款周期类型为天,则借款周期值<= 1800(360 * 5);如果借款周期类型为月,则借款周期值<= 60(12 * 5) ',
        if ($deal['repay_time_type'] == 0) {
            $data['pTrdCycleValue'] = 1;
        } else {
            $data['pTrdCycleValue'] = $deal['repay_time'];
        }
        $pLendPurpose = $GLOBALS['db']->getOne("select name from " . DB_PREFIX . "deal_loan_type where id = " . intval($deal['type_id']));
        $data['pLendPurpose'] = $pLendPurpose;
        // '借款用途',
        // '还款方式,1:等额本息,2:按月还息到期还本;3:等 额本金;99:其他; ',
        if ($deal['loantype'] == 0) {
            $data['pRepayMode'] = 1;
            //等额本息
        } else {
            if ($deal['loantype'] == 1) {
                $data['pRepayMode'] = 2;
                //付息还本
            } else {
                if ($deal['loantype'] == 2) {
                    $data['pRepayMode'] = 99;
                    //到期本息
                } else {
                    $data['pRepayMode'] = 99;
                }
            }
        }
        $data['pOperationType'] = $pOperationType;
        // '标的操作类型,1:新增,2:结束 “新增”代表新增标的,“结束”代表标的正常还清、丌 需要再还款戒者标的流标等情况。标的“结束”后,投资 人投标冻结金额、担保方保证金、借款人保证金均自劢解 冻。 ',
        $data['pLendFee'] = str_replace(',', '', number_format(floatval($deal['services_fee']) / 100 * $deal['borrow_amount'], 2));
        // '借款人手续费 否 金额单位,丌能为负,允许为0 这里是平台向借款人收取的费用 ',
        $data['pAcctType'] = 1;
        // '账户类型 否 0#机构(暂未开放) ;1#个人 ',
        $data['pIdentNo'] = $user['idno'];
        // '证件号码 否 真实身份证(个人)/由IPS颁发的商户号 ',
        $data['pRealName'] = $user['real_name'];
        // '姓名 否 真实姓名(中文)',
        $data['pIpsAcctNo'] = $user['ips_acct_no'];
        // 'IPS账户号 否 账户类型为1时,IPS托管账户号(个人) 账户类型为0时,由IPS颁发的商户号 ',
        //print_r($data);exit;
        $GLOBALS['db']->autoExecute(DB_PREFIX . "ips_register_subject", $data, 'INSERT');
        $id = $GLOBALS['db']->insert_id();
    } else {
        $where = " pMerBillNo = '" . $deal['mer_bill_no'] . "'";
        $ipsdata = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "ips_register_subject where " . $where);
        $id = intval($ipsdata['id']);
        $data = array();
        $data['deal_id'] = $deal_id;
        $data['status'] = $status;
        //$status; 0:新增; 1:标的正常结束; 2:流标结束
        $data['status_msg'] = $status_msg;
        //主要是status_msg=2时记录的,流标原因
        $data['pMerCode'] = $MerCode;
        // '“平台”账号 否 由IPS颁发的商户号 ',
        $data['pMerBillNo'] = $ipsdata['pMerBillNo'];
        //'标的登记时提交的订单单号'
        $data['pBidNo'] = $deal_id;
        //'标的号,商户系统唯一不重复 ',
        $data['pRegDate'] = to_date(to_timespan($ipsdata['pRegDate'], 'Y-m-d'), 'Ymd');
        //'商户日期 否 格式:YYYYMMDD ',
        $data['pLendAmt'] = str_replace(',', '', number_format($ipsdata['pLendAmt'], 2));
        // '借款金额 否 金额单位,丌能为负,丌允许为0; 借款金额  <= 10000.00万 关于N(9,2)见4.1补充说明 ',
        $data['pGuaranteesAmt'] = str_replace(',', '', number_format($ipsdata['pGuaranteesAmt'], 2));
        // '借款保证金,允许冻结的金额,金额单位,丌能为负,允 许为0; 借款保证金  <= 10000.00万 ',
        $data['pTrdLendRate'] = str_replace(',', '', number_format($ipsdata['pTrdLendRate'], 2));
        //'借款利率 否 金额单位,丌能为负,允许为0; 借款利率  < 48%,例如:45.12%传入 45.12 ',
        $data['pTrdCycleType'] = $ipsdata['pTrdCycleType'];
        $data['pTrdCycleValue'] = $ipsdata['pTrdCycleValue'];
        // '借款周期值 否 借款周期值 借款周期 <= 5年。 如果借款周期类型为天,则借款周期值<= 1800(360 * 5);如果借款周期类型为月,则借款周期值<= 60(12 * 5) ',
        $data['pLendPurpose'] = $ipsdata['pLendPurpose'];
        // '借款用途',
        $data['pRepayMode'] = $ipsdata['pRepayMode'];
        $data['pOperationType'] = $pOperationType;
        // '标的操作类型,1:新增,2:结束 “新增”代表新增标的,“结束”代表标的正常还清、丌 需要再还款戒者标的流标等情况。标的“结束”后,投资 人投标冻结金额、担保方保证金、借款人保证金均自劢解 冻。 ',
        $data['pLendFee'] = $ipsdata['pLendFee'];
        // '借款人手续费 否 金额单位,丌能为负,允许为0 这里是平台向借款人收取的费用 ',
        $data['pAcctType'] = $ipsdata['pAcctType'];
        // '账户类型 否 0#机构(暂未开放) ;1#个人 ',
        $data['pIdentNo'] = $ipsdata['pIdentNo'];
        // '证件号码 否 真实身份证(个人)/由IPS颁发的商户号 ',
        $data['pRealName'] = $ipsdata['pRealName'];
        // '姓名 否 真实姓名(中文)',
        $data['pIpsAcctNo'] = $ipsdata['pIpsAcctNo'];
        // 'IPS账户号 否 账户类型为1时,IPS托管账户号(个人) 账户类型为0时,由IPS颁发的商户号 ',
        //print_r($data);exit;
        $GLOBALS['db']->autoExecute(DB_PREFIX . "ips_register_subject", $data, 'UPDATE', "id =" . $id);
    }
    if ($id > 0) {
        $data['pMemo1'] = $id;
        $subject = array();
        $subject['pMemo1'] = $id;
        $GLOBALS['db']->autoExecute(DB_PREFIX . "ips_register_subject", $subject, 'UPDATE', "id =" . $id);
        //print_r($data);exit();
        $strxml = RegisterSubjectXml($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 . 'registerSubject.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;
    } else {
        return '数据插入错误';
    }
}
/**
 * 登记债权转让
 * @param int $transfer_id  转让id
 * @param int $t_user_id  受让用户ID
 * @param int $MerCode  商户ID
 * @param string $cert_md5 
 * @param string $post_url
 * @return string
 */
function RegisterCretansfer($transfer_id, $t_user_id, $MerCode, $cert_md5, $post_url)
{
    $transfer = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "deal_load_transfer where id = " . $transfer_id);
    $deal_id = intval($transfer['deal_id']);
    $user_id = intval($transfer['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);
    if (empty($user['ips_acct_no']) || empty($tuser['ips_acct_no'])) {
        return '有一方未申请 ips 帐户';
    }
    $pWebUrl = SITE_DOMAIN . APP_ROOT . "/index.php?ctl=collocation&act=response&class_name=Ips&class_act=RegisterCretansfer&from=" . $_REQUEST['from'];
    //web方式返回
    $pS2SUrl = SITE_DOMAIN . APP_ROOT . "/index.php?ctl=collocation&act=notify&class_name=Ips&class_act=RegisterCretansfer&from=" . $_REQUEST['from'];
    //s2s方式返回
    $sql = "update " . DB_PREFIX . "deal_load_transfer set lock_user_id = " . $t_user_id . ", lock_time =" . TIME_UTC;
    $sql .= " where ips_status = 0 and t_user_id = 0 and status = 1 and (lock_user_id = 0 || lock_user_id =" . $t_user_id . " || (lock_user_id > 0 && lock_time < " . (TIME_UTC - 600) . "))";
    //echo $sql; exit;
    $GLOBALS['db']->query($sql);
    if ($GLOBALS['db']->affected_rows()) {
        $data = array();
        $data['transfer_id'] = $transfer_id;
        $data['t_user_id'] = $t_user_id;
        $data['pMerCode'] = $MerCode;
        //“平台”账 号 由IPS颁发的商户号',
        $data['pMerBillNo'] = $transfer_id . 'T' . TIME_UTC;
        //'商户订单号 否 商户系统唯一不重复',
        $data['pMerDate'] = to_date(TIME_UTC, 'Ymd');
        //'商户日期 否 格式:YYYYMMDD ',
        $data['pBidNo'] = $deal_id;
        // '标的号 否 原投资交易的标的号,字母和数字,如a~z,A~Z,0~9 ',
        $pContractNo = $GLOBALS['db']->getOne("select pContractNo from " . DB_PREFIX . "deal_load where id = " . intval($transfer['load_id']));
        $data['pContractNo'] = $pContractNo;
        // '合同号 否 原投资交易的合同号, 字母和数字,如a~z,A~Z,0~9 ',
        $data['pFromAccountType'] = 1;
        // '出让方账户类型 否 0:机构(暂不支持) 1:个人 ',
        $data['pFromName'] = $user['real_name'];
        // '出让方账户姓名 否 出让方账户真实姓名',
        $data['pFromAccount'] = $user['ips_acct_no'];
        // '出让方账户 否 出让方账户类型为1时,IPS托管账户号(个人) 出让方账户类型为0时,由IPS颁发的商户号 ',
        $data['pFromIdentType'] = 1;
        //'出让方证件类型 否 1#身份证,默认:1 ',
        $data['pFromIdentNo'] = $user['idno'];
        // '出让方证件号码 否 真实身份证(个人)/由IPS颁发的商户号(机构)',
        $data['pToAccountType'] = 1;
        // '受让方账户类型 否 1:个人  0:机构(暂不支持)',
        $data['pToAccountName'] = $tuser['real_name'];
        // '受让方账户姓名 否 受让方账户真实姓名 ',
        $data['pToAccount'] = $tuser['ips_acct_no'];
        // '受让方账户 否 受让方账户类型为1时,IPS托管账户号(个人)',
        $data['pToIdentType'] = 1;
        // '受让方证件类型 否 1#身份证,默讣:1 ',
        $data['pToIdentNo'] = $tuser['idno'];
        // '受让方证件号码 否 真实身份证(个人)/由IPS颁发的商户号(机构)',
        $pCreMerBillNo = $GLOBALS['db']->getOne("select pMerBillNo from " . DB_PREFIX . "deal_load where id = " . intval($transfer['load_id']));
        $data['pCreMerBillNo'] = $pCreMerBillNo;
        //  '登记债权人时提 交的订单号 否 字母和数字,如a~z,A~Z,0~9 登记债权人时提交的订单号,见<登记债权人接口>请求 参数中的“pMerBillNo” ',
        $data['pCretAmt'] = str_replace(',', '', number_format($transfer['load_money'], 2));
        //  '债权面额 否 金额单位元,不能为负,不允许为0 ',
        $data['pPayAmt'] = str_replace(',', '', number_format($transfer['transfer_amount'], 2));
        // '支付金额 否 金额单位元,不能为负,不允许为0 债权面额(1-30%)<=支付金额<= 债权面额(1+30%) ',
        $data['pFromFee'] = str_replace(',', '', number_format($transfer['transfer_amount'] * $user_load_transfer_fee * 0.01, 2));
        // '出让方手续费 否 金额单位元,不能为负,允许为0 ',
        $data['pToFee'] = '0.00';
        // '受让方手续费 否 金额单位元,不能为负,允许为0 ',
        $data['pCretType'] = 1;
        // '转让类型 否 1:全部转让 2:部分转让',
        $GLOBALS['db']->autoExecute(DB_PREFIX . "ips_register_cretansfer", $data, 'INSERT');
        $id = $GLOBALS['db']->insert_id();
        $strxml = RegisterCretansferXml($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 . 'registerCretansfer.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;
        $ips_log = array();
        $ips_log['code'] = 'RegisterCretansfer';
        $ips_log['create_date'] = to_date(TIME_UTC, 'Y-m-d H:i:s');
        $ips_log['strxml'] = $strxml;
        $ips_log['html'] = $html;
        $GLOBALS['db']->autoExecute(DB_PREFIX . "ips_log", $ips_log);
        return $html;
    } else {
        return '该债权转让已经被其它用户锁定';
    }
}
예제 #12
0
 /**
  * 验证TOKEN
  */
 public function validate($token, $method)
 {
     $check = 1;
     // 0不检查 1检查
     if ($check && !$this->_isIgnoreValidate($method)) {
         require_once './application/libraries/Crypt3des.php';
         $Crypt3Des = new Crypt3Des(array('PIN' => 'lanxiaopin'));
         if (!$token) {
             header('HTTP/1.1 403 Forbidden');
             throw new Exception('Forbidden 无权限访问此服务 无法获取TOKEN', 403);
         }
         $res = $Crypt3Des->decrypt($token);
         if (!$res) {
             header('HTTP/1.1 403 Forbidden');
             throw new Exception('Forbidden 无权限访问此服务TOKEN验证失败', 403);
         }
     }
 }
예제 #13
0
/**
 * 充值
 * @param int $user_id
 * @param int $user_type 0:普通用户fanwe_user.id;1:担保用户fanwe_deal_agency.id
 * @param float $pTrdAmt 充值金额
 * @param string $pTrdBnkCode 银行编号
 * @param unknown_type $MerCode
 * @param unknown_type $cert_md5
 * @param unknown_type $post_url
 * @return string
 */
function DoDpTrade($user_id, $user_type, $pTrdAmt, $pTrdBnkCode, $MerCode, $cert_md5, $post_url)
{
    $pWebUrl = SITE_DOMAIN . APP_ROOT . "/index.php?ctl=collocation&act=response&class_name=Ips&class_act=DoDpTrade";
    //web方式返回
    $pS2SUrl = SITE_DOMAIN . APP_ROOT . "/index.php?ctl=collocation&act=notify&class_name=Ips&class_act=DoDpTrade";
    //s2s方式返回
    $user = array();
    if ($user_type == 0) {
        $user = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user where id = " . $user_id);
    } else {
        $user = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "deal_agency where id = " . $user_id);
    }
    //print_r($data); exit;
    $data = array();
    $data['user_type'] = $user_type;
    $data['user_id'] = $user_id;
    $data['pMerCode'] = $MerCode;
    // '“平台”账号 否 由IPS颁发的商户号 ',
    $data['pMerBillNo'] = $user_id . 'DP' . get_gmtime();
    //商户充值订单号 否 商户系统唯一不重复,
    $data['pAcctType'] = 1;
    //账户类型 否 固定值为 1,表示为类型为IPS个人账户,
    $data['pIdentNo'] = $user['idno'];
    //'证件号码 否 真实身份证(个人)/IPS颁发的商户号(商户) 本期考虑个人,商户充值预留,下期增加
    $data['pRealName'] = $user['real_name'];
    //'姓名 否 真实姓名(中文) pIpsAcctNo 30 IPS托管账户号 否 账户类型为1时,IPS托管账户号(个人)
    $data['pIpsAcctNo'] = $user['ips_acct_no'];
    //IPS托管账户号 账户类型为1时,IPS托管账户号(个人)
    $data['pTrdDate'] = to_date(get_gmtime(), 'Ymd');
    //充值日期 否 格式:YYYYMMDD
    $data['pTrdAmt'] = str_replace(',', '', number_format($pTrdAmt, 2));
    //充值金额 否 金额单位:元,丌能为负,丌允许为0,保留2位小数; 格式:12.00
    $data['pChannelType'] = 1;
    //充值渠道种类 否 1#网银充值;2#代扣充值
    $data['pTrdBnkCode'] = $pTrdBnkCode;
    //充值银行 是/否 网银充值的银行列表由IPS提供,对应充值银行的CODE, 具体使用见接口 <<商户端获取银行列表查询(WS)>>, 获取pBankList内容项中“银行卡编号”字段; 代扣充值这里传空; ',
    $data['pMerFee'] = '0.00';
    //`pMerFee` decimal(11,2) default '0.00' COMMENT '平台手续费 否 这里是平台向用户收取的费用 金额单位:元,丌能为负,允许为0,保留2位小数; 格式:12.00 ',
    $data['pIpsFeeType'] = 2;
    //'谁付IPS手续费 否 这里是IPS向平台收取的费用 1:平台支付 2:用户支付 ',
    $GLOBALS['db']->autoExecute(DB_PREFIX . "ips_do_dp_trade", $data, 'INSERT');
    $id = $GLOBALS['db']->insert_id();
    $strxml = DoDpTradeXml($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 . 'doDpTrade.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;
}
예제 #14
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 '借款不存在';
    }
}
예제 #15
0
/**
 * 3DES解密php程式
 * 
 * @param string $data
 *            需要加密字符串
 * @param string $key
 *            运营商应用密钥
 * @return string $res 解密后的字符串
 */
function do_decrypt($data, $key)
{
    if ($data === '' || !extension_loaded('mcrypt')) {
        return $data;
    }
    if (!defined('_3DES_')) {
        define('_3DES_', 1);
        include_once APPPATH . '/libraries/3des.php';
    }
    $des = new Crypt3Des($key);
    return $des->decrypt($data);
}
예제 #16
0
function GetUserinfoJson($token)
{
    if (empty($token)) {
        die(ErrorCode::CODE("1007"));
    }
    $userinfo = json_decode(Crypt3Des::decrypt(urldecode($token), $GLOBALS['keys']), true);
    if (empty($userinfo)) {
        die(ErrorCode::CODE("1008"));
    }
    return $userinfo;
}
 public static function encode($string)
 {
     $crypt = new Crypt3Des(Encrypt::$key);
     $encryptStr = $crypt->encrypt($string);
     return $encryptStr;
 }
예제 #18
0
/**
 * 还款
 * @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, $MerCode, $cert_md5, $post_url)
{
    $pWebUrl = SITE_DOMAIN . APP_ROOT . "/index.php?ctl=collocation&act=response&class_name=Ips&class_act=RepaymentNewTrade&from=" . $_REQUEST['from'];
    //web方式返回
    $pS2SUrl = SITE_DOMAIN . APP_ROOT . "/index.php?ctl=collocation&act=notify&class_name=Ips&class_act=RepaymentNewTrade&from=" . $_REQUEST['from'];
    //s2s方式返回
    $user = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user where id = " . $deal['user_id']);
    $deal_id = $deal['id'];
    $pOutAmt = 0;
    $pOutFee = 0;
    $data = array();
    $data['deal_id'] = $deal_id;
    $data['deal_repay_id'] = $deal_repay_id;
    $data['pMerCode'] = $MerCode;
    //“平台”账 号 由IPS颁发的商户号',
    $data['pMerBillNo'] = $deal_id . 'RT' . get_gmtime();
    //'商户订单号 否 商户系统唯一不重复',
    $data['pRepaymentDate'] = to_date(get_gmtime(), 'Ymd');
    //还款日期   格式:YYYYMMDD,
    $data['pBidNo'] = $deal_id;
    // '标的号 否 原投资交易的标的号,字母和数字,如a~z,A~Z,0~9 ',
    $data['pRepayType'] = 1;
    //'还款类型,1#手动还款,2#自动还款',
    $data['pIpsAuthNo'] = '';
    //授权号   是/否   当还款类型为自动还款时不为空,为手动还款时为空
    $data['pOutAcctNo'] = $user['ips_acct_no'];
    //转出方IPS账号   否   借款人在IPS注册的资金托管账号
    $data['pOutAmt'] = 0;
    //'转出金额   否   表示此次还款总金额。   转出金额=Sum(pInAmt)   Sum(pInAmt)代表转入金额的合计,一个或多个 投资人时的还款金额的累加。   金额单位:元,不能为负,不允许为 0,保留 2 位小 数;   格式:12.00 ',
    $data['pOutFee'] = 0;
    //'转出方总手续费   否   表示此次借款人或担保人所承担的还款手续费,此手 续费由商户平台向用户收取。   金额单位:元,不能为负,允许为0,保留 2位小数;   格式:12.00  pOutFee  =  Sum(pOutInfoFee)   Sum(pOutInfoFee)代表转出方手续费的合计   ',
    //print_r($repaylist);die();
    $GLOBALS['db']->autoExecute(DB_PREFIX . "ips_repayment_new_trade", $data, 'INSERT');
    $id = $GLOBALS['db']->insert_id();
    if ($id > 0) {
        $result['data'] = $data;
        $details = array();
        $result['id'] = $id;
        foreach ($repaylist as $k => $v) {
            $detail = array();
            $detail['pid'] = $id;
            $detail['deal_load_repay_id'] = $v['id'];
            $detail['impose_money'] = round($v['impose_money'], 2);
            $detail['repay_manage_impose_money'] = $v['repay_manage_impose_money'];
            $detail['repay_status'] = intval($v['status']) - 1;
            $detail['true_repay_time'] = TIME_UTC;
            //$detail['self_money'] = round($v['self_money'],2);
            //$detail['manage_interest_money'] = 	$v['manage_interest_money'];
            //转出方手续费  ===》收取:借款者 的管理费 + 管理逾期罚息   $item['repay_manage_money']  + $item['repay_manage_impose_money']
            //转入方手续费  ===》收取:投资者 的管理费  $item['manage_money']
            //转入金额 ===》还款金额 + 逾期罚息 $item['month_repay_money'] + $item['impose_money']
            $detail['pInFee'] = str_replace(',', '', number_format(round($v['manage_money'] + $v['manage_interest_money'], 2), 2));
            //转入方手续费   否   表示此次还款债权人所承担的还款手续费,此手续费由商 户平台向用户收取。金额单位:元,不能为负,允许为0,保留2位小数;   格式:12.00
            $detail['pOutInfoFee'] = str_replace(',', '', number_format(round($v['repay_manage_money'] + $v['repay_manage_impose_money'], 2), 2));
            //转出方手续费   否   表示此次借款人或担保人所承担的还款明细手续费,此手 续费由商户平台收取。;
            $detail['pInAmt'] = str_replace(',', '', number_format(round($v['month_repay_money'] + $v['impose_money'], 2), 2));
            //转入金额   否   格式:0.00    必须大于0  且大于转入方手续费
            if ($v['t_user_id']) {
                //债权转让后,还款时,转给:承接者, 在债权转让后需要更新 fanwe_deal_load_repay.t_user_id 数据值
                $pInAcctNo = $v['t_ips_acct_no'];
                $detail['pCreMerBillNo'] = $v['t_pMerBillNo'];
                //登记债权人时提 交的订单号   否   登记债权人时提交的订单号,见<登记债权人接口>请求 参数中的“pMerBillNo” '
            } else {
                $pInAcctNo = $v['ips_acct_no'];
                $detail['pCreMerBillNo'] = $v['pMerBillNo'];
                //登记债权人时提 交的订单号   否   登记债权人时提交的订单号,见<登记债权人接口>请求 参数中的“pMerBillNo” '
            }
            $detail['pInAcctNo'] = $pInAcctNo;
            //转出方 IPS 托管 账户号  否  账户类型为1时,IPS个人托管账户号  账户类型为0时,由 IPS颁发的商户号  转账类型,1:投资,此为转出方(投资人);  转账类型,2:代偿,此为转出方(担保方);  转账类型,3:代偿还款,此为转出方(借款人);  转账类型,4:债权转让,此为转出方(受让方);  转账类型,5:结算担保收益,此为转出方(借款人);  '
            $pOutAmt = $pOutAmt + $detail['pInAmt'];
            $pOutFee = $pOutFee + $detail['pOutInfoFee'];
            $GLOBALS['db']->autoExecute(DB_PREFIX . "ips_repayment_new_trade_detail", $detail, 'INSERT');
            $details[] = $detail;
        }
        $data2['pOutAmt'] = str_replace(',', '', number_format($pOutAmt, 2));
        //'转出金额   否   表示此次还款总金额。   转出金额=Sum(pInAmt)   Sum(pInAmt)代表转入金额的合计,一个或多个 投资人时的还款金额的累加。   金额单位:元,不能为负,不允许为 0,保留 2 位小 数;   格式:12.00 ',
        $data2['pOutFee'] = str_replace(',', '', number_format($pOutFee, 2));
        //'转出方总手续费   否   表示此次借款人或担保人所承担的还款手续费,此手 续费由商户平台向用户收取。   金额单位:元,不能为负,允许为0,保留 2位小数;   格式:12.00  pOutFee  =  Sum(pOutInfoFee)   Sum(pOutInfoFee)代表转出方手续费的合计   ',
        $data['pOutAmt'] = $data2['pOutAmt'];
        $data['pOutFee'] = $data2['pOutFee'];
        $GLOBALS['db']->autoExecute(DB_PREFIX . "ips_repayment_new_trade", $data2, 'UPDATE', ' id = ' . $id);
    }
    //print_r($repaylist);die();
    $pDetails = '';
    foreach ($details as $k => $v) {
        $pDetails .= RepaymentNewTradeRowXml($v);
    }
    $strxml = RepaymentNewTradeXml($data, $pDetails, $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 . 'RepaymentNewTrade.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;
    $ips_log = array();
    $ips_log['code'] = 'RepaymentNewTrade';
    $ips_log['create_date'] = to_date(TIME_UTC, 'Y-m-d H:i:s');
    $ips_log['strxml'] = $strxml;
    $ips_log['html'] = $html;
    $GLOBALS['db']->autoExecute(DB_PREFIX . "ips_log", $ips_log);
    return $html;
}
예제 #19
0
        die(ErrorCode::CODE("1005"));
    }
    if (inject_check($username)) {
        die(ErrorCode::CODE("1006"));
    }
    $data = array("username" => $username, "password" => $password);
    $info = UserLogin($data);
    die($info);
});
if_post("/Encrypt.json", function () {
    is_api();
    $json = file_get_contents('php://input');
    $jsonarray = json_decode($json, true);
    $userinfo = GetUserinfoJson($jsonarray['token']);
    $md5 = md5($userinfo['username'] . $userinfo['id'] . $userinfo['create_at'] . $userinfo['create_ip'] . $jsonarray['key']);
    $key = Crypt3Des::encrypt($jsonarray['pass'], $md5);
    $md5Key = MD5($key);
    $md5Key = base64_encode($md5Key . $md5Key . $md5Key);
    if (!empty($jsonarray['num'])) {
        die('{"encrypt":"' . substr($md5Key, strlen($md5Key) - $jsonarray['num'], $jsonarray['num']) . '"}');
    } else {
        die('{"encrypt":"' . $md5Key . '"}');
    }
});
if_post("/GetKeyList.json", function () {
    is_api();
    $json = file_get_contents('php://input');
    $jsonarray = json_decode($json, true);
    $userinfo = GetUserinfoJson($jsonarray['token']);
    die(GetUserLinks($userinfo['id']));
});
예제 #20
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);
    }
}
예제 #21
0
 function notify($request, $class_act)
 {
     $yeepay_log = array();
     $yeepay_log['code'] = 'notify';
     $yeepay_log['create_date'] = to_date(TIME_UTC, 'Y-m-d H:i:s');
     $yeepay_log['strxml'] = $_POST["notify"];
     $yeepay_log['html'] = $_POST["sign"];
     $GLOBALS['db']->autoExecute(DB_PREFIX . "yeepay_log", $yeepay_log);
     $resp = $_POST["resp"];
     $sign = $_POST["sign"];
     $localSign = $sign;
     //正式版本,需要加上验证;
     if ($localSign == $sign) {
         //echo "<br/>验签通过";
         $Crypt3Des = new Crypt3Des();
         //new 3des class
         $str3XmlParaInfo = $Crypt3Des->DESDecrypt($p3DesXmlPara);
         //3des解密
         require_once APP_ROOT_PATH . 'system/collocation/ips/xml.php';
         $str3ParaInfo = @XML_unserialize($str3XmlParaInfo);
         $str3Req = $str3ParaInfo['pReq'];
         //
         if ($class_act == 'CreateNewAcct') {
             require_once APP_ROOT_PATH . 'system/collocation/yeepay/CreateNewAcct.php';
             CreateNewAcctCallBack($pMerCode, $pErrCode, $pErrMsg, $str3Req);
         } else {
             if ($class_act == 'DoDpTrade') {
                 require_once APP_ROOT_PATH . 'system/collocation/yeepay/DoDpTrade.php';
                 DoDpTradeCallBack($str3Req);
             } else {
                 if ($class_act == 'BindBankCard') {
                     require_once APP_ROOT_PATH . 'system/collocation/yeepay/BindBankCard.php';
                     BindBankCardCallBack($str3Req);
                 } else {
                     if ($class_act == 'DoDwTrade') {
                         require_once APP_ROOT_PATH . 'system/collocation/yeepay/DoDwTrade.php';
                         DoDwTradeCallBack($str3Req);
                     } else {
                         if ($class_act == 'DoBids') {
                             //
                             require_once APP_ROOT_PATH . 'system/collocation/yeepay/DoBids.php';
                             DoBidsCallBack($str3Req);
                         } else {
                             if ($class_act == 'RegisterSubject') {
                                 require_once APP_ROOT_PATH . 'system/collocation/yeepay/RegisterSubject.php';
                                 RegisterSubjectCallBack($pMerCode, $pErrCode, $pErrMsg, $str3Req);
                                 //showSuccess($pErrMsg,0,SITE_DOMAIN.APP_ROOT);
                             } else {
                                 if ($class_act == 'RegisterCreditor') {
                                     require_once APP_ROOT_PATH . 'system/collocation/yeepay/RegisterCreditor.php';
                                     RegisterCreditorCallBack($pMerCode, $pErrCode, $pErrMsg, $str3Req);
                                     //showSuccess($pErrMsg,0,SITE_DOMAIN.APP_ROOT);
                                 } else {
                                     if ($class_act == 'DoLoans') {
                                         require_once APP_ROOT_PATH . 'system/collocation/yeepay/DoLoans.php';
                                         $ipsdata = RepaymentNewTradeCallBack($str3Req);
                                     } else {
                                         if ($class_act == 'RegisterCretansfer') {
                                             require_once APP_ROOT_PATH . 'system/collocation/yeepay/RegisterCretansfer.php';
                                             RegisterCretansferCallBack($pMerCode, $pErrCode, $pErrMsg, $str3Req);
                                             //showSuccess($pErrMsg,0,SITE_DOMAIN.APP_ROOT);
                                         } else {
                                             if ($class_act == 'RepaymentNewTrade') {
                                                 require_once APP_ROOT_PATH . 'system/collocation/yeepay/RepaymentNewTrade.php';
                                                 RepaymentNewTradeCallBack($pMerCode, $pErrCode, $pErrMsg, $str3Req);
                                                 //showSuccess($pErrMsg,0,SITE_DOMAIN.APP_ROOT);
                                             } else {
                                                 if ($class_act == 'RepaymentRepayCallBack') {
                                                     require_once APP_ROOT_PATH . 'system/collocation/yeepay/RepaymentNewTrade.php';
                                                     $ipsdata = RepaymentRepayCallBack($str3Req);
                                                 } else {
                                                     if ($class_act == 'RegisterCretansferBack') {
                                                         require_once APP_ROOT_PATH . 'system/collocation/yeepay/RegisterCretansfer.php';
                                                         RegisterCretansferBack($str3Req);
                                                     } else {
                                                         if ($class_act == 'Transfer') {
                                                             require_once APP_ROOT_PATH . 'system/collocation/yeepay/Transfer.php';
                                                             TransferCallBack($pMerCode, $pErrCode, $pErrMsg, $str3Req);
                                                             //showSuccess($pErrMsg,0,SITE_DOMAIN.APP_ROOT);
                                                         }
                                                     }
                                                 }
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
         }
     } else {
         echo "<br/>验签不通过:{$localSign}<br/>";
         $Crypt3Des = new Crypt3Des();
         //new 3des class
         $str3XmlParaInfo = $Crypt3Des->DESDecrypt($p3DesXmlPara);
         //3des解密
         print_r($str3XmlParaInfo);
         require_once APP_ROOT_PATH . 'system/collocation/ips/xml.php';
         $str3ParaInfo = @XML_unserialize($str3XmlParaInfo);
         print_r($str3ParaInfo);
         exit;
     }
 }
예제 #22
0
 public static function up_decode($str)
 {
     if (!$str) {
         return $str;
     }
     $str = urldecode($str);
     $str = trim($str);
     $cr = new Crypt3Des(Crypt3DesKey, Crypt3DesIV);
     $str = str_replace('-', '+', $str);
     $str = str_replace('.', '/', $str);
     $str = str_replace('!', '=', $str);
     $str = $cr->decrypt($str);
     $couldbeA = json_decode($str, true);
     if (is_array($couldbeA)) {
         return $couldbeA;
     }
     return false;
 }
예제 #23
0
파일: Common.php 프로젝트: helenseo/pay
 /**
  * 產生GPS交易驗證壓碼
  * 
  * @param string $cid
  * @param string $coid
  * @param string $rrn
  * @param string $cuid
  * @param string $amt
  * @param string $rcode
  */
 private function _GetERPC($cid, $coid, $rrn, $cuid, $amt, $rcode)
 {
     $erpc = "";
     $encrypt_data = "%s%s%s%s%s%s";
     // 驗證用的 AMOUNT 需整理成 14 碼
     if (strpos($amt, ".") !== false) {
         $amt = substr($amt, 0, strpos($amt, ".")) . (strlen($amt) - strpos($amt, ".") > 3 ? substr($amt, strpos($amt, ".") + 1, 2) : str_pad(substr($amt, strpos($amt, ".") + 1), 2, "0"));
         $amt = str_pad($amt, 14, "0", STR_PAD_LEFT);
     } else {
         $amt = str_pad($amt, 12, "0", STR_PAD_LEFT) . "00";
         //.PadLeft(14, '0');
     }
     //$amt = "00000000005000";
     $this->encrypt_data = sprintf($encrypt_data, $cid, $coid, $rrn, $cuid, $amt, $rcode);
     $des = new Crypt3Des($this->key, $this->iv);
     $this->base64_encrypt_data = $des->encrypt($this->encrypt_data);
     $erpc = base64_encode(sha1($this->base64_encrypt_data, true));
     return $erpc;
 }