hxd-new
elf 4 days ago
parent ece4e76664
commit 35fdcad324

@ -106,39 +106,42 @@ class PayService {
} }
} }
private function getAuthCode($payOrderNumber) { private function getUserIdAndAuthCode($payOrderNumber) {
$authCode = ''; $authCode = '';
$userId = 0;
$payWhere = substr($payOrderNumber, 0, 2); $payWhere = substr($payOrderNumber, 0, 2);
switch ($payWhere) { switch ($payWhere) {
case 'SP': case 'SP':
$spend = M('Spend',"tab_"); $spend = M('Spend',"tab_");
$map['pay_order_number'] = $payOrderNumber; $map['pay_order_number'] = $payOrderNumber;
$map['pay_way'] = 60; $map['pay_way'] = 60;
$d = $spend->field('auth_code')->where($map)->find(); $d = $spend->field('auth_code,user_id')->where($map)->find();
$authCode = $d['auth_code']; $authCode = $d['auth_code'];
$userId = $d['user_id'];
break; break;
case 'PF': case 'PF':
$deposit = M('deposit',"tab_"); $deposit = M('deposit',"tab_");
$map['pay_order_number'] = $payOrderNumber; $map['pay_order_number'] = $payOrderNumber;
$map['pay_way'] = 60; $map['pay_way'] = 60;
$d = $deposit->field('auth_code')->where($map)->find(); $d = $deposit->field('auth_code,user_id')->where($map)->find();
$authCode = $d['auth_code']; $authCode = $d['auth_code'];
$userId = $d['user_id'];
break; break;
default: default:
exit('accident order data'); exit('accident order data');
break; break;
} }
return $authCode; return [$userId, $authCode];
} }
public function processMyCardCallback($payOrderNumber) { public function processMyCardCallback($payOrderNumber) {
$authCode = $this->getAuthCode($payOrderNumber); list($userId, $authCode) = $this->getUserIdAndAuthCode($payOrderNumber);
if (empty($authCode)) { if (empty($authCode)) {
MKLog::write('processMyCardCallback:' . $payOrderNumber . ' empty authCode'); MKLog::write('processMyCardCallback:' . $payOrderNumber . ' empty authCode');
return false; return false;
} }
$result = $this->finishMyCardPay($authCode); $result = $this->finishMyCardPay($userId, $authCode);
if (!$result) { if (!$result) {
MKLog::write('finishMyCardPay fail'); MKLog::write('finishMyCardPay fail');
return false; return false;
@ -170,7 +173,7 @@ class PayService {
return $ret; return $ret;
} }
public function finishMyCardPay($authCode) { public function finishMyCardPay($userId, $authCode) {
$tradeResult = Api::tradeQuery($authCode); $tradeResult = Api::tradeQuery($authCode);
if ($tradeResult['ReturnCode'] != 1) { if ($tradeResult['ReturnCode'] != 1) {
MKLog::write('finishMyCardPay tradeQuery fail:' . json_encode($tradeResult, JSON_UNESCAPED_UNICODE)); MKLog::write('finishMyCardPay tradeQuery fail:' . json_encode($tradeResult, JSON_UNESCAPED_UNICODE));
@ -184,6 +187,7 @@ class PayService {
$trade = $tradeModel->where($map)->find(); $trade = $tradeModel->where($map)->find();
if (empty($trade)) { if (empty($trade)) {
$tradeModel->add([ $tradeModel->add([
'user_id' => $userId,
'payment_type' => $tradeResult['PaymentType'], 'payment_type' => $tradeResult['PaymentType'],
// 'trade_seq' => $tradeResult['TradeSeq'], // 'trade_seq' => $tradeResult['TradeSeq'],
'mycard_trade_no' => $tradeResult['MyCardTradeNo'], 'mycard_trade_no' => $tradeResult['MyCardTradeNo'],

@ -22,31 +22,31 @@ class DataController extends BaseController
$startDateTime = $startDateTime ? strtotime($startDateTime) : null; $startDateTime = $startDateTime ? strtotime($startDateTime) : null;
$endDateTime = $endDateTime ? strtotime($endDateTime) : null; $endDateTime = $endDateTime ? strtotime($endDateTime) : null;
$spendModel = M('Spend',"tab_"); $tradeModel = M('MycardTrade',"tab_");
$conditions = ['pay_way' => 60, 'pay_status' => 1]; $conditions = [];
if ($startDateTime && $endDateTime) { if ($startDateTime && $endDateTime) {
$conditions[] = 'payed_time between ' . $startDateTime . ' and ' . $endDateTime; $conditions[] = 'created_at between ' . $startDateTime . ' and ' . $endDateTime;
} elseif ($startDateTime) { } elseif ($startDateTime) {
$conditions['payed_time'] = ['gt', $startDateTime]; $conditions['created_at'] = ['gt', $startDateTime];
} elseif ($endDateTime) { } elseif ($endDateTime) {
$conditions['payed_time'] = ['lt', $endDateTime]; $conditions['created_at'] = ['lt', $endDateTime];
} }
if ($myCardTradeNo) { if ($myCardTradeNo) {
$conditions['order_number'] = $myCardTradeNo; $conditions['order_number'] = $myCardTradeNo;
} }
$list = $spendModel->where($conditions)->select(); $list = $tradeModel->where($conditions)->select();
$trades = []; $trades = [];
foreach ($list as $item) { foreach ($list as $item) {
$trades[] = [ $trades[] = [
'PaymentType' => '', 'PaymentType' => $item['payment_type'],
'TradeSeq' => '', 'TradeSeq' => $item['trade_seq'],
'MyCardTradeNo' => $item['order_number'], 'MyCardTradeNo' => $item['mycard_trade_no'],
'FacTradeSeq' => $item['pay_order_number'], 'FacTradeSeq' => $item['fac_trade_seq'],
'CustomerId' => (string)$item['user_id'], 'CustomerId' => $item['user_id'],
'Amount' => (string)$item['pay_amount'], 'Amount' => $item['amount'],
'Currency' => 'TWD', 'Currency' => $item['currency'],
"TradeDateTime" => date('Y-m-dTH:i:s', $item['payed_time']), "TradeDateTime" => date('Y-m-dTH:i:s', strtotime($item['created_at'])),
// 'CreateAccountDateTime' => '', // 'CreateAccountDateTime' => '',
// 'CreateAccountIP' => '', // 'CreateAccountIP' => '',
]; ];

Loading…
Cancel
Save