|
@@ -110,8 +110,10 @@ class refillControl extends merchantControl
|
|
|
|
|
|
[$can_refill, $period] = refill\util::can_commit($card_no, $card_type);
|
|
|
if ($can_refill === false) {
|
|
|
+ refill\util::push_queue($this->mchid(),$mch_order,time() + $period);
|
|
|
$state = refill\util::async_add($params, $period);
|
|
|
} else {
|
|
|
+ refill\util::push_queue($this->mchid(),$mch_order,time());
|
|
|
$state = refill\util::push_add($params);
|
|
|
}
|
|
|
|
|
@@ -178,7 +180,6 @@ class refillControl extends merchantControl
|
|
|
private function format($order_info,$refill_info)
|
|
|
{
|
|
|
$result = [];
|
|
|
-
|
|
|
$result['mchid'] = $refill_info['mchid'];
|
|
|
$result['trade_no'] = $refill_info['order_sn'];
|
|
|
$result['order_sn'] = $refill_info['mch_order'];
|
|
@@ -188,9 +189,15 @@ class refillControl extends merchantControl
|
|
|
$result['order_amount'] = $refill_info['mch_amount'];
|
|
|
$result['order_time'] = $refill_info['order_time'];
|
|
|
$result['success_time'] = $refill_info['notify_time'];
|
|
|
- $result['order_state'] = $order_info['order_state'];
|
|
|
$result['official_sn'] = $refill_info['official_sn'] ?? "";
|
|
|
|
|
|
+ if($refill_info['is_retrying']) {
|
|
|
+ $result['order_state'] = ORDER_STATE_NEW;
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ $result['order_state'] = $order_info['order_state'];
|
|
|
+ }
|
|
|
+
|
|
|
return $result;
|
|
|
}
|
|
|
|
|
@@ -206,23 +213,33 @@ class refillControl extends merchantControl
|
|
|
$mod_refill = Model('refill_order');
|
|
|
$refill_info = $mod_refill->getOrderInfo(['mch_order' => $order_sn,'mchid' => $mchid,'inner_status' => 0]);
|
|
|
|
|
|
- if(empty($refill_info)) {
|
|
|
- return self::outerr(202,"无此订单");
|
|
|
+ if(empty($refill_info))
|
|
|
+ {
|
|
|
+ $ret = refill\util::query_queue($mchid,$order_sn);
|
|
|
+ if ($ret > 0) {
|
|
|
+ $result['mchid'] = $mchid;
|
|
|
+ $result['order_sn'] = $order_sn;
|
|
|
+ $result['order_state'] = ORDER_STATE_QUEUE;
|
|
|
+ return self::outsuccess($result);
|
|
|
+ } else {
|
|
|
+ return self::outerr(202, "无此订单");
|
|
|
+ }
|
|
|
}
|
|
|
+ else
|
|
|
+ {
|
|
|
+ $vr_order = Model('vr_order');
|
|
|
+ $order_info = $vr_order->getOrderInfo(['order_sn' => $refill_info['order_sn']]);
|
|
|
|
|
|
- $vr_order = Model('vr_order');
|
|
|
- $order_info = $vr_order->getOrderInfo(['order_sn' => $refill_info['order_sn']]);
|
|
|
+ if(empty($order_info)) {
|
|
|
+ return self::outerr(203,"无此交易号");
|
|
|
+ }
|
|
|
|
|
|
- if(empty($order_info)) {
|
|
|
- return self::outerr(203,"无此交易号");
|
|
|
- }
|
|
|
+ if($order_info['order_state'] == ORDER_STATE_SEND) {
|
|
|
+ QueueClient::push("QueryRefillState",['order_id' => $refill_info['order_id']]);
|
|
|
+ }
|
|
|
|
|
|
- if($order_info['order_state'] == ORDER_STATE_SEND) {
|
|
|
- QueueClient::push("QueryRefillState",['order_id' => $refill_info['order_id']]);
|
|
|
+ $result = $this->format($order_info,$refill_info);
|
|
|
+ return self::outsuccess($result);
|
|
|
}
|
|
|
-
|
|
|
- $result = $this->format($order_info,$refill_info);
|
|
|
-
|
|
|
- return self::outsuccess($result);
|
|
|
}
|
|
|
}
|