From d23a9c0fecfc91f35b1fa7491aad399db08ff2fc Mon Sep 17 00:00:00 2001 From: "altob.rd" Date: Mon, 11 Dec 2017 10:21:16 +0800 Subject: [PATCH] upd --- controllers/Carpayment.php | 75 +++++++--------------- models/Carpayment_model.php | 151 +++++++++++--------------------------------- 2 files changed, 60 insertions(+), 166 deletions(-) diff --git a/controllers/Carpayment.php b/controllers/Carpayment.php index 92f21b5..42a0bd4 100644 --- a/controllers/Carpayment.php +++ b/controllers/Carpayment.php @@ -99,6 +99,9 @@ class Carpayment extends CI_Controller echo "\n----- " . LOG_PATH.APP_NAME . '.' . date('Ymd').'.log.txt' . ' -----'; echo ''; } + + + // http://localhost/carpayment.html/p2payed/ (post method) @@ -145,49 +148,26 @@ class Carpayment extends CI_Controller } $parms['pay_type'] = 93; // MITAC 專用 - trigger_error('MITAC 付款:' . print_r($parms, true)); - //$this->carpayment_model->mitac2payed($parms); - $this->carpayment_model->p2payed($parms); - } - - /* - 月租繳款完成 - http://203.75.167.89/carpayment.html/memberpayed/12345/ABC1234/120/12112/1/2016-01-31/1f3870be274f6c49b3e31a0c6728957f - http://203.75.167.89/carpayment.html/memberpayed/會員號碼/車牌/金額/場站編號/月繳/本期到期日/md5 - md5(會員號碼.車牌.金額.場站編號.月繳.本期到期日) - public function memberpayed() - { - $parms['member_no'] = $lines = $this->uri->segment(3); - $parms['lpr'] = $lines = $this->uri->segment(4); - $parms['amt'] = $lines = $this->uri->segment(5); - $parms['station_no'] = $lines = $this->uri->segment(6); - $parms['period_type'] = $lines = $this->uri->segment(7); - $parms['expire_date'] = $lines = $this->uri->segment(8); - $md5 = $this->uri->segment(9); - if (md5($parms['member_no'].$parms['lpr'].$parms['amt'].$parms['station_no'].$parms['seqno'].$parms['period_type'].$parms['expire_date']) === $md5) - { - $this->carpayment_model->memberpayed($parms); - } - } - */ - - // 繳費機告知已付款 (new 2016/07/15) - // http://localhost/carpayment.html/ats2payed/車牌/金額/場站編號/序號/MD5 - // md5(車牌.金額.場站編號.序號) - public function ats2payed() - { - $result = []; - $parms['lpr'] = $lines = $this->uri->segment(3); - $parms['amt'] = $lines = $this->uri->segment(4); - $parms['station_no'] = $lines = $this->uri->segment(5); - $parms['order_no'] = $lines = $this->uri->segment(6); - $md5 = $this->uri->segment(7); - if (md5($parms['lpr'].$parms['amt'].$parms['station_no'].$parms['order_no']) === $md5) - { - $this->carpayment_model->ats2payed($parms); - } + + // 註記已離場 + $this->carpayment_model->p2payed($parms, false, true); } + + + + + + + + + + + + + + + // 行動支付, 手機告知已付款 // http://203.75.167.89/carpayment.html/m2payed/ABC1234/120/12112/12345/1f3870be274f6c49b3e31a0c6728957f @@ -200,19 +180,8 @@ class Carpayment extends CI_Controller $parms['station_no'] = $lines = $this->uri->segment(5); $parms['seqno'] = $lines = $this->uri->segment(6); $md5 = $this->uri->segment(7); + trigger_error(__FUNCTION__ . '..' . print_r($parms, true)); echo $this->carpayment_model->m2payed($parms); - - /* - $seqno = !empty($_SESSION['seqno']) ? $_SESSION['seqno'] : 0; - unset($_SESSION['seqno']); - - if ($parms['seqno'] != 0 && $parms['seqno'] == $seqno && md5($parms['lpr'].$parms['amt'].$parms['station_no'].$parms['seqno']) === $md5) - { - echo $this->carpayment_model->m2payed($parms); - } - else - echo 'fail'; - */ } diff --git a/models/Carpayment_model.php b/models/Carpayment_model.php index 7fd1f1e..3d446fa 100644 --- a/models/Carpayment_model.php +++ b/models/Carpayment_model.php @@ -23,54 +23,14 @@ class Carpayment_model extends CI_Model $this->vars = $vars; } - /* - // MITAC 通知付款完成 - public function mitac2payed($parms) - { - $where_arr = array('obj_type' => 1, 'cario_no' => $parms['cario_no'], 'obj_id' => $parms['lpr'], 'finished' => 0, 'err' => 0); - $result = $this->db->select("in_time, cario_no, station_no") - ->from('cario') - ->where($where_arr) - ->limit(1) - ->get() - ->row_array(); - - $in_time = new DateTime($result['in_time']); - $pay_time = new DateTime($parms['pay_time']); - - $data = array - ( - 'out_before_time' => date('Y-m-d H:i:s', strtotime("{$parms['pay_time']} + 15 minutes")), - 'pay_time' => $parms['pay_time'], - 'pay_type' => $parms['pay_type'], - 'payed' => 1 - ); - - // 更新 - $this->db->where($where_arr)->update('cario', $data); - - if (!$this->db->affected_rows()) - { - trigger_error("付款失敗:{$parms['lpr']}|{$data['out_before_time']}"); - return 'fail'; - } - - trigger_error("付款後更新時間:{$parms['lpr']}|{$data['out_before_time']}"); - - // 傳送付款更新記錄 - $sync_agent = new AltobSyncAgent(); - $sync_agent->init($result['station_no'], $result['in_time']); - $sync_agent->cario_no = $result['cario_no']; // 進出編號 - $sync_result = $sync_agent->sync_st_pay($parms['lpr'], $parms['pay_time'], $parms['pay_type'], - date('Y-m-d H:i:s', strtotime("{$parms['pay_time']} + 15 minutes"))); - trigger_error( "..sync_st_pay.." . $sync_result); - - return 'ok'; - } - */ + //////////////////////////////////////// + // + // 付款後, 付款資訊建檔 + // + //////////////////////////////////////// // 通知付款完成 - public function p2payed($parms, $opay=false) + public function p2payed($parms, $opay=false, $finished=false) { $result = $this->db->select("in_time, cario_no, station_no") ->from('cario') @@ -81,7 +41,7 @@ class Carpayment_model extends CI_Model ->row_array(); // 查不到車號才找備援碼 - if(!isset($result['in_time']) && is_numeric($parms['lpr']) && strlen($parms['lpr']) == 6) + if(!isset($result['in_time']) || (is_numeric($parms['lpr']) && strlen($parms['lpr']) == 6)) { $result = $this->db->select("in_time, cario_no, station_no") ->from('cario') @@ -108,7 +68,7 @@ class Carpayment_model extends CI_Model { // A. (備援碼)歐付寶 $parms2 = array('seqno' => $result['cario_no'], 'amt' => $parms['amt'], 'lpr' => $parms['lpr']); - return $this->m2payed($parms2); + return $this->m2payed($parms2, $finished); } else @@ -121,7 +81,11 @@ class Carpayment_model extends CI_Model 'pay_type' => $parms['pay_type'], 'payed' => 1 ); - + + // 是否註記完結 + if($finished) + $data['finished'] = 1; + $this->db->where(array('cario_no' => $result['cario_no']))->update('cario', $data); if (!$this->db->affected_rows()) @@ -139,10 +103,7 @@ class Carpayment_model extends CI_Model if($opay) { $parms2 = array('seqno' => $result['cario_no'], 'amt' => $parms['amt'], 'lpr' => $parms['lpr']); - $result = $this->m2payed($parms2); - - if($result != 'ok') - return $result; + return $this->m2payed($parms2, $finished); } else { @@ -160,7 +121,11 @@ class Carpayment_model extends CI_Model 'pay_type' => $parms['pay_type'], 'payed' => 1 ); - + + // 是否註記完結 + if($finished) + $data['finished'] = 1; + $this->db ->where(array('obj_type' => 1, 'obj_id' => $parms['lpr'], 'finished' => 0, 'err' => 0)) ->update('cario', $data); @@ -171,7 +136,7 @@ class Carpayment_model extends CI_Model return 'fail'; } - trigger_error("付款後更新時間:{$parms['lpr']}|{$data['out_before_time']}"); + trigger_error("付款後更新時間:{$parms['lpr']}|{$data['out_before_time']}|". print_r($data, true)); } // 傳送付款更新記錄 @@ -185,51 +150,12 @@ class Carpayment_model extends CI_Model return 'ok'; } - - // 繳費機告知已付款 (new 2016/07/15) - // http://localhost/carpayment.html/ats2payed/車牌/金額/場站編號/序號/MD5 - // md5(車牌.金額.場站編號.序號) - public function ats2payed($parms) - { - $order_no = $parms['order_no']; - $bill_result = $this->db->from('tx_bill_ats') - ->where(array('order_no' => $order_no, 'status' => 111)) - ->limit(1) - ->get() - ->row_array(); - - if(!empty($bill_result)){ - $member_no = $bill_result['member_no']; - $station_no = $bill_result['station_no']; - $next_start_time = $bill_result['next_start_time']; - $next_end_time = $bill_result['next_end_time']; - - $data = array( - 'end_date' => $bill_result['next_end_time'] // TODO: 有被任何一筆序號蓋資料的可能 - ); - - $this->db - ->where(array('member_no' => $member_no, 'station_no' => $station_no)) - ->update('members', $data); - if ($this->db->affected_rows()) - { - trigger_error("繳費機更新會員資料完成,{$parms['lpr']},金額:{$parms['amt']},序號:{$parms['order_no']}"); - return 'ok'; - } - else - { - trigger_error("繳費機更新會員資料失敗,{$parms['lpr']},金額:{$parms['amt']},序號:{$parms['order_no']}"); - return 'fail'; - } - } - } - // 行動支付, 手機告知已付款 // http://203.75.167.89/carpayment.html/m2payed/ABC1234/120/12112/12345/1f3870be274f6c49b3e31a0c6728957f // http://203.75.167.89/carpayment.html/m2payed/車牌/金額/場站編號/序號/MD5 // md5(車牌.金額.場站編號.序號) - public function m2payed($parms) + public function m2payed($parms, $finished=false) { $data = array ( @@ -238,10 +164,13 @@ class Carpayment_model extends CI_Model 'pay_type' => 4, // 歐付寶行動支付 'payed' => 1 ); - - $this->db - ->where(array('cario_no' => $parms['seqno'])) - ->update('cario', $data); + + // 是否註記完結 + if($finished) + $data['finished'] = 1; + + $this->db->where(array('cario_no' => $parms['seqno']))->update('cario', $data); + if ($this->db->affected_rows()) { trigger_error("歐付寶行動支付成功,{$parms['lpr']}金額:{$parms['amt']},序號:{$parms['seqno']}"); @@ -253,21 +182,17 @@ class Carpayment_model extends CI_Model return 'fail'; } } - - - - /* - 月租繳款完成 - http://203.75.167.89/carpayment.html/memberpayed/12345/ABC1234/120/12112/1/2016-01-31/1f3870be274f6c49b3e31a0c6728957f - http://203.75.167.89/carpayment.html/memberpayed/會員號碼/車牌/金額/場站編號/月繳/本期到期日/md5 - md5(會員號碼.車牌.金額.場站編號.月繳.本期到期日) - - public function memberpayed($parms) - { - // update members (???) - } - */ + + + + //////////////////////////////////////// + // + // 付款前, 入場資訊查找 + // + //////////////////////////////////////// + + // 模糊比對 function getLevenshteinSQLStatement($word, $target) {