|
|
@ -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'],
|
|
|
|