public function drawcash($bankinfo, $notifyurl)
 {
     $uid = is_login();
     $this->config = C('DRAW_CASH');
     $time = NOW_TIME;
     $tradFlowNo = time_format($time, 'Ymd') . $this->config['MERCHANTID'] . substr(floor(microtime($time) * 1000), -8);
     //head文件
     $head = array('version' => '01', 'type' => '0001', 'channelNo' => 'HM', 'tradDate' => time_format($time, 'Ymd'), 'tradTime' => time_format($time, 'His'), 'tradFlowNo' => $tradFlowNo, 'tradNo' => 'ES0007');
     //交易代码
     //body文件
     $body = array('tranSeqId' => $tradFlowNo, 'merchantNo' => $this->config['MERCHANTID'], 'alias' => $this->config['ALIAS'], 'submitDate' => time_format($time, 'Ymd'), 'isNeedNotify' => '0', 'notifyUrl' => $notifyurl, 'batchUse' => '01', 'bankId' => $bankinfo['bankId'], 'acctNo' => $bankinfo['acctNo'], 'acctName' => $bankinfo['acctName'], 'acctAttribute' => '02', 'bankName' => $bankinfo['bankName'], 'bankProvince' => $bankinfo['bankProvince'], 'bankCity' => $bankinfo['bankCity'], 'cityCode' => '', 'amount' => $bankinfo['amount'], 'currencyType' => 'CNY', 'mobilePhone' => '', 'remark' => '');
     $message = array('head' => $head, 'body' => $body);
     include_once APP_PATH . '/BaoyiPay/BaoyiPay.php';
     $xml = to_xmlstring1($message);
     $mac = md5($xml . $this->config['MERKEY']);
     $para = array('tradNo' => 'ES0007', 'type' => '0001', 'merchantNo' => $this->config['MERCHANTID'], 'data' => $xml, 'mac' => $mac);
     // D('AccountLog')->record($head, $xml, $mac, 7);
     $text = $this->getHttpResponseGet($this->config['DRAW_URL'], $para);
     $para = md5Response($text, $this->config['MERKEY']);
     if (!$para) {
         $this->error('返回信息不正确');
     }
     if ($para['status'] == '000000000') {
         //提现记录
         $drawcashlist = array('pid' => 0, 'bussflowno' => $tradFlowNo, 'amount' => $bankinfo['amount'], 'create_time' => NOW_TIME, 'update_time' => NOW_TIME);
         M('DrawcashList')->add($drawcashlist);
         return $tradFlowNo;
     } else {
         $this->error($para['statusMsg']);
     }
 }
 public function drawcash($bankinfo, $notifyurl)
 {
     $uid = is_login();
     $this->config = C('DRAW_CASH');
     $time = NOW_TIME;
     $tradFlowNo = time_format($time, 'Ymd') . $this->config['MERCHANTID'] . substr(floor(microtime($time) * 1000), -8);
     //head文件
     $head = array('version' => '01', 'type' => '0001', 'channelNo' => 'HM', 'tradDate' => time_format($time, 'Ymd'), 'tradTime' => time_format($time, 'His'), 'tradFlowNo' => $tradFlowNo, 'tradNo' => 'ES0007');
     //交易代码
     //body文件
     $body = array('tranSeqId' => $tradFlowNo, 'merchantNo' => $this->config['MERCHANTID'], 'alias' => $this->config['ALIAS'], 'submitDate' => time_format($time, 'Ymd'), 'isNeedNotify' => '0', 'notifyUrl' => $notifyurl, 'batchUse' => '01', 'bankId' => $bankinfo['bankId'], 'acctNo' => $bankinfo['acctNo'], 'acctName' => $bankinfo['acctName'], 'acctAttribute' => '02', 'bankName' => $bankinfo['bankName'], 'bankProvince' => $bankinfo['bankProvince'], 'bankCity' => $bankinfo['bankCity'], 'cityCode' => '', 'amount' => $bankinfo['amount'], 'currencyType' => 'CNY', 'mobilePhone' => '', 'remark' => '');
     $message = array('head' => $head, 'body' => $body);
     include_once APP_PATH . '/BaoyiPay/BaoyiPay.php';
     $xml = to_xmlstring1($message);
     $mac = md5($xml . $this->config['MERKEY']);
     $para = array('tradNo' => 'ES0007', 'type' => '0001', 'merchantNo' => $this->config['MERCHANTID'], 'data' => $xml, 'mac' => $mac);
     //D('AccountLog')->record($head, $xml, $mac, 0);
     $text = $this->getHttpResponseGet($this->config['DRAW_URL'], $para);
     $para = md5Response($text, $this->config['MERKEY']);
     if (!$para) {
         $this->ajaxReturn(array('status' => 0, 'info' => '信息错误'));
         exit;
     }
     //D('AccountLog')->record($head, $para['data'], $para['mac'], 1);
     if ($para['status'] == '000000000') {
         //修改提现金额
         $product = M('Product')->find($bankinfo['pid']);
         if (!$product) {
             $this->error('该项目信息不存在');
         }
         //计算可提金额
         $amount = $product['finish_amount'] - $product['drawcash_amount'];
         //如果余额不足
         if ($amount <= 0) {
             $this->error('可提金额不足');
         }
         //当前时间
         $drawcash_date = date('Ymd', NOW_TIME);
         $drawcash_amount = $product['drawcash_amount'] + $bankinfo['amount'];
         $product = array('id' => $bankinfo['pid'], 'drawcash_date' => $drawcash_date, 'drawcash_amount' => $drawcash_amount);
         M('Product')->save($product);
         //提现记录
         $drawcashlist = array('pid' => $bankinfo['pid'], 'bussflowno' => $tradFlowNo, 'amount' => $bankinfo['amount'], 'create_time' => NOW_TIME, 'update_time' => NOW_TIME);
         M('DrawcashList')->add($drawcashlist);
         $this->success('提现成功,你注意账户变化');
     } else {
         $this->error($para['statusMsg']);
     }
 }
 public function querycard()
 {
     if (IS_POST) {
         $uid = is_login();
         $head = $this->inithead('QP0007');
         //6228480328608732074
         $cardNo = $_POST['cardNo'];
         $merorderid = $_POST['merOrderId'];
         $card_id = $this->encrypt($head['clientDate'], $cardNo);
         $body = array('cardNo' => $card_id);
         $message = array('head' => $head, 'body' => $body);
         include_once APP_PATH . '/BaoyiPay/BaoyiPay.php';
         $xml = to_xmlstring($message);
         $mac = md5($xml . $this->config['KEY']);
         $para = array('xml' => $xml, 'mac' => $mac);
         D('AccountLog')->record($head, $xml, $mac, 0);
         $text = getHttpResponsePost($this->config['PAY_URL'], $para);
         $para = md5Response($text, $this->config['KEY']);
         if (!$para) {
             $this->ajaxReturn(array('status' => 0, 'info' => '信息错误'));
             exit;
         }
         $data = xml2arr($para['xml']);
         $head = $data['head'];
         $body = $data['body'];
         D('AccountLog')->record($head, $para['xml'], $para['mac'], 1);
         if ($head['respCode'] == 'C000000000') {
             $info = M('ProductPay')->where(array('merorderid' => $merorderid))->find();
             // 验证订单是否允许使用信用卡
             if ($info['allow_creditcard'] == 0) {
                 if ($body['cardType'] == '0') {
                     $this->error('该订单不允许使用信用卡支付。');
                 }
             }
             $card = M('QuickcardList')->where(array('uid' => $uid, 'cardNo' => $cardNo))->find();
             $bankinfo = $data['body'];
             if (!$card) {
                 //所属银行编号
                 $bankNo = $body['bankNo'];
                 $bankNm = $body['bankNm'];
                 if ($info['allow_creditcard'] == 0) {
                     $is_quick = M('BankInfo')->where(array('is_quick' => 1, 'bank_code' => $bankNo))->find();
                     //不存在
                     if (!$is_quick) {
                         $this->error('快捷支付暂不支持' . $bankNm . '的借记卡。');
                     }
                 }
                 $storableCardNo = substr($cardNo, 0, 6) . substr($cardNo, strlen($cardNo) - 4);
                 $id = M('QuickcardList')->add(array('uid' => $uid, 'cardNo' => $cardNo, 'bankNo' => $bankinfo['bankNo'], 'cardType' => $bankinfo['cardType'], 'bankNm' => $bankinfo['bankNm'], 'storableCardNo' => $storableCardNo));
                 $this->success('查询成功!', U('addstep2', array('id' => $id, 'merorderid' => $merorderid)));
             } else {
                 if ($card['status'] == 1) {
                     $this->error('您已经绑定了该银行卡。');
                 } else {
                     $this->success('查询成功!', U('addstep2', array('id' => $card['id'], 'merorderid' => $merorderid)));
                     return;
                 }
             }
         } else {
             $this->error($head['respMsg']);
         }
     }
 }
 private function savecheck($name, $cardid)
 {
     $config = C('SAVE_CHECK');
     $clientDate = time_format(NOW_TIME, 'YmdHis');
     $head = array('version' => '01', 'msgType' => '0001', 'chanId' => '99', 'merchantNo' => $config['MERCHANTID'], 'clientDate' => time_format(NOW_TIME, 'YmdHis'), 'tranFlow' => $config['MERCHANTID'] . $clientDate . rand(10000, 999999), 'tranCode' => 'SC0002', 'respCode' => '', 'respMsg' => '');
     $body = array('idName' => $name, 'idNum' => $cardid);
     include_once APP_PATH . '/BaoyiPay/BaoyiPay.php';
     $xml = to_xmlstring(array('head' => $head, 'body' => $body));
     $mac = md5($xml . $config['MERKEY']);
     $this->checklog($xml . '&' . $mac, 1);
     $para = array('xml' => $xml, 'mac' => $mac);
     $text = getHttpResponsePost($config['URL'], $para);
     $this->checklog($text, 2);
     $para = md5Response($text, $config['MERKEY']);
     if (!$para) {
         //$this->ajaxReturn(array('status'=>0, 'info'=>'信息错误'));
         return array('status' => 0, 'info' => '信息错误');
     }
     $data = xml2arr($para['xml']);
     if ($data['head']['respCode'] == 'C000000000') {
         return array('status' => 1, 'info' => '');
     } else {
         return array('status' => 0, 'info' => $data['head']['respMsg']);
     }
 }