Commit 9fe7b281 authored by wanjilong's avatar wanjilong

add: 支付优化临时提交

parent f4803cf1
...@@ -29,6 +29,7 @@ class PayException extends BaseException ...@@ -29,6 +29,7 @@ class PayException extends BaseException
14 => '订单缺少商品信息,请联系管理员', 14 => '订单缺少商品信息,请联系管理员',
15 => '订单存在过期商品,不能支付', 15 => '订单存在过期商品,不能支付',
16 => '订单过期,不允许支付', 16 => '订单过期,不允许支付',
17 => '订单缺少过期时间,请联系管理员',
]; ];
} }
...@@ -18,8 +18,7 @@ class PayOrder extends MysqlBase ...@@ -18,8 +18,7 @@ class PayOrder extends MysqlBase
self::beginTransaction(); self::beginTransaction();
try{ try{
$_date = date('Y-m-d H:i:s'); $order = self::getMaster('*', ['order_id'=>$order_id, 'pay_channel'=>$pay_order['pay_channel']]);
$order = self::getMaster('*', ['order_id'=>$order_id, 'expire_time[>]'=>$_date]);
if(empty($order)) { if(empty($order)) {
$cnt = self::insert($pay_order, ['rowCount'=>true]); $cnt = self::insert($pay_order, ['rowCount'=>true]);
if($cnt) { if($cnt) {
......
...@@ -50,12 +50,13 @@ class PayService ...@@ -50,12 +50,13 @@ class PayService
throw new PayException(['cus' => 3]); throw new PayException(['cus' => 3]);
} }
if (!empty($order_info['pay_expiration_time'])) { if (empty($order_info['pay_expiration_time'])) {
throw new PayException(['cus' => 17]);
}
$pay_expiration_time = strtotime($order_info['pay_expiration_time']); $pay_expiration_time = strtotime($order_info['pay_expiration_time']);
if($pay_expiration_time < time()) { if($pay_expiration_time < time()) {
throw new PayException(['cus' => 16]); throw new PayException(['cus' => 16]);
}
} }
if(empty($data['result']['order_item_list'])) { if(empty($data['result']['order_item_list'])) {
...@@ -93,9 +94,11 @@ class PayService ...@@ -93,9 +94,11 @@ class PayService
throw new PayException(['cus' => 15]); throw new PayException(['cus' => 15]);
} }
// 判断是否存在有效订单 //订单过期时间必须满足 70s+
$max_expire_time = config('pay','pay.expire_time') ?? 1800; if($pay_expiration_time - $now < 70 ) {
$expire_time = time() + $max_expire_time; $pay_expiration_time = $now + 70;
}
$pay_order_id = $this->gen_pay_order_id($user_id); $pay_order_id = $this->gen_pay_order_id($user_id);
$new_pay_order = [ $new_pay_order = [
'pay_order_id' => $pay_order_id, 'pay_order_id' => $pay_order_id,
...@@ -107,7 +110,7 @@ class PayService ...@@ -107,7 +110,7 @@ class PayService
'pay_amount' => $order_info['payment'], 'pay_amount' => $order_info['payment'],
'pay_channel' => $pay_method_id, 'pay_channel' => $pay_method_id,
'third_order_id' => '', 'third_order_id' => '',
'expire_time' => date('Y-m-d H:i:s', $expire_time), 'expire_time' => date('Y-m-d H:i:s', $pay_expiration_time),
'source_name' => 10, 'source_name' => 10,
'service_name' => 1, 'service_name' => 1,
'extra' => json_encode([]), 'extra' => json_encode([]),
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment