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

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

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

Loading…
Cancel
Save